Extension:LinkedWiki/Sparql parser
The SPARQL parser is able to build a visualization in your Wiki with results of a SPARQL query.
You can select two types of visualization: with Sgvizler2 (a JavaScript lib) with a lot of charts/tables or via a HTML table where you can customize each columns with templates.
If your data is only accessible with credentials, you must use the HTML table generated by PHP to preserve your credentials. Moreover, by default, the HTML table of SPARQL results is saved in the wiki cache. In this manner, your SPARQL service is also less solicited (Details).
If your data is public, you can use the two methods.
Usage
editWith the default endpoint
edit- Querying without the parameter "endpoint" is possible but the variable $wgLinkedWikiConfigDefaultEndpoint has to be in the localsettings (see installation). By default the extension uses the endpoint of Wikidata.
{{#sparql:select * where { ?x ?y ?z . } LIMIT 5}}
- Querying the properties of the current page :
{{#sparql:select * where { <PAGEIRI> ?y ?z . } }}
With an endpoint defined in the configuration
edit{{#sparql:select * where { ?x ?y ?z . } LIMIT 5|config=https://query.wikidata.org}}
With a specific endpoint
editPrint a simple Array with the following results:
- Querying of the default endpoint and all the graphs of this endpoint.
{{#sparql:select * where { ?x ?y ?z . } LIMIT 5 |endpoint=https://query.wikidata.org/sparql}}
Parameters of Sgvizler2 charts and tables
editSgvizler2 is a javascript wrapper for easy visualisation of SPARQL result sets (and a jQuery plugin).
You can find the list of available visualizations in the "special:SPARQL editor" page and in the doc of Sgvizler.
Parameter: chart
edit- Select the visualization :
{{#sparql:select * where { ?x ?y ?z . } LIMIT 5 | chart=bordercloud.visualization.DataTable}}
Parameter: options
edit- Each visualization has its own options, the options parameter contains the visualization's options and
!
is their separator:
{{#sparql: select * where { ?x ?y ?z . } LIMIT 5 | chart=bordercloud.visualization.DataTable | options=width=100%!height=500px }}
Parameters to customize the HTML table
editParameter: preview
edit- The "preview" option allows you to limit the number of lines displayed in the wiki page without limiting the number of lines in the CSV export.
{{#sparql:select * where { ?x ?y ?z . } LIMIT 15 | preview = 5 }}
Parameter: class
edit- "class" option allows to specify the css class to be used on the generated tables (by default is 'wikitable sortable').
{{#sparql:select * where { ?x ?y ?z . } LIMIT 5 | endpoint = https://query.wikidata.org/sparql | class = table }}
Parameter: headers
edit- Change the headers.
{{#sparql:select * where { ?x ?y ?z . } LIMIT 5 | endpoint = https://query.wikidata.org/sparql |headers=name1,name2,name3}}
Parameter: classHeaders
edit- You can hide or change the style of your headers. Here, the first column has no header and is unsortable.
{{#sparql:select * where { ?x ?y ?z . } LIMIT 5 | endpoint = https://query.wikidata.org/sparql |headers= ,name2,name3 |classHeaders= class="unsortable",, }}
Example:
Parameter: templates
editWith an example of template like Template:Test1
<includeonly>{{{x}}}, {{{y}}} and {{{z}}} </includeonly>
- You can use this template in the following way:
{{#sparql:select * where { ?x ?y ?z . } LIMIT 5 | endpoint = https://query.wikidata.org/sparql |headers=Name1 |templates= Test1 }}
- And you can use a different template for each column:
{{#sparql:select * where { ?x ?y ?z . } LIMIT 5 | endpoint = https://query.wikidata.org/sparql |headers=Name1,Name2 |templates= Test1,Test1 }}
Parameter: templatesInSingleCell (3.7.0)
editYou can use several templates in one single column.
{{#sparql:select * where { ?x ?y ?z . } LIMIT 5 | endpoint = https://query.wikidata.org/sparql |headers=Name1 |templatesInSingleCell= Test1,Test1 }}
Parameter: userparam (3.7.0)
editYou can add your parameter "userparam" with your data at all your templates.
{{#sparql:select * where { ?x ?y ?z . } LIMIT 5 | endpoint = https://query.wikidata.org/sparql |headers=Name1 |templates= Test1,Test1 | userparam = mydata }}
Parameter: footer
edit- you can remove the footer of array:
{{#sparql:select * where { ?x ?y ?z . } LIMIT 5 | endpoint = https://query.wikidata.org/sparql |footer=NO }}
Parameter: cache
edit- Your data may be very volatile and you need accordingly to refresh the result of this query each time. To do so, you can disable the cache with the cache parameter, as follows:
{{#sparql:select * where { ?x ?y ?z . } LIMIT 5 | endpoint = https://query.wikidata.org/sparql |cache=no }}
Parameter: templateBare
edit- You can remove the footer and the header. With the value "tableCell", you can catch only the cells.
{{#sparql:select * where { ?x ?y ?z . } LIMIT 5 | endpoint = https://query.wikidata.org/sparql |templateBare=tableCell }}
Parameter: default
edit- The "default" option is displayed instead of an empty table.
{{#sparql:select * where { ?x ?y <http://example.com/IMPOSSIBLE> . } LIMIT 5 | endpoint = https://query.wikidata.org/sparql | default= Sorry, no results. }}
Parameter: debug
edit- Well, you can add several parameters at the same time but doing so, the wiki text can be very hard to debug. This parameter gives you the result of this parser before the last parsing of mediawiki:
{{#sparql:select * where { ?x ?y ?z . } LIMIT 5 | endpoint = https://query.wikidata.org/sparql |debug=YES }}
Parameter: log
editYou can control the log levels about possible SPARQL errors. If there is an SPARQL error :
- level 0 : any messages
- level 1 : a short message
- level 2 : a short message and details, if available.
{{#sparql:select * where { ?x ?y ?z . } LIMIT 5 | endpoint = https://query.wikidata.org/sparql | log=2 }}
Parameter: table (3.7.0)
editThe value of parameter table is 'html' by default (in extension.json) but you can replace it by 'wiki'.
This parameter controls the method of building a table by the parser in HTML or in WikiText.
BETA feature: grid
editYou can replace the table in HTML by your code.
Parameter: gridIntro and gridOutro (3.7.0)
editAdd your code via the parameters: intro and outro.
Parameter: gridIntroTemplate and gridOutroTemplate (3.7.0)
editAdd your code via templates via the parameters: gridIntroTemplate and gridOutroTemplate.
Parameter: gridRowTemplate (3.7.0)
editAdd your code via one template for all rows via the parameter gridRowTemplate.