# KEHOME/doc/MKRintro.html
# Feb/25/2007
MKR introduction
MKR 7.3 introduction
basic format
An MKR proposition has the format
at context { sentence };
where context is
space=s, time=t, view=v
View names the context, which is a list of
propositions. Contexts are stored in
entity-characteristic-proposition hierarchies.
Sentence may be generalized to a proposition list.
Every sentence and proposition is terminated
by a semicolon.
The basic sentence is the statement:
subject verb object pplist;
characteristic types
The object describes some characteristic of
the subject. The verb indicates what type of
characteristic. The basic characteristic
types and corresponding verbs are
definition is,isa,iss,isu
alias is
hierarchy isa,iss,isu
group ismem,isalt
relation rel
part haspart
attribute has
action do
interaction causes
There are many other MKR verbs, not shown here.
Most MKR verbs have inverses and iterative forms.
The two forms which use pplists are definitions
subject is genus of domain with differentia;
and actions
subject do action = event
out action products
of action domains
with action characteristics
od action direct objects
from action initial characteristics
to action final characteristics
done;
Actions may also be written as productions
product := subject do ... done;
sentence types
MKR has the classical sentence types found in
natural languages, plus some "programming" types.
statement
question
command
conditional
iteration
assignment
production
group definitions (begin ... end)
Group definitions are used for defining
hierarchies, relations, and other groups.
The hierarchy format uses an indented outline,
similar to the table of contents of a book.
The relation format uses comma-separated phrases.
The question format is the same as a statement,
with one or more elements replaced by a question
mark. For example
subject has ?;
subject do ? done;
The command format is the same as an action statement,
with the subject omitted. For example
do classify od unknown to view done;
Local operating system commands can be executed from MKR
scripts -- just replace "do" by "!". For example
! ls with -lt od *.icn to programs.txt done;
! sort with -o person.txt od person.txt done;
The assignment format is the same as an attribute statement,
with the subject omitted, and "has" replaced by "let" or "unlet".
For example
let kformat = mtriple;
unlet debug;
The conditional format is
if proposition
then propositionlist
else propositionlist
fi;
The iteration formats are
every generator {
propositionlist
};
while proposition {
propositionlist
};
until proposition {
proposition list
};
where generator takes one of two forms
variable genverb object;
variable pplist;
and genverb is one of
is,isa,iss,isu,ismem,isalt
pplist is used for list|array indexes
(e.g. GDBM database tables)
and infons (tuples) of relations.
every index from initial to final; { ... };
every index of myarray; { ... };
every infon of myrelation; { ... };
The comment format begins with "#" and extends to end of line.
For example
MKRintro.html has # this document
author="Richard H. McCullough", # dc:creator
date="March 5, 2003"; # creation date
more productions
A special form of production (associative array
sytnax) is useful when accessing GDBM databases.
For example, if "John Doe" is a GDBM database table
which is indexed by the attributes of "John Doe",
then the attribute statement
John Doe has sex = male;
can be written as
John Doe[sex] := male;
All the attributes of "John Doe" can be accessed
with a generator.
every attr of John Doe; {
proposition list
};
Productions can also be used instead of assignments.
let charformat = column;
can be written as
charformat := column;
more details
MKE home