- From: Stian Soiland-Reyes <soiland-reyes@cs.manchester.ac.uk>
- Date: Wed, 22 Oct 2014 09:08:29 +0100
- To: Jacob Jett <jgjett@gmail.com>
- Cc: Annotation WG <public-annotation@w3.org>
- Message-ID: <CAPRnXt=vYnS+rPU5qcoGhfn9rTnMTEO8rPNZW2dofWqFWTFGFQ@mail.gmail.com>
Yeah, the RDF model would be exposing the list in order to preserve the order. As such oa:Choice would become more complicated in serialization, but I guess at the benefit of being easier to consume. E.g. if we express the example from Robert in Turtle without using the list operator: :choice1 a oa:Choice; oa:members [ a rdf:List; rdf:first eg:body1; rdf:rest [ a rdf: List; rdf:first eg:body2; rdf:rest [ a rdf: List; rdf:first eg:body3; rdf:rest rdf:nil . ] . ] . ] . Hence the need for property chains or special SPARQL functions if you need to retrieve the list values from an RDF store. Challenge to the reader - how to sort this list using standard SPARQL. (Typed on my phone, probably wrong syntax! ) On 20 Oct 2014 18:31, "Jacob Jett" <jgjett@gmail.com> wrote: > Hi Rob, > > I think the proposed serialization is much better. I am wondering what the > underlying RDF / conceptual model is going to look like. IIRC the proposal > is that the above is an existing interpretation of rdf:list in JSON-LD is > that right? So we would keep rdf:list in the rdf version of the model, is > that correct? > > This sounds fine to me, use of rdf:list is in my mind a little more > tenuous, as it is a very kludgey model of a list-type entity. > > Regards, > > Jacob > > > On Fri, Oct 17, 2014 at 8:22 PM, Robert Sanderson <azaroth42@gmail.com> > wrote: > >> >> Dear all, >> >> The current OA model is less intuitive than it could easily be when it >> comes to the Multiplicity constructs. For the FPWD, I think it would be >> beneficial to make them easier to understand and implement. >> >> The proposed structure for the oa:Choice is: >> >> { >> "@type": "oa:Choice", >> "members": ["eg:body1", "eg:body2", "eg:body3"] >> } >> Where the members are ordered in descending priority. >> (or "items" or other convenient name tbd) >> >> And the exact same structure for oa:List: >> >> { >> "@type": "oa:List", >> "members": ["eg:target1", "eg:target2", "eg:target3] >> } >> Where the members are ordered. >> >> This looks like something that a developer would create using JSON, when >> it needed to go into an object (which it does, given the distinction >> between List and Choice, and that the object of the hasTarget property must >> be an object) [see Issue 12] >> >> >> Conversely, the current structures expose a lot of the RDF plumbing where >> they shouldn't: >> >> { >> "@type": "oa:Choice", >> "default": "eg:body1", >> "item" : ["eg:body3", "eg:body2"] >> } >> Where item is two separate triples, and thus the order is not >> deterministic. >> >> And worse for list: >> >> { >> "@type": ["oa:List", "rdf:List"], >> "first": "eg:target1", >> "rest": ["eg:target2", "eg:target3"], >> "item" : [ "eg:target2", "eg:target1", "eg:target3"] >> } >> Where, again, the order of the entries in item is not deterministic as >> they're separate triples. >> >> >> Thoughts? Jacob, please feel free to describe your counter proposal from >> issue 1 if you'd like :) >> >> >> This is related to issues: >> https://github.com/w3c/web-annotation/issues/1 >> https://github.com/w3c/web-annotation/issues/2 >> https://github.com/w3c/web-annotation/issues/5 >> https://github.com/w3c/web-annotation/issues/12 >> >> -- >> Rob Sanderson >> Technology Collaboration Facilitator >> Digital Library Systems and Services >> Stanford, CA 94305 >> > >
Received on Wednesday, 22 October 2014 08:08:57 UTC