Oil Classifier Tab Documentation
Installation Instructions
Copy both jar files (oil-tab.jar and fact.jar) into your Protégé (version 1.5 and higher) plugins directory. Put the other files
(animals.* and empty.*) into your examples directory (or wherever you like). Furthermore, you need the
CORBA FaCT system. Simply unpack the
C-FaCT-NT.zip file somewhere.
Usage Instructions
- Create a new project (Project | New..., select Standard Text Files)
- Include the empty.pprj project (Project | Include..., select empty.pprj)
- Configure your project for the Oil tab (Project | Configure..., check OilTab)
- Start the FaCT classifier: run scripts/RunShiq.bat from the place where you unpacked the C-FaCT-NT.zip file
(optionally, run scripts/RunClient.bat if you want to see the classifier tells or use other services from it)
- Create some classes/slots in your project (note that slots for OIL expressions use special slot widgets to pretty-print
the corresponding expressions in a Lisp-like syntax; editing can only be done in the usual Protégé way)
- Important: save your project since the next step will automatically change it!
- Go to the Oil Tab and press the "C" (classify) button; press "OK" on the Login window
- Observe the Messages window for any errors/problems; also, unsatisfiable concepts (classes) are reported here
- Go back to the classes tab and inspect the new class hierarchy; important: only save if
everything went right, otherwise reload the project!
Representing OIL ontologies in Protégé
The current version (screenshot) supports the following subset of OIL (see the
OIL syntax), which is exactly the subset for
which transformation rules are given in the paper "Knowledge Representation on the Web" (see the
OIL papers page for this and other OIL papers) plus global
axioms (disjoint, cover, etc.):
- Class definitions with subclass and slot constraints (property restrictions) with
- Class expressions: and, or, not, class[names], slot constraints, top, and bottom
- Slot constraints: has-value, value-type, max-cardinality, min-cardinality, cardinality
- missing: concrete-type-exp, filler-exp
- Slot definitions:
- subslot-of, inverse (using Protégé's inverse slot mechanism), domain, range
- properties (transitive, symmetric, functional)
- Global axioms (disjoint, covered, disjoint-covered, equivalent)
- Missing: instance-of, related
The class names and definitions are identical to those used in the current
RDFS version of Standard OIL (where
possible) such that a project exported as RDF will closely resemble the "correct" RDFS version.
Differences between the RDFS and Protégé OIL representations
- There can only be one definition for a class
- There can only be one inverse slot per slot (because Protégé's :SLOT-INVERSE is used)
- Instead of using DefinedClass and PrimitiveClass, a "type" slot with values "primitive" and "defined" is used
- Instead of using classes for slot properties, a "properties" slot with values "transitive" etc. is used
Known bugs
- All names must be unique wrt. lowercase
To Do List
- Ask the user before changing the class hierarchy
- Add template slots to the Protégé project from the corresponding OIL slot constraints
Animal example (taken from the XML OIL to FaCT translator found
here)
The OIL ontology consists of the definitions for animal, plant, tree, carnivore, herbivore, etc. Some interesting definitions are:
class-def animal
class-def plant
subclass-of (not animal)
class-def carnivore
subclass-of animal
slot-constraint eats
value-type animal
class-def herbivore
subclass-of animal, (not carnivore)
slot-constraint eats
value-type plant or
slot-constraint is-part-of has-value plant
When pressing the "C" button, the OIL tab transmits all class and slot definitions to the FaCT system via CORBA calls and
then queries for the set of superclasses for each class, resulting in the following (simplfied) class hierarchy:

Furthermore, the tab shows all classes that are not satisfiable.
LaTeX output
The OIL tab automatically produces a LaTeX file "fact-kb.tex" in your Protégé directory that contains a nicely
formatted version of the ontology in FaCT/SHIQ syntax. Example: gif, pdf.
If you have LaTeX (e.g. Miktex-1.20e on Windows; 23MB) and
Acrobat Reader installed, add these two lines to your
protege.properties file and adapt the locations of pdflatex and the Acrobat Reader:
oil.latex.pdflatex=D\:\\texmf\\miktex\\bin\\pdflatex
oil.latex.acroread=D\:\\Program Files\\Adobe\\Acrobat 4.0\\Reader\\AcroRd32
You will then be able to directly view the FaCT/SHIQ version of your ontology by pressing the "VT" button (after
classification). See this screenshot.