This post is a bit overdue. Good things are happening, the arachcurator tool continues to move forward – windows for browsing and editing entities (individuals, claims, narratives) are mostly functional, though they still require a lot of polish. I’ve included some screen shots below. There is also progress on the behavior ontology front – we may finally have smoothed the path forward to getting the ABO and NBO merged (I’ll probably post more on the other blog when I more certain that we can start moving into a production phase).
As you may have read, I’ve been putting together a spider behavior ontology to eventually merge into NBO/ABO and SPD as appropriate. I have collected over 500 candidate terms from the third edition of Foelix, though I am not quite finished. Then it will be on to Herberstein’s volume.
I will be presenting something on the ontology and maybe a bit on Arachnolingua at the ICA in July. Stay tuned.
I’m still happy with the decision to move to pyramid and postgres. The code is a lot cleaner and I’m finding it fairly easy to make tests and testable code. The biggest headache I’ve found is some specialized caching that has forced me to use some ‘globals’ (well module specific variables). There are other ways, but this seems the most pythonic so far, and the variables are prefixed with _, and there really is no reason for anyone to import them, they just need an expended lifetime (and I’ve already decided this seems better than singleton objects).
The displays, particularly for editing claims are still pretty busy and one approach I’ve taken to save some space is to display curies for url’s that identify entities. As you may recall, moving from web2py allowed me to follow better practice and use uri’s as unique ids for most of the objects in the database. These uri’s aren’t user modifiable – they are fixed for existing objects and assigned if a new one is created, but I’m pretty sure they should be in the display. So to reduce the visual density of things in the display, I’ve converted the full uris to curies (mapped the first part of each uri to a much shorter prefix without slashes) as well as tightened up some field labels (e.g., ‘publication text’ becomes ‘source text’). The only prefixes I’m shortening are for arachb and obo, though I will add doi to this list soon. Those seem to be the only full uri’s that are showing up in the display. They are also getting shortened in the huge drop down lists that get generated for choice fields for various subsets of terms (for example, an individual might be an instance of a taxon or an anatomical term, together, over 50,000 choices). Cutting down the uri’s sent as values for the dropdowns, just speeds things up (effectively cutting at least 10-20% of the total size of the web page). Shortening all those uris sounds like a lot of work to save bandwidth, but that’s where those caches I mentioned above come in. There’s a cache for every dropdown list (saving database query, uri shortening, and list building). The lifetime of these caches is potentially as long as the time between ontology updates, though that would require keeping server process running continuously, something I’m not planning on for a while yet.
Enough – I hope I’ve convinced you that things are still happening. Here’s the new home page for the curation tool. It shows a bit of summary (rather than the full list of publications) and supports simple login. I’ve put some authorization code for guests, editors, and administrators in, but adding the restrictions to pages still needs to happen. Because the browse and edit pages are broken out, controlling access should be relatively straightforward when the time comes.
An here’s a list of publications – maybe not as pretty as a dropdown, but I think it’s a bit easier to navigate for now. Searching will happen sometime. You can get to this list from the lists menu on the top, along with lists of authors, claims, individuals, and narratives, and non-NCBI taxa. The citation links to a browse page, and the edit link goes to a page where things can be modified (if you’re an editor).
And here’s an ‘in-progress’ shot from the new implementation of claim browsing.
As you can see, there are still some problems with the graph display – I’ve moved away from the dynamic node placement, but there are still some problems with my static layout. Note that I am still using d3js, and that this and other graph displays, on individuals and later on narratives, will probably get a bit glitzier.