- From: Henry Story <henry.story@bblfish.net>
- Date: Sat, 25 Jan 2014 11:01:01 +0100
- To: Eric Prud'hommeaux <eric@w3.org>
- Cc: Arnaud LeHors <lehors@us.ibm.com>, "Kingsley (Uyi) Idehen" <kidehen@openlinksw.com>, "public-ldp-wg@w3.org Working Group" <public-ldp-wg@w3.org>, Alexandre Bertails <bertails@w3.org>
On 25 Jan 2014, at 09:21, Eric Prud'hommeaux <eric@w3.org> wrote:
> * Henry Story <henry.story@bblfish.net> [2014-01-25 09:07+0100]
>>
>> On 25 Jan 2014, at 08:01, Eric Prud'hommeaux <eric@w3.org> wrote:
>>
>>> On Jan 24, 2014 7:37 PM, "Henry Story" <henry.story@bblfish.net> wrote:
>>>>
>>>>
>>>> On 24 Jan 2013, Eric Prud'hommeaux wrote as shown in the archive
>>>> http://lists.w3.org/Archives/Public/public-ldp-wg/2014Jan/0121.html
>>>>> On 24 Jan 2014, at 18:38, Henry Story <henry.story@bblfish.net> wrote:
>>>>>
>>>>>> On 24 Jan 2014, at 18:14, Alexandre Bertails <bertails@w3.org> wrote:
>>>>>>
>>>>>>>>>>>
>>>>>>>>>>> In plain English: ldp:Container happens to be a class that can be used
>>>>>>>>>>> to denote the Container interaction model when used with
>>>>>>>>>>> rel=profile. What's wrong in that sentence?
>>>>>>>>>>
>>>>>>>>>> What does it denote when it is not used with rel=profile?
>>>>>>>>>
>>>>>>>>> Then the behavior is not defined. It's ok because we're only
>>>>>>>>> interested in defining what it means when we use it with rel=profile,
>>>>>>>>> or when you use it as a class.
>>>>>>>>
>>>>>>>> A URI refers to one thing. This is not a question of behaviour. That
>>>>>>>> is how URIs are defined.
>>>>>>>>
>>>>>>>> [[
>>>>>>>> A Uniform Resource Identifier (URI) provides a simple and extensible
>>>>>>>> means for identifying a resource.
>>>>>>>> ]]
>>>>>>>
>>>>>>> I gave you the one declarative and universal meaning for
>>>>>>> ldp:Container: it denotes the LDPC interaction model when used with
>>>>>>> rel=profile, you're on your own for other rels.
>>>>>>>
>>>>>>> Does this introduce any contradiction with anything else?
>>>>>>
>>>>>> yes, there is no such thing as "denoting something when used with ..."
>>>>>> Have you got a definition of that somewhere?
>>>>>>
>>>>>> Some further supporting evidence from RDF Semantics:
>>>>>>
>>>>>> [[ http://www.w3.org/TR/2004/REC-rdf-mt-20040210/#urisandlit
>>>>>>
>>>>>> This document does not take any position on the way that URI references may be composed from other expressions, e.g. from relative URIs or QNames; the semantics simply assumes that such lexical issues have been resolved in some way that is globally coherent, so that a single URI reference can be taken to have the same meaning wherever it occurs.
>>>>>> ]]
>>>>>>
>>>>>> So imagine you have some other relation that is like profile but narrower, say an ldp:profile
>>>>>> then ldp:Container would have to still refer to the same thing in the relation below:
>>>>>>
>>>>>> <> ldp:profile ldp:Container .
>>>>>>
>>>>>> which if we translate it using your grue like definition would come to
>>>>>>
>>>>>> <> is related by the ldp:profile relation to the thing denoting the ldp interaction if related by rel=profile,
>>>>>> but you're out of luck for other rels.
>>>>>>
>>>>>> so here it would be
>>>>>>
>>>>>> <> related by ldp:profile to we know not what.
>>>>>>
>>>>>> What if someone then wants to write a vocabulary that describes interaction models?
>>>>>> Say they want to say of an interaction model that it supports POST and that this creates
>>>>>> new resources in some way,....
>>>>>>
>>>>>> ldp:Container interaction:methodSupported "GET", "PUT", "POST", "PATCH" .
>>>>>>
>>>>>> following the above reasoning we have no idea what ldp:Container is referring to above.
>>>>>>
>>>>>> Clearly this would go against all the semantic web reasoning layers that have been agreed
>>>>>> to in various groups at the W3C.
>>>>>>
>>>>>> I am surprised you even think of presenting this as an argument!
>>>>>> You have just helped me thump another stake in the heart
>>>>>> of this rel=profile time consuming vampire .
>>>>>
>>>>> And I am surprised that you think it's reasonable to use the same identifier for a graph representing an LDP container AND the protocol for interacting with it.
>>>>
>>>>
>>>> You mean that <http://example/> in say { <http://example> a ldp:Container . } would refer to a Graph?
>>>>
>>>> Only if the Graph can be a temporal thing that can change over time, which is not the
>>>> strict definition of Graph in the RDF specs.
>>>>
>>>> The representation returned by <http://example/> is a Graph, but you must not
>>>> confuse the representation with the resource. The resource is something that
>>>> has an interaction model, and that can change over time, whilst keeping its
>>>> identity of course :-) .
>>>
>>> Very true. What do you propose as a stable identifier for the LDP1.0 interaction model as distinct from the resource itself?
>>>
>> ldp:Container should do . It is a class whose intension sets the criteria for selecting the members
>> both actual and non actual that belong to it. The definition is provided by the LDP spec.
>
> So then we are back to not being able to use LDP containers with a
> different interaction model, e.g. SPARQL.
Good question. I am surprised this was not brought up earlier.
I am not sure what you mean by a SPARQL as in interaction model.
Let's imagine you mean that such an LDPC should support the HTTP
SEARCH method (as initially proposed
http://www.w3.org/Protocols/HTTP/Methods.html )
and that this could be done by sending a SPARQL body.
Then if those resources all behave in all other respects as an LDPC then
those resources are ldp:Containers. If you want to be more specific about those
that also support SEARCH then you can create a subclass of ldp:Container
ldp:SContainer rdfs:subClassOf ldp:Container;
rdfs:comment "the set of ldp:Containers that also support the SEARCH method ..." .
Then you could write
<> a ldp:SContainer;
ldp:contains <m1>, <m2>, <m3> .
Btw, just to show that I am not making this up here but that I have been
quite consistent with this view you can check my Issue-50 on intuitive containers
http://lists.w3.org/Archives/Public/public-ldp-wg/2013Feb/0134.html
Btw, if you look at the discussions along these lines subclassing has been
a constant theme throughout.
Anyway, SEARCH is not such a bad idea. Perhaps we could add it to our spec now :-)
>
>
>> Being a member of the ldp:Container class is to behave the way the spec says those resources
>> should behave. On a GET they return a Graph, on a POST they create something, etc...
>>
>> Hence there is no problem with
>>
>> <> a ldp:Container .
>>
>> So you can also have something like
>>
>> <> ldp:interaction ldp:Container .
>>
>> but that would just end up implying the first anyway.
>>
>>
>> Henry
>>>> The representation returned is something that can
>>>> be interpreted in terms of a graph, and whose content describes a set of
>>>> possibilities. In the case of { <> a ldp:Container }, the graph returned
>>>> as the representation describes the resource as being one of the objects which
>>>> can be interacted with according to the ldp spec.
>>>>
>>>> This is just basic REST: Representation of State Transfer. The representation is
>>>> a represntation of a _Resource_ referred to by a URI.
>>>>
>>>> Henry
>>>>
>>>>
>>>>>>
>>>>>> Henry
>>>>>>
>>>>>>
>>>>>> Social Web Architect
>>>>>> http://bblfish.net/
>>>>>>
>>>>>
>>>>>
>>
>> Social Web Architect
>> http://bblfish.net/
>>
>
> --
> -ericP
>
> office: +1.617.599.3509
> mobile: +33.6.80.80.35.59
>
> (eric@w3.org)
> Feel free to forward this message to any list for any purpose other than
> email address distribution.
>
> There are subtle nuances encoded in font variation and clever layout
> which can only be seen by printing this message on high-clay paper.
Social Web Architect
http://bblfish.net/
Received on Saturday, 25 January 2014 10:02:05 UTC