- From: Robert Sanderson <azaroth42@gmail.com>
- Date: Wed, 31 Jul 2013 13:45:19 -0600
- To: Linked JSON <public-linked-json@w3.org>, public-openannotation <public-openannotation@w3.org>
- Message-ID: <CABevsUGX6ObTeuDdcT3o54+j5JkmwC-UZVqBrGyU7mbkxrniqA@mail.gmail.com>
Dear lists,
We've been looking at framing as a method to easily arrive at a json
developer friendly serialization for Open Annotation, and other projects,
from a set of triples.
In Open Annotation, currently, we do not push for the use of @graph in the
serialization, and in fact don't even mention it [1]. However framing
seems to always insert the @graph keyword when it wasn't present before
[2]. This means that either every client needs to know that it should look
inside @graph or at the top level for the annotation, or we could simply
specify that @graph must be present for consistency.
The issue that I (at least) have with this is that the JSON-LD docs bury
@graph in a "Named Graph" section rather than being up front and saying
that you need to worry about it all the time, even if you don't have a
named graph.
Or am I missing an option that allows @graph to be omitted? Equally, not
naming blank nodes would also be another nice output option, rather than
generating explicit bnode names? Or ... am I missing the point of framing
entirely? :)
(Also many thanks for the work on the list issue!)
Rob
1. http://www.openannotation.org/spec/core/publishing.html#Serialization
2.
Using the pyld implementation:
>>> anno = {
... "@context": "http://www.shared-canvas.org/ns/oa-context.json",
... "@type": "oa:Annotation",
... "hasBody": "http://www.example.org/body1",
... "hasTarget": "http://www.example.org/target1"
... }
>>> framed = {
... '@context': 'http://www.shared-canvas.org/ns/oa-context.json',
... '@type': 'oa:Annotation'
... }
>>> pprint.pprint(frame(anno,framed))
{'@context': 'http://www.shared-canvas.org/ns/oa-context.json',
'@graph': [{'@id': '_:b0',
'@type': u'oa:Annotation',
u'hasBody': 'http://www.example.org/body1',
u'hasTarget': 'http://www.example.org/target1'}]}
Received on Wednesday, 31 July 2013 19:45:46 UTC