new release of ontolingua Tom Gruber <email@example.com>
Full-Name: Tom Gruber
Sender: Tom Gruber <gruber@hpp.Stanford.EDU>
Date: Fri, 9 Oct 1992 21:10:53 PDT
From: Tom Gruber <firstname.lastname@example.org>
Subject: new release of ontolingua
Announcing a new release of ontolingua
We have just made available a new release of ontolingua on the
This new version has benefited from many of your comments and
suggestions, and is more useful than the previous release for
analyzing ontologies, even without translation into a target
representation. If I've been telling you to hold off until the new
code is out, now's the time to get it off the net.
The new features are:
- KIF syntax checking with gentle, DWIMifying warnings. The
code comes with a KIF parser that can be used for many language
- A cross reference (MasterScope-like) utility for checking for
undefined constants, and teasing out inter-theory dependencies.
With the KIF syntax checking, this makes running ontolingua feel
more like a compiler than a no-questions-asked translator.
- On-line documentation tools. From Gnu Emacs you can access
the documentation and definitions of constants defined in
ontologies loaded into Lisp. Uses the popular ILISP interface
to UNIX Lisps. Also does the right thing on Lisp Machines.
- Improved frame ontology. This is the axiomatization of the
primitive relations and functions that are recognized by
translators into object-centered representations. When loaded, it
serves as documentation on available "primitives" for writing
portable definitions. It is also a good example of advanced KIF
- A library of example ontologies. The complete axiomatization
of KIF is now machine readable as a family of ontologies (sets,
lists, numbers, relations, metalevel). Others include an
ontology for bibliographic databases, an axiomatization of
abstract algebra that is integrated with the KIF/frame-ontology
theory of relations, and a set of KL-ONEish second-order
A dozen or so ontologies are currently under development, and when
they are ready they can be published in this library.
There are ontologies under development in ontolingua for quantity
algebras, decision maintenance, planning/scheduling, various
task-specific problem-solving methods, and topics relevant to
- Robust translation into LOOM. It now recognizes a lot of
conventions that have special support in LOOM, such as function
and relation composition, numeric intervals, enumerated sets,
and complex domain/range restrictions. LOOM can be useful
for getting feedback about the subsumption relationships among
classes, as well as providing inference capabilities on knowledge
bases written under an ontology. Contact Robert MacGregor
<email@example.com> for information on LOOM.
- A cleaner protocol for back-end translators. A minimal translator
need only recognize expressions using a fixed subset of the frame
ontology in a canonical form. The LOOM translator is a good
template for other translation code. Watch this space for
announcements of new systems into which ontolingua will
- The code is verified on Lucid, Allegro, and Lisp Machines.
- A new introductory paper, easier on the brain than the original
See ksl.stanford.edu: /pub/k-sharing-papers/ksl-92-71.rtf or .binhex
The README.TEXT file in the release directory explains how to install
the code. The /doc directory contains a user-guide, reference-manual,
and introductory paper.
To use Ontolingua, you just load a file containing ontolingua
definitions. If you're running on top of Epikit or LOOM and you want
a translation, just say (in-implementation :epikit) or :loom before
loading. And you'll want to say (in-package "ONTOLINGUA-USER").
Loading a file or evaluating forms from an Emacs buffer causes
ontolingua to analyze definitions. The system will give you feedback
on the forms, like a compiler. You can see what the forms are being
translated into with a keystroke (^z-o from ILisp), or you can divert
output to a stream (binding *onto-trace*). We you've gotten the
definitions free of syntax bugs, then run the XREF-THEORY. It
will tell you which symbols that are used as object, relation, and
function constants are undefined, which are defined in included or not
included (but loaded) ontologies, and which are used in illegal
syntactic positions (e.g., relation in functional position). After a
while your ontology makes it through the cross reference tool "clean".
You can also use the "meta-." facilities of your Emacs interface as a
hypertext browser. Select symbols used in one definition and jump to
their definitions, which might be in another file. Read the
documentation strings in the definitions.
Enjoy. Please complain, or "request features", to: