Skip to content

Turtle to JSON-LD converter for node.js and browser, no library dependencies.

License

Notifications You must be signed in to change notification settings

frogcat/ttl2jsonld

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

42 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

@frogcat/ttl2jsonld

Turtle to JSON-LD converter for node.js and browser, no library dependencies.

Demo

Online demo is available here.

With this converter, you can obtain Output JSON-LD from Input Turtle, as shown in JSON-LD 1.0 Specification .

Input Turtle

@prefix foaf: <http://xmlns.com/foaf/0.1/> .

<http://manu.sporny.org/about#manu> a foaf:Person;
  foaf:name "Manu Sporny";
  foaf:homepage <http://manu.sporny.org/> .

Output JSON-LD

{
  "@context": {
    "foaf": "http://xmlns.com/foaf/0.1/"
  },
  "@id": "http://manu.sporny.org/about#manu",
  "@type": "foaf:Person",
  "foaf:name": "Manu Sporny",
  "foaf:homepage": { "@id": "http://manu.sporny.org/" }
}

Install

node.js

$ npm install @frogcat/ttl2jsonld

browser

<script src="https://frogcat.github.io/ttl2jsonld/ttl2jsonld.js"></script>

Usage

node.js

You can write your own code.

const ttl2jsonld = require('@frogcat/ttl2jsonld').parse;

const ttl = `@prefix foaf: <http://xmlns.com/foaf/0.1/> .

<http://manu.sporny.org/about#manu> a foaf:Person;
  foaf:name "Manu Sporny";
  foaf:homepage <http://manu.sporny.org/> .
`;

const jsonld = ttl2jsonld(ttl);

console.log(JSON.stringify(jsonld,null,2));

Command line interface is also available.

$ npm install @frogcat/ttl2jsonld
$ ttl2jsonld {input_turtle} > {output_jsonld}
or
$ cat {input_turtle} | ttl2jsonld > {output_jsonld}

browser

This converter is exported to ttl2jsonld global object. Call ttl2jsonld.parse(ttl) to perform conversion.

<!-- include ttl2jsonld.js -->
<script src="https://frogcat.github.io/ttl2jsonld/ttl2jsonld.js"></script>

<!-- run script -->
<script>
const ttl = `@prefix foaf: <http://xmlns.com/foaf/0.1/> .

<http://manu.sporny.org/about#manu> a foaf:Person;
  foaf:name "Manu Sporny";
  foaf:homepage <http://manu.sporny.org/> .
`;

const jsonld = ttl2jsonld.parse(ttl);

console.log(JSON.stringify(jsonld,null,2));
</script>

API

Given turtle_string, ttl2jsonld.parse returns JSON Object.

var json_object = ttl2jsonld.parse(turtle_string);

When you want to pass baseIRI, give second argument like this.

var json_object = ttl2jsonld.parse(turtle_string, {
  baseIRI : "http://example.org/"  
});

For developers

building

  • Build with PEG.js.
  • Main code is spec/ttl2jsonld.pegjs.
  • When you edit code, run npm run build to generate ttl2jsonld.js.

testing

  • Tested with rdf-test-suite.
  • Currently 294 / 298 tests succeeded.
  • Run npm run spec-turtle to start rdr-test-suite.
  • Other miscellaneous tests are located in test/test.js, npm run test to run.