Semantic MediaWiki 3.0.0
Semantic MediaWiki 3.0.0 | |
---|---|
Release date: | October 11, 2018 |
Previous version: | Semantic MediaWiki 2.5.8 |
Next version: | Semantic MediaWiki 3.0.1 |
Compatible with: | MW 1.27.0 - 1.31.x |
Current version: | |
SMW 4.2.0 |
Version 3.0.0 of Semantic MediaWiki is the next major release after the Semantic MediaWiki 2.5.0 release. It introduces several new features, enhances existing functionality, provides bugfixes and further increases platform stability. See the English language RELEASE NOTES below on this page for further information. Please refer to the help pages on installing or upgrading Semantic MediaWiki to get detailed instructions on how to do this.
Semantic MediaWiki 3.0
Released on October 11, 2018.
Highlights
This release brings many highlights:
User interface changes
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:
- Special page "Ask" (#2891, #2893, #2898, #3415) – including further enhancements, most notably input assistance on input fields (#2699), comprehensive input help (#2907) and compact links (#3017)
- Special page "Browse" (#2891, #2875) – including further enhancements, grouping of properties (#2874) and compact links (#3017)
- Special page "SemanticMediaWiki" (#3218)
- Property pages – boxed pagination (#3236), tabbed navigation (#3308) including usage count information (#3440) and custom tabs (#3416)
- Concept pages – boxed pagination (#3236), tabbed navigation (#3308) and custom tabs (#3416)
- Factbox (#2906)
- Special page "Concepts" (#3333)
List formats and template format rework
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.
Search and query
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).
Performance
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
.
Upgrading
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.
Miscellaneous
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.
New features and enhancements
Setup
- #1732 Added support for "extension.json"
- #2916 Added supplements jobs during the installation process
- #3095 Added database upgrade check with ".smw.json"
Store
- #2461 Improved performance on fetching incoming properties
- #2882 Added detection of duplicate entities upon storage
- #2516 Added an optimization run during the installation process (
setupStore.php
) for SQL tables managed by Semantic MediaWiki - #2065 Added entity specific collation support with help of the
$smwgEntityCollation
setting - #2499 Added
$smwgFieldTypeFeatures
withSMW_FIELDT_CHAR_NOCASE
to enable case insensitive search queries - #2536 Added
SMW_FIELDT_CHAR_LONG
as flag for$smwgFieldTypeFeatures
to extend the indexable length of blob and uri fields to max of 300 chars - #2823 Added
SMW_QSORT_UNCONDITIONAL
- #3080 Added warm up caching for the ID lookup
- #3142 Replaced
DISTINCT
withGROUP BY
inSQLStore::getPropertySubjects
- #3261 Added support for index hint in
DataItemHandler
to enforce specific index selection - #3314 Moved the
FIXED_PROPERTY_ID_UPPERBOUND
from 50 to 500 to increase the range for fixed property IDs - #3353 Added support in SQLite to drop fields without the need to delete and restore the entire store
- #3360 In MySQL/MariaDB increase ID field size from "int(8)" to "int(11)". Postgres and SQLite have no size restriction.
- #3390 Adds the
smw_rev
field to thesmw_object_ids
table to track an entity instance and its associated revision ID (represents the raw content) - #3397 MediaWiki removed
Database::nextSequenceValue
in commit wikimedia/mediawiki@0a9c55b#diff-278465351b7c14bbcadac82036080e9f. SMW added this functionality back for the sake of Postgres.
ElasticStore
- #3054 Added
ElasticStore
to use Elasticsearch as query backend- #3237, #3241, #3245, #3247, #3249, #3250, #3253
- #3152 Added extra debug query parameter (scoreset, qengine) to special page "Ask"
Search
- #2738 Added information whether
SMWSearch
search mode is enabled or not for special page "Search" - #3006 Disabled default autocompletion for terms starting with
[[
in special page "Search" for theSMWSearch
type - #3096 Added section title display support to indicate subobjects
- #3126 Added extended power profile form
- #3143 Hides namespace section and add auto-discovery
- #3145 Added simplified term parser to
SMWSearch
(see #3157, #3281) - #3234 Added support for displaytitle in
SearchResult
- #3237 Added support for highlights from external search engine, if available
- #3419 Add search autocompletion options when
$wgSearchType = 'SMWSearch';
:in:Foo bar
equivalent to[[~~*Foo bar*]]
phrase:Foo bar
equivalent to[[~~"Foo bar"]]
has:Foo bar
equivalent to[[Foo bar::+]]
Query
- #2398 Added
#ask
and#show
parser function support for@deferred
output mode (see also #3257) - #2476 Added
$smwgQExpensiveThreshold
and$smwgQExpensiveExecutionLimit
to count and restrict expensive#ask
and#show
functions on a per page basis - #2953 Added support for natural sort (
n-asc
,n-desc
) of printout column values - #2662 Added
+depth
as syntax component for a condition to restrict the depth of class and property hierarchy queries - #2558 Added
like:
andnlike:
comparator operator for approximate queries - #2572 Added
@annotation
as special processing mode to embedded#ask
queries - #2673 Added the
Query 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 }}
- #2873 Added support for
in:
as expression to the #ask syntax - #3125 Added support for
phrase:
as expression
Result formats
- #2420 Added support for a datatable output in the
format=table
(andbroadtable
) result printer - #2515 Added support for
#LOCL#TO
date formatting to display a local time offset according to a user preferrence - #2677 Added
+width
as parameter to theformat=table
(andbroadtable
) result printer - #2690 Added the
type
parameter toformat=json
in support for a simple list export - #2718 Added ad-hoc export for the
format=table
datatable - #2824 Added
bom
as parameter toformat=csv
- #2826 Added
valuesep
as parameter toformat=csv
to define a value separator - #2822 Added add
merge
parameter toformat=csv
- #2844 Renamed output formatter
#-ia
to#-raw
- #3024 Added
format=templatefile
to support individual export formats defined using MediaWiki templates - #3009 Added
#tick
and#num
output formatter to boolean value type - #3011 Added the
$smwgDefaultOutputFormatters
setting to declare default output formatter for a type or property - #1315 Added support for media files to the
feed
printer - #3130 Reworked
list
format - #3162 Added support for
{{DISPLAYTITLE}}
to thefeed
printer - #3136 Added
class
parameter tolist
format
API
- #2696 Added a new
smwbrowse
API module (#2717, #2719, #2721) - #3052 Added
api_version
to ask, askargs API - #3129 Added API
pvalue
browse module - #3381 Added API
psubject
browse module
Misc
- #794 Added
SMW_PARSER_UNSTRIP
to$smwgParserFeatures
enabling to use unstripped content on a text annotation - #2348 Allow showing annotations even if they are improper for datatype "Text"
- #2435 Added filtering of invisible characters (non-printable, shyness etc.) to armor against incorrect annotations
- #2453 Changed the approach on how referenced properties during an article delete are generated to optimize the update dispatcher
- #2471 Added
SMW_CAT_REDIRECT
option to allow finding redirects on categories - #2494 Added
$smwgChangePropagationProtection
and changed the approach on how property modifications are propagated - #2543 Extended
EditPageHelp
to be disabled using a user preference - #2561 Added listing of improper assignments to the property page for an easier visual control
- #2595 Improved the content navigation in special page "SemanticMediaWiki"
- #2600 Added
$smwgCreateProtectionRight
setting to control the creation of new properties and hereby annotations as part of the authority mode - #2615 Added
filter=unapprove
to special page "WantedProperties" - #2632 Added uniqueness violation check on the property page for the property label used
- #2699 Added an input assistance for the condition textbox on special page "Ask"
- #2726 Added entity input assistance for editors and the input field on special page "Search" (#2756)
- #2776 Added tracking of changes to categories (see 2495)
- #2785 Added new styling to property page value list
- #2796 Allows "rendering of HTML" on special page "Ask" when using
|headers=plain
in queries - #2801 Added
--skip-optimize
and--skip-import
tosetupStore.php
(see 2516) - #2803 Filter categories from transcluded content in
format=embedded
- #2815 Added
#nowiki
support for external identifier type - #2820 Added check on declarative property usage
- #2840 Added
$smwgPropertyReservedNameList
to define reserved property names - #2842 Added
$smwgURITypeSchemeList
to restrict valid URI scheme - #2861 Added restriction for a property name that contains a CR, LF
- #2867 Added singular, plural category canonical check
- #2874 Added grouping support for properties to special page "Browse"
- #2875 Changed the theme on special page "Browse" to
smwb-theme-light
- #2878 Added value filter to the property page
- #2883 Added function to special page "SemanticMediaWiki" to find duplicate entities
- #2889 Added method to make subobject sortkeys distinguishable
- #2891 Added flex (responsive) mode to special page "Ask" and special page "Browse" div table
- #2893 Changed special page "Ask" appearance (#2898)
- #2895 Changed display of named subobject caption to appear without an underscore
- #2906 Added flex (responsive) mode to the factbox
- #2907 Added modal help to special page "Ask"
- #2913 Added a job queue watchlist feature and the
$smwgJobQueueWatchlist
setting - #2922 Added
SMW_BROWSE_SHOW_SORTKEY
flag to the$smwgBrowseFeatures
setting - #2930 Added limit to value selection on the property page
- #2932 Added "removeDuplicateEntities.php" script to remove duplicate entities
- #2933 Added
$smwgDefaultLoggerRole
setting to define logging granularity for Semantic MediaWiki - #2973 Set initial stats entry for non-fixed predefined properties
- #3017 Added the
$smwgCompactLinkSupport
setting to compact links produced by special page "Ask" and special page "Browse" - #3019 Added experimental support for the
SMW_NS_RULE
namespace - #3020 Added the keyword (
_keyw
) type - #3029 Added function to keep updated entities in-memory to improve rebuild performance
- #3088 Modernized special page "Page property"
- #3167 Added support for
RemoteRequest
to share and consolidate query results from remote sources - #3284 Added the
--dispose-outdated
flag to the "rebuildData.php" maintenance script - #3289 Added support for the JSON format in the
Allows value list
definition - #3292 Added support for bounded intervals, ranges in
Allows value
for number and quantity types - #3293 Added tanslation page annotation (
_TRANS
) support - #3308 Extended content representation on property and concept pages using tabs
- #3318 Added
smwgPostEditUpdate
to manage post edit event handling for seconday updates via the API interface - #3319 Sets an extra parser key for queries that contain a self-reference to improve the result display after an edit event
- #3339 Added support for uniqueness validation in records/references
- #3416 Added support for
<section>
on property pages to put user-defined content into SMW-defined tabs - #3415 Added "compact view" to hide query on special page "Ask"
- #3429 Changed default submit method of special page "Ask" to POST. Submit method can be modified by setting
$smwgSpecialAskFormSubmitMethod
toSMW_SASK_SUBMIT_GET
,SMW_SASK_SUBMIT_REDIRECT
, or explicitly setting the defaultSMW_SASK_SUBMIT_POST
. - #3431 Moved namespace "Rule" to namespace "smw/schema"
- #3436 When an entity is deleted, check for possible open references and keep the ID in case it has a residual reference by turning it into a simple object instance (setting
smw_rev
andsmw_proptable_hash
to null) - #3440 Changed property pages to show the property usage count in the tab
- #3441 Added flags to maintenance script "rebuildData.php":
--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 known
- #3443 Changed job queue job names from
SMW\
prefix tosmw.
prefix. Example:SMW\UpdateJob
->smw.update
Bug fixes
- #481 Fixed "further results" link with special page "Ask" and templates
- #502 Fixed template with named arguments use in #show
- #839 Fixed and extended special page "Ask" to be more maintainable
- #2001 Fixed issue with
smw_subobject
and the generation of duplicate entities - #2505 Fixed hard-coded default value for
format=csv
- #2586 Fixed class assignments for empty cells in
format=table
- #2621 Fixed sort/order field behaviour in special page "Ask"
- #2652 Fixed handling of multiple checkbox parameter in special page "Ask"
- #2817 Fixed Fix preg_replace ... unmatched parentheses
- #2871 Fixed PHP 7.2
each
use inSearchResultSet
- #2881 Fixed display of display dispatched ID in
DataRebuilder
- #2884 Fixed "Cannot use object of type MappingIterator as array"
- #2896 Fixed display of inverse indicator for translated predefined properties
- #2902 Fixed "LBFactory::getEmptyTransactionTicket ... does not have outer scope"
- #2909 Fixed use of
LBFactory::getEmptyTransactionTicket
- #2915 Fixed connection instantiation
- #2917 Fixed "DataItemException ... Unserialization failed: the string ..."
- #2919 Fixed fetching all entities during a delete
- #2958 Fixed to mark subobject entities as done in
ExportController
- #2963 Fixed recognition of
$wgDBadminuser
in maintenance script "setupStore.php" - #2969 Fixed PHP 7.2 "Warning: count(): Parameter must be an array or an object that implements Countable" issue
- #3000 Fixed fetching namespace aliases
- #3010 Fixed breaking links in an abbreviated text by the
StringValueFormatter
- #3025 Fixed storage of query information during a
preview
activity - #3026 Fixed replacement of
smw_proptable_hash
during setup - #3031 Fixed duplicate entry
smw_prop_stats
exception - #3033 Fixed "The supplied ParserOptions are not safe ... set $forceParse = true" during the upload of files
- #3049 Fixed concept selection
- #3067 Fixed processing of simple links containing
|
during the in-text annotation parsing - #3076 Fixed factbox magic works
- #3082 Fixed use of
ParserOptions::setEditSection
for MW 1.31 - #3107 Fixed recognition of
::=
inLinksProcessor
- #3134 Escape
/
in property names - #3144 Return IDs as integer when matching all entities
- #3336 Fixed issue in special page "Ask" with sort parameter where the first parameter is left empty
- #3322 Fixed issue in
UpdateDispatcherJob
with selecting unrelated entities - #3336 Fixed special page "Ask" to recognize first empty sort parameter as page title, e.g.
|sort=,Has foo
- #3375 Fixed error "Invalid sort: title. Must be one of: relevance". MediaWiki default sort type is only
relevance
. SMW addedtitle
,recent
, andbest
. - #3389 Fixed "Error: 23505 ERROR: duplicate key value violates unique constraint "smwnewpkey"" by setting SQL temporary table
id
field to typeSERIAL
instead ofINTEGERY PRIMARY KEY
- #3393 Fixed MW 1.31+ highlighter issue causing extra inline
<p>
which added newlines to display - #3413 Fixed a performance issue for maintenance script "rebuildData.php" by doing
SELECT
on pages+namespaces rather than just pages.
Breaking changes and deprecations
- #1345 Setting multiple values to the
#set
and#subobject
paser functions using pipe|
is deprecated. Use the+sep
parameter instead. - #2495
Store::getPropertySubjects
andStore::getAllPropertySubjects
will return anIterator
instead of just an array - #2588 Removed special page "SemanticStatistics"
- #2611 Removed the user preference
smw-ask-otheroptions-collapsed-info
- #2640 Removed
$smwgAutocompleteInSpecialAsk
- #2659 Removed deprecated constant
SMWDataItem::TYPE_STRING
(replaced bySMWDataItem::TYPE_BLOB
) - #2696 Soft deprecate the
browsebyproperty
API module, the newsmwbrowse
should be used instead - #2705 Removed usages of deprecated
ResultPrinter::getParameters
- #2724 Added
$smwgUseComparableContentHash
and will be removed with 3.1 to help migrating subobject hash generation - #2730 Replaced
$smwgCacheUsage
settings - #2732 Replaced
$smwgQueryProfiler
settings - #2748 Removed
ContextSource
fromResultPrinter
instances - #2750 Removed
$smwgSparqlDatabaseMaster
and$smwfGetSparqlDatabase
- #2752 Renamed
$smwgSparqlDatabaseConnector
to$smwgSparqlRepositoryConnector
- #2761 Renamed
$smwgDeclarationProperties
- #2768 Changed default setting for
$smwgSparqlRepositoryConnector
- #2788 Resources are now being exported as Internationalized Resource Identifiers (IRI) by default.
- #2790 Removed deprecated entry points for maintenance scripts
- #2802 Consolidated
$smwgParserFeatures
setting - #2806 Consolidated
$smwgCategoryFeatures
setting - #2821 Consolidated
smwgQSortFeatures
setting - #2841 Replaced
$smwgLinksInValues
with theSMW_PARSER_LINV
flag now maintained in$smwgParserFeatures
, PCRE option has been removed - #2880 Migrated special property message keys to new naming schema
- #2899 Removed
$smwgScriptPath
- #2927 Removed
SEMANTIC_EXTENSION_TYPE
flag - #2944 Removed deprecated methods in
SMW\DIProperty
- #2961 Renamed
smwAddToRDFExport
hook - #2995 Updated old namespace in Spanish
- #3164 Removed
SMW_NS_TYPE
ns and$smwgHistoricTypeNamespace
- #3231 Consolidated
$smwgPagingLimit
setting - #3267 Removed
SMWQueryProcessor::getSortKeys
- #3285 Deprecated API module
BrowseBySubject
, usesmwbrowse
instead - #3307 Replaced
smwgCacheType
withsmwgMainCacheType
- #3315 Consolidated
smwgSparqlEndpoint
sparql endpoint setting - #3366 Replaced deprecated alias
SMWDIProperty
withDIProperty
inSMWDataValue
- #3364 Removed long-deprecated static functions
SMWWikiPageValue::makePage
andSMWWikiPageValue::makePageFromTitle
- #3363 Removed deprecated
ResultPrinter::$m_params
. UseResultPrinter::$params
instead. - #3399 Removed several functions deprecated since SMW 1.9 from
SMW\DataValueFactory
- #3401 Removed long-deprecated functions
ResultPrinter::textDisplayParameters
andResultPrinter::exportFormatParameters
- #3403 Removed long-deprecated function
SMWResultArray::getNextObject
- #3405 Removed long-deprecated SMWDIString
- #3406 Removed long-deprecated function
SMWRecordValue::getDV
- #3407 Removed deprecated global function
smwfIsSemanticsProcessed
Other changes
- #2342 Added the display of invalid data value annotations for datatype "Text"
- #2485 Disabled updates by the
QueryDependencyLinksStore
on a 'stashedit' activity - #2491 Added
ChunkedIterator
toDataRebuilder
to avoid OOM situations in case of a large update queue - #2535 Fixed property namespace (
_wpp
) display inWikiPageValue
- #2540 Added type
parser-html
toJSONScript
testing to allow assertions on HTML structure - #2591 Discontinued reading MediaWiki
job
table, use theJobQueue::getQueueSizes
instead - #2609 Added check to special page "Ask" to require JavaScript
- #2631 Disabled purge button while JS resources are still loaded
- #2650 Replaced some styles in special page "Ask"
- #2653 Fixed
broadtable
width with the "MobileFrontend" extension - #2676 Added support for column default values in the
TableBuilder
- #2680 Added
null_count
column toPropertyStatisticsTable
- #2691 Replaced
#info
icon set - #2698 Added persistent caching to the
HierarchyLookup
- #2714 Added
SMW::GetPreferences
hook - #2727 Moved parameter processing from
QueryProcessor
toParamListProcessor
- #2745 Moved
ResultPrinter
base class - #2747 Moved
TableResultPrinter
- #2751 Added
RecursiveTextProcessor
to isolate$wgParser
access inResultPrinter
- #2765 Added
SMW::Setup::AfterInitializationComplete
hook - #2774 Moved
SMWQueryParser
toSMW\Query\Parser
- #2783 Added
JsonSchemaValidator
- #2785 Moved
PropertyPage
andConceptPage
- #2845 Extended use of cached hierarchy instance
- #2847 Introduced different approach to update query dependencies
- #2888 Introduced
Setup::initExtension
to allow an early registration ofSpecialPage_initList
andApiMain::moduleManager
hooks - #2908 Refactored the
ConnectionProvider
- #2928 Moved
SQLStore::fetchSemanticData
toSemanticDataLookup
- #2972 Added
SMW::SQLStore::EntityReferenceCleanUpComplete
hook - #3032 Added the
SMW::LinksUpdate::ApprovedUpdate
andSMW::Parser::ChangeRevision
hook - #3061 Added detection of changes emitted by the
BlockIpComplete
,UnblockUserComplete
, andUserGroupsChanged
hook - #3063 Moved import files to data folder
- #3070 Added
SMW::Admin::TaskHandlerFactory
hook - #3131 Added
CONTENT_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. - #3138 Fixed use of
$wgExtensionDirectory
to find SMW's "extension.json" - #3146 Moved table hash cache handling
- #3160 Moved
FeedExportPrinter
and added integration test - #3260 Moved
SMWSQLStore3::changeSMWPageID
- #3275 Moved
SMWSQLStore3Readers::getPropertySubjects
- #3282 Moved
SMWSQLStore3Readers::getProperties
- #3384 Isolated the handling of "ALTER SEQUENCE ..." for Postgres
- #3432 Moved
SMW\CategoryResultPrinter
toSMW\Query\ResultPrinters\CategoryResultPrinter
Contributors
- 1036 - James Hong Kong
- 147 - translatewiki.net for the translator community
- 120 - Karsten Hoffmeyer
- 50 - Jeroen De Dauw
- 13 - Stephan Gambke
- 7 - Kumioko
- 6 - Iván
- 6 - Zoran Dori
- 4 - James Montalvo
- 4 - Máté Szabó
- 2 - Jaider Andrade Ferreira
- 2 - Josef Konrad
- 2 - TK-999
- 1 - Amir E. Aharoni
- 1 - C. Scott Ananian
- 1 - Kunal Mehta
- 1 - Peter Grassberger
- 1 - Prateek Saxena
- 1 - Stephan
- 1 - Thiemo Kreuz
- 1 - Timo Tijhof
- 1 - Toni Hermoso Pulido
- 1 - ka7
- 1 - matthew-a-thompson
- 1 - salle
- 1 - غلامحسین حق دوست
參見
- Help page on how to migrate