
This directory contains suzy, an attempt at a crude word-for-word
Latin-to-English "translator."  Right is hereby given for unlimited
non-profit use of this package.

The following are descriptions of the various files suzy needs:

*******************************************************************************

dictionary: Latin-to-English dictionary, in a  semi-standard dictionary format

Sample entries:
	amo amare amavi amatum (I) love
	ecce (interj) look
	et (conj) and
	ex (prep) out
	laetus laeta laetum (adj) happy
	puella puellae (f) girl
	rex regis (m) king
	vere (adv) indeed

As seen above, all of the Latin word forms must be completely spelled out.
Also, the dictionary does not need to be sorted, although it is easier
to people to read if it is

Acceptable parts of speech are:

	adv	adverb
	adj	adjective
	conj	conjugation
	f	feminine
	interj	interjection
	m	masculine
	n	neuter
	prep	preposition

Roman numerals are used to indicate a verb's conjugation, and may be
either I, II, III, IV, or III-io.

The last entry of the dictionary must be "zzz".

*******************************************************************************

dict.l: the "compiled" dictionary, stored in a binary tree

This file is created by the mkit utility.

Sample entries:
	(am (vab love))
	(puell (naf girl))
	(puer (nbmx boy))

The entry's first element is the word's root, followed by list
comprising encoded information about the word, and the one English word
that the word most often stands for.

Explanation of word codes:
	The first letter indicates part of speech:
		a	adjective
		c	conjunction
		d	adverb
		i	interjection
		n	noun
		p	preposition
		v	verb

	The second letter indicates declension for nouns, or conjugation
	for verbs.  An "a" means 1st decl. or conj, a "b" indicates 2nd
	decl. or conj., etc.

	The third letter indicates gender for nouns, or for verbs, the
	principal part from which the root was formed.  For instance, a
	"b" could mean that the root comes from the second (i.e.,
	infinitive) part of the verb.

	The presence of an "x" at the end of a noun entry means that the
	Latin word has the same root for all forms, such as "puer." 
	Otherwise, two entries will appear for a noun, e.g., "rex, regis."

*******************************************************************************

idictionary.l: dictionary of irregular words

This, by nature, must be created by hand.  This is one large, normal assoc
list, consisting of entries with the same word codes format as those
found in suffixes.l.

For example:
	(sum (vxiapa am))

See the description of suffixes.l for further details.

*******************************************************************************

idict.l: as above, in binary tree

Created by mkit.

*******************************************************************************

main.l: the actual "translator"

This is the part of suzy that does all the work.  It reads in a
sentence, and, for each word: matches all possible suffixes, looks up
possible roots in the dictionaries, then checks to see if the suffix
makes sense on the root.  When the first root which "works" with the
given suffix is found, information about the root and its case, tense,
etc. is printed.

*******************************************************************************

mkit: suzy utility

Mkit creates the dictionaries and suffix lists by reading in lists,
sorting them, converting them to a binary tree, and saving the tree in
another file.

To use mkit, give it the name of the file you wish to create (i.e.,
dict.l, idict.l, or suf.l).  For example:

	echo dict.l | mkit

*******************************************************************************

suffixes.l: word suffixes

This contains the list of Latin suffixes which is used by suzy to
determine a word's part of speech, case, tense, etc.  This is stored as
a normal assoc list, and must be created by hand.

A sample entry is:
        (em (ncsa nesa vasapa))

This tells suzy that, if a word ends in "em", it could be a noun or a
verb, and also indicates what case or tense the word will be.  A more
detailed explanation of suffix codes follows:

The first letter of a suffix code indicates part of speech, using the
same system as dict.l

The second indicates declension for nouns, or conjugation for verbs,
again using dict.l format.  If this letter is "x", this shows that the
word in question is irregular.

The third indicates person for nouns (s = singular, p = plural).
For verbs, it shows mood (i = indicative, s = subjunctive).

The fourth indicates case for nouns:
	n	nominative
	g	genitive
	d	dative
	a	accusative
	b	ablative
It shows voice for verbs (a = active, p = passive).

The fifth exists only for verbs, and shows tense:
	p	present
	i	imperfect
	f	future
	r	perfect
	l	pluperfect
	u	future perfect

The sixth also exists only for verbs, and shows person:
	a	first person, singular
	b	second person, singular
	c	third person, singular
	d	first person, plural
	e	second person, plural
	f	third person, plural

*******************************************************************************

suf.l		as above, in binary tree

Created by mkit.

*******************************************************************************

suzy.l		startup file

This file instructs LISP to load in the dictionaries and suffix lists,
then calls the main user-interface in main.l

*******************************************************************************

tsort.l: binary tree manipulation routines

Tsort works with "tassoc" lists (like LISP assoc lists, but stored in a binary
tree).  For instance, (a (b nil d) (e f (g h nil))) represents the tree

				a
			+-------+-------+
			b		e
			+--+	     +--+--+
		           d	     f     g
					 +-+
					 h

If for some reason you want suzy to use normal assoc lists instead of
tassoc lists, replace all occurences of "tassoc" with "assoc" in main.l,
and delete all the lines containing "tsort" in mkit.l

*******************************************************************************

						Jan Miksovsky
						Choate Rosemary Hall
						P.O. Box 788
						Wallingford, CT  06492
						
						..{decvax}!yale!spock!jtm
