- Notifications
You must be signed in to change notification settings - Fork5
Comunica query engine support for the LDflex language
License
NotificationsYou must be signed in to change notification settings
LDflex/LDflex-Comunica
Folders and files
Name | Name | Last commit message | Last commit date | |
---|---|---|---|---|
Repository files navigation
This library lets you usetheComunica query enginewith theLDflex language.
npm install ldflex @ldflex/comunica
const{ PathFactory}=require('ldflex');const{default:ComunicaEngine}=require('@ldflex/comunica');const{ namedNode}=require('@rdfjs/data-model');// The JSON-LD context for resolving propertiesconstcontext={"@context":{"@vocab":"http://xmlns.com/foaf/0.1/","friends":"knows",}};// The query engine and its sourceconstqueryEngine=newComunicaEngine('https://ruben.verborgh.org/profile/');// The object that can create new pathsconstpaths=newPathFactory({ context, queryEngine});asyncfunctionshowPerson(person){console.log(`This person is${awaitperson.name}`);console.log(`${awaitperson.givenName} is friends with:`);forawait(constnameofperson.friends.givenName)console.log(`-${name}`);}construben=paths.create({subject:namedNode('https://ruben.verborgh.org/profile/#me'),});showPerson(ruben);
This example uses the comunica engine for local file queries.
const{ PathFactory}=require('ldflex');const{default:ComunicaEngine}=require('@ldflex/comunica');const{ namedNode}=require('@rdfjs/data-model');const{newEngine:localFileEngine}=require('@comunica/actor-init-sparql-file');// The JSON-LD context for resolving propertiesconstcontext={"@context":{"@vocab":"http://xmlns.com/foaf/0.1/","friends":"knows",}};// The query engine and its sourceconstqueryEngine=newComunicaEngine(path.join(__dirname,'ruben-verborgh.ttl'),{engine:localFileEngine()});// The object that can create new pathsconstpaths=newPathFactory({ context, queryEngine});asyncfunctionshowPerson(person){console.log(`This person is${awaitperson.name}`);console.log(`${awaitperson.givenName} is friends with:`);forawait(constnameofperson.friends.givenName)console.log(`-${name}`);}construben=paths.create({subject:namedNode('https://ruben.verborgh.org/profile/#me'),});showPerson(ruben);
Addcomunica context options which are passed to the Comunica Engine.
const{ PathFactory}=require('ldflex');const{default:ComunicaEngine}=require('@ldflex/comunica');const{ namedNode}=require('@rdfjs/data-model');// The JSON-LD context for resolving propertiesconstcontext={"@context":{"@vocab":"http://xmlns.com/foaf/0.1/","friends":"knows",}};// The query engine and its sourceconstqueryEngine=newComunicaEngine('https://ruben.verborgh.org/profile/',{options:{/* add options here */}},);// The object that can create new pathsconstpaths=newPathFactory({ context, queryEngine});asyncfunctionshowPerson(person){console.log(`This person is${awaitperson.name}`);console.log(`${awaitperson.givenName} is friends with:`);forawait(constnameofperson.friends.givenName)console.log(`-${name}`);}construben=paths.create({subject:namedNode('https://ruben.verborgh.org/profile/#me'),});showPerson(ruben);
By default the source given is also used as the destination for updates (if multiple sources are given, then the first one is chosen).
Optionally you can specify your own destination for updates as follows
// The query engine and its sourceconstqueryEngine=newComunicaEngine('https://ruben.verborgh.org/profile/',{destination:'https://example.org/destination'},);
©2018–presentRuben Verborgh, Joachim Van Herwegen,Jesse Wright.MIT License.
About
Comunica query engine support for the LDflex language
Topics
Resources
License
Stars
Watchers
Forks
Packages0
No packages published