Javascript RDF/Turtle Parser
RDF/Turtleをパースして、トリプルをJavascript/JSONの配列として返します。Jim LeyのJavascript RDF Parserと同じフォーマットなので、少しの変更でその関数が利用できます。また、TurtleをJSON形式に変換することもできます。
Parses RDF/Turtle string and generates Javascript/JSON array of RDF triples, which is the same format as that of Jim Ley's Javascript RDF Parser. So you can use Jim's utilities with this output (need to add a few lines to his script so that it accepts calls from outside). Optionally, converts RDF/Turtle into similar form of JSON.
Now it passes most Tuttle test cases, but, of course, not perfect. Feedback welcome.
Example 1: FOAF
You can above RDF/Turtle. Note that extra triple [:nick "libby"]
will be added with Jim's doSubProperties
function (doesn't work with Safari ??).
It's also possible to convert from and convert resulting (can only convert first bnode that corresponds to JSON object model, excluding the last rdfs:subPropertyOf
triple).
Example 2: RSS
Converrt and/or find from pseudo RSS 1.0 feed fragment.
Usage
Turtle to JSON
Parse Turtle and Turtle to JSON conversion uses turtle.js script. parse()
function returns array of triples. parse_to_json()
function returns a JSON object.
(example)
// initialize var turtle = new ParseTurtle; // get RDF triples as a javascript array var rdf = turtle.parse(turtle_string); // or convert Turtle string to similar JSON (javascript) object var json = turtle.parse_to_json(turtle_string);
Javascript (JSON) array/objct dump is made possible with JKL.Dumper written by Y. Kawasaki.
JSON to Turtle
JSON to Turtle conversion uses json-turtle.js script. parsej(j,sep,pre)
function takes JSON object, result line break, and result indent as parameters, and returns Turtle string. There is a covenient function j2t()
function that takes input and output field id of XHTML form as parameter..
(example)
// initialize var json = new JsonTurtle; // parse JSON object and returns Turtle string var turtle_string = json.parsej(json_object,"\n",''); // or use easy way to test with XHTML form textarea json.j2t(input_fld_id, output_fld_id);
JSON/Turtle conversion has following arbitrary mapping:
- Top blank node of Turtle is mapped to JSON object.
- Namespace prefixes are mapped to equivallent JSON property in top level.
- Repeated properties are mapped to JSON array.
- If Turtle has a subject URI, it will be mapped to JSON "@about" property.
Cannot get nice result for some complex data, yet :-( There is a series of Japanese introduction to JSON and Turtle.
Known bugs
Cannot treat some number format correctly (e.g "0000" should be "0"^^xsd:integer, but this returns "0000"^^xsd:integer).- Not sure how meta characters should be escaped within JSON value...(e.g. \t or \\t)
- Fails with large triple (test-14, test-15, test-16) depending on machine.
- Does not fail in some illegal syntax.
- ... and more ...(?)