abstractComponentRefs-37 & RDDL

At our last telecon, the TAG accepted this new issue, with some concern 
because there is overlap with existing issues (rdfmsQnameUriMapping-6, 
namespaceDocument-8 at least).

I took an action item to post a few words on this.

I think the best place to start getting a feel for it is with Paul 
Cotton's note at


which encloses another note from Jonathan Marsh.  I encourage people to 
read Jonathan's statement of the problem.

Basically, they want to point to a structure inside an WSDL instance, 
and they want to use an XPointer-type thing to do.  The only real handle 
shared between sender and receiver they have to start with is the 
namespace defined for the WSDL, i.e they might not have a pointer to the 
WSDL itself, for good reasons such as having local behind-the-firewall 
copies and so on.  So they're proposing just doing something along the 
lines of


As Jonathan points out, this is bogus, the semantic of a fragment 
identifier depends on the media-type of the representation you get back 
when you dereference the URI.  Since that could conceivably be an HTML 
document, an RDF document, an XML Schema, or who knows what, the use of 
the #fragment notation here seems just basically broken.

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

1. Use a namespace name as a basis for shared identification
2. Have a hierarchical naming setup inside something like a
    WSDL instance
3. Tie #1 and #2 together into a URI, because URIs are useful

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

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

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

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


So the stuff after the "#wsdl/" is treated as a fragment identifier in 
the related-resource which the link identified by #wsdl points at.  This 
could all be done perfectly legally by registering a media-type for RDDL 
and saying this is how fragments behave.  And in fact, it is fairly true 
to the basic semantic of #fragments, namely you have to fetch the RDDL 
to find out what the #wsdl points at so you can figure out what to do 
with the rest of the fragment.  On the other hand, that '#' jammed in 
the middle of of the URI is perhaps troubling.

This is no more than a V.001 strawman, but at this point I kind of like 
it.  Feedback?
Cheers, Tim Bray
         (ongoing fragmented essay: http://www.tbray.org/ongoing/)

Received on Monday, 31 March 2003 01:44:41 UTC