- 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