Object-Orientation FAQ

Machiavelli (University of Pennsylvania)

Machiavelli is a statically-typed programming language developed
at the University of Pennsylvania. Its most outstanding innovation
is the use of conditional typing scheme in its type inference system.
It does not address type evolution.
[communication with limsoon@saul.cis.upenn.edu]
[Note: Machiavelli is included in this summary because it
       previously incorporated persistence in its data model.]
> MOOD4-PC: Material's/Miniature Object-Oriented Database Prototype for
is an object-oriented database system(OODBS) program developed in the
course of our research project MOOD. The aim of the project MOOD is to
develop a material database system to handle raw material data which
are produced and accumulated in materials research and referred to by
material experts when they face scientific or engineering problems
where the expected behavior of particular materials in particular
environments are crucial importance. We all know that the conventional
database systems do not fulfill this requirement, though they serves
well for bibliographic databases or fact databases which deals with
the standard properties of standard materials.
MOOD4-PC is written in Arity/Prolog and available in source and
executable form via anonymous ftp from:
   at mood.mech.tohoku.ac.jp []
    at ftp.uu.net []
    at src.doc.ic.ac.uk []
Although it is true enough to say that MOOD4 is a general purpose
OODBS, it may be appropriate to point out that MOOD4 is significantly
different from what is generally meant by the term, the
Object-Oriented Database System.
That is, OODBSs, in general, consist of two parts:
   (1) Disk storage manager
   (2) Database language to define and manipulate data objects to
       be stored to and retrieved from the disk.
The database language of OODBS is akin to the object-oriented
programming language such as Smalltalk or C++. You can enjoy the full
versatility of these general purpose programming language in writing
application programs with the database language.
As apparent from these, OODBSs, in general, are for programmers who
write application programs which serve end users' needs. MOOD, on the
other hands, is not; it is for end users. It is provided with a user
interface named the object editor or OE in short. With OE, we can;
  (1) Edit class definition objects and save them. This replaces the
      data definition language.
  (2) Edit data objects and save them.
  (3) Create query objects, let the system select data objects which
      match the queries, and browse them.
In the other words, we can do everything necessary to manage and use
database with OE. MOOD, therefore, needs no programming language and,
in fact, has none. In this regard, MOOD may better be categorized to
the OODBS application.
The architecture of MOOD as such is the consequence of the nature of
information to be dealt with in material database. If we describe the
nature with a single word, "variety" will be the one most appropriate.
No fixed data structure can handle a handful of material data because
their contents differ from one to another. The feature of OODBS
relevant here is not the intimacy with programming languages but the
flexibility of data structure which allows us to construct data
objects with a variety of structures which match the variety in the
information to be dealt with. Upon inputting and retrieving data
objects, end users are forced to face this variety in data structure
since significant information is born in the structures of individual
Yet, we say that MOOD is a general purpose OODBS. This is not in the
sense that we can develop application programs on it, but in the
sense that it generally supports the essential capabilities of OODBS;
  (1) The abstract data type.
  (2) The nesting of structured data objects.
  (3) The class hierarchy.
  (4) The inheritance of attributes along the hierarchy.
  (5) Matching between objects along their structures with the
      knowledge of the class hierarchy.
For additional features of MOOD4, please consult its manual available
with the program. Although they are biased to the processing of
material data (or, more generally, scientific and technical data),
MOOD with these capabilities can be used in any application domain at
least by the stage where you are to examine how well the pieces of
information of interest are represented in OODBS and how well specific
items of interest are discriminated out from the database as such.
Questions and suggestions on this software which are ever welcome
indeed may be addressed to;
     Noboru Ono
     Dept. of Machine Intelligence and Systems Engineering,
     Faculty of Engineering, Tohoku University.

This document was translated by ms2html v1.8 on 01.06.95.