Re: Reviving HTTP Header Linking: Some code and use-cases

Julian Reschke wrote:
> Harry Halpin wrote:
>>> We were sort of stuck with the naming of link relations; is this a
>>> single space for HTML link elements, Atom link elements, and HTTP Link
>>> headers? If yes, what's the syntax, and where does the registry go?
>> I think Profile would answer that, by allowing the Link's to be typed on
>> the HTTP level as regards "naming link relations."
>
> Are we talking about the link relation name? Would it be problematic
> to just use "transformation"? (assuming there would be a registry)
Yep, naming link relations via profile. That would work, but we would
prefer to just keep using URIs in Profile and Link. It's more
decentralized and allows an application to "follow-our nose" to find out
more info about GRDDL in general and the particular GRDDL transform in
particular. 

Right now we use "http://www.w3.org/2003/g/data-view" as our profile URI
both in our HTML and in the code that implements the HTTP Header
test-case (which is non-normative due to dependency on this Profile).
Then for our Link we have a link to the URI with the transform (i.e.
usually a XSLT).
>> I tend to think of all the link relations being one single space, with
>> serializations in HTML/Atom/HTTP Link. I believe Mark's last draft says
>> re Profile "The Profile field is semantically equivalent to the profile
>> attribute of the HEAD element in HTML [W3C.REC-html401-19991224].  Note,
>> however, that its use is not limited to HTML entities" and for Link "
>> The Link field is semantically equivalent to the <LINK> element in
>> HTML." Is there any argument why this should not be so?
>
> No, I think this is fine.
>
> The problem I see is that the definition of the Profile attribute in
> HTML 4 is sort of weak. It allows multiple profiles, but if you do
> multiple profiles (such as for multiple microformats), it can't be
> used for disambiguation (ha! missing prefixes :-).
>
> So when defining new link relations, I think it's wise to do so in a
> way that doesn't rely on profiles.
That's a very good point. What our code currently does is, if it sees a
single GRDDL Profile header, then it assumes all the Links might be to
GRDDL transforms. Ditto with multiple Profiles. If it does not see a
GRDDL Profile header, we don't follow the Link header URIs.  While it's
not exact disambiguation (which would be better, but I cannot see how
that would be accomplished without demanding a 1:1 relationship between
Profiles and Headers, which would disturb some other use-cases), it
gives one a smaller space of possible URIs to "follow-our-nose", and
does disambiguate if only one Profile URI or one Link URI is given.

In essence, a GRDDL Profile URI is about the best message one can give
that the author intends the page to be GRDDL'ed. A Link with a GRDDL
transform is also by itself a pretty good message, but not great, since
the author may just be using something like microformats but does not
want their page to have a RDF version. In our spec, we call it author
"licensing" the GRDDL transform.
e say it is possible for non-licensed transforms to be followed, but
they may not preserve the meaning that the author of the document
intends and thus are inherently not safe.

[snip]
>>> I totally agree that it would be good to make progress, but I'm not
>>> sure it's required for your work to proceed.
>>> After all, the Link header *is* defined by RFC2068, so if you stick to
>>> that definition and do stick to a simple link relation name, I
>>> wouldn't expect any problems.
>> I think it's the combo of Link and Profile that would make us truly
>> happy, and it's what our code uses. Profile is not in that RFC.
>>> Q: do you really need "Profile"?
>> Profile is in general needed to type the Links. Otherwise, it might not
>> be a GRDDL Link, it could be a Link to anything. Does that make sense?
>
> Maybe I'm missing something, but
> <http://www.w3.org/TR/2007/WD-grddl-20070302/#grddlvocab> seems to
> indicate that there is a single link relation -- "transform". Are
> there other kinds of GRDDL link relations?
We use a single URI, "http://www.w3.org/2003/g/data-view" as our profile.
>
> And if there are, exactly what problem does "Profile" use for you? Can
> you provide an example?
Since Link is already approved in an earlier RFC and could be used for
all sorts of things (i.e. currently there is large discussion of using
it to distinguish between different types of SemWeb resources in
www-tag, etc.), we don't "follow the link" looking for a GRDDL unless it
has the GRDDL Profile URI specified in the HTTP Header.
>
> BR, Julian
>
> PS: I'm really trying to understand whether Profile is going to help
> here.
Thanks for your time and patience. I'm just trying to describe what we
currently do. We can change if it necessary, but we thought HTTP folks
would at least want to know. We thought Profile and Link were a good
combo together.



-- 
		-harry

Harry Halpin,  University of Edinburgh 
http://www.ibiblio.org/hhalpin 6B522426

Received on Tuesday, 11 March 2008 11:09:22 UTC