Ghent University – imec – IDLab, Belgium
Comunica is a meta-query engine created to handle this complexity
Reusable experiments
Bindings-Restricted Triple Pattern Fragments (Hartig et al.)
Opportunistic Linked Data Querying through Approximate Membership Metadata (Vander Sande et al.)
Substring Filtering for Low-Cost Linked Data Interfaces (Van Herwegen et al.)
Different branches/clients to support these features
Logic is separated into different actors
Each actor independently performs a specific task.
Actors are grouped in task-specific buses.
Mediators are responsible for selecting an actor to solve a certain task.
Components.js: a semantic dependency injection framework.
Configuration files declare and parameterize actors, mediators and buses.
Links all the building blocks together, without having to do this in the code!
Through Comunica is possible to query local and remote RDF graphs using query languages of different levels of expressivity:
After installing the @comunica/actor-init-sparql
package
Outputs the resulting bindings
comunica-sparql <datasource-url(s)> <query>
comunica-sparql http://fragments.dbpedia.org/2015-10/en \ "SELECT * WHERE { ?s ?p ?o } LIMIT 100"
[ {"?s":"ex:test","?p":"dbpprop:date","?o":"\"Summer 1998\""}, {"?s":"ex:test","?p":"dbpprop:first","?o":"\"Raymond\""}, {"?s":"ex:test","?p":"dbpprop:format","?o":"\"DjVu\""}, ...
After installing the @comunica/actor-init-sparql
package
Provides a functioning SPARQL endpoint
comunica-sparql-http <context>
comunica-sparql-http \ '{ "sources": [{ "type": "auto", "value" : \ "http://fragments.dbpedia.org/2015/en" }]}'
Running Comunica engine in the browser
Host custom engines yourself: https://github.com/comunica/jQuery-Widget.js/
Goal: Cover the different ways Comunica can be used to query data
This tutorial will introduce both command-line tools and code-based querying
No advanced JavaScript knowledge required, we start from scratch
Each step is explained in detail on the GitHub wiki:
https://github.com/comunica/Tutorial-Comunica-Querying-Data