[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