1.0.16 • Published 6 months ago

rdfjs-resource v1.0.16

Weekly downloads
-
License
Apache-2.0
Repository
github
Last release
6 months ago

rdfjs-resource

Resource abstraction over RDF/JS Datasets, inspired by similar abstractions in

Installation

npm i rdfjs-resource

Usage

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.

1.0.16

6 months ago

1.0.9

9 months ago

1.0.8

10 months ago

1.0.11

9 months ago

1.0.10

9 months ago

1.0.15

6 months ago

1.0.14

8 months ago

1.0.13

9 months ago

1.0.12

9 months ago

1.0.7

10 months ago

1.0.6

10 months ago

1.0.5

10 months ago

1.0.2

12 months ago

1.0.4

10 months ago

1.0.3

10 months ago

1.0.1

12 months ago

1.0.0

12 months ago