Hi,
WSDL is a widely accepted W3C spec that is becoming increasingly
accepted worldwide (and is, generally, automatically generated
based on
your interface, so requires little or no manual construction), and
which solves a problem that we *know without any doubt* URLs cannot
solve.
I may be mistaken, but isn't WSDL just an XML format? I don't see how
it solves a problem that URLs "cannot solve"...wouldn't the
location of
"foo.wsdl" be best specified as a URL?
in fact, they [WSDL] are currently MORE POPULAR than RDF itself,
according to Google Trends
But the appropriate comparison is to URLs, not RDF...and the
advantage
of a URL is that there's tons of widely deployed, lightweight
technology for requesting data from a given URL (e.g. w/ a browser as
well as Perl/Python/etc. libraries) and for setting up web servers
(e.g. Apache).
I don't understand why it should be necessary to develop a
parallel set
of technologies (e.g. the Firefox LSID plugin, or HTTP proxies) for
resolving LSIDs, particularly when most (all?) of these tools seem to
be built on top of tools (such as Firefox) which can already do URL
resolution without downloading anything.
It would seem to me that the best way to get a reliable set of
canonical URIs is to get NCBI involved. As soon as NCBI published
a set
of canonical URIs (e.g. for genes in Entrez Gene, compounds in
Pubchem,
etc.) then everyone could use them with confidence. Reasons:
1) NCBI identifiers (even more so than EBI) are the de facto standard
and can be mapped to anything.
2) NCBI is well funded, has serious bandwidth, etc.
3) NCBI can be trusted to stick around for a long time and to
maintain/redirect old URLs, unlike a research lab or most companies.
4) In terms of registering new URIs, NCBI is already a standard
location for data submissions (w/ NCBI GEO, GAIN, etc.).
5) People already use NCBI to get other kinds of data, so getting RDF
data from them is not a serious paradigm shift.
Perhaps there's someone from NCBI on the list; if not, it would be
worthwhile to contact them. If NCBI adopted the standard that
beta.uniprot.org is using, with different suffixes for different
formats (as per Eric Jain's email):
http://beta.uniprot.org/uniprot/P12345
http://beta.uniprot.org/uniprot/P12345.xml
http://beta.uniprot.org/uniprot/P12345.rdf
http://beta.uniprot.org/uniprot/P12345.fasta
....then I think people would adopt it immediately, especially if
they
kept it on their front page for a month (like they do with other new
services). Regarding the way UniProt is doing things, I think it
was a
particularly good design decision to have the de-facto suffix be
HTML,
so that you can get a sense of what the URI represents by looking
at it
in a browser.
Also, from Matthias' recent email:
You should not try to pack ANY information about the 'resolution' of
a Semantic Web resource into its URI, quite to the contrary. Make
it as
meaningless and generic as possible, in the best case it should
just be
a large random alphanumeric string, e.g. tag:uri:a938fjhsdcHSDu39. If
all URIs look like this, nobody will be detered from re-using a URI
just because of how it looks.
I don't know if this is such a good idea -- when debugging, you
want to
have some information about what the URIs represent (e.g. the
"http://beta.uniprot.org/uniprot/" prefix tells you that you're
looking
at a UniProt protein with the given ID number). If URIs are just
alphanumeric strings, you need to constantly be doing lookups to
remind
yourself of what a particular object means.
--B
--
Balaji S. Srinivasan, Ph.D.
Stanford University
Lecturer, Depts. of Statistics and Computer Science
318 Campus Drive, Clark Center S251
(650) 380-0695
[EMAIL PROTECTED]
http://jinome.stanford.edu
On Jul 14, 2007, at 10:30 PM, Mark Wilkinson wrote:
Well... I apologize in advance, but I'm going to be
*insultingly* blunt because I'm quite honestly losing interest
in this seemingly pre-destined discussion...
"blinkers, are a piece of equipment used on a horse's face that
restrict the horse's vision. They usually compose of leather or
plastic cups that are places on either side of the eye, so that
the horse can not see to his sides. Many racehorse trainers
believe this keeps the horse focused on what is in front of
him, encouraging him to pay attention to the race rather than
other distractions, such as crowds" (http://en.wikipedia.org/
wiki/Blinders)
WSDL is a widely accepted W3C spec that is becoming increasingly
accepted worldwide (and is, generally, automatically generated
based on your interface, so requires little or no manual
construction), and which solves a problem that we *know without
any doubt* URLs cannot solve. I really don't see an advantage
in trying to ignore them, circumvent them, or otherwise relegate
them to a secondary lookup, in the base spec for the Semantic
Web, when we know that we are going to have to deal with them at
some point (and in fact, they are currently MORE POPULAR than
RDF itself, according to Google Trends: http://www.google.com/
trends?q=WSDL%2C+RDF&ctab=0&geo=all&date=all&sort=0
I really don't see the point in trying to build the Semantic Web
by specifically avoiding acknowledgement of one of the most
popular trends on the Web, when we already know that the vast
majority of information we need to access as bioinformaticians
is available through web forms or web services!
I'm sorry for being rude and disrespectful - I'm honestly quite
embarrassed to be saying these things so harshly - but I think
this discussion has started to become a singularity around a pre-
contrived end-point, rather than a discussion of what the Web
(and the Semantic Web) really is/can be!
WSDL -1 if you wish, but that puts you in opposition to the
majority of the world, where WSDL (thanks to Ajax) is finally
starting to make it's mark!
Again, I apologize for being disrespectful and rude... it really
isn't personal and I feel truly awful about writing this so
harshly! I'm just losing patience with a discussion that
doesn't seem to be a discussion, but rather a shoe-horn into a
pre-destined end point.
You are all free to crucify me the next time one of my grants
comes to you for review ;-)
M
On Fri, 13 Jul 2007 20:19:41 -0700, Alan Ruttenberg
<[EMAIL PROTECTED]> wrote:
On Jul 13, 2007, at 12:20 AM, Mark Wilkinson wrote:
What worries me about the 303 solution (other than that we
are not using it for
it's primary purpose [1]) is that the redirection can only
be to a *single* resource, specified in the Location header.
On Thu, 12 Jul 2007 03:57:34 -0700, Jonathan Rees
<[EMAIL PROTECTED]> wrote:
If this is an important functionality then it can be provided
in a
variety of ways - a mere matter of programming. LSID resolver
happens
to be the only way that comes ready made. But the functionality
doesn't need to be tied to the use of LSIDs.
If there is an alternative solution that provides the same
functionality, and that can be applied universally to all
existing URIs (URLs), then I'm all for it! To be honest, this
is my *primary* objection to moving to a URL solution vs an
LSID solution... if you can solve that problem, then I am
*almost* in the URL camp.
Here is an alternative:
Problem statement:
Enable third parties to register the fact that they have
additional statements to provide about something that a URI
denotes, in such a way as to make it easy for anyone to
discover this fact. Do this in a way which requires minimal
coordination (ideally none) between the minter of the original
URI, the provider of the additional statements, and the
consumer of all the statements.
Solution:
For a given URI http://a.b/c/d/e, construct a new URI http://
purl.org/about/a.b/c/d/e
Configure the purl server so that http://purl.org/provide-about/
a.b/c/d/e redirects to something akin to a structured wiki page
or a REST service (let us assume for the moment that whoever
currently provides the LSID WSDL that contains this information
currently is the provider of this service).
This page may be edited (manually or programmatically) to
include a description (suitable for a machine to understand) of
how to access the resource and what sort of resource it is, and
perhaps some additional useful information (what predicates
does the resource provide). This information rendered as RDF
using a standard vocabulary and saved.
Configure the purl server so that http://purl.org/about/a.b/c/d/
e retrieves the RDF that was constructed (or a 404 if there is
none). Semantic web agents then interpret this RDF and go fetch
what they want or need.
We all agree that 303s redirect to a human readable html
document, that this document uses a REL link to an RDF document
that says what the provider wishes to say and that the RDF also
states that http://purl.org/about/a.b/c/d/e may have more
information. (suitable shortcuts are provided to make bulk
retrievals more efficient - we've already discussed such
mechanisms)
This can be done now, with effort analogous to what is being
done with LSIDS. Let me point out some obvious advantages: 1)
No requirement to use web services (though web services *could*
be described as ways of accessing further statements using
this scheme) 2) Requires *less* manual intervention than is
currently required to maintain the WSDL. 3) Re-uses purl, which
is based on HTTP, which everyone knows how to use already 4)
Makes clear that the description of these additional resources
for statements are to be in RDF, and requires that one
advertises what to expect if you go to the resource (will you
get an RDF document, a SPARQL endpoint, a Web service set of
methods?)
---
With a bit more effort expended on extending the purl server
code we can get some more leverage - we enhance it so that
retrieving http://purl.org/about/a.b/c/d/e actually merges the
RDF result of retrieving each of http://purl.org/about*/a.b/
http://purl.org/about*/a.b/c
http://purl.org/about*/a.b/c/d
http://purl.org/about/a.b/c/d/e
Where the about* top level domain indicates that the
information about covers all URIs that start with the indicated
path.
In this way different providers can note that they have
additional statements about URIs located in varying amounts of
namespace.
With some coordination among us, we could even decide to
dedicate a server to hosting the whole mess of this information
(I don't expect that it needs too large a resource) so as to
make the service more efficient in answering queried, and
making it easy to provide, to whoever wishes, a snapshot that
they can host themselves.
---
May I now count you among those *almost* in the URL camp? ;-)
-Alan