@rdfjs/traverser
This package provides a generic traverser for RDF/JS Datasets.
Usage
The main export of the package is the Traverser
class.
It can be imported like this:
import Traverser from '@rdfjs/traverser'
The package also provides a factory that can be used with @rdfjs/environment:
import Environment from '@rdfjs/environment'
import TraverserFactory from '@rdfjs/traverser/Factory.js'
const env = new Environment([DataFactory, DatasetFactory, TraverserFactory])
Traverser(filter, { backward, factory, forward })
Creates a new Traverser
instance.
A Traverser
contains only the rules for traversing.
The dataset and the starting point must be given to the methods.
filter
: A filter function that returns a truthy value if the Traverser
should traverse the given quad.backward
: If true, traverse from object to subject. (default: false
)factory
: A RDF/JS factory that supports RDF/JS Datasets.
The function will be called like this: filter({ dataset, level, quad })
.
dataset
: The RDF/JS Dataset that is traversed.level
: The number of quads followed until the filter was called.quad
: The current quad to process.
forward
: (default: true
)
forEach ({ term, dataset }, callback)
Calls the given callback function for each quad matching the rules of the Traverser
, starting from the given term
and dataset
.
The callback function is called like this: callback({ dataset, level, quad })
.
dataset
: The RDF/JS Dataset that is traversed.level
: The number of quads followed until the callback was called.quad
: The current quad to process.
match ({ term, dataset })
Returns a RDF/JS Dataset that contains all quads matching the rules of the Traverser
, starting from the given term
and dataset
.
reduce ({ term, dataset }, callback, initialValue)
Calls the given callback function for each quad matching the rules of the Traverser
, starting from the given term
and dataset
.
The callback function is called like this: callback({ dataset, level, quad }, result)
.
dataset
: The RDF/JS Dataset that is traversed.level
: The number of quads followed until the callback was called.quad
: The current quad to process.result
: The return value of the previous call of the callback function.
If it's called the first time, the initialValue
is used.
Factory
The constructor is called by the @rdfjs/environment.
The environment must support the RDF/JS DatasetFactory interface.
traverser(filter, { backward = false, forward = true } = {})
Creates a new Traverser
instance and returns it.
For more details, see the Traverser constructor section.