CODE4: Conceptually Oriented Description Environment

A System for Knowledge Management: Acquisition, Analysis, and Retrieval
Doug Skuce <>
Tim Lethbridge <>

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.

Features of CODE4

programmed in Smalltalk; runs on all major platforms
Highly graphic user interface:
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:
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.

Knowledge bases available from this server

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.

The Top Level Ontology Developed by Doug Skuce

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.

Typical Applications of CODE4 KMS Technology


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):

A demonstration version (no IO) is available free (if you have Smalltalk) by ftp. Contact D. Skuce.

Enquiries:, voice 613 564 5418, fax 613 564 9486