After working at BNR for two years I started
studying at the University of Ottawa in 1989.
I had originally intended to continue studying computer animation (the
subject of my master's thesis, however while
taking a graduate course in expert systems from Doug Skuce I became
interested in artificial intelligence. I liked the "Conceptually Oriented
Design Environment" (CODE) Skuce was developing.
For my thesis, I expanded on Doug's original ideas substantially,
eventually developing CODE4, the fourth in a series of CODE systems. Abstracts and on-line
versions are available of some papers I have written about my PhD
work. Also, the entire
thesis is available.
To see my pedigree of PhD advisors (which includes Vanenvar Bush the originator of the idea of hypertext), you can look at the Mathematics Genealogy Project, or the AI Genealogy Project
CODE4 was written in Smalltalk, and its development substantially
increased my knowledge of object-oriented techniques. I programmed a
large part of the system myself, but was assisted by talented people
such as Danny Epstein and Ken Iisaka.
Some insights of my PhD research are as follows:
- Sophisticated artificial-intelligence based knowledge representation
techniques can be used by non-computer scientists. What is required is to
develop a good user interface.
- Hypertext and browsing technology can be combined in useful ways. In
CODE4 d, we extended the idea of the browser, as pioneered in the Smalltalk
environment, in the following ways:
- Arbitrary hierarchies of browsers can be created.
- Each browser can contain data, or an arbitrary graph of items.
- The items selected in higher nodes in the browser hierarchy determine
what is displayed in lower nodes.
- Groups of browsers can be maintained in a common window, or can be
placed in separate windows.
- Graphs of elements can be shown in a two-dimensional 'graphical'
form, an 'indented list' or 'outline' form or even in a matrix form in
some cases. These ways of laying out items can be interchanged, (i.e. the
format of a browser does not affect the browser's function within the
- In the outline form, intentation indicates relationships and repeated
items are shown followed by an ellipsis.
- In the graphical form, the layout of items can be determined by
either a system algorithm or by the user. One or more layouts can be
- The relationships between items in a graph are as important as the
items themselves, and in fact are considered first-class items.
- Consistently, several items may be selected in a graph. There is zero
or one master selection and zero or more secondary selections. These
selections are used when operations are to be performed on the items.
- A context-sensitive collection of operations on items is available.
In particular, some operations will open other browsers, or jump to other
browsers in a hypertext-like fashon.
- In each graph, the format of items is variable: Items can be
highlighted based on various search criteria. Also, the information
listed about each item can be changed dynamically.
- Items or groups of items in the graph can be selectively hidden. When items are hidden, placeholders may or may not be shown, allowing the items to be
located or redisplayed.
- Certain interesting types of concept (used uniformly to represent
knowledge) are the following:
- Properties: These are the things you can say about a concept. They
are arranged in a hierarchy (i.e. you can say general things and more
- Statements: These represent the specific posession of a property by a
- Metaconcepts: These are concepts of concepts.
- Symbols: These are what people or machines use to refer to concepts;
each concept can have zero or more symbols, and each symbol can represent
zero or more concepts.
- Terms: These are the specific relationship between a symbol and a concept..
- Metrics can be developed for knowledge bases, just like metrics for
software. In particular, there are several ways to measure the complexity
of a knowledge base.
My PhD research has seen significant practical usage. In the early days,
I worked on a contract with BNR, wherein version 2 of the CODE system was
actively used to model software. Then I was involved in a consulting
contract with Boeing Aircraft Corporation who extended CODE4 and built it
into some of their internal products. CODE4 has also been used by
numerous graduate students and professors, and copies have been sold to
other researchers (in commercial and university environments). I
continued to use CODE4 from 1995-2002 in research I performed with Mitel
corporation. As of 2008 I consider the actual software system of CODE4 to
be obsolete, since the VM won't run on current operating systems. Many of
the ideas embedded in it remain, however, state-of-the-art
I successfully defended my PhD thesis on November 11, 1994. Since 1994, I
have been teaching at the University of
Ottawa on a full-time basis.
[Back to my
main biography page]