IEEE Intelligent Systems", 2000, vol. 15, nr. 6, pgs. 69--72

FAQs on OIL:
the Ontology Inference Layer

Frank van Harmelen
(Vrije Universiteit Amsterdam)
Ian Horrocks
(University of Manchester)

What is OIL trying to achieve

The current Web is entirely aimed at human readers. Machines are oblivious to the actual information content: web browsers, web servers and even search-engines do not really distinguish weather-forecasts from scientific papers, and cannot tell a personal home-page from a major corporate web site. This inability to process the contents of information by machines seriously hampers the functionality of the current Web. Computers are limited to transmit and present information on the Web, and cannot really help us in processing this information. The vision of the Semantic Web aims at creating a Web where information can be "understood" by machines as well as by humans. This of course requires that information is represented in such a way that its meaning (its "semantics") is in a machine-accessible form. OIL is designed to be exactly such a representation of machine-accessible semantics of information on the Web.

How is OIL trying to achieve this

OIL synthesizes work from three different communities to achieve the ambitious aim of providing a general purpose markup-language for the Semantic Web:

What does OIL look like

Below, we give a very simple example of an OIL ontology. It only illustrates the most basic constructs of OIL.
class-def Product
slot-def Price
  domain Product
slot-def ManufacturedBy
  domain Product
class-def PrintingAndDigitalImagingProduct
  subclass-of Product
class-def HPProduct
  subclass-of Product
  slot-constraint ManufacturedBy
    has-value "Hewlett Packard"
class-def Printer
  subclass-of PrintingAndDigitalImagingProduct
slot-def PrinterTechnology
  domain Printer
slot-def Printing Speed
  domain Printer
slot-def PrintingResolution
  domain Printer
class-def PrinterForPersonalUse
  subclass-of Printer
class-def HPPrinter
  subclass-of HPProduct and Printer
class-def LaserJetPrinter
  subclass-of Printer
  slot-constraint PrintingTechnology
    has-value "Laser Jet"
class-def HPLaserJetPrinter
  subclass-of LaserJetPrinter and HPProduct
class-def HPLaserJet1100Series
  subclass-of HPLaserJetPrinter and PrinterForPersonalUse
  slot-constraint PrintingSpeed
    has-value "8 ppm"
  slot-constraint PrintingResolution
    has-value "600 dpi"
class-def HPLaserJet1100se
  subclass-of HPLaserJet1100Series
  slot-constraint Price
    has-value "$479"
class-def HPLaserJet1100xi
  subclass-of HPLaserJet1100Series
  slot-constraint Price
    has-value "$399"
This defines a number of classes and organises them in a class-hierarchy (e.g. HPProduct is a subclass of Product). Various properties ("slots") are defined, together with the classes to which they apply (e.g. a Price is a property of any Product, but a PrintingResolution can only be stated for a Printer (an indirect subclass of Product). For certain classes, these properties have restricted values (e.g. the Price of any HPLaserJet1100se is restricted to be $479). In OIL, classes can also be combined using logical expressions, for example: an HPPrinter is both an HPProduct and a Printer (and consequently inherits the properties from both these classes).

What does the acronym "OIL" mean?

There are a number of possible meanings of the acronym: "Ontology Inference Layer", or "Ontology Interchange Language", but all of the contain the word "Ontology". An ontology is a consensual, shared and formal description of the concepts that are important in a given domain. Typically, an ontology identifies classes of objects that are important in a domain, and organises these classes in a subclass-hierarchy. Each class is characterised by properties shared by all elements in that class. Important relations between classes or between the elements of these classes are also part of an ontology. Ontologies are now an important notion in such diverse areas as knowledge representation, natural language processing, information retrieval, databases, knowledge management, multi-agent systems, and others. They are widely considered to be a crucial ingredient for the infrastructure of the Semantic Web.

Which applications will be enabled by OIL?

Machine-processable representations of ontologies will be crucial to many applications of the semantic Web. We briefly mention only a few:

What are the design principles behind OIL

The following have been important reasons motivating the design of OIL:

Which OIL tools are currently available

Ontology editors help human knowledge engineers to develop and maintain ontologies. They support the definition and modification of concepts, slots, axioms and constraints, as well as enabling the inspection, browsing and codifying of the resulting ontologies. Currently, two editors for OIL are available and a third one is under development: Inference engines can be used to reason about ontologies, helping both to build them and to use them for advanced information access and navigation. OIL uses the FaCT system (Fast Classification of Terminologies, to provide reasoning support for ontology design, integration and verification. FaCT is heavily optimised to deal with very large ontologies. It can check the consistency of thousands of classes and automatically derive their underlying class-hierarchy in a matter of seconds running on standard desk-top hardware.

How does OIL relate to RDF/RDF Schema

The above example was stated in OIL's presentation syntax, which is intended for human readers and writers of OIL ontologies. For machines, OIL uses RDF as its syntax. OIL exploits as much as possible the modelling primitives of RDF Schema. This provides crucial backwards compatibility, allowing OIL ontologies to be treated as extensions of RDF and RDF Schema ontologies, and making OIL ontologies available not only to OIL-aware applications, but also to applications that are only RDF-aware: such RDF-aware applications can still process and reason with significant portions of OIL-ontologies. For illustration purposes, the last class of the above example in RDF syntax would look like:
<rdfs:Class rdf:ID="HPLaserJet1100xi">
  <rdfs:subClassOf rdf:resource="#HPLaserJet1100Series"/>
      <oil:onProperty rdf:resource="#Price"/>
      <oil:toConcreteType> 399 </oil:toConcreteType>>
To a program that is only RDF-aware (and not OIL-aware), this would still be interpretable as saying that the 1100xi printers are a special type of the 1100 Series printers. The specific restriction that the 1100xi costs $399 would only be available to OIL-aware programs.

How is OIL different from DAML

The DAML language inherits many aspects from OIL, and the capabilities of the two languages are relatively similar:

Who is funding and doing the work on OIL?

The OIL initiative is funded by the European Union IST programme for Information Society Technologies under the On-To-Knowledge project (IST-1999-1013) and IBROW (IST-1999-19005). Work is carried out by the participants in this project, and a large number of parties, both academic, commercial and institutional, outside this consortium interested in furthering OIL's development.

Where can I find out more about OIL

OIL's homepage is at This page gives access to definitions of the syntax of OIL, papers and presentations explaining OIL (ranging from the very introductory to the very formal), case-studies using OIL, and tools that have been developed for OIL.