Forgive me if I seem like I'm splitting hairs a bit here, but it may help to clear some of this up.

As RFC 3986 clarifies, there is no such thing as a "relative URI". All URIs are "absolute"---i.e. they start with a scheme.

There are, however, "URI references" which may be "URIs" (with a scheme) or "relative references". Relative references are a way to take advantage of the hierarchical nature of many URIs and store a shortened form of the URI in relation to some base URI---but they are not URIs.

The only way to tell if a URI reference is a URI or a relative reference is to check for ':', which indicates a URI scheme. Therefore, relative references may not have the character ':' within their first path segment. But that's not a problem---you can simply prefix the relative reference with "./"; thus, the ID "21:26029715,26029814" can easily be used as a relative reference in the form "./21:26029715,26029814". Again, this is not a URI---to create a URI, you have to resolve this relative reference against some base URI.

See RFC 3986 Sections 1.2.3. and 4.1.

Garret

Gregg Helt wrote:
Sorry for being imprecise about URIs, what I meant to say was that every
feature in DAS/2.0 has a unique _absolute_ URI.  Most IDs can be treated as
relative URIs but not absolute URIs, and referring to relative URIs is not
particularly useful outside their context.

Furthermore technically not all arbitrary ID strings can actually be
relative URIs either.  I thought this was mostly a theoretical issue until
my Trellis/Ivy DAS1-->DAS2 proxy choked on such a case on only the third
DAS1 data source I was testing,
http://www.ebi.ac.uk/das-srv/genomicdas/das/batman_CD4.  It returns features
that derive their IDs from their genomic location, like
"21:26029715,26029814".  Which can't be any form of URI, because according
to the URI syntax spec <http://tools.ietf.org/html/rfc3986> the appearance
of the colon before any forward slash means the "21" should be treated as
the URI scheme, but the scheme can't have a digit as the first character.
This isn't just a rare instance either -- I count at least sixteen data
sources like this (probably more) on ProServer servers for the latest human
genome assembly alone.  On a side note, I'm not sure if these IDs are legal
DAS1.53 feature IDs either, since many of them will not be unique within
their DAS server, and depeding on how you interpret the 1.53 spec the colon
may not be a legal ID character.

The Trellis/Ivy proxy now deals with these cases, but checking each ID to
see if it's a legal URI, and figuring out what to do if it's not, is
definitely adding some performance overhead to the proxy.

This also points to the need for better validation of server responses,
preferably as enhancements to the validation that the DAS1 registry already
does.  I doubt if the current DAS2 validator would catch these kinds of
things either.

I'll chime in with my opinion on the other issues you raise in another
email...

     Gregg

On Wed, Oct 29, 2008 at 12:04 PM, Andy Jenkinson
<[EMAIL PROTECTED]>wrote:

The difference between an ID and a URI is not so great, any ID can be a URI
if we refer to the URN definition.
_______________________________________________
DAS2 mailing list
[EMAIL PROTECTED]
http://lists.open-bio.org/mailman/listinfo/das2
_______________________________________________
DAS mailing list
[email protected]
http://lists.open-bio.org/mailman/listinfo/das

Reply via email to