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

  1. Create a new project (Project | New..., select Standard Text Files)
  2. Include the empty.pprj project (Project | Include..., select empty.pprj)
  3. Configure your project for the Oil tab (Project | Configure..., check OilTab)
  4. 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)
  5. 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)
  6. Important: save your project since the next step will automatically change it!
  7. Go to the Oil Tab and press the "C" (classify) button; press "OK" on the Login window
  8. Observe the Messages window for any errors/problems; also, unsatisfiable concepts (classes) are reported here
  9. 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.): 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

Known bugs

To Do List

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.