Copyright (c) 1994, 1995, 2002 Timothy Rue (3seas@threeseas.net)
Permission is granted to copy, distribute and/or modify this document
under the terms of the GNU Free Documentation License, Version 1.2
or any later version published by the Free Software Foundation; with no
Invariant Sections, no Front-Cover Texts, and no Back-Cover Texts.
A copy of the license is included in the file fdl.html
***THIS TEXT IS NOT CURRENT - Provided only for historical reference.
---------------------------------------------------------------------
(KE) KEy (or Knowledge Enable)
KE - constrain access and use of definitions
(KE) KEy - The concept of KEy is best described as using keys to
open doors to knowledge and parts usage. It allows "IQ/ID"
knowledge constraints to be applied and has the trade off
of search time. More constrained, faster search. Keys can
be created, changed and removed from the current KE file
through "KE". The current KE file can be created, changed
or removed through "PK". Keys can have teeth and a master
key can exist in the PK file.
Keyholes and Keys - pattern matching
KE flags are to allow changing the rules on keyhole usage
within the IQ/ID files. This will allow different formated
knowledge to be used. Also for constraining IQ/ID search
to a standard grep type search. This needs to be worked out.
File keyholes - When a file keyhole is encountered the
following sequence happens:
1) A matching file-key is looked for in the current KE
file. If not found, skips file. If found goes to #2.
2) The file-key teeth and master-key teeth are comparied
with the file, that keyhole points to, keychain (a
commented header that contains a list of all non-word
key-teeth in the file, including the blank-key for
definitions without a definition-key). If there is not
a fit, skips the file. If there is a fit goes to #3.
3) The internal IQ/ID "searched file list" is searched for
a matching "path:filename:date/time" of the file to
open. If not found, add the file to the top of the
IQ/ID stack and internal list, and continues the search
in this file. If found then goes to #4.
4) PKs IQ/ID line/stack is searched for the filename and if
found, moves it to the top of the stack and continues
the search in this file on the line where it left off.
If not found, skips the file because it has already
been searched.
On key-holes:
The word-keyhole is pattern-matched with the IQ word arguement or
variable value.
The file-keyhole is pattern-matched with keys in the KE-file.
The definition-keyhole is pattern-matched with keys in the KE-file.
The class-x pattern is checked to see if it is either a
parent/ansestor, child, or self ; with the class-x tag given
in the OI-file, looking at the KE-file for the relationships.
The *CLASS* keyhole checks to see if the variable class-x exist
anywhere in the KE-file.
"KE" files
-------------------------------------------------------------
file-keys
file-key ;; key-tooth , key-tooth , ...
file-key
definition-keys
definition-key
definition-key ;;
class
class ;; child-class , child-class , ...
class ; parent-class ; child-class , child-class , ...
class ; parent-class
;;
KE
To be used by IQ and ID mainly.
KE returns PK KE line.
KE -? help on KE.
KE -ke returns current keychain list w/values.
KE keyname returns value of keyname if exist.
KE -c keyname cancels keyname.
KE -c keyname key-teeth creates or changes keyname.
KE - "keyname : key-teeth/-p@name (to compare w/file-comment) :level-check"
key-teeth/-p@name:
user definable but defaults/examples are:
-t = text
-e = executable calls
-s = shell script code
-ed = education
-ref = referance
-appl = application