1.6.3 • Published 1 year ago

rdf-string v1.6.3

Weekly downloads
4,338
License
MIT
Repository
github
Last release
1 year ago

RDF String

Build status Coverage Status npm version

This package contains utility functions to convert between the string-based and RDFJS representations of RDF terms, quads and triples.

If you are looking for a Turtle-based string syntax, have a look at RDF String Turtle

This allows for convenient and compact interaction with RDF terms and quads, as they can be serialized as plain JSON.

This string-based representation is based on the old triple representation of N3.js. Namely, quads are represented as follows:

{
  subject:   'http://example.org/cartoons#Tom',
  predicate: 'http://www.w3.org/1999/02/22-rdf-syntax-ns#type',
  object:    'http://example.org/cartoons#Cat'
  graph:     'http://example.org/myGraph'
}

Different terms types in quads are represented as follows:

  • URLs, URIs and IRIs are simple strings: 'http://example.org/cartoons#Tom'
  • Literals are represented as double quoted strings: '"Tom"', '"Tom"@en-gb', '"1"^^http://www.w3.org/2001/XMLSchema#integer'
  • Variables are prefixed by ?: '?variableName'

Usage

The following examples assume the following imports:

import * as RdfDataModel from "rdf-data-model";
import * as RdfString from "rdf-string";

Term to string

Convert an RDFJS term to the string-based representation.

// Prints http://example.org
console.log(RdfString.termToString(RdfDataModel.namedNode('http://example.org')));

// Prints _:b1
console.log(RdfString.termToString(RdfDataModel.blankNode('b1')));

// Prints "abc"
console.log(RdfString.termToString(RdfDataModel.literal('abc')));

// Prints "abc"@en-us
console.log(RdfString.termToString(RdfDataModel.literal('abc', 'en-us')));

// Prints "abc"^^http://example.org/
console.log(RdfString.termToString(RdfDataModel.literal('abc', namedNode('http://example.org/'))));

// Prints ?v1
console.log(RdfString.termToString(RdfDataModel.variable('v1')));

// Prints empty string
console.log(RdfString.termToString(RdfDataModel.defaultGraph()));

String to term

Convert an string-based term to the RDFJS representation.

Optionally, a custom RDFJS DataFactory can be provided as second argument to create terms instead of the built-in DataFactory.

// Outputs a named node
RdfString.stringToTerm('http://example.org');

// Outputs a blank node
RdfString.stringToTerm('_:b1');

// Outputs a literal
RdfString.stringToTerm('"abc"');

// Outputs a literal with a language tag
RdfString.stringToTerm('"abc"@en-us');

// Outputs a literal with a datatype
RdfString.stringToTerm('"abc"^^http://example.org/');

// Outputs a variable
RdfString.stringToTerm('?v1');

// Outputs a default graph
RdfString.stringToTerm('');

Quad to string-based quad

Convert an RDFJS quad to a string-based quad.

// Prints { subject: 'http://example.org', predicate: 'http://example.org', object: '"abc"', graph: '' }
console.log(RdfString.quadToStringQuad(RdfDataModel.triple(
  namedNode('http://example.org'),
  namedNode('http://example.org'),
  literal('abc'),
)));

String-based quad to quad

Converts a string-based quad to an RDFJS quad.

Optionally, a custom RDFJS DataFactory can be provided as second argument to create quads and terms instead of the built-in DataFactory.

// Outputs a quad
RdfString.stringQuadToQuad({
  subject: 'http://example.org',
  predicate: 'http://example.org',
  object: '"abc"',
  graph: '',
});

License

This software is written by Ruben Taelman. These utility functions are inspired by the implementation of N3.js.

This code is released under the MIT license.

@infinitebrahmanuniverse/nolb-rdrspql-query-subsumption@everything-registry/sub-chunk-2537shacled-turtle@solid/community-serverrdf-isomorphicrdf-dataset-fragmenterrdf-dereferencerdf-playrdf-quadrdf-objectrdf-storesrdf-streaming-storerdf-termsrdf-test-suitesparqlalgebrajssparqlalgebrajs-inputsparqleesparql-engine@treecg/actor-init-ldes-client@treecg/actor-init-typeahead@treecg/basic-ldes-server@triply/actor-query-operation-bgp-left-deep-naive@triply/ratt@triply/utils@prov4itdata/actor-rdf-metadata-extract-annotate-provenancetemporibusrepudiandaefetch-sparql-endpointgeneric-hypermedia-api-clienthylar-coreldbc-snb-enhancerhdtjest-rdfostrich-bindingscomponentsjs@bruju/rdf-test-util@incremunica/incremental-rdf-streaming-store@comunica/actor-query-operation-path-zero-or-morezack-search@comunica/actor-query-operation-bgp-empty@comunica/actor-query-operation-bgp-left-deep-smallest@comunica/actor-query-operation-bgp-left-deep-smallest-sort@comunica/actor-query-operation-bgp-traversal@comunica/actor-extract-links-solid-type-index@comunica/actor-query-operation-filter-direct@comunica/actor-query-operation-orderby-direct@comunica/actor-query-result-serialize-table@comunica/actor-query-source-identify-hypermedia-qpf@comunica/actor-sparql-serialize-json@comunica/bindings-factory@comunica/actor-rdf-update-quads-rdfjs-store@comunica/actor-rule-parse-hylar@comunica/actor-sparql-parse-algebra@comunica/actor-rdf-resolve-hypermedia-qpf@comunica/actor-rdf-resolve-quad-pattern-file@comunica/actor-rdf-resolve-quad-pattern-qpf@comunica/bus-query-operation@comunica/bus-query-source-identify@comunica/bus-rdf-join@comunica/actor-init-rdf-dereference@comunica/actor-init-rdf-dereference-paged@comunica/actor-init-rdf-parse@comunica/web-client-generator@comunica/expression-evaluator@comunica/actor-query-operation-quadpattern@comunica/actor-rdf-join-minus-hash-undef@comunica/actor-hash-bindings-sha1@comunica/actor-rdf-membership-filter-bloom@comunica/actor-rdf-membership-filter-gcs@comunica/actor-rdf-metadata-extract-membership@comunica/actor-query-process-explain-physical@comunica/actor-query-result-serialize-json@comunica/actor-query-result-serialize-simple@comunica/actor-abstract-bindings-hash@comunica/actor-abstract-path@comake/solid-redis@incremunica/hash-bindings@incremunica/incremental-bindings-factory@ldf/core@ldf/datasource-jsonld@ldf/datasource-rdfa@ldf/datasource-sparql@ldf/feature-qpf@ldo/rdf-utils@ldobjects/rdf-utils
1.6.3

1 year ago

1.6.2

1 year ago

1.6.1

2 years ago

1.6.0

3 years ago

1.5.0

4 years ago

1.4.2

4 years ago

1.4.1

4 years ago

1.4.0

4 years ago

1.3.1

5 years ago

1.3.0

5 years ago

1.2.0

6 years ago

1.1.1

6 years ago

1.1.0

6 years ago

1.0.1

6 years ago

1.0.0

6 years ago