RE: JSON-LD Telecon Minutes for 2013-07-02

CC'ing Robert Sanderson from the Open Annotation CG who brough this up.


On Wednesday, July 03, 2013 8:30 AM, Pat Hayes wrote:
> >>> 1. Assigning Properties to Lists 2. GSoC update 3. JSON-LD / RDF
> >>> Alignment 4. Lists in the JSON and RDF data models 5. Default
> >>> interpretation of JSON arrays Resolutions: 1. Create an issue in
> >>> the RDF WG to formalize a way to express lists that need to be
> >>> identified with a URL and annotated using properties.
> >>
> >> If I understand this correctly, this can be done in RDF already. For
> >> example, the list [ x:a, x:b, 27 ] identified by the URI ex:thisList
> >> and possessing the property x:prop with value x:value is described by
> >> this RDF:
> >>
> >> ex:thisList rdf:type rdf:List . ex:thisList rdf:first x:a .
> >> ex:thisLIst rdf:rest _:1 . _:1 rdf:first x:b . _:1 rdf:rest _:2 . _:2
> >> rdf:first "27"^^xsd:number . _:2 rdf:rest rdf:nil . ex:thisLIst
> >> x:prop x:value .
> >
> > If I have understood the issue properly, the reason
> > for raising this issue in the RDF working group is that this is not
> > necessarily an advisable usage pattern for the RDF list vocabulary,
> because such a list cannot be serialized using Turtle's list syntax:
> (x:a x:b 27).
> 
> Yes, you are right, and I confess I had never noticed this limitation
> of Turtle previously. OK, let me change the RDF to the following,
> keeping the list bnodes but using owl:sameAs. (You can of course use
> some other property indicating equality if y'all prefer.):
> 
> ex:thisLIst rdf:type rdf:List .
> ex:thisLIst x:prop x:value .
> ex:thisList owl:sameAs _:3 .
> _:3 rdf:first x:a .
> _:3 rdf:rest _:1 .
> _:1 rdf:rest _:2 .
> _:2 rdf:first "27"^^xsd:number .
> _:2 rdf:rest rdf:nil .
> 
> Or, in Turtle:
> 
> ex:thisList rdf:type rdf:List ;
>       x:prop x:value ;
>       owl:sameAs (x:a , x:b, 27 ) .
> 
> and you could probably omit the first triple, or even introduce your
> own category of JSON-lists and say it is one of those, instead, if that
> would help with triggering appropriate translations into other formats
> (or to distinguish these from eg RDF lists used to encode OWL syntax.)

Of course there are a number of ways to express this, both in Turtle and in
JSON-LD. Robert asked us to add a syntactic shortcut in JSON-LD to simplify
it. This would complicate the JSON-LD algorithms quite a bit and so we
looked for alternatives. The, in our opinion, cleanest approach would be to
introduce an intermediary node which references the list, something like

    ex:intnode x:prop x:value ;
               rdf:listItems (x:a, x:b, 27) .

We discussed using rdf:value for this, but Robert felt that something with
concreter semantics would be preferable. That's the reason why we wanted to
bring this up in the RDF WG instead of discussing it in the JSON-LD CG.

Robert, perhaps you can briefly describe your use case to the RDF WG? (using
public-rdf-comments@w3.org)


> >  It falls into a  similar category as other uncommon uses of the RDF
> List vocabulary:...
> 
> ...no, it doesn't. See remark below.
> 
> Pat
> 
> > other uncommon uses of the RDF List vocabulary:
> > http://www.w3.org/TR/rdf-schema/#ch_collectionvocab
> > [[
> > Note: RDFS does not require that there be only one first element of a
> list-like structure, or even that a list-like structure have a first
> element.
> > ]]
> >
> > While not prohibited by RDF, such uncommon uses of the RDF list
> vocabulary are certainly seen by some as being somewhat anti-social.
> Thus, the question is whether such uses should be *encouraged*.


[...]
> >>> Lindström:  Right, the main argument when we had the issue, even
> >>> though it's in the Primer that says there is nothing preventing
> >>> lists from being described, multiple start properties, etc. None of
> >>> the core syntaxes allow it, it's not intended to be used like that.
> >>> [scribe assist by Manu Sporny] Niklas Lindström:  They're supposed
> >>> to be used as syntactic constructs.... model-wise, they're not
> >>> really a part of RDF.
> 
> That is not correct. Collections were intended to be an integral part
> of RDF. They were used by OWL as a syntactic device for encoding OWL
> syntax in RDF, making them unavailable inside OWL, but that is an
> OWL/RDF issue. (IMO, with hindsight, this was a serious mistake in
> designing the OWL/RDF layering. But I was there at the time and didn't
> see the danger myself, so mia culpa.)


--
Markus Lanthaler
@markuslanthaler

Received on Wednesday, 3 July 2013 09:19:53 UTC