rdfjs-resource v1.0.16
rdfjs-resource
Resource abstraction over RDF/JS Datasets, inspired by similar abstractions in
Installation
npm i rdfjs-resourceUsage
Wrap an RDF/JS BlankNode or NamedNode in a Resource
const resource = new Resource({ dataset: theDataset, identifier: theNode });Retrieve a value (object) of the Resource
import { rdf } from "@tpluscode/rdf-ns-builders";
const value = resource.value(rdf.type).toNumber().orDefault(0);Resource.value(predicate) and Resource.values(predicate) return a Resource.Value, which has various to conversion methods that return purify-ts Maybe monads.
See the Resource.test.ts for additional usage.
MutableResource
Resource instances are immutable. To create a mutable resource, you have to supply an RDF/JS DataFactory as well as a graph identifier (BlankNode | DefaultGraph | NamedNode) to add/delete quads to/from in the supplied DatasetCore.
import { rdf } from "@tpluscode/rdf-ns-builders";
const mutableResource = new MutableResource({
dataFactory: DataFactory,
dataset,
identifier: DataFactory.namedNode("http://example.com/subject"),
mutateGraph: DataFactory.defaultGraph(),
});
mutableResource.add(rdf.type, rdf.Resource);ResourceSet
For convenience, you can wrap a DatasetCore in a ResourceSet, then instantiate Resources from that:
const resourceSet = new ResourceSet({ dataset });
resourceSet.resource(identifier).value(rdf.type);Named Resource
Resource and MutableResource take a type parameter for the identifier specified in the resource's constructor. The parameter defaults to BlankNode | NamedNode.
It's often useful to only deal in named resources (Resource<NamedNode>). The ResourceSet abstraction provides a namedResource factory method for convenience. MutableResourceSet provides a similar namedMutableResource factory method.