Semantic MediaWiki 2.0.0

(Redirected from Semantic MediaWiki 2.0.0)
Semantic MediaWiki 2.0.0
Release date: August 4, 2014
Previous version: Semantic MediaWiki 1.9.2
Next version: Semantic MediaWiki 2.1.0
Compatible with: MW 1.19.0 - 1.24.x
Current version:
SMW 4.1.3

Version 2.0 of Semantic MediaWiki is the next release after Semantic MediaWiki 1.9.2.

Please refer to the help page on installing Semantic MediaWiki to get detailed instructions on how to do this.

Semantic MediaWiki 2.0

Released August 4th, 2014.

Compatibility changes

Semantic MediaWiki 2.0 is compatible with MediaWiki 1.19 up to MediaWiki 1.23, and possibly later versions. Support for both MediaWiki 1.23 and MediaWiki 1.24 was improved compared to SMW 1.9.

PHP compatibility remains the same as in SMW 1.9: all versions from PHP 5.3.2 to PHP 5.6.x.

For a full overview, see our compatibility matrix.

Quality and stability improvements

A great deal of effort has been put into ensuring both existing and new features work well. Not just at present, but also in future releases. And not just with MySQL and one version of MediaWiki, but on all platforms we support. This dedication to quality has resulted in many bugs being discovered and fixed, and makes future regressions much less likely.

Continuous integration is now an integral part of the development process behind SMW. As of the 2.0 release, SMW has over 2300 automated tests, which cover two thirds of the codebase. These tests are run automatically for every change made to the code, on machines with different databases, different versions of PHP, different SPARQL stores and different versions of MediaWiki.

Semantic Versioning

As of the 2.0 release, Semantic MediaWiki adheres to the Semantic Versioning standard. This makes our version numbers more meaningful and makes it easier for administrators to determine if a new release is relevant to them.

Improved SPARQLStore support

Semantic MediaWiki 1.6 introduced support for data synchronization with RDF back-ends. SMW 2.0 makes this functionality a first class citizen through many enhancements and stability improvements.

The smwgSparqlDatabase setting

introduced in 1.6 has been deprecated in favour of $smwgSparqlDatabaseConnector (#342) to avoid arbitrary class assignments in $smwgSparqlDatabase (now only used to assign custom


Unit and integration tests were given extra focus together with a continuous integration of Jena Fuseki (1.0.2) (#337) and Virtuoso opensource 6.1 (#394) to ensure that compatibility and functional parity are going hand in hand with the rest of SMW. (Unfortunately 4Store currently does not run on the continuous integration platform, for details see garlik#110 but tests have been run successfully with a local 4store instance).

At this moment, the only RDF store to be tested and to support SPARQL 1.1 is Jena Fuseki therefore other stores may not support all query features. For details to the testing environment and its configuration, see the README file.

Improved subobject support

Support for subobjects has been added to the RDF export. This new capability is used by the RDF store functionality to also synchronize subobjects. (#344)

Subobjects now support sorting via the @sortkey annotation that stores an individual sortkey per subobject. (#225)

Notable bug fixes

  • #279 Fixed undefined index in DataTypeRegistry::getDefaultDataItemTypeId
  • #282 Output a message instead of an exception in Special:WantedProperties for unknown predefined properties
  • #308 Fixed caching issue in DataRebuilder for duplicate title objects
  • #312 Fixed fatal error in CategoryResultPrinter for when a mainlabel is hidden
  • #322 Fixed file names containing spaces or non-ASCII characters for for downloadable result formats (csv, excel)
  • #379 Modernized dumpRDF.php while deprecating the use of SMW_dumpRDF.php (bug 35679)
  • #425 Deprecated SMW_setup.php in favour of setupStore.php
  • #444 Fixed language namespace alias issue
  • #420 Extended ContentParser to mitigate issues caused by the 62856 bug in MW 1.24+
  • #405 Added a compatibility fix to mitigate issues caused by the RefreshLinksJob in MW 1.23+


  • #291 Fixed call to undefined method in SPARQLStore
  • #338 Fixed exception in ResultParser for an invalid datatype (bug 62218)
  • #385 Fixed '#' encoding for subobjects in SMWExporter::findDataItemForExpElement to enable SPARQLStore result display
  • #387 Fixed SPARQLStore namespace query support (e.g [[:+]] )
  • #415 Fixed SPARQLStore usage for rebuildConceptCache.php and rebuildPropertyStatistics.php
  • #460 Fixed SPARQLStore subobject sub query and pre-defined property query support

Behind the scenes

SMW 2.0 continues to convert its classes to use PHP namespaces in order to separate responsibilities (#398, #404, #407, #409, #410, #411, #412, #416, #417, #418, #419, #421) and to be able to support PSR-4 in future.

  • All job related classes of been moved to SMW\MediaWiki\Jobs
  • All hook related classes of been moved to SMW\MediaWiki\Hooks
  • All api related classes of been moved to SMW\MediaWiki\Api
  • All SPARQLStore related classes now reside in SMW\SPARQLStore
  • SMWSparqlStore and SMWSparqlDatabase where moved into the SMW\SPARQLStore namespace

Other internal enhancements or changes include:

  • #278 Changed the PropertyStatisticsTable interface
  • #289 Added for better contributor guidance
  • #307 Added removeDuplicates option to UpdateJob
  • #310 Fixed autoloading for QueryPrinterRegistryTestCase
  • #311 Removed MediaWikiTestCase dependency
  • #315 Updated jquery.qTip2 from v2.0.0 to v2.2.0 (Mar 17 2014)
  • #332 Added the number of pages and percentage done to report messages when rebuilding selected pages
  • #366 Extended Sql3StubSemanticData to load suobjects on request and introduced a __sob datatype for subobjects
  • #382 Extended interface to support format=count information in QueryResult
  • #453 Added for better user guidance

Deprecated classes or scripts:

  • SMW_conceptCache.php
  • SMW_dumpRDF.php
  • SMW_refreshData.php
  • SMW_setup.php
  • SMWSparqlStore
  • SMWSparqlDatabase
  • SMWIResultPrinter

Removed classes or scripts:

  • SMWParseData

See also[edit]