The structure of a Semantic MediaWiki (SMW) can become hard to develop and maintain as it increases in size and complexity. With this project an object oriented modeling approach based on the JSON Schema format is used. Instead of creating SMW Attributes, Templates and Forms by hand in wikitext, Fields, Models and Forms are defined through JSON Files. Properties can be inherited and overwritten which keeps the model DRY.
mobo is a Node.js based toolset that validates, visualizes, converts and uploads your development model in real-time to your wiki.
- Node.js is required for mobo to install/run.
- A Semantic MediaWiki Installation is required as upload target. Semantic Forms is required, the HeaderTabs and TemplateData extension are supported.
- Your wiki needs a bot account that provides the login data you need to specify in your settings.json. The Bot should have the "bot" and possibly the "administrator" (if you want to upload special pages) privileges.
Install mobo and create a new project:
$ npm install -g mobo # Installs mobo globally. If this fails: "sudo npm install -g mobo"
$ mkdir new_model && cd new_model # Creates and enters new directory
$ mobo --init # Initializes the empty directory with the default structure
$ nano settings.json # Adjust / enter options (login data for the bot...)
$ mobo # Runs mobo in interactive mode
If mobo can't be added to your global path, it can be run manually:
$ node /path/to/mobo/cli.js
$ npm update -g mobo
To overwrite the default settings, just add them to your settings.json.
Enter mobo -c
to print out the currently used configuration, including all inherited default values.
If you want to change a setting, simply copy it into your settings.json and adjust it.
- Watch the mobo presentation oder read the paper.
- Visit the project wiki for more detailed documentation and tutorials.
There are a few context specific README.md files within the project:
Your model is developed with your favorite text editor:
mobo is a console application. It validates, generates and uploads your model - in realtime by default:
There is a webapp that allows you to browse your current model and the resulting wikitext:
mobo can generate a graph model (has to be layouted via Gephi) that can be explored interactively:
The final SMW structure makes use of Semantic Forms:
Templates are auto-documented:
(Coming soon)
Copyright (c) 2014 Simon Heimler Licensed under the MIT license.