W3C home > Mailing lists > Public > www-tag@w3.org > March 2003

Re: abstractComponentRefs-37 & RDDL

From: Chris Lilley <chris@w3.org>
Date: Mon, 31 Mar 2003 12:19:13 +0200
Message-ID: <170158942515.20030331121913@w3.org>
To: Tim Bray <tbray@textuality.com>
CC: WWW-Tag <www-tag@w3.org>

On Monday, March 31, 2003, 8:44:39 AM, Tim wrote:

TB> Basically, they want to point to a structure inside an WSDL instance, 
TB> and they want to use an XPointer-type thing to do.

Okay.

TB>  The only real handle 
TB> shared between sender and receiver they have to start with is the 
TB> namespace defined for the WSDL, i.e they might not have a pointer to the 
TB> WSDL itself, for good reasons such as having local behind-the-firewall 
TB> copies and so on.

Um. Given *just* the namespace then that would match all their
messages that used that namespace, no?

TB>  So they're proposing just doing something along the
TB> lines of

TB>                  http://namespace..#xpointer

TB> As Jonathan points out, this is bogus,

OK so we are all starting from the same place here, this is bogus.

TB> the semantic of a fragment 
TB> identifier depends on the media-type of the representation you get back 
TB> when you dereference the URI.

Yes (although I am sure that we never imagined the semantic could
spread from 'various was to identify a fragment' to 'anything').

TB>  Since that could conceivably be an HTML 
TB> document, an RDF document, an XML Schema, or who knows what, the use of 
TB> the #fragment notation here seems just basically broken.

Thats your basic content-negotiation plus fragments no worky argument.

TB> However, I personally think the following are all reasonable things to 
TB> want to do:

TB> 1. Use a namespace name as a basis for shared identification

Of a single message, or of all messages in a collection that contain
that namespace?

TB> 2. Have a hierarchical naming setup inside something like a
TB>     WSDL instance

By virtue of being in XML it already has a hierarchy.

TB> 3. Tie #1 and #2 together into a URI, because URIs are useful

Yes. Note that your short list of requirements did not include a
necessity for an http URI; it might well end up as http if http is a
good fit. But notions of pointing to 'the same' message at different
locations, makes me think more of a mid-like scheme.

TB> So... if we don't want to accomplish #3 by abusing the #fragment 
TB> identifier, what can we do?

Well firstly you need to isolate down to one particular message rather
than all messages that use that namespace. Sounds a bit like string
matching or, better, like Xpath 2.0 or XQuery. Return the set of
messages that have these characteristics ....

TB> The best idea I've heard involves RDDL.  This isn't my idea, I forget 
TB> where I heard it first but suspect it might have been from Dave Orchard. 
TB>   Let's suppose that you have a RDDL that identifies 2 related 
TB> resources, and let's suppose that you require that pointers to related 
TB> resources have an ID so you can address them.

So you are indirecting through another document?

TB> http://example.com/ns/foo.rddl ==> RDDL for this namespace
TB>    foo.rddl#jar: Related (JavaClass) ==>http://example.com/jars/foo.jar
TB>    foo.rddl#wsdl: Related (WSDL) ==> http://example.com/WSDLs/foo.wsdl

TB> OK, now suppose I want to identify (using Jonathan's example) 
TB> "operation(TicketAgent/listFlights)" inside the WSDL.  I'm wondering if 
TB> you could bridge through the RDDL to get there with something along the 
TB> lines of

TB> http://example.com/ns/foo.rddl#wsdl/operation(TicketAgent/listFlights)

Um. Using a fragment gets you a fragment of the RDDL, now you need
some syntax to say 'get corresponding fragment' or some such to get
you to the other end of the arc. You have one end, you need to get to
the other end. Then, you need to have dereference operator that gets
you out of the RDDL document and off to where that thing points to.

TB> So the stuff after the "#wsdl/" is treated as a fragment identifier in 
TB> the related-resource which the link identified by #wsdl points at.  This 
TB> could all be done perfectly legally by registering a media-type for RDDL 
TB> and saying this is how fragments behave.

It could, but a more general syntax would seem more useful. This
doesn't seem specific to RDDL or to WSDL by any means.

TB>   And in fact, it is fairly true
TB> to the basic semantic of #fragments, namely you have to fetch the RDDL 
TB> to find out what the #wsdl points at so you can figure out what to do 
TB> with the rest of the fragment.  On the other hand, that '#' jammed in 
TB> the middle of of the URI is perhaps troubling.

Its not troubling, it just doesn't point to where you want it to
point.

Basically you have a syntax that says rddl[a] and you want one that
says rddl[b[a]]*#foo with the usual meanings for array indexing and
pointer dereferencing. Trying to cram this into one super overloaded
operator will not work and is a wart.

TB> This is no more than a V.001 strawman, but at this point I kind of like 
TB> it.  Feedback?



-- 
 Chris                            mailto:chris@w3.org
Received on Monday, 31 March 2003 05:19:19 GMT

This archive was generated by hypermail 2.2.0+W3C-0.50 : Thursday, 26 April 2012 12:47:16 GMT