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

On Jul 9, 2013, at 4:23 AM, Markus Lanthaler wrote:

> On Tuesday, July 09, 2013 6:46 AM, Pat Hayes wrote:
>> On Jul 8, 2013, at 1:01 PM, Robert Sanderson wrote:
>>> Something like:
>>> rdf:listHead  -- The object, which must be a blank node with rdf:type
>> rdf:List, is the first entry in a list associated with the subject
>> resource.
>> I guess I don't follow this. If the object is of type LIst, and it is
>> the first item in a list, then you have a list of lists. Which is
>> legal, but I don't see how it helps with the problem we have here. And
>> what does "associated with" mean?
> I think was Robert meant was something like
>    <> rdf:ListHead _:head . 
>    <> ... other properties of <> ...
>    _:head rdf:type rdf:List .
>    _:head rdf:first ...
>    _:head rdf:rest _:item2 .
>    _:item2 ...

Ah, OK. But then we get back to my previous point. All this wriggling can't get us past the fact that if this means what it is supposed to mean, then the truth conditions on rdf:ListHead are going to be that 

<1> rdf:ListHead <2> is true just when <1> = <2>. 

This is still owl:sameAs with a different name (or maybe sameAs restricted to lists), and so it is still **logically valid** to substitute one side of it for the other. In other words, your graph above will semantically entail 

<>...other properties of <> ..
<> rdf:type rdf:List .
<> rdf:first ...
<> rdf:rest _:item2 .

which David doesn't want it to. So you have gained nothing over simply re-using owl:sameAs, as far as David's concerns go. 

There is a basic point here about how semantics works. The word "entail" comes with a fixed meaning: A entails B means, whenever (ie in any interpretation in which) A is true, then B is also true. The semantics determines the truth conditions on expressions, and then entailment comes along as an, er, logical consequence of those truth conditions. It does not mean something like "you can make this inference because I like this kind of inference"; and similarly not being entailed does not mean "You can't do that because i don't want you to do that." 

If you can find a way to specify how

<A> rdf:LIstHead <B> .

can be made true without it meaning A=B, then you might be able to escape David's concerns. I would also be quite interested. 


> If we decide to modify the JSON-LD algorithms (I expect we do that) you can
> do something like this to associate other properties to the *list head*:
>   {
>     "@id": "_:head",
>     ... other properties ...
>     "rdf:first": "A",
>     "rdf:rest": { "@list": [ "B", "C" ] }
>   }
> You can do exactly the same in Turtle
>    _:head ... other properties ...
>    _:head rdf:first "A".
>    _:head rdf:rest ( "B", "C" ) .
> Robert, would that address your problem?
> --
> Markus Lanthaler
> @markuslanthaler

IHMC                                     (850)434 8903 or (650)494 3973   
40 South Alcaniz St.           (850)202 4416   office
Pensacola                            (850)202 4440   fax
FL 32502                              (850)291 0667   mobile

Received on Wednesday, 10 July 2013 03:23:29 UTC