Hello everyone,
We are happy to announce the immediate availability of the fourth stable feature release in the Semantic MediaWiki 2.x series.
Semantic MediaWiki 2.3 is a feature release that adds several new features, brings enhancements, improves performance and fixes various issues. It does not contain any breaking changes, so upgrading is both easy and recommended.
## Highlight: Improved SPARQLStore support ##
SMWs SPARQLStore has now reached full feature parity with the SQLStore. On top of that, various performance improvements where made to the SPARQLStore.
The $GLOBALS['smwgSparqlQFeatures'] configuration setting now supports these additional values:
SMW_SPARQL_QF_REDI: enable property/value redirects support in queries SMW_SPARQL_QF_SUBP: enable subproperty hierarchy support SMW_SPARQL_QF_SUBC: enable subcategory hierarchy support
If your TDB back-end does not support SPARQL 1.1, this setting needs to be set to SMW_SPARQL_QF_NONE.
* Added preference for use of canonical identifiers to support language agnostic category/property statements, (use $GLOBALS['smwgExportBCNonCanonicalFormUse'] = true to keep backwards compatibility until 3.x) * Added basic support for _geo queries to the SPARQLStore * Added limitation of the aux property usage in the Exporter (use $GLOBALS['smwgExportBCAuxiliaryUse'] = true; to keep backwards compatibility until 3.x)
## New features and enhancements ##
* Added progress indicator to rebuildData.php * Extended context help displayed on Special:Types and subsequent type pages * Improved MobileFrontend support * Added a CSS rule to visually distinguish subobject links from "normal" links * Added $GLOBALS['smwgValueLookupCacheType'] to improve DB lookup performance though the use of a responsive cache layer (such as redis) and buffer repeated requests either from the API or page view to the back-end. * It is now possible to use extra double colons in annotations. For instance [[DOI::10.1002/123::abc]] or [[Foo:::123]] * Predefined property aliases are redirected to the base property * The template support of #set now includes an automatically added last-element parameter * Added --skip-properties flag to rebuildData.php * rebuildData.php now first removes items marked for deletion * Extended ~* search pattern for _ema and _tel to allow for searches like [[Has telephone number::~*0123*]] and [[Has email::~*123.org]] * The category result format now supports columns=0, which results in automatic column count selection * Added SQL EXPLAIN output to the debug result format * Added @category as parameter with a fixed assignment (_INST) to #subobject * Added ~ and !~ comparator support for values of type date * Beta support for PHP 7
## New experimental features ##
These features are disabled by default and can be turned on using configuration. Additional logging happens for these features until they mature from being an experimental feature in a future release.
* Added CachedValueLookupStore as post-cached layer to improve DB read access ($GLOBALS['smwgValueLookupCacheType'], $GLOBALS['smwgValueLookupCacheLifetime']) * Added $GLOBALS['smwgValueLookupFeatures'] setting to fain grain the cache access level, default is set to SMW_VL_SD | SMW_VL_PL | SMW_VL_PV | SMW_VL_PS; * Added EmbeddedQueryDependencyLinksStore to track query dependencies and update altered queries using ParserCachePurgeJob for when $GLOBALS['smwgEnabledQueryDependencyLinksStore'] is enabled * Added $GLOBALS['smwgPropertyDependencyDetectionBlacklist'] to exclude properties from dependency detection * Added detection of property and category hierarchy dependency in EmbeddedQueryDependencyLinksStore
## Bug fixes ##
* Fixed RuntimeException in SQLStore caused by a DI type mismatch during a lookup operation * Fixed id mismatch in SQLStore * Fixed syntax error in SQLStore(SQLite) for temporary tables on disjunctive category/subcategory queries * Fixed PHP notice in JobBase for non-array parameters * Fixed Fatal error: Call to undefined method SMWDIError::getString * Fixed RuntimeException in UndeclaredPropertyListLookup for when a DB prefix is used * Fixed call to undefined method in ConceptDescriptionInterpreter in SQLStore * Fixed behavior for #REDIRECT to create the same data reference as Special:MovePage * Fixed usage of [[Has page::~*a*||~*A*]] for SPARQLStore when Has page is declared as page type * Fixed usage of (a OR b) AND (c OR d) as query pattern for the SQLStore * Fixed return value of the #set parser * Fixed duplicated error message for a _dat DataValue * Fixed mismatch of owl:Class for categories when used in connection with a vocabulary import * Fixed error on Special:Ask when using a format provided by Semantic Maps * Fixed silent annotations added by the Factbox when content contains [[ ... ]] * Fixed resource loading issue on Windows when using $wgResourceLoaderDebug=true * Fixed disabling of $GLOBALS['wgFooterIcons']['poweredby']['semanticmediawiki'] * Fixed re-setting of smw-admin user group permission to its default * Fixed #set rendering of template supported output * Fixed inverse prefix for predefined properties that caused misinterpret Concept queries * Fixed context awareness of ParserAfterTidy in connection with the purge action * Fixed "duplicate key value violates unique constraint" for PostgreSQL on conjunctive and disjunctive queries * Fixed further link to use the format parameter as specified by #ask * Fixed usage of the !~ comparator for properties that have a limited set of allowed values
### Improved handling of removed entities in SQLStore ###
In previous releases it could happen that deleted entities (subject, property) reappeared in queries even though they have been removed. This release introduces several changes to eliminate some of the issues identified.
* introduced a deletion marker on entities that got deleted, making them no longer available to queries or special page display. * Added --shallow-update to rebuildData.php, to only parse those entities that have a different last modified timestamp compared to that of the last revision. This enables to run rebuildData.php updates on deleted, redirects, and other out of sync entities. Solved an unconditional namespace query [[Help:+]] would display deleted subjects (in case those subjects were deleted) * Added filter to mark deleted redirect targets with SMW_SQL3_SMWDELETEIW * Added filter to mark outdated subobjects with SMW_SQL3_SMWDELETEIW * Added removal of unmatched "ghost" pages in the ID_TABLE
## Contributors ##
Code contributors
* MWJames * Jeroen De Dauw * Karsten Hoffmeyer (kghbln) * Felipe de Jong (jongfeli) * Vitaliy Filippov (vitalif) * paladox * Amir E. Aharoni * Joel K. Pettersson * umherirrender * Kunal Mehta (legoktm) * TranslateWiki.net
We'd also like to thank
* yoonghm * cicalese * bogota * plegault3397
The full list of changes be viewed at [0]. The installation procedure [1] has not changed since 1.9.0. To upgrade, you will need to get the new version of SMW, run MediaWikis update.php, and run SMWs refresh data script [2]. There is also a short video showing an upgrade from SMW 2.1.3 to 2.2 at [3]. We already started work in SMW 2.4 and welcome your contributions [4].
- The SMW development team
[0] https://semantic-mediawiki.org/wiki/SMW_2.3 [1] https://semantic-mediawiki.org/wiki/Help:Installation [2] https://semantic-mediawiki.org/wiki/Help:Installation#Upgrading [3] https://vimeo.com/127356533 [4] https://github.com/SemanticMediaWiki/SemanticMediaWiki/blob/master/CONTRIBUT...