mediawiki / semantic-data-import
Installs: 198
Dependents: 0
Suggesters: 0
Security: 0
Stars: 3
Watchers: 2
Forks: 1
Open Issues: 2
Language:JavaScript
Type:mediawiki-extension
Requires
- php: >=5.6.0
- mediawiki/semantic-media-wiki: ~2.5
This package is auto-updated.
Last update: 2024-12-16 08:14:53 UTC
README
Extension for importing CSV-like structured data into MediaWiki pages using Semantic MediaWiki.
It basically turns CSV rows into Semantic Subobjects.
Basic Usage
Content can be saved straight into wikitext pages (only option for older wikis) or also as pure JSON pages (only via SpecialPage interface Special:SDImport
).
Namespace configuration
At the time of writting, mappings of CSV columns against Semantic MediaWiki properties can only be done by configuring (custom or not) namespaces in LocalSettings.php
.
# Example NS definition define("NS_SDImport", 2000); $GLOBALS["wgSDImportDataPage"][NS_SDImport] = array(); $GLOBALS["wgSDImportDataPage"][NS_SDImport]["edit"] = false; $GLOBALS["wgSDImportDataPage"][NS_SDImport]["separator"] = "\t"; $GLOBALS["wgSDImportDataPage"][NS_SDImport]["delimiter"] = '"'; $GLOBALS["wgSDImportDataPage"][NS_SDImport]["rowobject"] = "SDImport"; $GLOBALS["wgSDImportDataPage"][NS_SDImport]["rowfields"] = array("Page1", "Page2"); $GLOBALS["wgSDImportDataPage"][NS_SDImport]["typefields"] = array("Page", "Page"); $GLOBALS["wgSDImportDataPage"][NS_SDImport]["ref"] = array("ref" => "{{PAGENAME}}"); $GLOBALS["wgSDImportDataPage"][NS_SDImport]["prefields"] = array( "", "" ); $GLOBALS["wgSDImportDataPage"][NS_SDImport]["postfields"] = array( "", "" ); $GLOBALS["wgSDImportDataPage"][NS_SDImport]["json"] = true; # Whether content is stored directly in JSON $GLOBALS["wgSDImportDataPage"][NS_SDImport]["single"] = false; #Whether to store straight properties-values, but not Subobject (rowobject is ignored) $GLOBALS["wgSDImportDataPage"][NS_SDImport]["form"] = false; #Whether to show a form instead of a spreadsheet (as far as single is true) $wgExtraNamespaces[NS_SDImport] = "SDImport"; $GLOBALS['smwgNamespacesWithSemanticLinks'][NS_SDImport] = true;
SDImport interface
There is a preliminary SDImport Special Page (Special:SDImport
) that simplifies uploading content (especially for JSON pages)
Properties need to be defined in namespace configuration.
At the time of writing:
- First column: Page name (in selected namespace)
- Rest of the columns, according to rowfields values...
JSON schema
Keys defined in JSON schema have precedence in front of what is defined in namespace configuration.
{ "meta": { "app": "SDI", "version": 0.1, "rowobject": "Entry", "rowfields": ["Relation1", "Relation2"] }, "data": [ [ "2", "4" ], [ "2", "5" ] ] }
Useful extensions
If we enable $GLOBALS["wgSDImportDataPage"][NS_SDImport]["edit"] = true;
in LocalSettings.php we allow content to be modified by a spreadsheet-like interface.
However we might be interested to edit in another way. For this we recommend to install 2 extensions:
$wgDefaultUserOptions['usebetatoolbar'] = 1; // user option provided by WikiEditor extension