[DAS2] [DAS] [Fwd: Re: Writeback implementation]
Gregg Helt
gregghelt at gmail.com
Wed Oct 29 23:39:49 UTC 2008
You're right, I'm still being sloppy about my terminology.
I've used the term "relative URI" as it's specified in the predecessor to
RFC 3986, RFC 2396 <http://www.ietf.org/rfc/rfc2396.txt> . Apologies, many
of my conversations about the merits of URIs predate the release of RFC 3986
in 2005 -- old habits die hard. And many specs still use the term "relative
URI". But I'll try not say "relative URI" any more. On the other hand, I
_really_ dislike the term "relative reference" because it's so generic, with
no indication of a relation to URIs in the term. So if it's okay from now
on I'll use the term "relative URI reference" for what I've been calling
"relative URI" and what RFC 3986 calls "relative reference".
Argument via Google for using "relative URI reference":
Search for "relative uri reference" -- 9,130 hits, all on first two pages
are relevant
Search for "relative reference" -- 272,000 hits, _none_ on first two pages
are relevant, they're either using "relative reference" as a general
computer science term or specifically in relation to Excel.
So let me rephrase. Every feature in DAS/2.0 has a unique URI. In the
feature XML this is represented by the "uri" attribute of the FEATURE
element, which is a URI reference (URI or relative URI reference), and
optional xml:base attributes in the document. DAS/2.0 uses the XML Base
specification <http://www.w3.org/TR/xmlbase/> to resolve relative URI
references via xml:base attributes and/or the URI the document is a
representation of.
So as you suggested, URI references are used in DAS/2.0 to optionally allow
shorthand in the XML for URIs.
Also as you suggested, the Trellis/Ivy DAS1-->DAS2 proxy uses "./" prefixing
to try and make relative URI references out of DAS1 IDs when the ID by
itself is neither a URI nor a relative URI reference.
So many specs, so little time...
Gregg
On Wed, Oct 29, 2008 at 3:43 PM, Garret Wilson <garret at globalmentor.com>wrote:
> 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
>> <andy.jenkinson at ebi.ac.uk>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
>> DAS2 at lists.open-bio.org
>> http://lists.open-bio.org/mailman/listinfo/das2
>>
>>
>
More information about the DAS2
mailing list