Ontolingua
The facilities provided by Ontolingua are now only available through the
KSL Interactive Ontology
Server
The Interactive Ontology Server has many new and updated ontologies as well as many new features relative to Ontolingua 4.0. Anything else you see in this document is old and should be treated only as an historical hint.
Ontolingua is a set of tools, written in Common Lisp, for analyzing and translating ontologies.
It uses KIF
as the interlingua and is portable over several representation systems.
It includes a KIF parser and syntax checker, a cross reference utility, and a set of translators from KIF into implemented representation systems, and a HTML report generator. See below for a more complete description of the services that Ontolingua provides.
This is an overview of ontolingua, with pointers to more information. The sections of this document are:
The documentation for Ontolingua has
undergone extensive revision, and is now entirely available on-line in hypertext form
(on the World Wide Web).
Documents available:
For an introduction to the ideas underlying ontolingua, see
T. R. Gruber.
A Translation Approach to Portable Ontology Specifications.
Knowledge Acquisition, 5(2):199-220, 1993.
Available at ftp://ksl.stanford.edu/pub/knowledge-sharing/papers/.
Also, if you ever wondered,
What is an ontology? (WWW only)
Also, since Ontolingua is based on the KIF language and the ontological extension to KIF specified in the Frame Ontology, specifications of these should be considered part of the documentation on Ontolingua. KIF is described in the official KIF spec. The Frame Ontology is described in its place in the Ontology web.
Ontolingua is a Common Lisp program. To use Ontolingua, go here
The major services provided by Ontolingua are:
- KIF parsing. Loading an ontology automatically results in a parse for legal KIF. Warnings are issued as appropriate. The code parser is also written so that it can be used for doing a variety of KIF processing tasks. Most of Ontolingua's KIF processing uses the parser to "code walk" the KIF forms.
- Analysis of KIF-based ontologies. Ontolingua will do some analysis of the well-formedness of definitions, and will check for completeness on ontologies. For example, the cross reference tool will generate a report on undefined concepts and intra-ontology dependencies.
- Translation into implemented knowledge representation systems.
Ontolingua can do source-to-source or in-core translations of ontologies from
KIF into representations systems that do storage and inference. Currently
supported target representations include Loom, Epikit, Generic-Frame, and a
canonical form of KIF suitable for external translators.
Other Ontolingua translators under development include CLIPS/COOL (a public-domain,
C-based tool from NASA), KEE/Prokappa (from Intellicorp), and Algernon (a very
expressive object-centered system developed by James Crawford (when he was at UTexas and AT&T). There have been queries about translators into Cyc, Express (used in PDES/STEP standards), Prolog, and SQL. Translators into these languages are doable but no resources have been committed to implementing them.
- Generation of World Wide Web documents. This is a new service, and
has generated a lot of enthusiasm. Ontologies are both human and machine
readable, and are very complex. The old linear, source-code format is not
terribly easy to browse. Ontolingua can now generate a web of interlinked,
nicely-formatted hypertext files that look and feel like specification
documents. The document format and organization is designed so that the
specifications and can be delivered across institutional and
computing-platform barriers, using WWW standards. The hypertext documents
include the results of cross reference analysis, and present each definition
in each ontology from the object-centered perspective (like a frame browser
would). The reports also include links to the original source code, which is
also linked via hypertext.
- Built-in Frame System. Since there seems to be a need for
a simple, public-domain frame system, and because we needed to save
state in some of the new services, we built a little frame systems
into Ontolingua. A frame system is essentially a memory-resident
object-oriented database. Ontolingua treats this one, called
generic-frame, as just another target representation (but one
typically translates into memory instead of to a file). Access to
this frame system (e.g., get-slot-values, get-facets, delete-frame) is
provided by a new Application Program Interfaces called the Open Knowledge base Connectivity protocol (OKBC). Since Ontolingua is OKBC comformant, one can use
any OKBC application on any ontology, and export any OKBC-resident KB to
Ontolingua (and then to any of its target representations). The
software and documentation for the OPBC is available on-line.
Example Ontologies
There is a directory tree full of example ontologies, now in fully indexed,
hypertext format. Ontolingua users are encouraged to share and reuse these ontologies, and contribute theirs.
There is a mailing list for Ontolingua information and requests:
ontolingua@ksl.stanford.edu
To subscribe (or unsubscribe) send mail to
ontolingua-request@ksl.stanford.edu
Archives are maintained on the World Wide Web at
http://ksl-web.stanford.edu/email-archives/
Tom Gruber <gruber@ksl.stanford.edu>