In this Section, we will first explain the three roots upon which OIL is based. Then we will show why we believe that the existing proposal for an ontology interchange language (Ontolingua, [Gruber, 1993] , [Farquhar et al., 1997] ) is not appropriate as a standard ontology language for the web. Then the relationships of OIL with OKBC and RDF are sketched out. These will be discussed further in Section 4 .
OIL unifies three important aspects provided by different communities (see See The three roots of OIL. ): formal semantics and efficient reasoning support as provided by Description Logics, epistemologically rich modeling primitives as provided by the Frame community, and a standard proposal for syntactical exchange notations as provided by the Web community.
Description Logics (DL). DLs describe knowledge in terms of concepts and role restrictions that are used to automatically derive classification taxonomies. The main effort of the research in knowledge representation is in providing theories and systems for expressing structured knowledge and for accessing and reasoning with it in a principled way. DLs (cf. [Brachman & Schmolze, 1985] , [Baader et al., 1991] ), also known as terminological logics, form an important and powerful class of logic-based knowledge representation languages. 1 They result from early work on semantic networks, and defined a formal semantics for them. DLs attempt to find a fragment of first-order logic with high expressive power which still has a decidable and efficient inference procedure (cf. [Nebel, 1996] ). Implemented systems include BACK, CLASSIC, CRACK, FLEX, K-REP, KL-ONE, KRIS, LOOM, and YAK. 2 A distinguishing feature of DLs is that classes (usually called concepts) can be defined intensionally in terms of descriptions that specify the properties that objects must satisfy to belong to the concept. These descriptions are expressed using a language that allows the construction of composite descriptions, including restrictions on the binary relationships (usually called roles) connecting objects. Various studies have examined extensions of the expressive power for such languages and the trade-off in computational complexity for deriving is-a relationships between concepts in such a logic (and also, although less commonly, the complexity of deriving instance-of relationships between individuals and concepts). Despite the discouraging theoretical complexity which results, there are now efficient implementations for DL languages (cf. [Borgida & Patel-Schneider, 1994] , [MacGregor, 1994] , [Horrocks & Patel-Schneider, 1999] ), see for example DLP 3 and the FaCT system. 4 OIL inherits from Description Logic its formal semantics and the efficient reasoning support developed for these languages. In OIL, subsumption is decidable and with FaCT we can provide an efficient reasoner for this. In general, subsumption is only one of several reasoning tasks for working with an ontology. Other reasoning tasks are, for example, instance classification, query subsumption and query answering over classes and instances, navigation through ontologies, etc. However, many of them can be reformulated in terms of subsumption checking. Others may lead to different super- and subsets of the current OIL language version. The current version of OIL can be seen as a starting point for exploring the space of possible choices in designing Ontology languages and characterizing them in terms of their pros and cons.
Frame-based systems. The central modeling primitives of predicate logic are predicates. Frame-based and object-oriented approaches take a different point of view. Their central modeling primitives are classes (i.e., frames) with certain properties called attributes. These attributes do not have a global scope but are only applicable to the classes they are defined for (they are typed) and the "same" attribute (i.e., the same attribute name) may be associated with different value restrictions when defined for different classes. A frame provides a certain context for modeling one aspect of a domain. Many additional refinements of these modeling constructs have been developed and have led to the incredible success of this modeling paradigm. Many frame-based systems and languages have been developed, and under the name object-orientation the paradigm has also conquered the software engineering community. Therefore, OIL incorporates the essential modeling primitives of frame-based systems into its language. OIL is based on the notion of a concept and the definition of its superclasses and attributes. Relations can also be defined not as attributes of a class, but as independent entities having a certain domain and range. Like classes, relations can be arranged in a hierarchy. We will explain the difference between OIL and pure Description Logics using their different treatments of attributes. In DLs, roles are not defined for concepts. Actually, concepts are defined as subclasses of role restriction. One could rephrase this in a frame context as follows: a class is a subclass of its attribute definitions (i.e., all instances of the class must fulfil the restrictions defined for the attributes). However, asking which roles could be applied to a class does not make much sense for a DL, as nearly all slots can be applied to a class. With frame-based modeling we make the implicit assumption that only those attributes can be applied to a class that are defined for this class.
Web standards: XML and RDF. Modeling primitives and their semantics are one aspect of an Ontology Exchange Language. In addition we have to decide about its syntax. Given the current dominance and importance of the WWW, a syntax of an ontology exchange language must be formulated using existing web standards for information representation. As already shown with XOL 5 (cf. [Karp et al., 1999] , [McEntire et al., 1999] ), XML can be used as a serial syntax definition language for an ontology exchange language. The BioOntology Core Group 6 recommends the use of a frame-based language with an XML syntax for the exchange of ontologies for molecular biology. The proposed language is called XOL. The ontology definitions that XOL is designed to encode include both schema information (meta-data), such as class definitions from object databases, as well as non-schema information (ground facts), such as object definitions from object databases. The syntax of XOL is based on XML and the modeling primitives and semantics of XOL are based on OKBC-Lite. OIL is closely related to XOL and can be seen as an extension of XOL. For example, XOL allows only necessary but not sufficient class definitions (i.e., a new class is always a sub-class of and not exactly equal to its specification) and only class names but not class expressions (except for the limited form of expression provided by slots and their facets) can be used in defining classes. The XML syntax of OIL was primarily defined as an extension of XOL, although, as we said above for OKBC, we omit some of the original language primitives. Further candidates for a web-based syntax for OIL are RDF and RDFS. The Resource Description Framework (RDF) 7 (cf. [Miller, 1998] , [Lassila & Swick,1999] ) provides a means for adding semantics to a document without making any assumptions about the structure of the document. RDF is an infrastructure that enables the encoding, exchange and reuse of structured meta data. RDF schema (RDFS) [Brickley & Guha, 2000] provides a basic type schema for RDF. Objects, Classes, and Properties can be described. Predefined properties can be used to model instance of and subclass of relationships as well as domain restrictions and range restrictions of attributes. In relation to ontologies, RDF provides two important contributions: a standardized syntax for writing ontologies, and a standard set of modeling primitives like instance of and subclass of relationships.
Ontolingua 8 (cf. [Gruber, 1993] , [Farquhar et al., 1997] ) is an existing proposal for a Ontology Interchange Language. It was designed to support the design and specification of ontologies with a clear logical semantics based on KIF 9 . Ontolingua extends KIF with additional syntax to capture the intuitive bundling of axioms into definitional forms with ontological significance and a Frame Ontology to define object-oriented and frame-language terms. 10 The set of KIF expressions that Ontolingua allows is defined in an ontology, called the Frame Ontology. The Frame Ontology specifies, in a declarative form, the representation primitives that are often supported with special-purpose syntax and code in object-centered representation systems (e.g., classes, instances, slot constraints, etc.). Ontolingua definitions are Lisp-style forms that associate a symbol with an argument list, a documentation string, and a set of KIF sentences labeled by keywords. An Ontolingua ontology is made up of definitions of classes, relations, functions, objects distinguished, and axioms that relate these terms.
The problem with Ontolingua is its high expressive power, which is provided without any means to control it. Not surprisingly, no reasoning support is provided with Ontolingua. 11 OIL takes the opposite approach. We start with a very simple and limited core language. The web has proven that restriction of initial complexity and controlled extension when required is a very successful strategy. OIL takes this lesson to heart. We already mentioned that the focus on different reasoning tasks may lead to different extensions. We have already shown in [Klein et al., 2000] that the current expressiveness of OIL is not sufficient for some purposes (see also Section 3.4 ). This may lead to a family of controlled extensions to the language. This will give us versions with different expressive power which can be applied in different cases as required. We believe that this approach is preferable to the definition of one single, large and unmanageable language .
In general there are two strategies for achieving a standard: Defining a "small" set of modeling primitives that are common across the community, and defining a proper semantics for them; or defining a "large" set of modeling primitives that are present in some of the approaches in a community and glue them together. Both may lead to success. The first approach can be illustrated with HTML. Its first version was very simple and limited but therefore allowed the Web to catch on and become a worldwide standard. Meanwhile we have HTML version 5, XHTML, and XML. So, beginning with a core set, and successively refining and extending it, has proven to be a successful strategy. The second approach has been taken by the UML community by designing a model that is broad enough to cover all its modeling concepts. This leads to ambiguity and redundancy in modeling primitives and sometimes a precise semantic definition is lacking. However, UML has been adopted by the software industry as one of the major approaches in the meantime and is therefore also a success. Obviously, these two opposite approaches to standardization may both work successfully. We have chosen the first approach in developing OIL. This stems from the purpose for which OIL is designed. It should provide machine understandable semantics of domain theories. This will be used in the Web context to provide machine processable semantics of information sources helping to make Tim Berners-Lee's vision of a semantic web come true. Therefore, clear definitions of semantics and reasoning support are essential.
A simple and well-defined semantics is of great importance for an ontology interchange language because it is used to transfer knowledge from one context to another. An ontology exchange standard already exists for frame-based systems: the Open Knowledge Base Connectivity (OKBC) 12 ( [Chaudhri et al., 1997] , [Chaudhri et al., 1998] ). OKBC is an API (application program interface) for accessing frame-based knowledge representation systems. Its knowledge model supports features most commonly found in frame-based knowledge representation systems, object databases, and relational databases. OKBC-Lite extracts most of the essential features of OKBC, while not including some of its more complex aspects. OKBC has also been chosen by FIPA 13 as an exchange standard for ontologies (cf. FIPA 98 Specification, Part 12: Ontology Service [FIPA, 1998] ). OIL shares many features with OKBC and defines a clear semantics and XML-oriented syntax for them. A detailed comparison is made in Section 4 of this paper.
In the same way as OIL provides an extension of OKBC (and is therefore downwards compatible with OKBC), OIL provides an extension of RDF and RDFS. Based on its RDF syntax, ontologies written in OIL are valid RDF documents. OIL extends the schema definition of RDFS with additional language primitives not yet present in RDFS. Based on these extensions, an ontology in OIL can be expressed in RDFS. A detailed comparison is made in Section 4 of this paper.
1. http://dl.kr.org/. Links to most papers, project, and research events in this area can be found here.
4. http://www.cs.man.ac.uk/~horrocks/software.html We will discuss later in the paper the use of FaCT as an inference engine for OIL.
9. The Knowledge Interchange Format KIF ( [Genesereth, 1991] , [Genesereth & Fikes, 1992] ) is a language designed for use in the interchange of knowledge among disparate computer systems. KIF is based on predicate logic but provides a Lisp-oriented syntax for it. Semantically, there are four categories of constants in KIF: object constants, function constants, relation constants, and logical constants. Object constants are used to denote individual objects. Function constants denote functions on those objects. Relation constants denote relations. Logical constants express conditions about the world and are either true or false. KIF is unusual among logical languages in that there is no syntactic distinction among these four types of constants; any constant can be used where any other constant can be used. This feature allows the reification of formulas as terms used in other formulas, making it possible to make statements over statements. This introduces second-order features in KIF, which provides an important extension of first-order logic.
10. The Ontolingua Server as described in [Farquhar et al., 1997] has extended the original language by providing explicit support for building ontological modules that can be assembled, extended, and refined in a new ontology.