This extension extends the RDF import and export functionality in Semantic MediaWiki by providing import of arbitrary RDF triples (not only OWL ontologies, as before (see about Ontology import, and a SPARQL endpoint that allows write operations.
Technically, RDFIO implements the PHP/MySQL based triple store (and its accompanying SPARQL Endpoint) provided by the ARC2 library. For updating wiki pages with new triples on import/sparql update, the WOM extension is used.
The RDF import stores the original URI of all imported RDF entities (in a special property), which can later be used by the SPARQL endpoint, instead of SMW's internal URIs, which thus allows to expose the imported RDF data "in its original formats", with its original URIs. This allows to use SMW as a collaborative RDF editor, in workflows together with other semantic tools, from which it is then possible to "export, collaboratively edit, and import again", to/from SMW.
This extensions was initially developed as part of a Google Summer of Code 2010 project, and further extended as part of a FOSS OPW 2014 project.
The absolutely simplest way, is to use the RDFIO Vagrant box, which will automatically set up MediaWiki, SemanticMediaWiki and RDFIO in a virtual machine in under 20 minutes.
-
Provided you have the PHP package manager Composer installed (See this page for install instructions), you should now be able to install RDFIO via packagist.org, like so:
cd <wiki_folder> composer require rdfio/rdfio --update-no-dev
-
After installing RDFIO using composer, only one manual step is required, namely to go to the
Special:RDFIOAdmin
page on your wiki, and hit the "setup" button, to initialize the MySQL tables needed by the ARC2 library that RDFIO builds upon.
-
Edit the MediaWiki:Sidebar page and add the following wiki snippet, as an extra menu (I use to place it before just the "* SEARCH" line), which will give you links to the main functionality with RDFIO from the main links in the left sidebar on the wiki:
* Semantic Tools ** Special:RDFIOAdmin|RDFIO Admin ** Special:RDFImport|RDF Import ** Special:SPARQLEndpoint|SPARQL Endpoint ** Special:SPARQLImport|SPARQL Import
-
Create the article "MediaWiki:Smw_uri_blacklist" and make sure it is empty (you might need to add some nonsense content like
{{{<!--empty-->}}}
).
- Access the SPARQL endpoint at http://[url-to-your-wiki]/Special:SPARQLEndpoint
- Access the RDF Import page at http://[url-to-your-wiki]/Special:RDFImport
- Access the SPARQL Import page at http://[url-to-your-wiki]/Special:SPARQLImport
- Optionally, if you want to really see that it works, try adding some semantic data to wiki pages, and then check the database (using phpMyAdmin e.g.) to see if you get some triples in the table named
arc2store_triple
.
These are some configuration options that you might want to adjust to your specific use case. That goes into your LocalSettings.php
file. Find below a template with the default options, which you can start from, add to your LocalSettings.php
file and modify to your liking:
# ---------------------------------------------------------------
# RDFIO Configuration
# ---------------------------------------------------------------
# An associative array with base uris as keys and corresponding
# prefixes as the items. Example:
# array(
# "http://example.org/someOntology#" => "ont1",
# "http://example.org/anotherOntology#" => "ont2"
# );
# $rdfiogBaseURIs = array();
# ---------------------------------------------------------------
# Query by /Output Equivalent URIs SPARQL Endpoint
# (overrides settings in HTML Form)
#
# $rdfiogQueryByEquivURI = false;
# $rdfiogOutputEquivURIs = false;
#
# $rdfiogTitleProperties = array(
# 'http://semantic-mediawiki.org/swivt/1.0#page',
# 'http://www.w3.org/2000/01/rdf-schema#label',
# 'http://purl.org/dc/elements/1.1/title',
# 'http://www.w3.org/2004/02/skos/core#preferredLabel',
# 'http://xmlns.com/foaf/0.1/name',
# 'http://www.nmrshiftdb.org/onto#spectrumId'
# );
# ---------------------------------------------------------------
# Allow edit operations via SPARQL from remote services
#
# $rdfiogAllowRemoteEdit = false;
# ---------------------------------------------------------------
- PHP 5.3 - latest (SMW might have more strict deps)
- MySQL (MariaDB unfortunatly not supported yet. See #48)
- MediaWiki - Tested with 1.27 - 1.29
- Semantic MediaWiki Extension - Tested with 2.4 - 3.0-alpha
- The ARC2 RDF library for PHP - Latest version on github should work
- RDFIO does not yet support all the features of SMW's vocabulary import.
Please reports bugs and feature requests in the issue tracker here on Github.