new release of ontolingua

Tom Gruber <gruber@ksl.stanford.edu>
Full-Name: Tom Gruber
Sender: Tom Gruber <gruber@hpp.Stanford.EDU>
Date: Fri, 9 Oct 1992 21:10:53 PDT
From: Tom Gruber <gruber@ksl.stanford.edu>
Reply-To: gruber@sumex-aim.stanford.edu
To: ontolingua@ksl.stanford.edu
Subject: new release of ontolingua 
Message-id: <CMM.0.88.718690254.gruber@hpp.Stanford.EDU>
Announcing a new release of ontolingua

We have just made available a new release of ontolingua on the 
FTP directory:
  ksl.stanford.edu: /pub/ontolingua

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
    processing tasks.

  - 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
    usage.

  - 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
    relations.
       
    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
    engineering modeling.

  - 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
    <macgregor@isi.edu> 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
    translate. 

  - The code is verified on Lucid, Allegro, and Lisp Machines.

  - A new introductory paper, easier on the brain than the original
    technical report.  
    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:
  
  ontolingua@ksl.stanford.edu
						Tom Gruber