ICOT Free Software No.80
Copyright (C) 1993 Institute for New Generation Computer Technology (ICOT)

Micro Quixote (Version 0.5) 			   Mon. Dec 27, 1993

1. INTRODUCTION

`Quixote' is a deductive object-oriented database system developed at
ICOT.  It is implemented with the KL1 programming language on PIMOS.
Although Quixote has many features, it is rather big system, and it is
not easy to install it, or run it.

Micro Quixote is another implementation of the language `Quixote.'  It
is implemented with C.  It eliminates many features of Quixote, and
only implements core feature of Quixote.  However, it's small, and
easy to install.  And more, it is expected that Micro Quixote could
run on other operating systems except Unix.


2. FEATURES [Sorry, this section is not completed yet...]

Micro Quixote is a logic programming language which handles objects
and subsumption relations.  You can define subsumption relations
between objects, and write rules using subsumption relations.  Object
has labels and attributes.  There are two types of attributes,
intrinsic attributes and ordinal attributes.  If there is subsumption
relation between objects, attributes are inherited.

For detail, please see syntax.ref.  It describes syntax of Micro
Quixote.  We are preparing `Micro Quixote Users' Manual.'  Please be
patient, or better, help us to write.

2.1 Program

Program in Micro Quixote begins with `&program;;' and ends with
`&end.'  It consists of two sections.  One is "rule" section which
begins with `&rule;;', and another is "subsumption" section which
begins with `&subsumption;;'.  Here is an example.


2.1.1 Rule section (Objects and Rules)

Rule section consists of objects and rules.

Objects are extended terms.

	Example		Description
	------------+------------------
	o		basic object
	o[l=a,m=b]	complex object (object with intrinsic attributes)

Dot terms.
	o.l		attribute of label l of o
	p.m.l		say, attribute of label m of p = o,
			  then attribute of label l of o

Facts.
	o/[l=a];;	% There is o such that attribute of label l is a

Rules.
	o/[l=a] <= p[m=a];; %

2.1.2 Subsumption Relation

	a >= b;;	% a subsumes b


2.1.3 External Invocation

2.2 Query

2.3 Multi Lingual Text

Micro Quixote can handle multi-lingual text.  You can write your
program using Mule coding system, or Extended Unix Code (EUC).


3. INSTALLATION

See the file `src/INSTALL.'


4. FILES

There are three directories, this file, README, and BUGS.

	README	This file.
	BUGS	How to report bugs, comments.
	src	directory which contains source code of Micro Quixote.
	example directory which contains example code of Micro Quixote.
	GNU	directory which contains files under GPL.

Each directory contains `MANIFEST', which says the contents of the
directory.

Please notice that files in `GNU' directory are distributed under GNU
General Public licenses (GPL).  See GNU/COPYING for terms and
conditions.

For files in `src' directory, src/COPYRIGHT describes terms and
conditions.


5. DIFFERENCES/INCOMPATIBILITY with QUIXOTE

5.1 Difference of Calculation

Micro Quixote's calculation proceeds like Prolog, that is, rules are
evaluated from up to down, left to right.

5.2 Things that Micro Quixote Can't Do

Micro Quixote
  doesn't have
	features for database system (updating rules, transaction, etc.),
  can't handle
	Set, Module, List, Rules with variable head.

And as consequence of 5.1, Micro Quixote does nothing with `OR-merge'.

5.3 Incompatibility

Quoted atom, external invocation, and multi-lingual text handling of
Micro Quixote is its original feature.  Programs that use these
features can't run on Quixote.


6. REFERENCES

Kazumasa Yokota, Deductive Object-Oriented Databases, Computer
Software, Vol.9, No.4, pp3--18, 1992 (in Japanese).

Hideki Yasukawa, Hiroshi Tsuda, and Kazumasa Yokota,
Object, Properties, and Modules in QUIXOTE,
Proc. of FGCS92, pp257--268, 1992.
