Manual:Managing data in MediaWiki
MediaWiki was designed to manage mostly free-form text and images. A limited amount of structure is available: namespaces , subpages and categories help to group similar pages together, while features like infoboxes and galleries help to structure the contents within each page.
However, MediaWiki by itself does not truly provide ways to manage structured data: data that can be queried, filtered, and in some cases displayed with visualizations including tables, charts, maps and calendars. For that, a number of dedicated extensions exist.
The following table describes the extensions that can store the data edited by users in a MediaWiki database, from where it can then be queried.
This is not a list of all structured data functionality; the "See also" section lists other extensions and features that can be used for storing or displaying structured data.
Feature | Semantic MediaWiki |
Wikibase |
Cargo |
VisualData |
---|---|---|---|---|
Main usecase | Managing data within a MediaWiki installation, based on Semantic Web standards. | Powering Wikidata and other editable graph databases. | Managing data within a MediaWiki installation. | Managing data within a MediaWiki installation based on JSON-schema. |
Approach | Data (properties) are annotated within regular wikitext or by templates. With the datatype "reference", properties can be used to describe items using statements.[1] | Properties are defined and used to describe Items using statements. | Data is stored in database tables, with each table corresponding to a template. | Data are stored in a dedicated slot with JSON content model |
Available since | 2005 | 2012 | 2015 | 2022 (formerly known as PageProperties ) |
Active installations | 1000s[2] | 100s[3][4][5] | 100s[6] | n/a (new extension or unknown) |
Community | 190+ developers[7] | 172+ developers[8] | 63+ developers[9] | (main developer) |
Storage | MediaWiki database, Elasticsearch, 5 different SPARQL stores[10] | MediaWiki database, Elasticsearch, SPARQL store (Blazegraph for wikidata.org) | MediaWiki database (or a separate database)[11] | MediaWiki database |
Property definition | By typing wikitext. Properties can be invented freely. They will be of datatype page by default and can be defined later. Datatypes can be changed any time. | Properties have to be defined before usage and can not be changed easily.[12] | Instead of using properties, data tables are defined with a predetermined (but reconfigurable) set of fields per table. | Properties are defined through one or more json-schema defined through a SchemaBuilder |
Value declaration | Inline ([[MyProperty::MyValue]] ) or with templates. Form-based data entry with Page Forms .
|
Wikibase default form-like input interface. | With parser functions in templates. Form-based data entry with Page Forms . | Inline or popup OOUI forms automatically generated from JSON-schemas |
Predefined data types | 18[13] | 17[14][15] | 18 | 4 (basic JSON-schema types) + 15 string formats |
Property management | type definitions, constraint schemas, ontology import | custom, or import of Wikidata ontology | Instead of using properties, data tables are defined with a predetermined (but reconfigurable) set of fields per table. | through a graphical interface (dedicated SchemaBuilder ) |
Page names and internal linking | Pages have normal names and can be linked to with their names. | Page names are stored with their Q-numbers (displaying labels in available languages). Internal linking must be done to the Q-number; you cannot link to a label. | Pages have normal names and can be linked to with their names. | Schemas are stored in a dedicated namespace and JSON-data in a dedicated slot associated to wiki articles. JSON-data can be accessed through an extension of the wiki interface |
Inline queries | yes, with parser functions | no (external SPARQL queries); planned supported via third-party extension LinkedWiki |
yes, with parser functions | yes, with parser functions |
External querying | yes, with either an API or SPARQL querying (available through special extensions such as RDFIO and LinkedWiki) | yes, with SPARQL Query service | yes, with an API | yes, with an API[16] |
Result formats[17] | ~ 75[18] | no native result display; data may be visualized via:
|
~ 25[19] | 8 (Json, Table, Datatable, Template, Carousel, raw, Lua, json-raw) [20] |
Development | GitHub | Gerrit | Gerrit | Gerrit |
Complementary extensions | ~ 40[21], e.g. Semantic Result Formats , Semantic Bundle , Semantic Scribunto | ~12[22], e.g. Wikibase Client , WikibaseLexeme , Query Service | 2 (Page Forms, Page Schemas). Cargo provides some or all of the functionality of Semantic MediaWiki, Semantic Result Formats, Maps, Semantic Drilldown, Semantic Compound Queries, Semantic Internal Objects and Semantic Scribunto.[23] | Extension:ContactManager |
Alternative comparisons
- Cargo and Semantic MediaWiki
- Semantic MediaWiki vs Wikibase vs Cargo by Professional.Wiki, updated February 2023 or later
References
- ↑ https://www.semantic-mediawiki.org/wiki/Help:Reference_and_provenance_data
- ↑ https://wikiapiary.com/wiki/Extension:Semantic_MediaWiki
- ↑ https://wikiapiary.com/wiki/Extension:WikibaseRepository
- ↑ https://wikibase.world
- ↑ https://addshore.com/2024/10/visualizing-wikibase-connections-using-wikibase-world/
- ↑ https://wikiapiary.com/wiki/Extension:Cargo
- ↑ https://www.openhub.net/p/smw
- ↑ https://github.com/wikimedia/mediawiki-extensions-Wikibase
- ↑ https://github.com/wikimedia/mediawiki-extensions-Cargo
- ↑ https://www.semantic-mediawiki.org/wiki/Help:SPARQLStore
- ↑ Extension:Cargo/Download and installation
- ↑ d:Help:Data type#Changing datatype
- ↑ https://www.semantic-mediawiki.org/wiki/Help:List_of_datatypes
- ↑ d:Special:ListDatatypes
- ↑ Some datatypes are defined by other extension: Math and Score both define one datatype, JsonConfig defines two, WikibaseLexeme defines three, and Wikibase defines ten.
- ↑ Extension:VisualData/API
- ↑ "Result formats" mean the ability of the wiki to display data (results of an inline query) in various formats, e.g. tables, calendars, maps, timelines, etc.
- ↑ https://www.semantic-mediawiki.org/wiki/Help:Result_formats
- ↑ Extension:Cargo/Display formats
- ↑ Extension:VisualData/Result_formats
- ↑ Category:Semantic MediaWiki extensions
- ↑ Category:Wikibase extensions
- ↑ Extension:Cargo/Cargo and Semantic MediaWiki.
See also
- Multi-Content Revisions - Ability to manage different independent content objects on the same wiki page
- WikiDB – Provides database features, somewhat similar to semantic properties
- JsonConfig – store JSON (including tabular and map data) in wiki pages, and allow accessing them via Lua; no query support
- External Data - access data from external URL, local file, and SQL or MongoDB database
- Structured data across Wikimedia – 2021-2023 project for improving structured data support in MediaWiki
- Category:Data management extensions