rdf-string-ttl
TypeScript icon, indicating that this package has built-in type declarations

1.3.2 • Public • Published

RDF String Turtle

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.

This is a fork of RDF String that is adapted to make string representation compatible with Turtle/SPARQL syntax.

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

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 strings wrapper in <>``**: 'http://example.org/cartoons#Tom'`
  • Literals are represented as double quoted strings: '"Tom"', '"Tom"@en-gb', '"1"^^<http://www.w3.org/2001/XMLSchema#integer>'
  • Blank nodes are prefixed by _:: '_:blankNodeName'
  • 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-ttl";

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.

Dependencies (2)

Dev Dependencies (17)

Package Sidebar

Install

npm i rdf-string-ttl

Weekly Downloads

3,522

Version

1.3.2

License

MIT

Unpacked Size

37.8 kB

Total Files

9

Last publish

Collaborators

  • rubensworks