Secure your code as it's written. Use Snyk Code to scan source code in minutes - no build needed - and fix issues immediately.
@prefix : .
:a foaf:name "a" .
:b foaf:name "b" .
`).forEach(t => {
graph._store.addTriple(t)
})
const query = `
PREFIX foaf:
SELECT ?name
WHERE {
?s foaf:name ?name .
}`
// Creates a plan builder for the RDF dataset
const builder = new PlanBuilder(dataset)
// Get an iterator to evaluate the query
const iterator = builder.build(query)
// Read results
iterator.subscribe(bindings => {
console.log('Find solutions:', bindings.toObject())
}, err => {
console.error('error', err)
}, () => {
console.log('Query evaluation complete!')
})
db.put([triple1, triple2], () => {
const graph = new LevelRDFGraph(db)
const dataset = new HashMapDataset('http://example.org#default', graph)
const query = `
PREFIX foaf:
SELECT ?name
WHERE {
?s foaf:name ?name .
}`
// Creates a plan builder for the RDF dataset
const builder = new PlanBuilder(dataset)
// Get an iterator to evaluate the query
const iterator = builder.build(query)
// Read results
iterator.subscribe(bindings => {
console.log('Find solutions:', bindings.toObject())
}, err => {
console.error('error', err)
}, () => {
console.log('Query evaluation complete!')
})
})db.put([triple1, triple2], () => {
const graph = new LevelRDFGraph(db)
const dataset = new HashMapDataset('http://example.org#default', graph)
const query = `
PREFIX foaf:
SELECT ?name
WHERE {
?s foaf:name ?name .
}`
// Creates a plan builder for the RDF dataset
const builder = new PlanBuilder(dataset)
// Get an iterator to evaluate the query
const iterator = builder.build(query)
// Read results
iterator.subscribe(bindings => {})
}
find (triple) {
const { subject, predicate, object } = formatTriplePattern(triple)
return this._store.getTriples(subject, predicate, object)
}
estimateCardinality (triple) {
const { subject, predicate, object } = formatTriplePattern(triple)
return Promise.resolve(this._store.countTriples(subject, predicate, object))
}
}
const graph = new N3Graph()
const dataset = new HashMapDataset('http://example.org#default', graph)
// Load some RDF data into the graph
const parser = new Parser()
parser.parse(`
@prefix foaf: .
@prefix : .
:a foaf:name "a" .
:b foaf:name "b" .
`).forEach(t => {
graph._store.addTriple(t)
})
const query = `
PREFIX foaf:
SELECT ?name
WHERE {evalBGP (bgp) {
// Connect the Node.js Readable stream
// into the SPARQL query engine using the fromAsync method
return Pipeline.getInstance().fromAsync(input => {
// rewrite variables using levelgraph API
bgp = bgp.map(t => {
if (t.subject.startsWith('?')) {
t.subject = this._db.v(t.subject.substring(1))
}
if (t.predicate.startsWith('?')) {
t.predicate = this._db.v(t.predicate.substring(1))
}
if (t.object.startsWith('?')) {
t.object = this._db.v(t.object.substring(1))
}
return t
})
// Evaluates the BGP using Levelgraph stream API
const stream = this._db.searchStream(bgp) stream.on('data', results => input.next(BindingBase.fromObject(results)))
})