capabilities lookup: it's the meta ...

Peter Davis peter.davis at neustar.biz
Wed Nov 16 12:31:19 PST 2005


This debate has much history @ the W3C, FWIW, at [1], with still no clear w3
recommendation on the matter. [2] has some interesting thoughts on the pros
and cons on the subject, and nearby [3] as well.

The two main camps debating this within the SEMWEB community is <link> vs
'Accept:'.  If you are using a LID/openID URI as the 'identifier'
(http://example.foo/me) for an identity, and you seek metadata about this
identifier (eg what are it's capabilities), then I think this _is_ a
specific representation of the resource identified by http://example.foo/me

Personally, I think what you end up with is BOTH.  Some can hack HTTP
headers, others will not be able to (like my blogspot blog), in which case,
I can simply insert XRDI directly into the (HTML?) representation of the
resource located at http://example.foo/me, or p[lace a <link> element there.

'YADIS UserAgents/Clients' which supported content negotiation may try that
first, followed by scanning the HTML for either embedded XRDI or a linked
XRID.

=peterd 


[1] http://www.w3.org/2001/sw/
[2] http://esw.w3.org/topic/EmbeddingRDFinHTML
[3] http://esw.w3.org/topic/SlashRedirection

On 11/16/2005 12:36 PM, "Ernst Johannes" <jernst+lists.danga.com at netmesh.us>
wrote:

> Something else had been bothering me about some of the capabilities
> lookup alternatives that we'd been discussing. I hadn't quite been
> able to put it into words, but finally, now I know what it is ... and
> I'm eager to share ;-)
> 
> FIrst, a rehash.
> 
> The operation that we are trying to define is
> "given this URL, tell me what its capabilities are"
> 
> Then, an insight.
> 
> This is, if there ever was one, a "meta" traversal. Similar to
> "given a Java/C#/Perl/PHP/whatever object, tell me what methods I can
> invoke on it", or
> "given a URL, tell me what its properties are" (like the PROPFIND
> method in WebDAV)
> 
> Conceptually:
> This is not about obtaining the resource according to a different
> surface representation.
> This is also not about qualifying the GET operation of the URL with
> additional parameters.
> This is a genuinely new kind of method, a "META" method, so to speak:
> we are not attempting to "GET" the resource, or "POST" or "PUT" or
> "DELETE" etc. -- instead, we are asking for its meta-data. (well, a
> particular kind of its meta-data, namely what YADIS calls its
> capabilities)
> 
> This is worth repeating: It is a GET, but not of the resource, but of
> its meta-data.
> 
> Maybe the best parallel, in a language such as Java, would be
> "given this object, tell me what interfaces it supports". (please
> interpret the word "interfaces" loosely here, on the same abstraction
> level as capabilities in YADIS, I don't mean to talk about GET and
> POST etc.) as opposed to "give me an HTML or TXT or Serialized
> representation of the object" which would be an entirely different
> kind of request.
> 
> So ...
>   ... the conceptually cleanest way to support this "meta" operation
> would be to add a new verb to HTTP ("GETMETA" comes to mind) -- like
> WebDAV did. In fact, there are many parallels here because a big
> chunk of what WebDAV is all about is to deal with additional meta-
> data that plain HTTP knows nothing about.
>   ... but assuming we don't want to define additional verbs for the
> REST / HTTP vocabulary, which would probably be a bad idea for a
> range of other reasons
>   ... assuming that you guys agree with me that "meta" is really what
> this is all about
>   ... the engineering problem in front of us seems to be:
> 
> "given that we have a genuinely different kind of operation on a URL
> than people normally do these days" (side note: I very much agree
> with Mart's comment on the wiki that this capabilities/meta lookup is
> going to be much more broadly useful than "just" for identity) "how
> are we best going to use the means at our disposal to emulate this
> new operation?"
> 
> Is that an accurate description of the problem?
> 
> Note that any "meta" operation (whether in YADIS or wherever) is
> genuinely orthogonal to any parameters that specify which format the
> client wants the response to be in. Just like in plain normal use of
> HTTP, as a client I should be able to say "I like HTML better than
> PDF better than TXT" (if I'm a human) vs. "I like XML only" (if I'm a
> machine) for the meta-data of the URL, not just the resource behind
> the URL.
> 
> That's the other thing that has bothered me in the current proposals
> without being able to express it so far: we seem to have assumed that
> the capability query only makes sense for machine clients. But upon
> reflection, I don't think so: as a human, I also want to know what a
> given URL can do, and I want to know in HTML because I like it better
> than PDF better than TXT and I don't like XML. (Just as an example
> for the preferences of a human client).
> 
> Ergo, the "Accept" specification is, and must be, orthogonal to the
> "Meta" specification (in whatever form we will settle on), in order
> to be architecturally clean.
> 
> In other words, I have decided to be very much against (sorry, guys)
> using the Accept header to emulate a "Meta" operation because it
> collapses two orthogonal things onto the same dimension, and that is
> a big no-no in the architecture book that I'm following ... because
> sooner or later, we'd want to disentangle the orthogonal dimensions
> and we won't be able to if we go down that route.
> 
> Can we agree on whether this is an accurate description of the
> problem first before figuring out what that means for the protocol? I
> would have a proposal that turns out to be only a minor
> modification ... but problem description first.
> 
> 
> 
> 
> Johannes Ernst
>   http://netmesh.info/jernst
> 
> 
> 

=peterd  (http://public.xdi.org/=peterd)



More information about the yadis mailing list