The DIG Description Logic Interface: DIG/1.1 Sean Bechhofer University of Manchester Oxford Road Manchester M13 9PL seanb@cs.man.ac.uk February 7, 2003 Abstract This document describes a simple API for a general description logic system. 1 Introduction Most description logic (DL) systems present the application programmer with a func- tional interface, often defined using a Lisp-like syntax. Such interfaces may be more or less complex, depending on the sophistication of the implemented system, and may be more or less compliant with a specification such as KRSS [11]. The Lisp style of the KRSS syntax reflects the fact that Lisp is still the most com- mon implementation language for DLs. This can create considerable barriers to the use of DL systems by application developers, who often prefer other languages (in particular the currently ubiquitous Java), and who are becoming more accustomed to component based software development environments. This is of increasing impor- tance given current interest in Web Services and service based architectures. In such an environment, a DL might naturally be viewed as a self contained com- ponent, with implementation details, and even the precise location in which its code is being executed, being hidden from the application [3]. This approach has several ad- vantages: the issue of implementation language is finessed; the API can be defined in some standard formalism intended for the purpose; a mechanism is provided for appli- cations to communicate with the DL system, either locally or remotely; and alternative DL components can be substituted without affecting the application. This approach was adopted in the CORBA-FaCT system [5], where a CORBA interface was defined for a description logic reasoner. This wrapping of the FaCT reasoner facilitated the successful use of the reasoner in applications such as OilEd [4] and ICOM [6]. Although useful, CORBA-FaCT suffered from a number of inadequacies. The con- cept langage does not cover concrete domains, and as the interface was largely based on the FaCT reasoner (which did not support an A-box at the time), functionality relat- ing to Aboxes was missing. In addition the identifiers allowed were closely tied to the underlying Lisp implementation (case insensitive strings of essentially alphanumeric characters). This introduces problems when trying to reason over languages such as 1