Extension:LinkedWiki

INSTALLATION OBSOLETE: In 2 days, this page will be up to date.

The LinkedWiki extension lets you reuse Linked Data in your wiki. You can get data from Wikidata or another source directly with a SPARQL query. This extension also provides Lua functions for building your module so that you can write your data in your RDF database.

Build SPARQL queries
The LinkedWiki extension gives two SPARQL editors. Flint Editor works with SPARQL endpoint 1.1 or 1.0 but sometimes, it doesn't work for example with Wikidata.

We develop a new SPARQL editor where you can select in one click an endpoint already defined in your configuration and read (and write, if you want) via SPARQL directly in this editor.

See details : Test your queries in your wiki

Visualize SPARQL results
The extension gives parser functions #SPARQL in order to reuse your data or the Linked Data in your wiki.

You can use a specific SPARQL service or reuse an SPARQL service already defined in the configuration.

It's possible to customize the result of your SPARQL query via templates.

We are developing (from scratch) several tools to insert nice visualization of your data in your wiki with DataTable, PivotJs, maps/charts of Google and OpenStreetMap...

See details :
 * Visualization
 * #sparql reuses your data in your wiki with templates
 * (deprecated) #wsparql reuses your data in your wiki with widgets

Write data
The tag  allows to write directly in RDF/Turtle on any page of wiki.

Share data
IRIs (or URIs) of pages with the tag  are Cool IRIs. So a machine see only the RDF content and a human can see the RDF content with a description in natural language in the same page.

Write data of main pages in a data namespace
The LinkedWiki extension creates namespaces Data and UserData. Users naviguate in these namespaces via a data tab on all main/users pages.

Only users in group Data can change these namespaces. A user or a bot can use these namespaces to write a RDF/Turtle content in relation with a main page.

See details

Push private data in a open knowledge base
For example in a private wiki, you can enable the push tab in order to push easily in a public wiki a private page with its subpages, data, files, modules, etc.

Configuration of SPARQL services
Often, the configuration of SPARQL services is not trivial and very different in function of RDF databases. In the configuration of the extension, you can declare correctly public SPARQL services and also your private SPARQL services.

The extension supports the SPARQL services with credentials where the users of your Wiki can reuse your private data without seeing your credentials.

See details : Configuration of the LinkedWiki extension





Module : Lua class to read/write your data
Generally in Wiki for users, a page is a object where they want write/read a property. Unfortunately, your RDF schema can be complex and the contributor are rarely experts in RDF or in SPARQL.

The extension can simplify the job of contributors and developers without imposing a definitive RDF schema at your data.

With the Lua class of LinkedWiki extension, you can build your own module (for example an infobox) where you are able to write or read a property of your database.

If you want to change your RDF schema, you change simply your modules and refresh your database and all pages of your wiki via the special page "Refresh database".

See details : Use LinkedWiki in your module



Write contraints and generate a SHACL report
The tag  supports the attribute   to precise how checking your data.

For the moment, LinkedWiki support only SHACL. If RDFUnit is installed, the special page "RDF test cases" generate the SHACL report of your database with the rules wrote in the wiki.

See details

Download instructions
You can download the last version with this link.

Installation of LinkedWiki
To install this extension :
 * 1) copy the extension in the folder   of your wiki
 * 2) in the folder, execute   and   (or  ). If you don't have install composer or yarn, see in this page : "How install composer and yarn ?".
 * 3) add the following line to :

You can now use the Special:SPARQLEditor of your wiki to build a query with its chart/table and copy this chart/table in any pages of your wiki. On the service LinkedWiki.com, you can find examples of queries with their wiki text.

By default, a query without endpoint or configuration is resolved by Wikidata.

Installation of features

 * If you want to make an infobox with LinkedWiki, you need to install Extension:Scribunto,Extension:Capiunto and read the quick start with Lua.


 * If you want to use a map, you need to insert in the file keys.json the key of Google Map and the token access of OpenStreepMap.

Add a data tab for main pages and user pages
LinkedWiki allows the tag  to write with RDF/Turtle directly in a page (their ontology or their SHACL rules, for example) but people prefer to separate natural language from RDF/Turtle in their wiki.

In your localsettings, the following line inserts a new Data tab on all main pages and user pages. After, you can give the rights to users to see or not this tab and to change or not the pages in the Data namespace.

Add a push tab
When you have finished working in private (ie, in a private wiki), you may want to push your pages (with their modules, templates, files and data pages) in another (public) wiki. This installation inserts has discrete push tab on your pages. On the Special: BotPasswords page of the target wiki, you need only to create the login and password for the locasettings of your source wiki.

You can add push targets (wikis you can push content to) by adding elements to the  array. The array keys should be the names of your wikis and the values should point to the wiki root, without tailing slash. You can find your wiki root by clicking the history tab on a page, finding the '/index.php' in it, and taking everything that's left of that. You create the logins and passwords via the Special: BotPasswords of targets.

Example:

Details:

Compatibility: Mediawiki 1.33.1+

Configuration
Wikidata is the endpoint by default of your wiki (read only).

If you add a new endpoint and change the default endpoint of your wiki, you need to add parameters in your localsettings.


 * See details : Configuration
 * Examples of other endpoints : List of configurations

Errors about CURL
If, after the installation, you have errors about CURL, probably you need to install the lib php7X-curl in your server. Example with PHP 7.3 with ubuntu, debian or fedora: or

Questions ?

 * FAQ and problems

How install composer and yarn ?
For debian or fedora: or

How to propose a new feature ?

 * You can propose a new task : Propose a new feature

How to declare a problem ?

 * You can declare a problem here : Declare a problem

=See also=


 * SPARQL examples: LinkedWiki.com, University of Paris-Saclay and Wikidata
 * SPARQL in Wikipedia
 * Tutorial SPARQL in french (Wikiversity)