NSL Services
ALA-NSL Linked data services
Prototype services over Names, Taxa and References documented within the Australian Faunal Directory (AFD), the Australian Plant Name Index (APNI) and the Australian Plant Census (APC).
| Quick Start: Searching To find a name or accepted taxon by case sensitive exact match, construct a URL of the form:
For fuzzy matching and paramaterised searching, see |
| Quick Start: Bulk Data The latest bulk output directory is http://biodiversity.org.au/dataexport/2012-07-16 . |
| Quick Start: Sparql A sparql service is available athttp://biodiversity.org.au/sparql A simple web interface for this service is athttp://biodiversity.org.au/dataexport/html/NSL_SPARQL.html |
An attempt is made to use the TDWG vocabularies published at http://rs.tdwg.org/ontology in the hope that these outputs help to inform ongoing and collaborative evolution of an open 'TDWG ontology'. This means that we are not in a position to guarantee stability of the RDF, XML and HTML (especially the HTML) presented. In fact it would be wise to expect, or even request, our outputs from these services to change.
We will undertake to maintain the LSIDs, the abstract URIs and URLs for all data objects.
Please do your best to tear it apart.
More services are in the pipeline. There is active development of listing services for names, taxa and classifications. We will also add support for JSON and Darwin Core output and perhaps, where it makes sense to do so, ... even CSV.
Seven local collections are exposed at this time:
|
|
These namespaces are published as linked data using abstract URIs of the following form:
http://biodiversity.org.au/afd.taxon/e6bd32ed-2462-44ae-a7f5-bed60b59807d or try http://linkeddata.uriburner.com/about/html/http/biodiversity.org.au/apni.name/50015 |
Three branch services are exposed:
|
|
These provide taxonomic trees. The afd and apc trees are our accepted taxonomies. These services have URLs of the following form: http://biodiversity.org.au/branch/apc/408808.html Formats are html, csv, xml, and json. The branch service also takes three optional parameters:
http://biodiversity.org.au/branch/afd/5d6076b1-b7c7-487f-9d61-0fea0111cc7e.html?sublevels=2 |
There are currently two services based on name "strings":
|
A name lookup service to facilitate client access to name objects using URI of the form
A taxon name resolution service to current taxon, according to AFD/APC, for a given name using URI of the form
These name string URI also support content negiotiation but it should be noted that the naked URI is not a Resource Name. Name lookup can not be guaranteed to return a single object and the taxon name resolution may return entirely different taxa at different times. Names are case sensitive. All AFD names above Genus currently use UPPER case. A prototype generic search API employing lucene can be found at: |
Content negotiation is supported for rdf+xml (based on TDWG lsid vocs), xml (TCS) and html
|
http://biodiversity.org.au/afd.taxon/e6bd32ed-2462-44ae-a7f5-bed60b59807d.xml |
LSID equivalents for these URNs are also supported
|
urn:lsid:biodiversity.org.au:afd.taxon:e6bd32ed-2462-44ae-a7f5-bed60b59807d http://lsid.tdwg.org/urn:lsid:biodiversity.org.au:apni.name:50015 |
The NSL classification service returns a "Branch" listing from node according to the classification (where available) from AFD or APC that places each treated name into the Current "NSL" tree at one location as either an accepted name or synonym.
|
http://biodiversity.org.au/branch/afd/e6bd32ed-2462-44ae-a7f5-bed60b59807d Content negotiation supported by these services include .html, .csv and .json extensions. |
Full OAI-PMH services are available
The TAPIR implementation based on the TCS schema has been removed.
IBIS 2009-07-01 Page last modified on Sep 28, 2012 00:12
Comments ( Hide )
|
|
Greg Whitbread says:Jul 03, 2009 00:43 ( Permalink ) |
Anonymous says:You probably want something more useful than I don't like the colour? Peter N. |
Anonymous says:Hi Greg, It's really great stuff. Should be trivial for us to use the XML, making TWiki transform RDF is turning out to be harder than it should be. The example linked to Dodonae+viscosa doesn't seem to work, but Dodonae%20viscosa does. |
Anonymous says:You might consider using an underscore between the genus and species. So Dodonae+viscosa become Dodonae_viscosa. This should solve the problem above and it is a a wiki-friendly identifier.
|
|
|
Paul Murray says:For name searches, we have a TAPIR interface courtesy Matt Hand. The name-literal-as-psudeo-id a useful entry point, but it doesn't actually return a document with an "about" of the id you asked for. For other entry points, you can use APNI http://www.anbg.gov.au/cpbr/databases/apni-search-full.html . Any url of the form http://www.anbg.gov.au/cgi-bin/apni?taxon_id=48107 is equivalent to the uri http://biodiversity.org.au/apni.name/48107 AFD http://www.environment.gov.au/biodiversity/abrs/online-resources/fauna/afd/home is a little sneakier. If you navigate to an AFD profile page http://www.environment.gov.au/biodiversity/abrs/online-resources/fauna/afd/taxa/Nematoda and look at the source, you will find an afdTaxonGUID and afdNameGUID div. URIs can be constructed from Of course, once it's all working acceptably we should hyperlink link the human-friendly webapps back to the linked data with proper html liks. Alternatively, we may alter the page so that the hyperlinks are present, but hidden. That way, web spiders can index them, but it won't confuse people who want to see only human-readable pages. |
|
|
Greg Whitbread says:Pete, Plus |
Anonymous says:Nice work Greg. Cheers, Ben. |
Anonymous says:Great work! Some quick comments. There's some inconsistency in the example metadata. For example, for http://bioguid.info/urn:lsid:biodiversity.org.au:apni.name:50015 (Didiscus pilosus var. glaberrimus) the metadata has two values for specificEpithet (pilosus and glaberrimus), which clearly can't be correct. I don't think you've followed the TDWG vocabularies correctly. http://bioguid.info/urn:lsid:biodiversity.org.au:apni.name:50015 has the statement http://rs.tdwg.org/ontology/voc/TaxonName#publishedIn urn:lsid:biodiversity.org.au:apni.reference:143163 publishedIn is part of http://rs.tdwg.org/ontology/voc/Common, not http://rs.tdwg.org/ontology/voc/TaxonName. Furthermore, the range of publishedIn is a string, not a resource. I think you need to use http://rs.tdwg.org/ontology/voc/Common#publishedInCitation (personally I find these names counter intuitive, but that's what the spec says). Given that APNI contributes to IPNI, can you include links to the IPNI LSIDs where appropriate (for example, http://bioguid.info/urn:lsid:ipni.org:names:144078-3 ) Lastly, not thrilled with Confluence. Why can't I sign in to add comments? As it stands all comments are anonymous, which doesn't encourage me to contribute (plus it means I can't follow links to people's names and find out who they are). Is there an admin option to allow people to sign up to comment, but not edit the text on the page? |
|
|
Paul Murray says:specificEpithet: fixed (copy & paste bug) |
Anonymous says:Very impressive. Very thorough. As opposed to Rod, I actually don't mind the anonymous commenting - saves having to create yet another Login!! Could use OpenID though I suppose. Anyway, one comment - I tried resolving the LSIDs using my .NET code (very similar to Java code so I would have thought Java based resolution would have the same problem??). I found that it would not resolve the MetadataHTTP port - it failed with a "The remote server returned an error: (406) Not Acceptable." error. It may be due to the HTTP accept header, which is set to application/xml+rdf. Does the server take note of the accept headers? It seems to return something if you just enter the encoded url into a browser (http://biodiversity.org.au/authority/metadata?acceptedFormats=application/xml+rdf&lsid=urn:lsid:biodiversity.org.au:apni.name:50015). It does work fine with the MetadataHTTPDirect port however. Kevin Richards |
|
|
Paul Murray says:The rdf mime type is application/rdf+xml (rfc3870) . On the back end, both the URI and the LSID resolver look at the Accept header and attempt to find a match. I'll have to find Kevin's contact details - that's the main problem with this anonymous business. Landcare NZ? [edit: done, but our email server is not happy at the moment]. |
Anonymous says:The JSON format response from the name service (i.e. for Cracticus Tibicen) is not valid JSON. It is returning an object with literal integers instead of strings as property names. Numeric properties are fine, however you must enclose the numbers in quotes to make it valid JSON. Alternately, use an array. Please refer to the JSON website. This is mainly a problem for JSON parsers, not JavaScript implementations, as the latter tend to be more lenient and coalesce non-string property names gracefully. Two JSON readers currently plagued by the invalid JSON are PHP's json_decode and Python's json module. Python, for instance, currently returns the following exception for the previously mentioned JSON document: ValueError: Expecting property name: line 3 column 1 (char 15) ValueError: Expecting property name: line 3 column 1 (char 15)
|
Anonymous says:Whoops, should have signed that! Samuel Cochran <sj26@thefrontiergroup.com.au> |
|
|
Paul Murray says:... Yes, this seems to be correct. This is a bit of a problem: I was hoping to represent XML array-style elements as a combination array (for the elements) and properties (for attributes). You would be able to access the nested elements like_so[4] and also get named properties. But, it's simply not valid. Drat. If I fix it, it will break the code of everyone that is currently using it. I'll see what I can do. |
Comments? Please!