- From: Henry Story <henry.story@bblfish.net>
- Date: Fri, 17 Jan 2014 21:31:26 +0100
- To: Eric Prud'hommeaux <eric@w3.org>
- Cc: "Kingsley (Uyi) Idehen" <kidehen@openlinksw.com>, Linked Data Platform WG <public-ldp-wg@w3.org>
On 17 Jan 2014, at 19:45, Eric Prud'hommeaux <eric@w3.org> wrote:
> * Henry Story <henry.story@bblfish.net> [2014-01-17 12:12+0100]
>>
>> On 17 Jan 2014, at 01:00, Eric Prud'hommeaux <eric@w3.org> wrote:
>>
>>> On Jan 15, 2014 7:56 PM, "Kingsley Idehen" <kidehen@openlinksw.com> wrote:
>>>>
>>>> On 1/15/14 10:06 AM, Henry Story wrote:
>>>>>
>>>>> In short: the argument that rdf:type is problematic does not hold.
>>>>
>>>> +1
>>>>
>>>> rdf:type is only problematic if we aren't using RDF [1] at all. We are either using RDF or we aren't.
>>>
>>> We are, or at least were, taking about protocol headers, i.e. HTTP, not RDF. The convention in HTTP is to use rel=profile for labeling the interaction model.
>>
>> So we are progressing here.
>>
>> The protocol headers, contain information. All information can be expressed in RDF. So we can
>> express this information in RDF. This then allows us to reason more carefully about these things.
>> This is especially clear with the the Web Linking header of rfc 5988, which allows one to specify
>> any subject, any type of relation, and any object of the relation.
>>
>> Having then established that rdf:type is not a problem [1], we can now look if there is a better relation
>> to be used.
>>
>> the rel=profile relation is defined in the informational rfc 6906
>> http://tools.ietf.org/search/rfc6906
>>
>> Here is one passage I have extracted from the above RFC
>>
>> [[
>> The concept of a profile has no strict definition on the Internet or
>> on the web. For the purpose of this specification, a profile can be
>> described as additional semantics that can be used to process a
>> resource representation, such as constraints, conventions,
>> extensions, or any other aspects that do not alter the basic media
>> type semantics. A profile MUST NOT change the semantics of the
>> resource representation when processed without profile knowledge, so
>> that clients both with and without knowledge of a profiled resource
>> can safely use the same representation. While this specification
>> associates profiles with resource representations, creators and users
>> of profiles MAY define and manage them in a way that allows them to
>> be used across media types; thus, they could be associated with a
>> resource, independent of their representations (i.e., using the same
>> profile URI for different media types). However, such a design is
>> outside of the scope of this specification, and clients SHOULD treat
>> profiles as being associated with a resource representation.
>> ]]
>>
>> This is quite a specific relation. It speaks of
>>
>> • adding additional semantics to process a resource representation
>> • that these semantics should not alter the basic media type semantics of the content
>>
>> These two requirements seem quite contradictory with respect to RDF. It is not clear at all
>> what additional semantics to process RDF would be, especially if these are not meant to alter
>> the semantics of RDF serialisations.
>
> Your excerpts above are perfectly consistent with the convention of
> using a particular rel to express the interaction model.
Yes, you can use "a particular" rel to express an interaction model. I agree,
since I believe that the set of ldp:Containers are those resources with which
one can interact in ways defined by the LDP spec, i.e. those resources which
are in the rdf:type relation to rdf:Container.
But the rel proposed is the "profile" rel from the RFC I quote from, and it makes
no mention of interaction models as far as I can see. Can you perhaps make
clear how you come to the conclusion that there is? Presumably the definition of
"profile" should not just not be inconsistent with there being a relation that
relates something to an interaction model, but should also be one that does
say something about interaction models.
> The are also consistent with the laudable goal of not conflating an objects's
> intrinsic data properties with the interface offered for that object.
> This is critical in systems that permit only one type assertion, such
> as a media type, but also applies to systems with n types such as RDF.
I don't know what system you mean that permits only one type assertion.
Surely it can't be HTTP since it allows the Link header which allows rdf:type
assertions.... ?
I think one should not take the "type" in media type too seriously. Think of it
as a relation from an object to a string. As I mentioned previously you
can always create a new type from such a relation. Lets says we have the
mimeType relation. Then we can create the HTML class of objects with the
following OWL:
:HTML a owl:Class;
owl:equivalentClass [ a owl:Restriction;
owl:hasValue "text/html";
owl:onProperty :mimeType ] .
which in SPARQL would amount to something like the following
rule
CONSTRUCT { ?representation a :HTML }
WHERE {
?representation :mimeType "text/html" .
}
> It's semantically much clearer to use a property to identify a media
> type than to mix it in with the types.
Psychologically it may be more natural, but you get equivalences quite
easily.
> Querying for the property is
> trivial while sorting out the types that define an interaction model
> introduces unnecessary complexity.
Can you explain some of this complexity?
>
> Apart from how we would best model types vs. interaction models, we
> are good netizens who use HTTP headers as the are intended, and
> rel=profile is intended to communicate the interaction model.
I read RFC 6906 carefully and I don't see how you can say that "profile"
as defined there is intended to communicate the interaction model.
>
>
>> Further down this is made clearer yet again:
>>
>> [[
>> A media type defines both the semantics and the serialization of a
>> specific type of content. In many cases, media types have some
>> built-in extensibility or openness, so that specific instances of the
>> media type can layer additional semantics on top of the media type's
>> foundation. In this case, a profile is the appropriate mechanism to
>> signal that the original semantics and processing model of the media
>> type still apply, but that an additional processing model can be used
>> to extract additional semantics. This is in contrast to a new media
>> type that, instead of just adding processing rules and semantics
>> defines a complete set of processing rules and semantics in most
>> cases. As an example, XHTML is not a profile of XML but a new media
>> type because it introduces a complete new perspective of the
>> underlying XML structures, and from the XHTML point of view, exposing
>> the raw XML is not all that useful for clients.
>> ]]
>>
>> So I really don't see how the profile here has anything to do with what we have been discussing
>> here, namely the interaction constraints that a resource that is an LDPC has. Being an LDPC has
>> nothing to do with the interpretation of the representation returned by the LDPC. An LDPC is
>> a resource that supports certain types of interactions: GET, POST, etc as described by the
>> spec. These are interactions types. Profiles is something completely different.
>>
>> Henry
>>
>>
>> [1] http://lists.w3.org/Archives/Public/public-ldp-wg/2014Jan/0049.html
>>
>>
>> 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 Friday, 17 January 2014 20:32:34 UTC