graphy

Query linked-data graphs by abstracting away traditional JSON-LD interaction
Install
$ npm install --save graphy
Usage
Take the following graph:
@prefix ns: <vocab://ns/> .
@prefix color: <vocab://color/> .
@prefix plant: <vocab://plant/> .
@prefix xsd: <http://www.w3.org/2001/XMLSchema#> .
ns:Banana
a ns:Fruit ;
ns:shape "curved"^^ns:Liberty ;
ns:tastes "good"^^xsd:string ;
ns:data 25 ;
ns:class ns:Berry ;
ns:appears color:Yellow ;
plant:blossoms ns:YearRound ;
ns:alias ns:Cavendish ;
ns:alias ns:Naner ;
ns:alias ns:Bananarama ;
ns:stages (
ns:FindSpace
plant:Seed
plant:Grow
plant:Harvest
) .
Here, example.json
is a JSON-LD file generated from the graph above:
var graphy = require('graphy');
var json_ld = require('./example.json');
var q_graph = graphy(json_ld);
q_graph.network('ns:', function(k_banana) {
k_banana.$id;
k_banana['@id'];
k_banana.$type;
k_banana['@type'];
k_banana.shape();
k_banana.tastes();
k_banana.shape.$type;
k_banana.tastes.$type;
k_banana.shape['@type'];
k_banana.tastes['@type'];
k_banana.tastes.$('xsd:').$type;
k_banana.class();
k_banana.class.$id;
k_banana.class['@id'];
k_banana.class['@type'];
k_banana.appears();
k_banana.appears.$id;
k_banana.appears['@id'];
k_banana.appears['@type'];
k_banana.appears.$('color:').$id;
k_banana.$('plant:').blossoms();
k_banana.$('plant:').blossoms.$id;
k_banana.$('plant:').blossoms.$('ns:').$id;
k_banana.alias;
var a_items = [];
k_banana('alias', function(k_alias) {
a_items.push(k_alias());
});
a_items;
let a_stages = [];
k_banana.stages(function(k_stage) {
var s_stage_name = k_stage.$id || k_stage.$('plant:').$id;
a_stages.push(s_stage_name);
});
a_stages;
});
License
ISC © Blake Regalia