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.

Package Sidebar

Install

npm i rdf-string-ttl

Weekly Downloads

2,303

Version

1.3.2

License

MIT

Unpacked Size

37.8 kB

Total Files

9

Last publish

Collaborators

  • rubensworks