@comunica/query-sparql-file-reasoning
v0.2.0
Published
A SPARQL query engine with reasoning capabilities for querying over decentralized RDF knowledge graphs on the Web
Downloads
12
Readme
Comunica SPARQL File Reasoning Init Actor
Comunica is a SPARQL query engine for JavaScript that - this build of the engine, allows data to be enriched with reasoning results.
This module is part of the Comunica framework.
Install
$ yarn add @comunica/query-sparql-file-reasoning
or
$ npm install -g @comunica/query-sparql-file-reasoning
Install a prerelease
Since this package is still in testing phase, you may want to install a prerelease of this package, which you can do by appending @next
to the package name during installation.
$ yarn add @comunica/query-sparql-file-reasoning@next
or
$ npm install -g @comunica/query-sparql-file-reasoning@next
Usage
To query over a profile and the foaf ontology:
$ comunica-sparql-file-reasoning https://www.rubensworks.net/ \
http://xmlns.com/foaf/spec/index.rdf \
-q 'SELECT * WHERE { <https://www.rubensworks.net/#me> a ?o }' \
-r rdfs
By default, RDFS reasoning is applied if no rules are specified. Alternatively you can specify owl2rl
or provide a dereferencable link to another rule source.
Show the help with all options:
$ comunica-sparql-file-reasoning --help
Just like Comunica SPARQL,
a dynamic variant (comunica-dynamic-sparql-file-reasoning
) also exists.
Read more about querying from the command line.
Usage within application
This engine can be used in JavaScript/TypeScript applications as follows:
const QueryEngine = require('@comunica/query-sparql-link-traversal').QueryEngine;
const myEngine = new QueryEngine();
import { KeysRdfDereferenceConstantHylar } from '@comunica/reasoning-context-entries';
const bindingsStream = await myEngine.queryBindings(`
SELECT * WHERE { <https://www.rubensworks.net/#me> a ?o }`, {
sources: [
'https://www.rubensworks.net/',
'http://xmlns.com/foaf/spec/index.rdf'
],
rules: KeysRdfDereferenceConstantHylar.rdfs,
});
// Consume results as a stream (best performance)
bindingsStream.on('data', (binding) => {
console.log(binding.toString()); // Quick way to print bindings for testing
console.log(binding.has('o')); // Will be true
// Obtaining values
console.log(binding.get('o').value);
});
bindingsStream.on('end', () => {
// The data-listener will not be called anymore once we get here.
});
bindingsStream.on('error', (error) => {
console.error(error);
});
// Consume results as an array (easier)
const bindings = await bindingsStream.toArray();
console.log(bindings[0].get('o').value);
console.log(bindings[0].get('o').termType);
Read more about querying an application.
Usage as a SPARQL endpoint
Start a webservice exposing https://www.rubensworks.net/ via the SPARQL protocol, i.e., a SPARQL endpoint.
$ comunica-sparql-file-reasoning-http https://www.rubensworks.net/ http://xmlns.com/foaf/spec/index.rdf
Show the help with all options:
$ comunica-sparql-file-reasoning --help
The SPARQL endpoint can only be started dynamically.
An alternative config file can be passed via the COMUNICA_CONFIG
environment variable.
Use bin/http.js
when running in the Comunica monorepo development environment.