Adding Australian National Species List names to CollectiveAccess

Recently during our pilot project helping CSIRO evaluate CollectiveAccess as a candidate for the National Collections we needed to show that we could use an external nomenclator within CollectiveAccess. Luckily CA comes with a generic ‘InformationServiceattribute (field) type which lets you reference an external web service and index and display content from it within your collection management system. Up until now the services available to reference were:

While uBio has got good global coverage it lacks a lot of the Australian names and unfortunately the uBio service is currently down. There has already been significant work compiling taxonomic names for Australia embodied by:

Under the auspices of the Atlas of Living Australia (ALA) there has been work to integrate the APC and the AFD into a single National Species List. I initially tried integrating with the web service referenced there, but I failed to implement a fast enough autocomplete using those services (and who wants to sit around waiting for an autocomplete?). Then in my travels around the interwebs I discovered that the Australian National Species Lists (NSL) are currently evolving into a fully RESTful framework that has a good API that is well documented. Currently, only vascular plant names are included in this framework but I have it on good authority that fungi, algae, mosses, lichen and the AFD are on the way too (see the roadmap here).

In order to add a new InformationService attribute type to CA I needed to implement the IWLPlugInformationService interface, which proved relatively straightforward. I implemented the following methods in my new class to look up the data from the API:

  • lookup() – provides the autocomplete
  • getDataForSearchIndexing() – adds additional data to the search index
  • getExtendedInformation() – Adds a view of the referenced data – this hooks into the
  • getExtraInfo() - adds additional data to store serialized with the attribute (field) value

Configuring the NSL (and APNI) attribute type

Configuring a field in CollectiveAccess to reference the NSL. You can choose which additional fields you want to add to the search index and also what format the information is presented in.

Configuring a field in CollectiveAccess to reference the NSL. You can choose which additional fields you want to add to the search index and also what format the information is presented in.

Autocomplete for scientific names

The autocomplete for scientific names. The NSL web service is responsive and provides just enough information so this autocomplete doesn't leave the user frustrated.

The autocomplete for scientific names. The NSL web service is responsive and provides just enough information so this autocomplete doesn’t leave the user frustrated.

 

APC Format embedded information

Name record viewed in APC format

Name record viewed in APC format

 

APNI Format embedded information

Because other opinions are also available:

Name record viewed in APNI format

Name record viewed in APNI format

We have already contacted the developers of this new API to make some suggestions of possible enhancements especially relating to the embedded data format that they currently output.

Doing this development is only one part of the cycle – CollectiveAccess is an Open Source project so now that we have implemented this locally we can give a little back. Thanks to Seth for accepting our pull request adding this new feature which will become available in the 1.6 version of CollectiveAccess.

Now that we’ve seen how easy it is to reference external authoritative data sources within CollectiveAccess watch this space for further development. We’re also looking forward to having more data  in the NSL and enhanced functionality in its API.

Kehan

Leave me a comment below, or start a conversation with us on Facebook, Twitter or LinkedIn.

Comments are closed.