CODE4: Conceptually Oriented Description Environment
A System for Knowledge Management:
Acquisition, Analysis, and Retrieval
Doug Skuce <doug@csi.uottawa.ca>
Tim Lethbridge <tcl@csi.uottawa.ca>
Artificial Intelligence Laboratory,
Department of Computer Science,
University of Ottawa
Jump directly to the W3 Code4 interface
CODE4 (Conceptually Oriented Description Environment)
is a general purpose knowledge management system intended for
analysing, debugging, and delivering knowledge about some domain.
It is designed to be easily adaptable to many applications, such as
natural language processing, software specification and design,
expert systems, general terminological analysis, or teaching subjects
such as biology or Unix. It can be learned by non-computer people in
a few days.
The system features a frame-based representation with a number of
inheritance and inferencing modes, a very flexible graphic user
interface with various graphing facilities, a hypertext mode of
browsing, the ability to specify functional computation like in a
spreadsheet, an optional simple restricted English-like syntax, and
document scanning and lexicon management facilities. These features
are all designed to assist a person in the semantic interpretation and
conceptual analysis of knowledge (i.e. in knowledge entry), or in
knowledge retrieval.
CODE4 is written in Smalltalk and runs on Macintosh, 486, or Unix
platforms. It has been used to capture knowledge about major
products in several large companies, and for various academic
applications such as software development, ontology design and
terminology research.
You are currently accessing a running CODE4 image at the University
of Ottawa, acting as a server that delivers ascii text read-only. You
can browse in various knowledge bases, described below. When you
chose a kb, you will first see a hierarchy of all concepts, including the
internal CODE concepts, which are common to all kbs. Just below it (9
to 11 lines down) you will see the highest concept entered by the
builder of this particular kb, e.g in the Skuce Top Ontology this is
called thing. Clicking on any concept in a hierarchy will restrict the
tree to that branch. (Concepts may be in more than one tree.) If you
now click on the word Properties that appears before the concept
hierarchy, you will see the hierarchy of properties of this concept. To
go back, use the Mosaic back button.
You are only seeing part of the knowledge in each kb: for each
concept, you see its properties and the expression that is their value,
which usually is informal (unprocessed by CODE). Other information,
such as non-inheriting properties, and the modality of a property
(e.g. necessary vs optional) are not normally shown. The default
modality is 'typical', i.e. most instances of this concept have this
property.
- Object-oriented:
- programmed in Smalltalk;
runs on all major platforms
- Highly graphic user interface:
-
- hypertext browsing
- draws taxonomies and various semantic
networks on demand
- exports to publishing and other tools
- Hybrid AI knowledge representation + hypertext:
-
several inheritance link types and associated
inference mechanisms.
- Database-like search:
- answers queries in a
knowledge base ("show me all X such that Y")
- Knowledge debugging features:
-
- easy viewing of changes in property inheritance
or comparision of concepts
- system warns of potential conflicts
- User can build up knowledge bases and lexicons by
scanning real documents
- Lexicon management:
- terms are stored as first-class
concepts. Terms can have several meanings, and
concepts can have several terms.
Part of the Botany Kb (2 kbs)
Loaded from the kb of Bruce Porter's research group at the
University of Texas. Developed over about seven years with serious
consultation from an expert biologist. Only two slices are shown:
one kb shows the complete branch of all entities, the other shows all
concepts in the top 4 levels.
Three views of the Collection hierarchy in Smalltalk: one as it is in
Smalltalk, one according to William Cook's OOPSLA paper, and one by
me, Doug Skuce. Intended to show how CODE can either assist in
documenting an existing design, or comparing several designes, or to
assist in developing a new one. Not complete. Uses a formal notation
that is not described in the kb.
A description of some kinds of dogs, done by Kristen Mackintosh, a
student in Translation at U of O, as a first practice in using CODE.
A description of certain properties of rocks of practical interest to
geologists, done by Boyan Brodaric, an employee of the Canadian
Government Geological Survey. Done as part of a graduate course on
knowledge engineering.
This kb was developed by Mark Israel, a graduate student in the
same course. Its purpose is to assist someone trying to decide which
numerical method is best for a particular type of matrix. Hence you
see a classification of matrices and of methods. The pointers (e.g.
from a kind of matrix to a kind of method) unfortunately do not
show because they are non-inheriting properties which in general do
not appear in this initial Mosaic interface.
This is a serious kb about concepts related to optical storage, e.g. CD-
ROMs. It was developed by a team of terminologists over about two
years, and is intended to assist a translator or writer who must deal
with a document on this subject but who does not understand the
subject. It represents a comprehensive assessment of all the
important terms in this field. A number of non-technical properties
of critical interest (e.g. what is the French translation for a term) do
not appear because they are non-inheriting.
This ontology has been a low priority background task of mine for
about five years. Over the years, it has changed many times. The
major sources of ideas include: Penman, Cyc, conceptual graphs,
linguistic research such as that of Dixon, Lakoff, and Frawley (to
name a few), various philosophical works, plus the general ai
literature. It is far from complete, and has many problems: it is still
evolving. It has been used mainly to help me understand some of
these issues better, and a number of students have used it as a
starting point when building a small kb. I am very interested in the
problem of how we are going to reach agreement on such ontologies:
for the moment, I see no way of doing this emerging from the fog.
(See my paper in last year's Padova meeting, or my 1990 Banff
paper.) All inquiries are welcome.
- Design and requirements analysis (e.g. software
development; o-o design)
- Technical documentation (e.g. airplanes or drugs)
- Government or military regulations (e.g. tax laws)
- Teaching technical material (e.g. physics, biology)
- Hypertext-like information retrieval
(e.g. technical manuals)
- Knowledge acquisition for expert systems
(CODE kbs can be converted into expert systems)
- Database conceptual design (extension of O-O and ER)
- Designing ontologies for natural language systems
(defines lexical meanings)
- Terminological analysis and control (e.g. in large
organizations; international standards like ISO)
- Smalltalk-80 version 4.1 on
Macintosh Quadra, with 12 Mb of memory
- or
486 under Windows 3.1, with 12 Mb of memory
- or
Sparc or similar Unix machine with 16 Mb of memory
CODE4 requires Smalltalk, which is obtainable from
ParcPlace Systems, Mountain View, CA fax 415 691 6715
The University of Ottawa can provide you with a run-time
system for an additional $500 Can, or you can buy the complete
Smalltalk system from ParcPlace for $350 US academic price (better
than paying $500 Can which is about $350 US for just the run-time
system).
Cost of CODE4 (excluding Smalltalk cost):
- $1500 Can ($1100 US) for non-university users (one copy)
- $500 Can ($400 US) for university users (one copy)
A demonstration version (no IO) is available free (if you have
Smalltalk) by ftp. Contact D. Skuce.
Enquiries: doug@csi.uottawa.ca,
voice 613 564 5418, fax 613 564 9486
dduchier@csi.uottawa.ca