[kepler-dev] annotation/ontology issues

Chad Berkley berkley at nceas.ucsb.edu
Fri Sep 30 11:35:30 PDT 2005


Hi Shawn and others,

I've been trying to figure out how to properly move the old annotation 
system into the new objectmanager world.  I've noted a few things below 
that I think need to happen in order for this to work.  If you have 
other ideas about how things should work, please let me know.

======
TODO:

-move all classes (except KeplerLocalLSIDService) from 
org.ecoinformatics.seek.sms to org.kepler.sms

-discontinue use of org.ecoinformatics.seek.sms.KeplerLocalLSIDService 
and instead use org.kepler.objectmanager.lsid.LSIDTree or 
org.kepler.objectmanager.lsid.LSIDGenerator (modify either of those as 
needed)

-(If appropriate) merge org.ecoinformatics.seek.sms.OntologyCatalog with 
org.kepler.sms.OntologyCatalog

-change OntologyCatalog so that it can read the lsid of the ontology 
file from the kar metadata and retrieve said ontology from the 
objectManager (instead of hard coding one ontology).

-allow the user to change the ontological view of the actor library. 
this requires multiple ontology/annotation support be built into the 
AnnotationEngine and the OntologyCatalog (I assume this was the original 
purpose of the OntologyCatalog, but I'm not sure).  This functionality 
is already in the kar files and object manager (i.e. you can have lines 
like this in the actor metadata:

<property name="semanticType0" 
value="urn:lsid:lsid.ecoinformatics.org:onto:1:1#MyActorClass"/>

<property name="semanticType1" 
value="urn:lsid:lsid.ecoinformatics.org:onto:1:1#MyOtherActorClass"/>

<property name="semanticType2" 
value="urn:lsid:lsid.ecoinformatics.org:onto:2:1#MyTotallDifferentActorClass"/>

note the third one points to a different ontology than the first two. 
The ontologyCatalog just needs to be changed to read the urn and get the 
ontology from the object manager instead of relying on the single hard 
coded ontology that's there now.

-Improve the startup performance of kepler by optimizing the tree 
building process.  I'm not totally sure this is what's taking the time, 
but that's my hunch.  I'd like to get the startup time of kepler down to 
like 5 seconds instead of 15.

END TODO
==========

This is all I can think of right now, though I'm sure there's more to 
do.  Shawn, will you have any time to work on this with me in the next 
couple weeks?  I don't think it should be all that hard to change this 
stuff over now that all the underlying systems are mostly working.

Oh, I should note too that the way I'm currently building the 
annotations dynamically is a kind of elegant hack (IIDSSM) that just 
reads the namespaced annotations from the kar files, then builds the 
annotations file behind the scenes and loads and processes it.  It's 
probably not the ideal solution or the way you had envisioned it 
working, but it does seem to work well.  I wish I would have come up 
with this last week though, because I think the BEAM people could have 
used the actor saving mechanism because now they don't have to alter the 
annotations file by hand.  oh well...

chad


More information about the Kepler-dev mailing list