First behavior assertions available

Ok, the first annotations are up (crudely).  The choice of what to start with was fairly arbitrary, though these had the advantage of being very simple.  The paper cited is just a survey of Tetragnatha species that turned up first in the alphabetized list of publications.  I have about 150 more annotations sitting in a spreadsheet waiting for the infrastructure to settle down.  Of course there is also a lot more to do with both the OWL generation (publications currently have nothing but their doi’s or internal ids) and the display (e.g., each of the labels correponds URI that could be linked, though OntoBee pages aren’t the most friendly).

Getting this table to work is the end result of a lengthy SPARQL session on Saturday, mostly spent building up a query that captured the taxon, anatomy, behavior and publication as it crawled up a deeply nested RDF hierarchy.  Once I had the query working, it was back to the javascript to update the little utility that transforms the JSON-ized SPARQL query results into a table (which now has more than one column) and then fix the cases where an NCBI id was available (e.g., Habronattus) which just returns the name and the identifier,  and failing properly for taxa not supported (e.g., Homo sapiens), as well as non-taxa (e.g., SPARQL injection attempts).

The server is a bit slow, meaning I’m close to hitting the limits of the AWS micro-instance I’ve been serving from for the past 18 months.  Probably time to start planning the upgrade (which also may involve switching from Ubuntu to Debian).

For now though, I’ll enjoy what’s there and add more goodies within the limits.






Almost there

I am happy to report that after two weeks I’ve updated the arachnolingua pages in a meaningful way.  I have switched to a java servlet based backend rather than just trying to make queries work with javascript and a SPARQL endpoint.  The ‘ethogram’ form on the front page now does something, though it isn’t an ethogram yet – it calls the taxon service which will return a JSON string that is then translated into a table listing the OBO purl based on the NCBI identifier for the taxon whose name is typed into the ethogram box.  All Arachnids known to NCBI (at least up to a year ago) will produce a table in response (as will nodes subsuming Arachnida, such as Metazoa).  The test page has been trimmed to reflect queries that are relevant in the new environment – so taxon and publication services are tested and the resulting tables displayed.  Also have a look at the ‘About’ page, as it contains a sort of ‘Easter egg’ – where the first behavior annotations will appear, which should be shortly – they are already in the knowledge base up on the server.


Like the first strands that lead to an web, here are the first links from annotation to application and API support.  I hope you will find this web useful.

Playing with ELK (the reasoner)

It’s been a long slog the past few weeks.  I’ve been pulling IRI’s for taxon, anatomy, substrates (entities that aren’t part_of an actor) that are associated with participants in a behavior, as well as IRIs for behavior and publication for assertions.  Yesterday, I finally had all (at least most) of the pieces together – I was now ready to start matching term IRIs against the support ontologies and copying OWL ‘entities’ from the support ontologies into the target ontology that will become the OWL file that’s loaded onto the server.

The first step was to merge all the support ontologies and run a classifier over them – primary to determine the class hierarchy.   The merging went smoothly and didn’t take too long, but trying the OWLAPI’s structural reasoner on the 7436381 assertions that resulted from merging the 8 support ontologies seemed a bit too much for it.  After 45 minutes on a 4-core i7, I decided it was time to try something else.

ELK  has been attracting some interest in the biological ontologies community in the past couple of years as a very fast way to do reasoning for ontologies that can stay within the limits of the OWL-EL language profile.  As it turns out, the current version of ELK currently implements only a subset, but that subset is more than sufficient my very limited immediate needs.

The first task for the reasoner was simply to extract the superclass closure (all the classes above) Arachnida in the NCBI taxonomy hierarch, followed by all subclasses of the same taxon.  Those, along with Arachnida itself (which is a taxonomic class as well as a OWL class) are copied into the target ontology, along with the axioms specifying their super/sub class relations and their labels (= Linnean names).

It all works – owlbuilder is generating an owl file that loads in Protege (after making sure the DOI cleanup was getting called in the right place), and contains a couple of other classes pertaining to an as yet incomplete representation of a posture in Tetragnatha straminea.  Nothing special about this behavior or species (surprised the first species wasn’t a jumping spider?), just the first publication that came up in the literature search all those years ago was about a couple of Tetragnatha species.  You’ll be hearing more about this behavior and a couple of other behaviors in this species and some congeners as I fill in the pieces and start pushing real data to the server.