RE: What to do about namespace derived URI refs... (long)

> TimBL uses URI-References with URL bases for plenty of things, so I
> guess that he has no objections to that, but he doesn't use HTTP URLs
> (with no "#") as namespaces, per:-
> 
> [[[
> It is important, on the Semantic Web, to be clear about what is
> identified. An http: URI (without fragment identifier) necessarily
> identifies a generic document. This is because the HTTP server
> response about a URI can deleiver a rendition of (or location of, or
> apologies for) a document which is identified by the URI requested. A
> client which understands the http: protocol can immediately conclude
> that the fragementid-less URI is a generic document. This is true even
> if the publisher (owner of the DNS name) has decided not to run a
> server. Even if it just records the fact that the document is not
> available online, still a client knows it refers to a document. This
> means that identifiers for arbitrary RDF concepts should have fragment
> identifiers. This in term means that RDF namespaces should end with
> "#".
> ]]] - http://www.w3.org/DesignIssues/Fragment
> 
> I.e. not to use HTTP URIs rather than URI-References to identify
> arbitrary RDF concepts.
 

I think using fragment identifiers to "descend into meaning"
was a profound mistake, and that we will have to work hard to
recover from it. It conflicts with the use of fragments for
ordinary and necessary syntactic reference and processing, e.g.,
supposing one wanted to use XPointer for application/rdf+xml
MIME types.

If we want to keep backward compatibility, the only way out
I can see is to try and define the relationships more carefully:
some RDF relationships are relationships to the actual resource
or fragment identified by the Uniform Resource Identifier
(with Fragment Identifier appended), and some RDF relationships
are to the concepts that are described by them.

In the case of namespace names, the URI identifies a resource,
but the relationship is to the namespace which is described by
or identified by the URI. In the case of RDF assertions, 
it isn't the fact that there is a "#" at the end of the URI
reference, it's the fact that the nature of the assertion

rdf:RDF>
  <rdf:Description about="http://mycollege.edu/courses/6.001">
    <s:students>
      <rdf:Bag>
	<rdf:li resource="http://mycollege.edu/students/Amy"/>
	<rdf:li resource="http://mycollege.edu/students/Tim"/>
	<rdf:li resource="http://mycollege.edu/students/John"/>
	<rdf:li resource="http://mycollege.edu/students/Mary"/>
	<rdf:li resource="http://mycollege.edu/students/Sue"/>
      </rdf:Bag>
    </s:students>
  </rdf:Description>
</rdf:RDF>

isn't that the web page "http://mycollege.edu/students/Amy"
is a student of the web page "http://mycollege.edu/courses/6.001"
but rather than the person described by the former is a student
of the college course described by the latter. Sticking (or
removing) "#" from the end of the URIs doesn't help. After all,
perhaps you have a catalog of courses
   http://mycollege.edu/courses
and need to use a fragment identifier to get to a particular one:
       http://mycollege.edu/courses#6.001

"s:students" itself carries the responsibility of performing the
indirection between description and concept described.

This lets us leave namespace names as URI references by noting
that the xmlns relationship doesn't link to the resource but
to the 'namespace' corresponding to it, etc.

Larry
-- 
http://larry.masinter.net

Received on Thursday, 7 June 2001 12:48:25 UTC