Developer manual

Developer manualArchitecture guide
Page serves as starting point for users interested in extending Semantic MediaWiki
Table of Contents

This page and those related with the aspect of development or extending Semantic MediaWiki should help user who are interested in contribution to the project on a technical level.


If you get unfamiliar with MediaWiki or its development structure then it is suggested to look at the "mws:How to become a MediaWiki hacker" manual to get a first impression of the general development environment.

Get started[edit]

To accommodate oneself with the specifics of Semantic MediaWiki and its development, choosing one of the following tasks can be rewarding by starting to improve and contribute to the Semantic MediaWiki project.

  • Fixing coding style issues is a way to get familiar with the environment
  • Pick a "easy" task from the issue list which should (if not please ping us) contain some code samples to move the issue forward


  • How to setup (use) a DataValue in PHPUnit
  • How is SMW organized inside? What parts of Architecture guide are outdated and don't reflect the current state of the code?
  • What's happening when I add the property to my page?
  • What's happening when I query something?
  • In which ways can SMW be extended? What abstract classes, hooks and interfaces do we have?
  • How to do the following things:
    • How to add new reasoning capability? For example support the inverse properties?
    • How to extend the query language?
    • How to add new types of properties and extend the old ones?
    • How to search the bottlenecks in the performance?
    • How to read SMW data from PHP code?
    • How to write SMW data from PHP code?

See also[edit]