Using two URIs for the same thing

I'm trying to do something totally reasonable with RDF and the web,
but I find myself going against a WebArch "good practice".  How could
I possibly do this better?  This smells to me like a leak in WebArch
notion of URIs, but I brought it here because it's close enough to the
hoses connecting WebArch to RDF Semantics.

We have four URIs:

  (M1) http://www.w3.org/2002/03owlt/equivalentClass/Manifest003#test

      This is what the WebOnt WG decided to name a particular OWL
      test.  You, as a human or machine, can learn more about the test
      by dereferencing the URI (doing an HTTP GET).  You should get
      back some RDF/XML information about the test.  A nicely
      formatted version of that information (plus some more you'd get
      by following some more links) is at:

  (H1) http://www.w3.org/TR/owl-test/L#equivalentClass-003


      Meanwhile, I've been assembling an aggregation of results for
      OWL tests.  As a human, today, you can visit 

  (H2) http://www.w3.org/2003/08/owl-systems/test-results-out#test57

      and see a row in a table about this test.   You'll see it's a
      pretty easy one.  (Even my fairly-lame OWL reasoner passed it!)

      That's also not a very stable fragment id.  Next week it might
      land you on the results of another test.  Sorry.  But that's
      part of what I'm trying to fix.

      Mostly, though, I want to allow more varied views of the same
      data.  I want to provide that data in RDF!  I think the right
      approach is to use a URI like 

  (M2) http://www.w3.org/2003/08/owl-systems/test/equivalentClass-003#test

      which can be used in RDF like M1, denoting the same test, but
      which on dereference provides the test results data, along with
      a triple saying it's owl:sameAs M1. [1]

This seems reasonable, doesn't it?  Two names for the same thing; when
you follow them you get information about the thing; you get different
information when you follow different names.  For some applications
you'll use the first name, for others the second.  There are other
people building test-results browsers; they should have access to the
same data.

Useful, practical, easy to do, and...  seemingly contrary to TAG
advice.  The current WebArch document says, "If a URI has been
assigned to a resource, Web agents SHOULD refer to the resource using
the same URI, character for character."  [2]

So where is the breakdown here?

Is this just the normal RFC 2119 escape from a "SHOULD": "there may
exist valid reasons in particular circumstances to ignore a particular
item, but the full implications must be understood and carefully
weighed before choosing a different course."   If so, I wish the
document would spell this out better, saying what some reasonable
exceptions might be.

It seems to me a lot like having two web pages about the same topic.
Surely that's not something Web Arch wants to warn against.  

Maybe this is just a natural outgrowth of using URIs simultaneously as
(1) logical constant symbols naming objects in some domain of
discourse and (2) network addresses naming virtual end-points for
communication.  Since we're using them in two ways at the same time,
they can be equivalent in one way, while being completely different in
another.   

     -- sandro



[1] Actually, I want to use 303-See-Other redirection instead of a
    fragment URI, so I can merge in the human-readable view as well,
    but that's orthogonal, so I'll pretend otherwise for now.
[2] http://www.w3.org/TR/2003/WD-webarch-20031001/#identifiers-comparison

Received on Thursday, 16 October 2003 15:15:56 UTC