#$
# ke version 3.3 1999/3/31
Knowledge Explorer User Manual
1. Getting Started
==================
#$
1.1. knowledge: knits & chits
=============================
The Knowledge Explorer (ke) is an interactive tool
for organizing knowledge. It helps the user to
record, change, and search knowledge, and provides
extensive error checking to ensure the internal
consistency of the knowledge.
Knowledge is an identification of the facts of reality,
using words and sentences. Knowledge Explorer uses
a simplified English-like language to specify facts.
The primary external knowledge sources are relational
databases and transliterated English sentences. The
internal knowledge unit is an entity-characteristic-relation
hierarchy; the change unit is a space-time dependent
event.
Knowledge depends on space, time, and view. View
refers to the hierarchy of concepts which is the
context of all knowledge.
#$
1.2. knowledge representation
=============================
Knowledge is represented by English-like sentences.
The basic input statement has this format
subject verb object prepphrase
Here are examples of the four fundamental input statement
types.
Dick,Bob isa person # hierarchy
person is animal with identify # definition
Dick has sex=male,email=rhm@cdepot.net # attribute name=value
at time=now Dick do walk \ # action/event
from space=home to space=store
There are other speical input formats.
The most obvious differences from ordinary English are
subject is a comma-separated list of phrases
verb is a knowledge representation verb
object is a comma-separated list of phrases
prepphrase is a blank-separated list of prepositional phrases
phrase is a blank-separated group of consecutive words
words may contain many "special" characters, e.g.
: / \ + - _ * . @
Ordinary English verbs are objects following the do operator.
Verb tense information is supplied by the at phrase.
Verb number information is redundant, and is discarded.
Noun number information is supplied by quantifiers, e.g.,
a, the, some, all, none.
Other sentences accepted by ke are commands, questions,
and assignments. A command directs ke to perform a
specific action, and has the format
! verb object prepphrase
where verb is any ke action, e.g., read, write, check, hsize.
A question directs ke to search its knowledge for specific
information, and has the format
subject verb object ? # true or false
subject verb ?
subject ? object
? verb object
The attributes of ke are "parameters" and "variables" which can
be set by the user. An assignment requests ke to change the
value of an attribute, and has the format
attribute = value
(The assign action is implied by the presence of "=".)
The user can ask for the current value of any attribute
with a question of the form
attribute = ?
Examples of parameters are kformat, hformat, hcheck, cname.
Examples of variables are
$question, $command, $assignment, $if,
$I, $we, $he, $she, $it, $they, $none
#$
1.3. executing ke
=================
ke can be executed from the command line prompt in UNIX or
a DOS window. In Windows, ke can be executed from the RUN menu,
or from Windows Explorer by double-clicking on ke or any file
whose extension has been associated with ke. A complete
execution command has the format
ke input-file
Here is a simple example of the console input/output resulting
from executing ke. (Some output lines are not shown.)
ke
input file
output file
error file
log file
Tuesday, February 3, 1998 10:00 am
Knowledge Explorer version 2.1 program 1998/2/3 knowledge 1998/2/3
##### new knit: #####
animal is ?
animal is entity with live,move
man is ?
man is person is animal with identify
!exit
##### exit #####
Typing "ke" begins the execution, and produces 9 lines of
output from ke. The first 4 lines show the default
file names, used because no files were specified on the
command line. "input" and "output" refer to the keyboard
and the display. The next 2 lines give the time of execution
and the version of ke. "v_input" is the view name automatically
assigned for the input file "input". "" is the
prompt which indicates that ke is waiting for user input from
the keyboard. "v_input" is the current view (knowledge unit).
"." is the symbol denoting the current concept.
"=" is the current separator for characteristic name-value pairs.
"existent" is the current concept.
"animal is ?" requests ke to search its knowledge for the definition of animal. The next line is the definition. Ditto for
"man is ?", but the definition has been augmented with the list of aliases for man. "!exit" commands ke to immediately terminate this
execution, without checking the knowledge or recording it in
input.out.
#$
1.4. self knowledge
===================
The initial knowledge, , of the Knowledge
Explorer includes a knowledge of itself. Consequently, the
user can can ask ke what actions/attributes it has,
ke do ?
ke has ?
and what the definition of any action/attribute is, e.g.,
kformat is ?
The ke attributes are "parameters" and "variables" which
you can change by assignment.
#$
1.5. context stack
==================
Many English words are ambiguous, i.e., they have many different
definitions. Each definition corresponds to a different view
(hierarchy). A convenient technique for resolving ambiguity is
to build a stack of hierarchies containing the defintions,
and search down the stack to find the appropriate definition.
Knowledge Explorer maintains a view stack, which can be accessed
using the commands
!vpush vname,...
!vpop
Commands and questions can be applied to all views using the
vdo and vfind commands
!vdo sentence
!vfind name # "*" is a wildcard
2. Input
========
#$
2.1. input menu
===============
The menu command
!menu
provides a user friendly interface which prompts the user for all
necessary information and automatically generates input with the
correct syntax. It is especially useful when first learning the
Knowledge Representation language.
The menu command is available for Windows and UNIX, but not for MS-DOS.
There are two input windows: "KE input menu" and "wke" ("ke" on UNIX). You can exit from "KE input menu" by selecting File/Exit, and reactivate it by typing !menu in the "wke.bat" window. If you close either window, the other window is also closed, i.e., the execution of wke is terminated.
You may find it faster to navigate "KE input menu" using the keyboard rather than the mouse. After pressing the ALT key, you can then select a menu item by typing the first letter of its name, or by using the arrow keys.
A scrollable "wke" window will be available in the near future.
For now, the default output format (in KEHOME/kb/newknit.ku) has been changed from charformat=line to charformat = column to minimize the chances of output flowing off the edge of the window.
Line format looks like this
Dick has sex=male, email=rhm@cdepot.net
Column format looks like this
Dick has
sex=male,
email=rhm@cdepot.net
#$
2.2. input format
=================
The fundamental unit of input is a phrase -- a group of
consecutive words, e.g.:
the big red house
Phrases are separated by the keywords of the KR language
(e.g.: isa, is, has, do, =). For example:
the house has color=bright red
Wherever a phrase can occur, a comma-separated list of phrases
is allowed, e.g.:
John, Mary isa person
Mary, Jane has sex=female
There are 6 different input formats, specified by values of
the ke parameter kformat.
kformat meaning
------- -------
ku knit file
cu chit file
rel relation file
ho hierarchy outline
htm,html embedded HTML commands
In addition, there are ke parameters which supply "global"
information for an input file. These global parameters are
saved before each read, and restored after the read.
parameter meaning
--------- -------
kname current knit name
cname current concept name
kformat input format (default "ku")
hformat output format (default "ho")
nvseparator name value separator (default "=")
rseparator relation separator (default ";")
hseparator hierarchy outline separator (default "/")
removehtml remove HTML option (default YES)
kerror number of errors detected
File names are automatically mapped into values of kformat
and cname. For example, the input file sibling.rel
automatically maps to cname=sibling and kformat=rel.
You can override the automatic mapping with extra
parameters on the read command. For example
!read brother with cname=sibling,kformat=rel,rseparator=","
The cu format is identical to the ku format, but the
processing of action/events is different. The input
statement
Dick do walk
is interpreted as an action declaration in ku format,
but is interpreted as as an event declaration (the occurrence
of an action) in cu format. Specifically, the statement is
interpreted as
at space=SPACE,time=TIME,view=VIEW Dick do walk
where SPACE,TIME,VIEW are the current values of space,time,view.
Each at phrase resets the current values.
When a statement is prefixed with an explicit "at" phrase, e.g.,
at space=s,time=t Dick do walk
ku format is changed to cu format while processing of that one
statement.
The ho format is a conventient visual format for input and
output of concept subhierarchies. Here is a simple example:
animal
/ cat
/ dog
/ person
// man
// woman
The "/" specifies the number of levels below the top concept
in the subhierarchy, "animal". White space (blanks and tabs)
preceding concept names is ignored, and is used to make the
subhierarchy easier to read.
The htm,html format (and the other formats if removehtml=YES) allows embedding internet addresses in the data, e.g.,
email=rhm@cdepot.net
allows you to use your web browser to send email by the
"point and click" method. ke ignores the HTML commands.
#$
2.3. statements
===============
at space=s,time=t,view=v # create/load view
subject,... isa object,... # hierarchy
subject,... ise object,... # hierarchy
subject is object # identity/alias
subject is object with charname=charvalue,... # definition
subject,... isin relname=relvalue # general relation
subject,... has attrname=attrvalue,... # attribute
subject,... haspart partname=partvalue,... # part
subject,... do actname aobject = event # action
event changes eobject \ # event
from attrname=initial \
to attrname=final
sentence1 causes sentence2 # causality
if sentence1 then sentence2 else sentence3 fi # conditional
every variable is object,... do sentence done # iteration
every variable isa object do sentence done # iteration
subject do know sentence
subject do believe sentence
subject do say to person sentence
#$
2.4. events
===========
The knowledge unit (knit) identifies what actions
an entity has the capability of executing
at view=v entity do action
The change unit (chit) identifies the events of the
actual execution of an action
at space=s,time=t,view=v entity do action aobject = event;
event changes eobject \
from attribute=initial \
to attribute=final
The view is necessary because no concept has meaning
without reference to its defining hierarchy. In the
general case, actions may have multiple events and/or
multiple objects. For the simplest case where the
action is characterized by a single event and object,
the above form may be simplified to
at space=s,time=t,view=v
entity do action aobject \
from attribute=initial \
to attribute=final
For example,
at time=6pm Bob do move car \
from space=driveway to space=garage
For additional details, refer to the files
help/event.txt
cu/live.cu
cu/move.cu
Online, enter
!help event
or
action,event has ?
#$
2.5. commands
=============
!menu
!read file,... with attribute=value,...
!write file,... with attribute=value,...
!cd file
!help topic,...
!check item,...
!hsize cname,...
!psize cname,...
The result of each command (value of !) is stored in
the variable $command. $command can be used in
formulating new questions, requests, or statements.
For example,
!find *computer*
$command has ?
lists the attributes of all concepts whose name
includes the string "computer".
For the complete list, see Appendix D.
Online, ask ke by entering
ke do ?
#$
2.6. questions
==============
Questions are formed from statements by appending ?
subject verb object ? # true or false
or by replacing subject, verb, or object by ?
? verb object
subject ? object
subject verb ?
In addition, there are some specialized forms
subject isa**? object
subject ise**? object
subject has charname=?
? is ? # dictionary
? has ? # all attributes of all concepts
In response to a question, ke searches its knowledge
for facts that match the pattern. The value of ?,
i.e., the facts which match that part of the pattern,
are saved in the variable $question. $question can
be used in formulating new questions, requests, or
statements. For example,
person ise ?
!first-name $question
lists the first-names of all persons.
For finding names in a hierarchy, a pattern may be specified
using the "wild card" character "*". "*" matches any string
of characters. For example,
!find Dick*
finds all concepts beginning with "Dick". find matches
either upper or lower case.
To search all views, use the vfind command.
!vfind name
#$
2.7. relations
==============
The definition of a relation must be given before reading
its relation file. For example,
r_phone is relation with
format="phone:1; person:2",
meaning="$2 has phone=$1"
r_phone has rseparator=";"
!read r_phone.rel
If separator is not specified, the default is the value
of the ke parameter rseparator. At startup, the default
value is ";".
If the relation file contains
209-295-1365; Dick McCullough
then ke records the following knowledge
209-295-1365 isa* phone
Dick McCullough isa* person
Dick McCullough has phone=209-295-1365
ke trims leading and trailing white space (blank,tab,return)
from each field of the relation tuple, and encloses the
field in quotes if necessary (if it contains comma or
semicolon).
By using cname and kformat, relation definitions and data
can be put into a single file. For the preceding example,
the single file would be
r_phone is relation with
format = "phone:1; person:2",
meaning = "$2 has phone=$1"
cname = r_phone
kformat = rel
209-295-1365; Dick McCullough
For additional details, refer to file help/relation.ku.
Online, enter
relation has ?
#$
2.8. attributes
===============
Attribute values can be simple strings
Dick has sex=male
r_phone has format="phone:1; person:2"
or comma-separated lists
Dick has child += Sheila
Dick has child += Ted
Dick has child -= John
Bob has child = [Amy, Diana, Kathy]
The operator = replaces the current value of the attribute.
The operator += inserts the value into the list of values.
The operator -= deletes the value from the list of values.
"[" and "]" are used to delimit lists of values.
The operators = and += can be used in questions
Dick has child = Ted ? # exactly 1 child named Ted
Dick has child += Ted ? # 1 or more children, 1 named Ted
The separator character for charname/charvalue processing
is the value of the ke parameter nvseparator. If the subject and
"has" are omitted, the applicable concept name is the value of
the ke parameter cname. (Except if charname is a ke parameter, which
is a "global" name, and "ke" is the applicable concept name.)
#$
2.9. parameters
===============
For a full list of ke parameters, see Appendix E.
Online, enter
ke has ?
To get the current value of any parameter, e.g., hformat
hformat = ?
or
ke has hformat=?
To get a definition, enter
hformat is ?
All the parameters are listed in help/ke.ku.
Their definitions are given in kb/kedef.ku.
Their range of values and initial values are given
in help/kvalue.ku and kb/newknit.ku. You can
change the initial values of parameters by
editing kb/init.ku.
You can define additional ke attributes for your
own purposes, e.g.,
ke has temp="now is the time"
These additional attributes are not "parameters", since
there are no predefined control functions associated with
them.
3. Output
=========
#$
3.1. output format
==================
hformat alpha,ho,ku
htab indent (integer)
hpad minimum size of name field (integer)
charformat line,column
hformat = alpha alphabetical list (good for systematic reviews)
hformat = ho hierarchy outline
hformat = ku successive levels of hierarchy (ise)
#$
3.2. hierarchy
==============
Output is generated by the write command and by questions.
The concepts which are written depend on the ke parameters
hfocus and hminfactid. hfocus specifies a list of concepts
hfocus = [concept,...]
hfocus += concept
hminfactid is a threshold on the unique number used to
identify facts input to ke; it can be used to filter out
"old" facts, e.g.
hminfactid = 100
hminfactid = klastid
(klastid is a readonly ke parameter which contatins the last
unique number assigned.) Before terminating, ke automatically
writes to the output-file nonexistent and the hfocus list for
each knit. This automatic output is skipped if "!exit" is the
last input command. Note that the values of hfocus and
hminfactid can be different in each view.
#$
3.3. checks
===========
loop
link
genus
newword
newstatement
chit
event
alias
definition
characteristic
value
part
enumeration
requisite
sequence
set
hierarchy
lattice
Entering "!check knit" performs all of the checks.
For details, see Appendix C.
Online, enter
enum_check isenum ?
Before terminating, if hcheck = "yes", ke automatically writes
to the output file the results of "!check knit" for each knit.
This automatic output is skipped if "!exit" is the last input command.
#$
3.4. searches
=============
The information generated by a search of ke's knowledge can take
any form, from a single name to a long list of names or a hierarchy.
An appropriate format is automatically determined by ke. The output
format will usually be the same as the input format, so that output
data can be processed as input data at a later time. Hierarchies
are an exception to this rule: default input format is "ku", and
default ouput is "ho".
4. Processing Knowledge
=======================
#$
4.1. conditional and iteration
==============================
Conditional statements:
if sentence:1 then sentence:2 else sentence:3 fi
Examples:
if unit isa concept and
concept has type=x then
unit has type=x fi
if subject do verb then
verb has type=action fi
if subject has name=value then
name hasval value fi
Condtionals are automatically continued when the last symbol
on the line is "if","then","else","and","or","not". ("and" is automatically
translated to "&", "or" to "|",
"not" to "~".)
Iteration statement:
every x is cname,... do sentence done
every x isa cname do sentence done
Within the sentence, the value of the variable x is denoted by $x.
For example,
every x isa person do
$x is ?; # definition, including all aliases
$x has ?; # all attributes
$x do ?; # all actions
$x isin ?; # all relations, methods
done
#$
4.2. variables
==============
Variables are used in
every variable isa cname do
... $variable ... done
every variable is clist do
... $variable ... done
m is method with
format="class:1,...",
meaning="... $1 ..."
r is relation with
format="class:1;...",
meaning="... $1 ..."
!cc concept
To facilitate accessing the attributes and actions of a concept,
the "cc" command sets the following $ variables:
$class # concept isa* class
$genus # list of all genus (more than one for a lattice)
$unit # list of all units
$alias # list of all aliases
$attribute # list of all attributes
$attr # value of an individual attr
$action # list of all actions
$act # event of an individual act
$1,$2,... # role values of a relation unit
$fact # input text (if applicable)
#$
4.3 identify
============
By definition,
knowledge is the identification of a fact of reality
i.e., it is the result of a person identifying some aspect
of reality. In my KR language, this is expressed as
knowledge := person do identify existent
There are many ways to represent knowledge, depending
on the person's purpose for identifying. This can be
expressed as
knit := person do identify existent with purpose
If a specific person identifies a specific entity, we
can record that as
at space=s,time=t
John do identify book_123
This information can be retrieved using the question
John do identify ?
In order to deal with this kind of knowledge, the
"empty" base view, tabula_rasa, must include the
axiomatic concepts:
existent
entity
man
knowledge
characteristic
attribute
space
time
view
action
identify
relation
[knowledge := man do identify existent]
and these additional concepts:
existent
entity
knowledge
knit
Knowledge Explorer
characteristic
attribute
purpose
Knowledge Explorer attribute
action
identify
Knowledge Explorer action
relation
[knit := man do identify existent
with purpose]
Multiple views are described as follows
at view=tabula_rasa
...
v1 := person1 do identify existent with purpose=p1
at view=v1
sentence1
...
v2 := person2 do identify existent with purpose=p2
at view=v2
sentence2
...
In essence, identify is the process of concept formation.
Some further details may be found in
KEHOME/id/identify.htm
#$
4.4 measure and classify
========================
!measure cname with attrname
!classify newcname with attrname to oldcname
#$
4.5. integrate and differentiate
================================
isa,ise are used to define a hierarchy. isd,isi are used to
move concepts in an existing hierarchy, and to create new
concepts. For example,
man isa animal
man isa person
produces an ambiguous concept of man, i.e.,
man isa animal or person
On the other hand,
man isa animal
man isd person
replaces the original concept man isa animal with the
concept man isa person.
x,y,z isd concept
concept isi x,y,z
are equivalent statements. ke moves x,y,z from current positions
in the hierarchy to positions under concept.
x isd nonexistent
declares x to be nonexistent, i.e., a logical contradiction,
an "imaginary" concept. x is effectively "destroyed", but
"for the record" ke positions it under nonexistent.
If a list of characteristics is specified
new-concept isi x,... with char,...
!isi x,... with char,...
!isd y with char,...
ke creates one (or more) level(s) of intermediate concepts,
creating new concept names as necessary. The new concepts
which are created are groups with equal values of the
characteristic(s) specified in the "with" phrase.
#$
4.6 exploring a concept-hierarchy
=================================
# 1. find a concept
#------------------#
!find *name* # search by name ("*" wildcard)
? has attr # search by attribute
? do act # search by action
# 2. change concept
#------------------#
!cc $command # set "." to the concept
!cc $question # set "." to the concept
# 3. explore details
#-------------------#
. is ? # definition
. has ? # attributes (intension)
. do ? # actions
. isa* ? # wider concepts
. ise* ? # referents (extension)
!nc .. # step through genus of concept
!nc ... # step through units of concept
. isa**1 ?; $question ise**1 ? # siblings
. isa**2 ?; $question ise**2 ? # cousins
# 4. calculate attribute
#-----------------------#
!measure . with newattr # new attribute (conceptual scaling)
# 5. differentiate concept
#-------------------------#
!isd . with newattr # new concept-hierarchy
(concept-formation)
To facilitate the exploration of concept-hierarchies
(or concept-lattices), I have extended the UNIX directory
"dot" notation to three levels:
/ is existent
.. is the current genus of the current concept
. is the current concept
... is the current unit of the current concept
The three "dot" concepts can be used in any Knowledge Explorer
statement, command or question. The "next concept" command
steps through all possible values of ".." or "...". The "dot"
concepts are especially handy when the concept names are long.
For example, consider the heading lattice from Keith Devlin's
book "Goodbye, Descartes" (KEHOME/book/gd.ho). It is a lattice,
not a hierarchy, because "Goodbye, Descartes" is the heading
for both the book (the title) and a chapter section.
If I hadn't included the chapter number, straight from the
table of contents, "Goodbye, Descartes" would also be the
heading of chapter 11.
After loading the lattice
!read gd.ho
and making "Goodbye, Descartes" the current concept
!find Goodbye*
!cc $command
successive applications of the next concept command
!nc ...
give all the chapter headings, and
!nc ..
gives the heading of chapter 11.
The Knowledge Explorer input prompt has one of the three forms
depending on whether or not the "nc" command is in progress.
The names are
cview current view
cgenus current genus of current concept
cconcept current concept
cunit current unit of current concept
5. Examples
===========
#$
5.1. backyard (integrate)
=========================
see
KEHOME/id/backyard.ku
#$
5.2. dynamic search hierarchy (multilevel differentiate)
========================================================
see
KEHOME/id/topic.ku
KEHOME/id/r_book.rel
#$
5.3. English
============
see
KEHOME/english/nurse.cu # from Reuter news story
KEHOME/english/schank.cu # from artificial intelligence textbook
#$
5.4. Family History (change unit)
=================================
see the directory
KEHOME/family/
#$
5.5. Family Relations (multilevel operators)
============================================
see
KEHOME/family/readme.txt
6. Advanced Features
====================
#$
6.1. types
==========
Each concept has a ctype and a vtype. ctype is used to make some high level checks of concepts. The units of a concept inherit its ctype.
The legal values of ctype are
concept
existent, nonexistent
knit, chit
entity, characteristic, attribute, action
relation, event, phenomenon
undefined
etc (unique names generated to replace "...")
fact
any (named "*")
unknown (named "unknown")
vtype is used to make some high level checks of attribute values.
The legal values of vtype are
enumeration
requisite
sequence
set
integer
hierarchy
lattice
#$
6.2. values
===========
The value of an attribute is the measurement of a common property
of the members of a group. Conceptually, the value can be anything,
e.g., a simple name, a multidimensional vector, ...
For simplicity, ke represents the attributes as lists of strings,
e.g.,
Dick has sex=male
hfocus = [person, event]
Dick has child+= Sheila
The interpretation of the meaning of the list is left to the user.
#$
6.3. parts
==========
The attributes and actions of an entity constitute the identity, or fundamental nature, of the entity. They cannot be separated from the entity.
The parts of an entity are subentities that can be separated, physically or conceptually, from the entity.
For example, the "identify" action is the defining characteristic of
man. It cannot be separated from man. By contrast, the
picture tube in a television set is a part, which can be physically
separated from the television set. If you remove the picture
tube, what remains is not the same entity, although you might still
consider it a television set.
Knowledge Explorer describes parts as follows:
entity haspart partname=partcount,...
#$
6.4. logic
==========
Knowledge Explorer accepts sentences of the form
if clause:1 then clause:2 fi
if clause:1 then clause:2 else clause:3 fi
ke determines the truth of clause:1 by matching it against its stored knowledge, as in
clause:1 ?
If clause:1 is "true", then ke records/executes clause:2.
If clause:1 is "false", ke records/executes clause:3.
If ke does not know how to determine the truth (clause:1 not implemented), it reports "unknown" and does not record/execute
either clause. The truth value ("?") is saved in variable "$if".
A causal relation is denoted by
clause:1 causes clause:2
clause:1 => clause:2
clause:2 <= clause:1
Implication is denoted by
clause:1 implies clause:2
clause:1 |- clause:2
Other common notations accepted are
clause:1 iff clause:2
and
space=s,time=t,view=v |= sentence:1
#$
6.5. context stack
==================
Knowledge Explorer maintains a stack of views.
The following commands are available to manipulate
this "context stack".
!vpush vname,...
!vpop
Currently, only vpush is invoked automatically by
Knowledge Explorer. Each new view name is automatically
pushed onto the view stack. You can use the view stack
commands to manually explore context dependence.
#$
6.6. enumeration, requisite, sequence, set
==========================================
ke treats all attribute values as strings, as though
they were simple names. But when ke interprets the
meaning of these strings, it must consider the true
nature of the attribute value. The most basic value
types are
enumeration x isenum y or z or ...
requisite x isreq y and z and ...
set x isset y and z or q and r or ...
sequence x isseq y next z next ...
ke can associate a single value of each of the above
types with each concept. These associated values have
been used for more efficient implementation of attributes
that match these value types.
For example, the format attribute of a relation is
sequential by nature.
x has format="y:1; z:2"
is represented internally as
x isseq y:1 next z:2
Ditto for the event sequence of an action.
live is action with a_event="birth:1; death:2"
is represented internally as
live isseq birth:1; death:2
The four basic logic operators have the following aliases.
or is "|"
and is "&"
next is ";"
not is "~" is non
(Future versions may define "non x" relative to the genus of x,
instead of relative to "existent".)
The genus/unit operator which defines the concept
hierarchy
x ise y,z,...
is also an enumeration, but it has a separate set of links
for its implementation. Enumerations are used for the
value types of attributes like kformat.
The combination of requisites and enumerations can be
used to implement the canonical minterm expansion of a
boolean set. For two variables, this has the form
x isenum y&z | y&~z | ~y&z | ~y&~z
#$
6.7. operator lists
===================
The equivalent expressions
x isa y
y ise x
mean that x and y are on adjacent levels of the concept-hierarchy.
Knowledge Explorer extends this notation to concepts which are n levels apart,
x isa**n y
y ise**n x
where n may be any integer (including 0 and negative values).
ke also accepts the "regular expression" style of notation
x isa* y
x isa+ y
for concepts separated by 0 or more levels, and concepts separated
by 1 or more levels.
In a formal algebraic sense, the isa* and isa+ are operator lists
isa* isenum isa**0, isa**1, isa**2, ...
isa+ isenum isa**1, isa**2, ...
where isa**0 and ise**0 are equivalent to is.
In this sense, we can say that Knowledge Explorer accepts
verb/operator lists, as well as subject and object lists.
Appendices
==========
#$
A. author
=========
Richard H. McCullough
26459 Parkwood Drive
Pioneer, CA 95666-9586
USA
mailto:rhm@cdepot.net
http://www2.cdepot.net/~rhm
phone:209-295-1365
Visit the Knowledge Explorer Home Page
http://www2.cdepot.net/~rhm
for links to
Knowledge Explorer download files
Knowledge Explorer News (free)
Secure online registration (credit card)
#$
B. installation
===============
# Downloads
#----------
ftp:/ftp.cdepot.net/pub/ke/kewin.exe Windows 98/95/NT/3.x
ftp:/ftp.cdepot.net/pub/ke/kelin.tgz Linux
ftp:/ftp.cdepot.net/pub/ke/kebsd.tgz BSD/OS UNIX
ftp:/ftp.cdepot.net/pub/ke/kesol.tgz Sun Solaris UNIX
ftp:/ftp.cdepot.net/pub/ke/kewin.exe MS-DOS
# Directory Structure
#--------------------
ke
bin executables
book book examples
context context examples (AAAI 1997 symposium)
cu change unit examples
english English examples
family genealogy application
fca Formal Concept Analysis examples
help help files
ho hierarchy outline example
id concept formation examples
indexing book and library indexing application
internet internet examples
kb initial knit files
ku knowledge unit examples
logic logic examples
rel relation examples
src ke source code
# Executables
#------------
ke knowledge explorer
ksc knowledge syntax checker
iversion identify Icon version & features
icont Icon translator
iconx Icon executor
wke Windows knowledge explorer
wksc Windows knowledge syntax checker
wiversion identify Windows Icon version & features
wicont Windows Icon translator
wiconx Windows Icon executor
wi Windows Icon Integrated Development Environment
# Initial knit files
#-------------------
init.ku user initialization file
newknit.ku minimum hierarchy
newdef.ku definitions
kedef.ku ke attribute and action definitions
kversion.ku ke version number and date
# Windows Installation
#---------------------
1. Decompress files
double-click kewin.exe
2. Restart system
3. Execute ke using "Run" window or "DOS" window
ke input-file output-file error-file log-file
or
double-click on ke.exe
or
double-click on .ku,.cu files
# UNIX Installation
#------------------
1. Decompress files
mkdir your-installation-directory
cd your-installation-directory
gzip -d kebsd.tgz
pax -r -f kebsd.tar
2. Change .profile
KEHOME=your-installation-directory; export KEHOME
PATH=$KEHOME/bin:$PATH; export PATH
ICONX=$KEHOME/bin/iconx; export ICONX
MSTKSIZE=20000; export MSTKSIZE
BLKSIZE=1000000; export BLKSIZE
3. Execute .profile
4. Execute ke
ke input-file output-file error-file log-file
#$
C. checks
=========
knit (performs all checks listed below)
alias
characteristic
chit
definition
enumeration
event
genus
hierarchy
lattice
link
loop
newstatement
newword
part
requisite
sequence
set
value
#$
D. commands
===========
menu
cc, nc
cd, pwd
check
count
dir, ls
dump
exit
find
help
print
read
write
vpush, vpop
vdo, vfind
isd
isi
measure
classify
hsize, psize, fsize, hlevel, hdepth
hlist, plist, flist
upath, gpath
lub
glb
type, ctype, vtype
val_size
genus_size
unit_size
enum_size
req_size
seq_size
alias_size
echar_size
char_size
part_size
do_size
id_size
fact_size
#$
E. parameters & variables
=========================
charformat
cname
debug
echo
hchar
hcheck
hfocus
hformat
hmaxlevel
hmethod
hminfactid
hop
hpad
hreduce
hseparator
htab
kaction
kcase
kehome
kerror
kformat
klastid
kversion
mseparator
nvseparator
pseparator
qseparator
removehtml
rseparator
roleseparator
variables
---------
$assignment, $command, $if, $question
$I, $we, $he, $she, $it, $they, $none
$name (name is an alphanumeric string)
#$
F. tabula rasa
==============
see
KEHOME/kb/newknit.ku
KEHOME/kb/newdef.ku
#$
G. operators
============
see
KEHOME/src/token.icn
#$
H. separators
=============
see
KEHOME/src/token.icn
#$
I. quantifiers
==============
a, all, any, some, the
no
either
#$
J. grammar
==========
see
KEHOME/src/symbol.icn
KEHOME/src/token.icn
#$
K. references
=============
1. David Kelley, "The Art of Reasoning", Second Expanded
Edition, W. W. Norton & Company, 1993.
2. David Kelley, "The Evidence of the Senses: A Realist Theory
of Perception", Louisiana State University Press, 1988.
3. Ayn Rand, "Introduction to Objectivist Epistemology",
Expanded Second Edition, Meridian, 1990.
4. Leonard Peikoff, "Objectivism: The Philosophy of Ayn
Rand", Dutton, 1991.
5. Harry Binswanger, "The Ayn Rand Lexicon", Meridian,
1986.
6. Leonard Peikoff, "Principles of Grammar",
audio tapes.
7. Morris I. Bolsky, David G. Korn, "The KornShell
Command and Programming Language", Prentice-Hall, 1989.
8. B.A. Davey and H.A. Priestley, "Introduction to Lattices and Order",
Cambridge University Press, 1990.
9. Keith Devlin, "Logic and Information",
Cambridge University Press, 1995.
10. Ronald Fagan, Joseph Y. Halpern, Yoram Moses and Moshe Y. Vardi,
"Reasoning about Knowledge", The MIT Press, 1995.
11. Ralph E. Griswold and Madge T. Griswold, "The Icon
Programming Language", Third Edition, Peer-to-Peer
Communications, Inc., 1996.
12. Ralph E. Griswold, Clinton L. Jeffery, and Gregg M. Townsend,
"Graphics Programming in Icon", Peer-to-Peer Communications, Inc.,
1998.
13. Richard H. McCullough, "Knowledge Explorer",
The Icon Newsletter, No. 52, April 1, 1997.
14. Richard H. McCullough, "Knowledge Explorer Tutorial",
Internet, http://www2.cdepot.net/~rhm/tutorial.txt.
15. Richard H. McCullough, "Knowledge Explorer User Manual",
Internet, http://www2.cdepot.net/~rhm/ke.rtf.
16. Richard H. McCullough, "Knowledge Explorer Home Page",
Internet, http://www2.cdepot.net/~rhm.
#$
L. glossary
===========
These definitions are from Ayn Rand, "Introduction to Objectivist
Epistemology".
concept is mental integration of two or more units possessing
the same distinguishing characteristic(s), with their particular
measurements omitted.
conceptual common denominator is the characteristic(s) reducible to
a unit of measurement, by means of which man differentiates two or
or more existents possessing it. (For example, number of sides is
a common characteristic which can be used to differentiate between
triangles and rectangles.)
consciousness is the faculty of perceiving that which exists.
definition is a statment that identifies the nature of the units
subsumed under a concept. (The purpose of a definition is to
distinguish a concept from all other concepts and thus to keep its
units differentiated from all other existents.)
differentia is the distinguishing characteristic(s) which separate
the units of the concept being defined from all other existents
subsumed under the genus of the concept.
epistemology is the science of the discovery of the proper methods
of acquiring and validating knowledge.
essential characteristic is the distinguishing characteristic that
explains the greatest number of other characteristics. (Metaphysically,
the distinctive characteristic which makes possible the greatest
number of other characteristics.)
genus is the wider class of existents which share a conceptual
common denominator(s) with the existents subsumed by the concept
being defined.
grammar is the science which deals with the formulation of the
proper methods of verbal expression and communication (i.e., the
methods of organizing words into sentences).
knowledge is a mental grasp of a fact(s) of reality, reached either
by perceptual observation or by a process of reason based on
perceptual observation.
language is a code of visual-auditory symbols that serves the
psycho-episemological function of converting concepts into the
mental equivalent of concretes.
logic is the art of noncontradictory identification.
measurement is the identification of a quantitative relationship
established by means of a standard that serves as a unit. (The
purpose of measurement is to expand the range of man's consciousness,
beyond the perceptual level.)
meaning is the existents subsumed under a concept.
number is a mental symbol that integrates units into a single larger
unit (or subdivides a unit into fractions) with reference to the basic
number of "one", which is the basic mental symbol of "unit".
percept is a group of sensations automatically retained and integrated
by the brain of a living organism.
science is an organized body of knowledge, acquired by and communicable
to a human consciousness.
similarity is the relationship between two or more existents which
possess the same characteristic(s), but in different measure or degree.
unit is an existent regarded as a separate member of a group of two
or more similar members.
word is a visual-auditory symbol used to represent a concept.
#$
M. Icon
=======
The Knowledge Explorer is implemented entirely in Icon
(see references by Griswold, etal). Icon is a high-level language with
built-in lists, sets, associative tables, generators,
and string processing functions.
The Knowledge Explorer package includes the Icon translator
and executor. Translators and executors for other machines,
program libraries, and extensive documentation are available
at the Icon web site
http://www.cs.arizona.edu/icon/
There are several environment variables which control Icon
memory allocation.
variable Icon default KE default
-------- ------------ ----------
BLKSIZE 500000 1000000
COEXPSIZE 2000
MSTKSIZE 10000 20000
STRSIZE 500000
If Knowledge Explorer aborts with a stack overflow,
you can increase the value of MSTKSIZE.
Index
=====
use Windows help file:
KEHOME/help/ke.hlp
version
Version
gs_knowledge
knowledge: knits & chits
gs_knowledge_representation
knowledge representation
gs_executing_ke
executing ke
gs_self_knowledge
self knowledge
gs_context_stack
context stack
in_input_menu
input menu
in_input_format
input format
in_statements
statements
in_events
events
in_commands
commands
in_questions
questions
in_relations
relations
in_attributes
attributes
in_parameters
parameters
out_output_format
output format
out_hierarchy
hierarchy
out_checks
checks
out_searches
searches
proc_conditional_iteration
conditional and iteration
proc_variables
variables
proc_identify
Identify
proc_measure_classify
measure and classify
proc_integrate_differentiate
integrate and differentiate
proc_exploring_a_concept-hierarchy
exploring a concept-hierarchy
ex_backyard
backyard (integrate)
ex_dynamic_search_hierarchy
dynamic search hierarchy (mulilevel differentiate
ex_english
english
ex_family_history
Family History (change unit)
ex_family_relations
Family Relations (multilevel operators)
adv_types
types
adv_values
values
adv_parts
parts
adv_logic
logic
adv_context_stack
context_stack
adv_enum_req_seq_set
enumeration, requisite, sequence, set
adv_operator_lists
operator lists
a_author
author
a_installation
installation
a_checks
checks
a_commands
Commands
a_parameters
parameters
a_tabula_rasa
tabula_rasa
a_operators
operators
a_separators
separators
a_quantifiers
quantifiers
a_grammar
grammar
a_references
references
a_glossary
glossary
a_icon
icon