hexadb
v0.8.3
Published
Hexastore graph database on top a LevelUp interface
Downloads
13
Maintainers
Readme
Hexa DB
Install via npm
$ npm install --save hexadb
Performance
These are just very rough figures, obtained with the UWN dataset
on an i5-4278U @ 2.6 GHz
, running io.js 2.2.1
on Windows 10.
Read
Read 128561 triples
Speed: 8000 triples/sec
Speed: 0.13 ms/triple
Write
HDD:
Inserted 128561 triples
Speed: 2000 triples/sec
Speed: 0.50 ms/triple
SSD:
Inserted 128561 triples
Speed: 2308 triples/sec
Speed: 0.40 ms/triple
Usage
var level = require( 'level' )
var HexaDB = require( 'hexadb' )
// Create a new instance
var db = new HexaDB( level( path ) )
Triples
// Triples can be Arrays in (spo) order
var triple = [ 'subject', 'predicate', 'object' ]
// Or Objects, either with short or long keys
var triple = { s: 'something', p: 'else', o: 'is happening' }
// This is the form in which HexaDB returns them in results
var triple = {
subject: 'something',
predicate: 'else',
object: 'is happening',
}
Variables
// A triple with variables can be used for
// search queries (also for get queries, but
// variables won't be bound)
var triple = {
// This is what a variable is made of
s: new HexaDB.Variable( 'varname' ),
p: 'hasStars',
// And this is the shortcut to it
o: db.v( 'shortvar' )
}
Query Options
var options = {
offset: 0,
limit: -1,
fillCache: true,
reverse: false,
}
API
Methods
Get
db.get( triple, options, function( error, result ) {
// ...
})
Put
db.put( triple, function( error ) {
// ...
})
Update
db.update( oldTriple, newTriple, function( error ) {
// ...
})
Delete
db.delete( triple, function( error ) {
// ...
})
Search
db.search( query, options, function( error, result ) {
// ...
})
GetStream
var stream = db.getStream( pattern, options )
PutStream
var stream = db.putStream()
UpdateStream
var stream = db.updateStream()
DeleteStream
var stream = db.deleteStream()
SearchStream
var search = db.searchStream( query, options )