Semantic MediaWiki and related extensions
README

The objective of the Importer is to provide a simple mechanism for deploying data structures and support information in a loose yet structured form during the installation (setup) process.

Import definitions

$smwgImportFileDirs defines import directories from where content can be imported.

Import definitions are defined using a JSON format which provides the structural means and is considered easily extendable by end-users.

The import files are sorted and therefore sequentially processed based on the file name. In case where content relies on other content an appropriate naming convention should be followed to ensure required definitions are imported in the expected order.

Semantic MediaWiki deploys preselected import content which is defined in the "smw.vocab.json" file and includes:

It should be noted that smw.vocab.json is not expected to be the authority source of content for a wiki and is the reason why the option replaceable is set to false so that pre-existing content that matches the same name and namespace is not replaced by the importer.

Custom definitions

It is possible to define one or more custom import definitions using $smwgImportFileDirs with a custom location (directory) from where import definitions can be loaded.

$GLOBALS['smwgImportFileDirs']['custom-vocab'] = __DIR__ . '/custom';

Fields

JSON schema and fields:

The $smwgImportReqVersion stipulates the required version for an import where only definitions that match that version are permitted to be imported.

Examples

XML import

It is possible to use MediaWiki's XML format as import source when linked from the importFrom field (any non MediaWiki XML format will be ignored).

The location for the mentioned custom.xml is relative to the selected $smwgImportFileDirs directory.

{
    "description": "Custom import",
    "import": [
        {
            "description" : "Import of custom.xml that contains ...",
            "contents": {
                "importFrom": "/xml/custom.xml"
            }
        }
    ],
    "meta": {
        "version": "1"
    }
}

Text import

{
    "description": "Template import",
    "import": [
        {
            "description" : "Template to ...",
            "page": "Template_1",
            "namespace": "NS_TEMPLATE",
            "contents": "<includeonly>{{{1}}}, {{{2}}}</includeonly>",
            "options": {
                "replaceable": false
            }
        },
        {
            "description" : "Template with ...",
            "page": "Template_2",
            "namespace": "NS_TEMPLATE",
            "contents": {
                "importFrom": "/templates/template-1.tmpl"
            },
            "options": {
                "replaceable": false
            }
        }
    ],
    "meta": {
        "version": "1"
    }
}

Import process

During the setup process, the Installer will automatically run and inform about the process which will output something similar to:

Import of smw.vocab.json ...
   ... replacing MediaWiki:Smw import foaf contents ...
   ... skipping Property:Foaf:knows, already exists ...
Import processing completed.

If not otherwise specified, content (a.k.a. pages) that pre-exists are going to be skipped by default.

Technical notes

SMW::SQLStore::Installer::AfterCreateTablesComplete is the event to import content during the setup


About | General disclaimer | Privacy policy