Because we want the Alignment API to be used in resource-limited environments, we experiment with offering minimal versions.
The plugins/android folder contains necessary tools for generating stripped down versions of the Alignment API so that they can be embedded in a small platform (the target being the Android platform for our own purposes).
So far, we only offer a client version of the API implementation which should be suitable for any program which simply wants to retrieve and manipulate alignments. This version does not embark any matcher, evaluator, test generator, server, or command line interfaces. So if you have implemented a matcher, it should work simply with this version. Microalign can still act as a client for the Alignment server and retrieve alignments from the server.
+ org.semanticweb.owl.align (API) + fr.inrialpes.exmo + .ontowrap (Ontology API wrappers) - .* (All implementations) + .align (Implementation) - .cli (Command line interface) + .util (Utility classes) - .gen (Test generator) - .service (Alignement server) + .impl (Basic implementation) - .eval (Evaluators) - .matchers (Matchers) + .parser (Parsers)
Only the libraries related to Jena are needed: Jena (+ icu4j and iri), log4j, xerces (+resolver) and xsdlib (+relaxngDatatype).
We are currently experimenting with ProGuard in order to strip down the code further. The results are displayed with the "*" prefix in the table below.
It is necessary to go in the plugin/android directory and use the ant file.
Move the content of the microalign.zip file in the lib(s) directory of your Android project.
The microalign.jar may be used alone if a version of Jena is already embedded.
Of course, you can define other profiles by modifying the build.xml file.
We are considering, introducing a pair of other profiles:
The resulting sizes to be embedded are the following:
standard | micro | micro* | pico | align | |
align.jar | 16k | 16k | 16k | 16k | 16k |
ontowrap.jar | 61k | - | |||
procalign.jar | 238k | 154k | 99k | 152k | |
alignsvc.jar | 98k | - | |||
lib | 29232k | 7444k | 7444k | 2272k |
It is clear that the only interest of picoalign comes from dropping Jena. One can also use androjena which amounts to 5332k (version 0.5 12/2010; all Jena libs involved). μjena is a rewritting of Jena for MIDP-2.0/CLDC-1.1 mobile phones (but some have managed to use it under Android). It has been developed in 2007, but the 1.5 version dates back to 2010. It only weights 393k but can only parse ntriples. The authors have been able to demonstrate its use in running an ontology matcher (XSom) on a phone!