User blog:DaNASCAT/Technical Update: Semantic MediaWiki Upgrade On November 3rd

With the upcoming Thursday code release for November 3, 2016, our communities that utilize the Semantic MediaWiki (SMW) extension will be placed onto version 2.4.1 of the feature. This is a major update - going from 1.8 (and 2.0 for select communities) to this version. As such, we are preparing some release notes specifically relating to the extension.

Performance Improvements
First, it is important to note that the main impetus behind this change was to increase technical performance. SMW is a very technically expensive tool, though the designers of the tool deserve a lot of credit for constantly rewriting core parts of code to improve performance. The main change happened in SMW 1.9, which forced wikis onto a new database schema called "SMWStore3". SMWStore3 is a better designed schema, more scalable, easily indexed, and accessed by improved function handlers. Our initial tests using SMWStore3 saw performance increase on average page load between 40% and 60%.

SMW 2.0 also increased performance significantly due to further additions of unit tests and utilizing PHP namespaces more effectively in the codebase. SMW 2.2 reduced the number of pages on which SMW JavaScript and CSS was loaded and improved jQuery support. Fandom has been unable to offer Semantic MediaWiki to communities that don't already have the extension since 2013 because of the technical cost. Please note that this policy is not changing at this time.

Functionality Improvements
Here is a curated list of functionality improvements and changes included in the upgrade. This is not an exhaustive list of all changes. Full changelogs can be found on the Semantic MediaWiki website. For the sake of brevity, we have selected the most noticeable changes and included the version of the release if you want to look up more information.


 * Property type "String" is now an alias for Text and has no more length restrictions (1.9)
 * Special:Properties now provides a form to search user-defined properties (1.9)
 * Add page Special:Concepts that lists available concepts (1.9)
 * Add +sep= as multiple value separator for #set and #subobject parser function (1.9)
 * 'Further result' links now have their own CSS class for customization (1.9)
 * Add note parameter to #info parser function (1.9)
 * CSS classes added to improve and customize the Special:Ask page (1.9.1)
 * Intro and Outro templates can now inherit query information (1.9.2)
 * Support for subobjects has been added to RDF export (2.0)
 * Concepts can now be nested on a wiki page (2.1)
 * Special:SearchByProperty interface revamped (2.1)
 * Enabled semicolon escaping for record-type values (2.1)
 * Added template support to the #set parser function (2.2)
 * Added a CSS rule to visually distinguish subobject links from "normal" links (2.3)
 * The template support of #set now includes an automatically added last-element parameter (2.3)
 * Extended ~* search pattern to allow for searches like Has telephone number::~*0123* and Has email::~*123.org (2.3)
 * The category result format now supports columns=0, which results in automatic column count selection (2.3)
 * Added ~ and !~ comparator support for values of type date (2.3)
 * Added support for multilingual content (2.4)
 * It is now possible to specify which position a custom unit should have in Corresponds to annotations. This means you can specify Corresponds to::€ 1 instead of Corresponds to::1 €
 * You can now specify the precision used for display of numeric properties (i.e. those of type Number, Quantity, Temperature). This is done using the Display precision of property. You can override this display precision per #ask query, by using -p (2.4)
 * Extended date and time formatting by supporting PHP's DateTime format (2.4)

How You Can Help
Fandom has done extensive testing on this feature and, as part of the upgrade, has a rebuilt wiki datastore included as part of the change. This means that any deleted, redirected, or otherwise "lost" pages that show up in queries (as has been a common complaint in previous versions of SMW) should no longer be appearing.

As such, we are releasing this with confidence that the changes should be "invisible". Queries and properties should still have the same results Thursday as they did Wednesday. There are no breaking changes known as part of this release – that is to say changes to the code that would require any user rewrite of a page, property, or query that would be required to return the expected result.

However, due to the nature of this upgrade, it is certainly not out of the realm of possibility that minor bugs will pop up. Users on wikis have a deeper content knowledge than we do. For example, while an engineer might know how the extension is supposed to work on Yu-Gi-Oh Wiki, they simply won't be able to spot if there is old data showing from the Blue Eyes White Dragon page.

That's why it's important for community members to take a close look at their pages in the next few weeks and report any bugs they see to us. As usual, please use Special:Contact to let us know about any incorrect data.