Re: Node.js tool for RDFa -> JSON-LD transformation

On Sat, Mar 30, 2013 at 10:57 AM, Ivan Herman <> wrote:
> On Mar 30, 2013, at 03:16 , Niklas Lindström <> wrote:
>> Very cool!
>> As you know, my RDFa implementation in the RDFa-lab (which also runs
>> on Node and in the browser) [1] directly generates expanded JSON-LD.
>> I've then used your jsonld.js (with the framing stuff pruned) on that,
>> e.g. in combination with the Connect algorithm in the lab.
>> Another thing I've used for a while is RDFLib (Python), combined with
>> rdflib-jsonld and the "rdfpipe" commandline tool (from RDFExtras) to
>> do something very similar (rdfpipe can handle most RDF formats in and
>> out):
>>    $ curl -L -o /tmp/payswarm-v1.jsonld
>>    $ rdfpipe -irdfa
>> -ojson-ld:context=/tmp/payswarm-v1.jsonld
> As an aside: do you think it would be possible to add the json-ld serializer into the core RDFLib distribution soon? For the time being, as you know, I use my own json-ld serializer in pyRdfa, but I have not really done anything with it lately, and I am not even sure it is up to date. I would really prefer to rely on a core module...

The plan is definitely to do that as soon as JSON-LD is a REC. You can
install it separately now as well, as it plugs into RDFLib (making
e.g. "rdfpipe" from RDFExtras, also installable separately, pick it
up). Alas, I haven't had time to touch the code since december
though*, so it needs to be updated to the latest behaviour. (Also, the
implementation has hitherto been focused more on getting to/from RDF
than properly implementing full compaction/flattening, etc. An
alternative would be to adapt pyld [1] instead, if that is more up to



(* I'm in the final days of changing jobs; working parallell in two
consulting assignments (one is the legal info system referenced, which
is a pain to leave behind; the other is the national library system,
which is an inspiring challenge I'll continue with as an employee). So
I've really been "up to my neck in alligators, having a hard time
focusing on draining the swamp". ;])

> Thx.
> Ivan
>> (Something it it goes wrong when fetching the remote context, so I had
>> to use a local copy. Alas, I haven't had time to work on rdflib-jsonld
>> for quite some time now.)
>> And recently (as in 3 hours ago), the Swedish legal information system
>> I built (in Java/Groovy) [2] was updated to use an up-to-date JSON-LD
>> context. This system actually consumes legal information published in
>> RDF/XML or RDFa now (over Atom), and among other things funnel
>> extracted JSON-LD into ElasticSearch. See e.g. [3] and [4] (but note
>> that the new context isn't deployed yet).
>> Cheers,
>> Niklas
>> [1]:
>> [2]:
>> [3]:
>> [4]:
>> On Sat, Mar 30, 2013 at 2:34 AM, Manu Sporny <> wrote:
>>> bcc: RDFa WG, RDF WG
>>> Dave Lehn and Dave Longley just put together a tool that's pretty rough
>>> around the edges, but really helpful for those trying to:
>>> * Transform RDFa to JSON-LD
>>> * Normalize JSON-LD/RDF Datasets to NQuads
>>> * Transform JSON-LD to compact, expanded, normalized, or flattened form
>>> To install the tool, do the following (you will need git, nodejs, and
>>> npm installed):
>>> git clone
>>> cd jsonld.js
>>> npm install
>>> To compact a document on the Web using a JSON-LD context published on
>>> the Web:
>>> ./bin/jsonld compact
>>>  -c ""
>>>  ""
>>> That will read in a PaySwarm Asset and Listing in RDFa 1.0 format (using
>>> Green Turtle by Alex Milowski), convert it to JSON-LD expanded form,
>>> compact it using the '' context, and dump it
>>> out to the console in compacted form.
>>> ./bin/jsonld normalize -q ""
>>> That will read in a PaySwarm Asset and Listing in RDFa 1.0 format,
>>> normalize the data using the RDF Dataset normalization algorithm, and
>>> then dump the output to normalized NQuads format. The NQuads can then be
>>> processed via SHA-256, or similar algorithm, to get a deterministic hash
>>> of the contents of the Dataset.
>>> The implementation is up-to-date with the RDFa and JSON-LD specs. The
>>> tool still needs quite a bit of tweaking, but it's a pretty powerful
>>> demonstration of many of the things this community has been building
>>> over the past several years.
>>> -- manu
>>> --
>>> Manu Sporny (skype: msporny, twitter: manusporny, G+: +Manu Sporny)
>>> Founder/CEO - Digital Bazaar, Inc.
>>> blog: Google Summer of Code 2013: RDFa, JSON-LD, Web Payments
> ----
> Ivan Herman, W3C Semantic Web Activity Lead
> Home:
> mobile: +31-641044153

Received on Saturday, 30 March 2013 10:28:23 UTC