abstract identifier: definition seems to be missing something

I don't see how to make sense of this
"MUST NOT resolve directly to a representation"
in
  http://wiki.oasis-open.org/xri/AbstractIdentifierArchitecture
  last edited 2008-09-04 01:42:20

Consider:

a1 resolves to d1
d1 contains c2
c2 resolves to r2

So a1 is abstract, right?

But then I can make another resolution mechanism
by composing the original "resolves to"
with extracting concrete identifiers from
descriptions and resolving them:

def resolves2(ident):
   try:
     r = resolve(ident)
     return r
   except OnlyDescriptionAvailable, d:
     for c in d.concrete_identifiers():
       try:
         r = resolve2(c)
         if r: return r
       except:
         pass

now resolves2(a) = r2. So I guess a
isn't abstract after all.

Perhaps it would make sense to define
abstractness _with respect to a given resolution mechanism_ a la:

  Identifier I for resource X is abstract with respect
  to resolution mechanism L there
  is no representation R of X where L resolves A to R.

All this is to say: whether an identifier is abstract
or not is not a property of the identifier itself.
Is info:abcdef abstract? Well, maybe today, but if
the connection between that sort of identifier and
representations of the resources they refer to
is sufficiently valuable, someone will deploy a
new resolution service, and suddenly info:abcdef
is no longer abstract.

-- 
Dan Connolly, W3C http://www.w3.org/People/Connolly/
gpg D3C2 887B 0F92 6005 C541  0875 0F91 96DE 6E52 C29E

Received on Thursday, 18 September 2008 16:35:36 UTC