- From: Antoine Zimmermann <antoine.zimmermann@emse.fr>
- Date: Wed, 5 Oct 2016 15:02:11 +0200
- To: public-wot-ig@w3.org
Dear all,
Following our discussion in the teleconference today, here I'd like to
explain more precisely why we (Maxime, Andrei, and I) would prefer using
Turtle for discussing the structure of thing descriptions (while keeping
JSON-LD for examples in the documents we publish).
What we have to agree on is the graph structure showing the relations
between the parts of a description. We need to describe how a thing can
be related to a property, or an action, or an event, how these are
related to an encoding or mime type, etc. We need to know what the
relationships are meaning and what kinds of entities they are relating.
For this, we need to be able to communicate example graph structures by
email as efficiently as possible. Although JSON-LD is a valid and more
and more popular way to serialise an RDF graph, it is not the easiest in
terms of understanding the underlying graph behind the serialisation.
Turtle is pretty good and concise for this, especially if you omit the
preliminary directives for prefixes. As an example, consider a graph
like this:
ex:sensor123 ----type----> td:Thing
|
|
td:hasAction
|
|
v
ex:actionXYZ ----type----> td:Action
where there are 3 arcs connecting 4 nodes. In Turtle, one may just write
down each arc, one by one, with a simple node-arc-node triple, like so:
ex:sensor123 type td:Thing .
ex:sensor123 td:hasAction ex:actionXYZ .
ex:actionXYZ type td:Action .
It's pretty easy to reconstruct the graph mentally, or draw it on paper.
It's a bit verbose though. If several arcs originate from the same node,
you have to repeat the origin many times. But there are a few
abbreviations in Turtle that are good to know and easy to parse. For
each arc with the same origin, you use a semicolon to separate arc-node
pairs starting from the same node:
ex:sensor123 type td:Thing;
td:hasAction ex:actionXYZ .
ex:actionXYZ type td:Action .
It's still fairly easy to see what graph we are serialising, without
much knowledge of RDF and Turtle and the Semantic Web (and without the
possibly misleading assumptions about how it looks like in JSON).
Then, once we've agreed on what graph a TD has to represent, we can
write a JSON-LD context that makes writing the graph in JSON
straightforward for a web developer. The web developers then play with
the TD as they like to do in JSON, while the semantic web developers may
interpret it as RDF for more advanced processing, or reasoning.
Best regards,
--
Antoine Zimmermann
Institut Henri Fayol
École des Mines de Saint-Étienne
158 cours Fauriel
CS 62362
42023 Saint-Étienne Cedex 2
France
Tél:+33(0)4 77 42 66 03
Fax:+33(0)4 77 42 66 66
http://www.emse.fr/~zimmermann/
Member of team Connected Intelligence, Laboratoire Hubert Curien
Received on Wednesday, 5 October 2016 13:02:44 UTC