Transform bounded self-reference into plain owl files
=====================================================
About this project
------------------
This project handles self-reference in OWL files. Self-reference in OWL is
encoded analogously to the I-me-construct originally defined by Marx[2]. Here,
we only allow at most two qualified number restrictions (or quantifiers) between
the I and the me. Those OWL ontologies with self-referenc can be transformed via
$ ./i-me-owl convert
into a plain OWL ontology in a consistency-preserving way (expecting the OWL
file on stdin and writing the transformed OWL file to stdout). The
transformation was written along with a bachelor thesis at the Chair for
Computer Science 8 at the University of Erlangen-Nürnberg (Germany)[1].
The I.C construct is encoded as
ObjectSomeValuesFrom( :I :C )
for some appropriate :C and the me is encoded by the named class :me. For some
example ontologies see the examples/ subdirectory. To give a more readable
expierince, you should prefer using the shipped pretty-printer for reading
contologies, e.g.:
$ ./i-me-owl print examples/alcqme2/consistent/chain.owl
T ≡ I.∃S.¬me
T ≡ I.∀R.(∃S.me)
This of course requires building ./i-me-owl first.
System Requirements
-------------------
- scala >= 2.9.2
- bash >= 4.2.0
- GNU Make
Compiling
---------
You need a current version of the owlapi of the hermit OWL reasoner. You can
install both by running:
$ ./fetch-deps.sh
After that, the build process can be started via
$ make
Now you can use the wrapper script ./i-me-owl. See the output of ./i-me-owl -h
for the exact command line usage.
Testing
-------
A test suite for the example ontologies is given. Mainly, ontologies are checked
for consistency using the hermit OWL reasoner after converting the files (and
also before if no self-reference was involved). It can be run using the
make-target "test". As there is much to test it is recommended to use the
parallelism offered by make:
$ make test -j4 # number of threads you like
The output gives an intuitive feedback what was tested and which tests succeded.
License
-------
This project is free software. It is licensed under the GPLv3. See the COPYING
file for more licensing details.
[1] http://www8.cs.fau.de/
[2] http://citeseerx.ist.psu.edu/viewdoc/summary?doi=10.1.1.2.8117
// vim: tw=80 spelllang=en spell