W3C home > Mailing lists > Public > public-semweb-lifesci@w3.org > July 2006

Re: [BioRDF] All about the LSID URI/URN

From: Sean Martin <sjmm@us.ibm.com>
Date: Wed, 12 Jul 2006 09:16:26 -0400
To: public-semweb-lifesci@w3.org, Alan Ruttenberg <alanruttenberg@gmail.com>
Cc: Dan Connolly <connolly@w3.org>
Message-ID: <OF6821AE02.E735BE73-ON852571A9.0040FAF5-852571A9.0048F942@us.ibm.com>
Hello Alan,
The short answer is that only some parts of what the LSID scheme does 
could be done using the means you suggest. The reason for this is that 
what you outline is more or less part of the LSID resolution process under 
the covers. However in the end it would not meet a number the original 
requirements and would require new infrastructural mechanisms that 
somewhat defeat the purpose of sticking with http://. 

Let me respond with comments embedded below:

public-semweb-lifesci-request@w3.org wrote on 07/07/2006 04:52:01 PM:

> 
> Sean, couldn't what LSID achieves be done, for instance, by having a 
> convention that if someone dereferences, for example,
> 
> http://bla.com/path/to/document/foo.lsid
>

As you initially start with a URL, you obviously have the initial location 
and protocol dependency issues raised but not addressed in earlier posts. 
In summary it is my experience that when one names existing objects with 
long persistence that are intended for wide area distributions it is both 
prudent and practical to separate that name from the mechanism for 
resolution. 

Also because you use a URL you are forced to always dereference it to 
understand its current contract. One cannot programmatically tell the 
difference in contracts between http://bla.com/path/to/document/foo.lsid 
and http://www.cnn.com/index.html without dereferencing both of them and 
locally storing and then comparing details of their particular contracts. 
This means that one cannot just safely assume that the name string 
http://www.cnn.com/index.html names something that is the same 
http://www.cnn.com/index.html a day later. Nor that the object someone 
sent me named http://bla.com/path/to/document/foo.lsid is the same as the 
object I can retrieve if I dereference 
http://bla.com/path/to/document/foo.lsid right now. 

Should the person who sent me an object also send me a copy of the 
persistence policy perhaps? How often does one go back in ones email and 
click on URL links that are now broken? How many binary attachments do you 
have in your email that you cannot figure out what their data source was 
without opening them up and doing some human level heuristics or perhaps 
doing a Google string match? These are the sorts of problems that the LSID 
addresses but of course not just for email.

> 
> it is understood to obey a protocol, namely to return a snippet of 
> rdf that says, here's a handle to my metadata, here's a handle to my 
> data, here's my machine readable persistence policy.  Or instead of 
> returning rdf, the link response mentioned in http://www.w3.org/2001/ 
> tag/doc/URNsAndRegistries-50.html could be used to point to the 
> auxillary information.

This is similar to the LSID scheme, except that LSID resolution uses a 
WSDL document to communicate the possible data and metadata service 
end-points. Since the LSID scheme only has one contract regarding 
persistence (the hard rule that the LSID may never be reused to name any 
other bytes), there is no need to pass persistence information. This means 
that the LSID string alone can be used to compare for equality between 
objects. For the caching of metadata (which can change over time) the LSID 
scheme defers to the transport mechanism over which that metadata was 
obtained for an indication the length of time the metadata should 
considered valid. This is one area where I believe the LSID standard 
should be improved so as to formally address both persistent and 
non-persistent metadata and is something the caBIG folks wanted. 

> 
> And if that persistence policy says that the data is immutable, then 
> you can comfortably store it, and use this URI for as a handle for 
> resolving, in the same way an LSID can be resolved by an http service
> 
> http://lsid.company.net/resolver/http://bla.com/path/to/document/ 
> foo.lsid
> 
> The resolved could pull back whatever information you have locally, 
> return source information, or redirect to the id, like a click through.

Note that this would require new proxy and browser client infrastructure 
that can understand how to interpret and act on these policies and this 
higher level protocol. The behavior on existing infrastructure would 
likely be broken as one could not just put one of these URIs into a 
browser or proxy server and have it do the right things. This weakens the 
argument that the reason we are so keen to only use http:// URLs as URIs 
is because of all the deployed existing infrastructure makes adoption 
easier. The part of the web infrastructure that would just work today is 
also the exact same part of the infrastructure that the LSID resolution 
scheme uses.

> 
> This seems to satisfy the requirement that you can tell what sort of 
> thing it is from looking at it, as well as the desired ability to 

I am not sure what you mean by `looking` at it here. Do you mean without 
deference or after inspection by dereference?  For LSIDs the contract is 
clear without dereference, but for URLs I cannot see how that can be true.
 
> cache and indirect.
> 
> More generally any social convention that we use can accomplish the 
> same thing - a provider could say (in a robots.txt-like file, or as a 
> published policy) that certain paths in its tree have this sort of 
> metadata available and should be treated like an lsid would.

Again this requires standards & infrastructure to interpret and apply the 
difference contracts, particularly if this must be machine-readable. The 
more sophisticated and/or `wooly` it is, the less likely we are to see 
adoption. Each time one retrieves an object one would need to check (and 
perhaps store) the contract/policy too. Comparisons simply cannot be made 
of URI simple name strings to determine equality of the object named. 

Finally, I would like to add an unrelated comment about one of the 
practical aspects of LSIDs that we find useful here. This is in the area 
of local/distributed/offline vs. online/centralized naming and access. 
Because the LSID named object is not tied to any particular place or 
protocol, objects can be created and accessed locally on ones own machine 
(perhaps offline) using exactly the same name that they will be accessed 
with when they are uploaded and made public to a wider group or to the 
internet as a whole. Software we write for locally creating or accessing 
LSID data can be the same as that for accessing LSIDs across the network 
and it makes no difference whether the LSIDs have been uploaded or not. 
One has none of the worries of maintaining a relative link structures or 
hard coding and then having to recode URL absolute references or even 
finding one now has to use a new (longer) name once the object is uploaded 
to a distribution service end-point.

Kindest regards, Sean

PS, I was amused to recently realize the irony of you playing the 
(extremely useful) part of devil's advocate on this topic. I don?t know if 
you realize it, but my understanding is that the original LSID  was based 
on work at Millennium. ;-)


--

Sean Martin
IBM Corp. 
Received on Wednesday, 12 July 2006 13:16:50 GMT

This archive was generated by hypermail 2.3.1 : Tuesday, 26 March 2013 18:00:44 GMT