- From: Benja Fallenstein <b.fallenstein@gmx.de>
- Date: Sun, 06 Jul 2003 01:30:08 +0200
- To: Patrick.Stickler@nokia.com
- CC: rdf-i <www-rdf-interest@w3.org>
Dear Patrick,
reading the URIQA spec at
http://216.239.39.100/search?q=cache:HHP1uPSr1EUJ:sw.nokia.com/URIQA.html+uriqa&hl=en&ie=UTF-8
(for some reason I cannot access sw.nokia.com at the moment), I'm left
wondering about two points. I would expect to be able to use the URIQA
interface to query any information I need about a resource from its
authoriative server, but if I'm not missing something, this would not be
possible.
First, the directionality in concise bounded resource descriptions seems
an arbitrary restriction that means I cannot query many, but not all
statements about a resource. Unless the vocabulary in use has been
designed to be used with URIQA, I may be missing out on something
important. For example, consider this graph:
<http://example.org/> homePageOf <http://example.org/institute>.
<http://example.org/institute> rdf:label "The Foo insititute" .
<http://example.org/institute> founded "2003-03-17" .
If I start from http://example.org/, all is fine; I can find the
institute URI and then query its own description to get the name and
founding date.
But if I start at http://example.org/institute, I have no way of finding
out about its home page, even though the semweb server knows about it
and this can certainly be considered crucial information regarding the
institute.
There could of course be an inverse hasHomePage property, but why add
this if it isn't necessary, except for URIQA?
It would seem much better to make the concise bounded description go
both forward and backward-- i.e., also include statements in which the
queried URI is an *object*, and so on.
Second, the concise bounded description may include URIs not under the
authority of the same web server, and yet the knowledge this server has
about that URI may be crucial in interpreting the meaning of the
statements served by the server. We can query this information using the
URIQA servlet, but the reason for the HTTP extension to exist in the
first place is that we may not know the location of the authoriative
servlet in advance-- yet the HTTP extension doesn't seem to offer any
way to discover it.
As an example, consider this graph:
<http://example.org> ex:hasCreator _:x .
_:x foaf:name "Jane Tripleson" .
_:x foaf:mailbox <mailto:triples@example.org> .
This is straight-forward enough, but consider this graph:
<http://example.org> ex:hasCreator
<urn:urn-5:gK0wObL42bRyFllUsU+8cPL5cQBi> .
<urn:urn-5:gK0wObL42bRyFllUsU+8cPL5cQBi>
foaf:name "Jane Tripleson" .
<urn:urn-5:gK0wObL42bRyFllUsU+8cPL5cQBi>
foaf:mailbox <mailto:triples@example.org> .
(A urn-5 is just a random number which is long enough to be unique, see
http://www.iana.org/assignments/urn-informal/urn-5 .)
This graph is perfectly valid-- but using URIQA, as far as I can see I
can only retrieve a triple that means exactly nothing to me, without a
way to find out more.
Ok, you could use
GET urn:urn-5:gK0wObL42bRyFllUsU+8cPL5cQBi HTTP/1.1
Host: something
using Host: to get this through proxies, but this would seem to violate
the HTTP spec--
The Host field value MUST represent the naming authority
of the origin server or gateway given by the original URL.
Besides, this wouldn't help with URIs containing fragids.
IMHO URIQA should simply provide the URI of its servlet in its HTTP
responses. (If this were also included in the response to OPTIONS, the
use of URI-Resolution-Mode could even be completely avoided, using
OPTIONS to find the servlet URI, then using the web service interface;
it seems to me that if URIQA clients supported this, servers could be
more easily configured for URIQA-- just add one header to the OPTIONS
response and plug in a normal servlet or CGI.)
- Benja
Received on Saturday, 5 July 2003 19:31:28 UTC