Semantic MediaWiki and related extensions
|
Released on October 11, 2018.
This release brings many highlights:
Several user interface changes are deployed to make user facing front-end components more intutive and mobile-friendly by improving the responsiveness on small screens including:
The "list" formats (list
, ol
and ul
) and the template
format were completely reworked with the latter being renamed to plainlist
(#3130) now being the default result format if no result format was explicitly specifed for the query. Most notably dedicated separators for values, properties and result "rows" (sep
, propsep
, valuesep
) were introduced as well as class attributes to HTML elements of "list", "ol" and "ul" formats were added to facilitate easy indidual styling. Note that the plainlist
format does not apply these additional class attributes.
See the migration guide for a comprehensive overview of the changes done.
Local-specific (ICU) sorting and collation is now possible for pages as well as values of datatype "Page" (#2065) facilitated via configuration parameter $smwgEntityCollation
(#2429).
Special page "Search" now provides and additional search form accessible via the "Extended" selector in case the "SMWSearch" feature was enabled (#3126). with custom search forms definable in the new "smw/schema" namespace (#3431).
It is now possible to define remote sources which can be queried using special page "Ask" or doing inline queries (#3167).
Various effort have been put into improving the performance of the software, most notably with these three code changes: #3142, #3261 and #3286 with the latter facilitating less expensive paging limits on various user facing special pages via configuration parameter $smwgPagingLimit
.
Even though Semantic MediaWiki now supports the extension registration approach with "extension.json" (#1732), enableSemantics
remains the sole point of activiation for SMW itself to ensure that data and objects are prepared in advanced and users do not have to modify any existing settings in their "LocalSettings.php" file.
This release requires (#2065, #2461, #2499) to run the "setupStore.php" or "update.php" script and a missing upgrade process will redirect users to an error message to remind him or her of a required action. Note that running the schema update may take quite long (minutes on a medium sized site, many hours on a large site).
Note that SMW requires write access to the code directory meaning that you currently cannot update. This will be fixed in the following relase allowing to configure an alternative directory for this purpose.
After the upgrade, please check the "Deprecation notices" section on special page "SemanticMediaWiki" to adapt and modify listed deprecated settings.
If you are still using maintenance scripts identifiable by the "SMW_" prefix you must now migrate to the new maintenance script names. See the help pages on maintenance scrips for further information.
#3198 switched to PHP 5.6 as minimum requirement as well as to MediaWiki 1.27 as minimum requirement.
Please also carefully read the section on breaking changes and deprecations further down in these release notes. We have also prepared a migration guide for you.
Semantic MediaWiki no longer provides file releases (See #3347). If command line access to the webspace is not available or if the hoster imposes restrictions on required functionality an individual file release will have to be created.
setupStore.php
) for SQL tables managed by Semantic MediaWiki$smwgEntityCollation
setting$smwgFieldTypeFeatures
with SMW_FIELDT_CHAR_NOCASE
to enable case insensitive search queriesSMW_FIELDT_CHAR_LONG
as flag for $smwgFieldTypeFeatures
to extend the indexable length of blob and uri fields to max of 300 charsSMW_QSORT_UNCONDITIONAL
DISTINCT
with GROUP BY
in SQLStore::getPropertySubjects
DataItemHandler
to enforce specific index selectionFIXED_PROPERTY_ID_UPPERBOUND
from 50 to 500 to increase the range for fixed property IDssmw_rev
field to the smw_object_ids
table to track an entity instance and its associated revision ID (represents the raw content)Database::nextSequenceValue
in commit wikimedia/mediawiki@0a9c55b#diff-278465351b7c14bbcadac82036080e9f. SMW added this functionality back for the sake of Postgres.ElasticStore
to use Elasticsearch as query backendSMWSearch
search mode is enabled or not for special page "Search"[[
in special page "Search" for the SMWSearch
typeSMWSearch
(see #3157, #3281)SearchResult
: *
in:Foo barequivalent to
[[~~*Foo bar*]] *
phrase:Foo barequivalent to
[[~~"Foo bar"]] *
has:Foo barequivalent to
[[Foo bar::+]]`#ask
and #show
parser function support for @deferred
output mode (see also #3257)$smwgQExpensiveThreshold
and $smwgQExpensiveExecutionLimit
to count and restrict expensive #ask
and #show
functions on a per page basisn-asc
, n-desc
) of printout column values+depth
as syntax component for a condition to restrict the depth of class and property hierarchy querieslike:
and nlike:
comparator operator for approximate queries@annotation
as special processing mode to embedded #ask
queriesQuery state
special property to be able to track an internal state when a #ask
uses @annotation
or @deferred
as special execution mode. In addition to internal usage, one can also now find all deferred queries with {{#ask: [[Query state::200]] |format=ul }}
in:
as expression to the #ask syntaxphrase:
as expressionformat=table
(and broadtable
) result printer#LOCL#TO
date formatting to display a local time offset according to a user preferrence+width
as parameter to the format=table
(and broadtable
) result printertype
parameter to format=json
in support for a simple list exportformat=table
datatablebom
as parameter to format=csv
valuesep
as parameter to format=csv
to define a value separatormerge
parameter to format=csv
#-ia
to #-raw
format=templatefile
to support individual export formats defined using MediaWiki templates#tick
and #num
output formatter to boolean value type$smwgDefaultOutputFormatters
setting to declare default output formatter for a type or propertyfeed
printerlist
format{{DISPLAYTITLE}}
to the feed
printerclass
parameter to list
formatsmwbrowse
API module (#2717, #2719, #2721)api_version
to ask, askargs APIpvalue
browse modulepsubject
browse moduleSMW_PARSER_UNSTRIP
to $smwgParserFeatures
enabling to use unstripped content on a text annotationSMW_CAT_REDIRECT
option to allow finding redirects on categories$smwgChangePropagationProtection
and changed the approach on how property modifications are propagatedEditPageHelp
to be disabled using a user preference$smwgCreateProtectionRight
setting to control the creation of new properties and hereby annotations as part of the authority modefilter=unapprove
to special page "WantedProperties"|headers=plain
in queries--skip-optimize
and --skip-import
to setupStore.php
(see 2516)format=embedded
#nowiki
support for external identifier type$smwgPropertyReservedNameList
to define reserved property names$smwgURITypeSchemeList
to restrict valid URI schemesmwb-theme-light
$smwgJobQueueWatchlist
settingSMW_BROWSE_SHOW_SORTKEY
flag to the $smwgBrowseFeatures
setting$smwgDefaultLoggerRole
setting to define logging granularity for Semantic MediaWiki$smwgCompactLinkSupport
setting to compact links produced by special page "Ask" and special page "Browse"SMW_NS_RULE
namespace_keyw
) typeRemoteRequest
to share and consolidate query results from remote sources--dispose-outdated
flag to the "rebuildData.php" maintenance scriptAllows value list
definitionAllows value
for number and quantity types_TRANS
) supportsmwgPostEditUpdate
to manage post edit event handling for seconday updates via the API interface<section>
on property pages to put user-defined content into SMW-defined tabs$smwgSpecialAskFormSubmitMethod
to SMW_SASK_SUBMIT_GET
, SMW_SASK_SUBMIT_REDIRECT
, or explicitly setting the default SMW_SASK_SUBMIT_POST
.smw_rev
and smw_proptable_hash
to null)--revision-mode
: Skip entities where its associated revision matches the latests referenced revision of an associated page--force-update
: Force an update even when an associated revision is knownSMW\
prefix to smw.
prefix. Example: SMW\UpdateJob
-> smw.update
smw_subobject
and the generation of duplicate entitiesformat=csv
format=table
each
use in SearchResultSet
DataRebuilder
LBFactory::getEmptyTransactionTicket
ExportController
$wgDBadminuser
in maintenance script "setupStore.php"StringValueFormatter
preview
activitysmw_proptable_hash
during setupsmw_prop_stats
exception|
during the in-text annotation parsingParserOptions::setEditSection
for MW 1.31::=
in LinksProcessor
/
in property namesUpdateDispatcherJob
with selecting unrelated entities|sort=,Has foo
relevance
. SMW added title
, recent
, and best
.id
field to type SERIAL
instead of INTEGERY PRIMARY KEY
<p>
which added newlines to displaySELECT
on pages+namespaces rather than just pages.#set
and #subobject
paser functions using pipe |
is deprecated. Use the +sep
parameter instead.Store::getPropertySubjects
and Store::getAllPropertySubjects
will return an Iterator
instead of just an arraysmw-ask-otheroptions-collapsed-info
$smwgAutocompleteInSpecialAsk
SMWDataItem::TYPE_STRING
(replaced by SMWDataItem::TYPE_BLOB
)browsebyproperty
API module, the new smwbrowse
should be used insteadResultPrinter::getParameters
$smwgUseComparableContentHash
and will be removed with 3.1 to help migrating subobject hash generation$smwgCacheUsage
settings$smwgQueryProfiler
settingsContextSource
from ResultPrinter
instances$smwgSparqlDatabaseMaster
and $smwfGetSparqlDatabase
$smwgSparqlDatabaseConnector
to $smwgSparqlRepositoryConnector
$smwgDeclarationProperties
$smwgSparqlRepositoryConnector
$smwgParserFeatures
setting$smwgCategoryFeatures
settingsmwgQSortFeatures
setting$smwgLinksInValues
with the SMW_PARSER_LINV
flag now maintained in $smwgParserFeatures
, PCRE option has been removed$smwgScriptPath
SEMANTIC_EXTENSION_TYPE
flagSMW\DIProperty
smwAddToRDFExport
hookSMW_NS_TYPE
ns and $smwgHistoricTypeNamespace
$smwgPagingLimit
settingSMWQueryProcessor::getSortKeys
BrowseBySubject
, use smwbrowse
insteadsmwgCacheType
with smwgMainCacheType
smwgSparqlEndpoint
sparql endpoint settingSMWDIProperty
with DIProperty
in SMWDataValue
SMWWikiPageValue::makePage
and SMWWikiPageValue::makePageFromTitle
ResultPrinter::$m_params
. Use ResultPrinter::$params
instead.SMW\DataValueFactory
ResultPrinter::textDisplayParameters
and ResultPrinter::exportFormatParameters
SMWResultArray::getNextObject
SMWRecordValue::getDV
smwfIsSemanticsProcessed
QueryDependencyLinksStore
on a 'stashedit' activityChunkedIterator
to DataRebuilder
to avoid OOM situations in case of a large update queue_wpp
) display in WikiPageValue
parser-html
to JSONScript
testing to allow assertions on HTML structurejob
table, use the JobQueue::getQueueSizes
insteadbroadtable
width with the "MobileFrontend" extensionTableBuilder
null_count
column to PropertyStatisticsTable
#info
icon setHierarchyLookup
SMW::GetPreferences
hookQueryProcessor
to ParamListProcessor
ResultPrinter
base classTableResultPrinter
RecursiveTextProcessor
to isolate $wgParser
access in ResultPrinter
SMW::Setup::AfterInitializationComplete
hookSMWQueryParser
to SMW\Query\Parser
JsonSchemaValidator
PropertyPage
and ConceptPage
Setup::initExtension
to allow an early registration of SpecialPage_initList
and ApiMain::moduleManager
hooksConnectionProvider
SQLStore::fetchSemanticData
to SemanticDataLookup
SMW::SQLStore::EntityReferenceCleanUpComplete
hookSMW::LinksUpdate::ApprovedUpdate
and SMW::Parser::ChangeRevision
hookBlockIpComplete
, UnblockUserComplete
, and UserGroupsChanged
hookSMW::Admin::TaskHandlerFactory
hookCONTENT_MODEL_RULE
to be able to do schema validation before a save sometime in the future. Switching to an alternate model at a later stage would only create headaches.$wgExtensionDirectory
to find SMW's "extension.json"FeedExportPrinter
and added integration testSMWSQLStore3::changeSMWPageID
SMWSQLStore3Readers::getPropertySubjects
SMWSQLStore3Readers::getProperties
SMW\CategoryResultPrinter
to SMW\Query\ResultPrinters\CategoryResultPrinter