This is a draft specification for building semantically interoperable javascript object/document streams.
A JSON-LD stream is a stream that emits javascript objects conformant to the JSON-LD specification, except that these objects do not include a @context
object.
In the stream, objects that only contain an @context
property may be given to denote the context for all objects in the stream. The programmer must make sure that a @context
written in after objects have already been emitted, still work for all previously emitted objects.
Each collection should contain one @context
document which can be used to convert all objects in the collection to RDF.
The root @id
of the object should be used as the internal identifier of the document (E.g., in MongoDB @id
becomes _id
)
When serialized to a file, each stream element must be stringified on one line. Each object in a file is delimited by a newline (\n
).
This repository also contains a javascript library to work with jsonld-streams.
npm install jsonld-stream --save
It defines a couple of transformer classes which can be used as follows:
var jsonldstream = require('jsonld-stream');
fs.createReadStream('./test/data/connections.jsonldstream', {encoding : 'utf8'})
.pipe(new jsonldstream.Deserializer())
.pipe(new jsonldstream.JSONLDStreamToTriples())
.pipe(new jsonldstream.TriplesToJSONLDStream())
.pipe(new jsonldstream.Serializer());