Hi all,
There's been a number of new LSID resolvers (prototypes) poping up here and there due to the recent adoption of LSID specification by the Biodiversity Informatics community (see http://wiki.gbif.org/guidwiki and http://wiki.gbif.org/guidwiki/wikka.php?wakka=PrototypingWorkingGroup for more details).
Since then I found myself spending quite sometime trying to explore the details of each implementation and also troubleshooting some of the resolvers. Although there is a number of tools available for testing, such as both IE and Mozilla Launchpads and the Biopathways web resolver, I often find myself trying to get more info out of the resolvers using ad-hoc techniques, such as hacking urls in the web browser address box.
I thought it would be nice to have a more automated tool that would tell us all about each new resolver that pops up out there. I think developers setting up their own resolvers would benefit of such tool as well.
Initially, the idea as to develop a kind of LSID resolver debug tool, but it quickly evolved into some kind of LSID standard conformance test.
So before I start doing this on my own, I would be grateful if you could share your thoughts regarding the development of an automated conformance testing tool for LSID resolvers, such as requirements, past and ongoing related activities, or any ideas on the matter.
What I have in mind right now is the following:
* This conformance tool would take one or more LSIDs and would try and resolve them. It would then output a report about the resolver and warning and error messages when the server deviates from the standard. * The tool would output a full report about the LSID authority, including: 1. LSID syntax break up: authority id, namespace, id, version (trivial); 2. Information about the authority DNS SRV record. If none is found, it would use the Launchpad http fallback mechanism to move on (it would issue a warning regarding that fact, though); 3. Information about the WSDL found at /authority/ path (WSDL and human readable report if possible) 4. Information about the getAvailableServices() call (list of available services, WSDLs and again, a human readable report if possible) 5. Information on calls to all available (data and metadata) services, with links to the results. 6. What else? * The tool could also test for (http) error codes by providing data that is known to be invalid (something like Unit Tests). * Would it be nice to have a client conformance test tool? I'm just not sure yet how this tool would keep track of calls made by the same client.
The other issue I'm struggling at the moment is the question of how to implement it. The first thing that came to my mind was to hack one of the existing clients. Now I'm not sure whether to use IE Launchpad and thus make this available as a desktop client or to use the Perl or Java client stacks to implement the tool as a web application.
Anyway, thoughts are really appreciated.
Best regards,
Ricardo
PS. Sorry about the cross post. This message is being sent to both the LSID developers and the TDWG/GBIF GUID mailing lists, as I believe it will interest both communities.