- From: Robert Sanderson <azaroth42@gmail.com>
- Date: Tue, 21 Jan 2014 10:54:29 -0800
- Cc: public-openannotation <public-openannotation@w3.org>
- Message-ID: <CABevsUGiCTBcPQOLhZVy3SsFzW98gr3FNSuf-z-B1fxecLpbrA@mail.gmail.com>
To kick this off with a strawman mapping:
Annotation:
oa:hasTarget : about
oa:hasBody : body
oa:motivatedBy : reason
oa:annotatedBy : user
oa:annotatedAt : time
oa:serializedBy : client
oa:serializedAt : published
oa:styledBy : stylesheet
oa:equivalentTo : copyOf
Resources:
cnt:chars : content
cnt:bytes : bytes
dc:format : format
dc:language : lang
foaf:page : page
rdfs:label : label
Agents:
foaf:name : name
foaf:mbox : email
foaf:homepage : homepage
foaf:openid : openid
foaf:nick : nick
SpecificResources:
oa:hasSource : full
oa:hasSelector : selector
oa:hasState : state
oa:hasScope : seenIn
oa:styleClass : style
oa:when : when
oa:cachedSource : cachedAt
dct:conformsTo : spec
Selectors:
oa:start : start
oa:end : end
oa:prefix : prefix
oa:suffix : suffix
oa:exact : quote
rdf:value : value
Multiplicity:
NB -- I think we can simplify this part of the spec a lot by JUST using
rdf:Lists. So I present two proposals, one for the current spec and then
for the proposed change.
1. Current Spec.
oa:default : default
oa:item : items
rdf:first : first
rdf:rest : rest
2. Proposal for simplification
We can make better use of the JSON list construction (and other
serializations) by not having a multi-class object, and instead only ever
using the list as an anonymous object of a predicate, say oa:items. After
the discussion last time, the serialization algorithm for JSON-LD was
updated so our current spec does now work at least without randomly
dropping out information.
Thus oa:Choice becomes:
{ "@type" : "Choice",
"items" : [default, firstOption, secondOption]
}
And oa:Composite and oa:List collapse to:
{ "@type" : "List",
"items" : [first, second, third]
}
Classes:
* We predefine them all without their prefixes, and drop super-class names
(eg oa:FragmentSelector --> Fragment)
* Make a simpler term for SpecificResource of "Segment" -- anyone who knows
the model will understand that they can also use State and Styles with it,
even if it's not a "segment" per se.
--------
Thus, the simple example from the spec:
{
"@context": "http://www.w3.org/ns/oa-context-new.json",
"@type": "Annotation",
"body": "http://www.example.org/body1",
"about": "http://www.example.org/target1"
}
And the more complex example:
{
"@context": "http://www.w3.org/ns/oa-context-20130208.json",
"@id": "http://www.example.org/annotations/anno1",
"@type": "Annotation",
"time": "2012-11-10T09:08:07",
"user": {
"@id": "http://www.example.org/people/person1",
"@type": "Person",
"email": "mailto:person1@example.org",
"name": "Person One"
},
"reason" : "commenting",
"body": {
"@type": "Text",
"content": "This is part of our logo"
},
"about": {
"@type": "Segment",
"selector": {
"@type": "Fragment",
"value": "xywh=10,10,5,5"
"spec": "http://www.w3.org/TR/media-frags/",
},
"full": {
"@id": "http://www.example.org/images/logo.jpg",
"@type": "Image"
}
}
}
Thoughts?
Rob
On Tue, Jan 21, 2014 at 3:18 AM, Ivan Herman <ivan@w3.org> wrote:
> @context rules:-)
>
> Ivan
>
> On 20 Jan 2014, at 21:26 , Robert Sanderson <azaroth42@gmail.com> wrote:
>
> >
> > Doug,
> >
> > My experience is the same. In IIIF [1], we specifically did NOT use the
> OA context mapping and went with something less RDFy and more in line with
> the domain. We went even further than your suggestion, with "hasTarget"
> being just "on". This is one great advantage of JSON-LD, that the
> serialization can be very different from the (abstract) data model while
> still enabling semantic interoperability.
> >
> > I could easily imagine something like:
> >
> > {
> > "@type" : "Annotation",
> > "reason" : "commenting",
> > "body" : "http://example.net/body",
> > "about" : "http://example.org/target"
> > }
> >
> > as being more palatable than the current RDF centric context. Again, I
> think this is something that we can derive some criteria for, redesign,
> solicit feedback and iterate on.
> >
> > Rob
> >
> > 1 --
> http://www.shared-canvas.org/datamodel/iiif/metadata-api.html#Annotation
> >
> >
> >
> > On Mon, Jan 20, 2014 at 12:13 PM, Doug Schepers <schepers@w3.org> wrote:
> > Hi, Rob–
> >
> > I couldn't agree more with Randall and Blaine. I was struck by how
> clumsy the predicate-like syntax felt to me; doubtless this is just an
> aesthetic from my background in JS, HTML, CSS, SVG, etc., but I think it's
> how most web developers would react as well.
> >
> > If there's a way to have terms that map from JSON-friendly syntax to
> RDF-friendly syntax, that would be really great (e.g., "hasBody" and "body"
> are quivalent; similarly for "hasTarget" -> "target", "annotatedBy" ->
> "annotator", "annotatedAt" -> "timstamp", and so on).
> >
> > Regards-
> > -Doug
> >
> >
> > On 1/20/14 1:07 PM, Robert Sanderson wrote:
> >
> > Second item from the discussion seems to be the availability of a web
> > developer friendly JSON serialization.
> >
> > Some background -- we have been asked for JSON serializations for at
> > least 3 years. Here is one such request of many, from 2011:
> > https://groups.google.com/forum/#!topic/oac-discuss/CSq9Jsdd3zk where we
> > kicked the can down the road waiting for JSON-LD to come along.
> >
> > Which it has, and is the recommended serialization for Open Annotation.
> >
> > So the question is not the JSON serialization's existence, but its
> > developer friendliness, and whether we can do any better while remaining
> > conformant with the JSON-LD specification.
> >
> > I think that would be a great discussion to have, or rather to restart,
> > as it was brought up in point 2 of this thread:
> >
> http://lists.w3.org/Archives/Public/public-openannotation/2013Apr/0015.html
> >
> >
> > Rob
> >
>
>
> ----
> Ivan Herman, W3C
> Digital Publishing Activity Lead
> Home: http://www.w3.org/People/Ivan/
> mobile: +31-641044153
> GPG: 0x343F1A3D
> FOAF: http://www.ivan-herman.net/foaf
>
>
>
>
>
>
Received on Tuesday, 21 January 2014 18:54:57 UTC