- From: Tim Bray <tbray@textuality.com>
- Date: Sun, 30 Mar 2003 22:44:39 -0800
- To: WWW-Tag <www-tag@w3.org>
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
http://lists.w3.org/Archives/Public/www-tag/2003Feb/0207.html
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
http://namespace..#xpointer
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
http://example.com/ns/foo.rddl#wsdl/operation(TicketAgent/listFlights)
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