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
-------------------------------------------------------------------------------
(PK) Place-Keeper
Brief:
PK - Track and alter a VIC reference data and sequence position.
Specific:
(PK) Place-Keeper - The concept of the Place-Keeper is to keep track of the
reference data and sequence position of a VIC instance parts including
itself. It does this through a PK-file. PK can also directly alter the
contents of the PK-file and change to another PK-file.
The PK-file might be considered a process and environment type of
file. The PK-file is intended to always be changing, by at least the
changing SF running file@line# stack but in other ways too. Due to this
the actual PK-file is only updated, saved, at selected times. If a watch
window is open, then the contents of the watch window is always updated.
The purpose of the PK-file, other than just keeping track of a VIC
reference data and sequence position, is to allow snap-shots or frames
of a VIC process to be taken and at selected positions in a VIC process
sequence. Doing this allows a VIC process to be set aside, a frame to be
saved, and picked up later or passed on to one or more VICs to continue.
This makes possible many types of processing, such as using the concept
of sub-processes, parallel or network processing, tree or parent/child
processing, etc. All done with the PK-file while also having the ability
to communicate, pass data and processes between VICs. And all of this is
done by simply changing the contents of the PK-file or the PK-file
itself via the PK command.
The best way to describe the PK-file and PK command is to take a
look at the file, go over it line by line and how to change the lines
using the PK command.
The PK-file structure:
----------------------------------------------------------
AI: AI-name.# ; PK-file & path/dir. ; Current Directory
PK: PK-filename ; last/alt. PK-filename ; opt. default PK-filename
OI: OI-filename ; last/alt. OI-filename ; opt. default OI-filename
IP: device, preprocess, Tag, BoI, EoI ; opt. last/alt. set ; default set
OP: device, postprocess, Tag, BoO, EoO ; opt. last/alt. set ; default set
SF: SF-LPC flags ; last/alt. flags ; SF-filename@line#
: SF-filename@line#,....>running stack>
IQ: IQ flags ; last/alt. flags ; IQ-filename@line#
: IQ-filename@line#,....>running stack>
ID: ID flags ; last/alt. flags ; ID-filename@line#
: ID-filename@line#,....>running stack>
KE: Master-teeth ; last/alt. M-teeth ; KE-filename
: opt. last/alt. set
----------------------------------------------------------
PK-File - Line, Field and PK Command descriptions:
==================================================
The beginning two letters and colon (i.e. "AI:") are to identify the lines
and related command. Where there is a following line with just a beginning
colon `:', these are lines related to the previous line and command. This
format is for the users benefit.
GENERAL COMMANDS:
-----------------
"PK -?"
Opens the hypertext help system window, at PK help. (???)
(an AI command call to a VIC instance to run IQ on a VIC-help.iq file
for PK help which may contain an external call to load a web browser
and hypertext/html PK help page.)
"PK -s [opt path:][opt. filename]"
Saves "frame", PK-file with optional new filename. A path may be
specified. This does NOT change the current PK-file name within the
continuing PK-file. But it does change, if new filename, the listed
current PK-filename in the new file. With no path option used, the file
is written to the "current directory". If the current directory or path
is another VIC room and the file already exist, an error happens and
follows the standard error process of "VIC is put into step mode, the SF
user interface is opened to the error causing line and the error window
list the error." If the current directory or path is a non-VIC room or
the executing VIC then the file is written over any existing file by the
same name, unless the file is write protected causing the standard error
process to happen.
Note: this command is a forced save and functions differently than the
auto-save that happens.
"PK -rn [opt. filename]"
Rename PK-file. If no filename is given, the current filename extension
is removed, if exist or other than an auto-count value, and a three
place extension is added. This consists of ".pk" and a count value range
of from 0-9 then A-Z (case insensitive but done in Caps.) For a total of
36 different versions of a filename. This count repeats, should the
count go beyond "Z" and can be set, or reset, to any auto extension
value by simply using this command with the specific filename and
extension value. This does not save the file but only renames it within
the PK-file and is the name used during auto-save or forced save without
a filename given.
"PK -del filename"
Deletes given filename. No path is allowed and it only works on "room"
files not delete protected. If the file does not exist or is a delete
protected file, an error message will be posted to the error window and
the VIC process will continue. This is a simple built-in delete. This
works on any "room" file.
IN THE FOLLOWING COMMANDS, THE USE OF:
--------------------------------------
"-r" for "r"eturn
"-c" for "c"reate, "c"hange, "c"ancel
AI: LINE DESCRIPTION:
=====================
AI: AI-name.# ; PK-file directory ; Current Directory
-----------------------------------------------------
This line contains information relative to the existence of this VIC.
It's name.#, where it got the PK-file from, and current directory.
COMMANDS:
--------
"PK AI -?"
Opens the hypertext help system window, at "PK AI" help.(???)
(an AI command call to a VIC instance to run IQ on a VIC-help.iq file
for "PK AI" help which may contain an external call to load a web
browser and hypertext/html PK AI help page.)
"PK AI -r"
Returns this AI: line.
AI: FIELD 1 DESCRIPTION:
------------------------
AI-name.#
This is the specific VIC name and number, it is also the directory name
of the specific VIC. The only time this field changes is in the event
this PK-file is given to another VIC, where it will be giving that VIC
name and number. This is an automatic field change.
COMMAND:
--------
"PK AI -r1"
Returns this "AI-name.#".
AI: FIELD 2 DESCRIPTION:
------------------------
PK-file directory
This is the directory where this PK-file was obtained. Keep in mind that
when a PK-file is auto-saved, it is saved (unless otherwise noted to be
the VIC-HOME directory "assignment", i.e. VIC-HOME:AI-name.#) to it's
room directory. But any PK-file loaded from it's "room" or the VIC-HOME
directory "assignment" will NOT have this field updated. Recall, if the
PK-file is obtained from the VIC-HOME directory but not through the
VIC-HOME "assignment" this will be as though it is NOT from the
VIC-HOME. This is an automatic field change and contains the complete
path to the directory the PK-file was obtained from.
COMMAND:
--------
"PK AI -r2"
Returns this "PK-file directory and path"
AI: FIELD 3 DESCRIPTION:
------------------------
Current Directory
This is the "current directory" and followed in the "search path"
sequence, as stated in the AI command reference. This field contains the
complete path to this directory.
COMMANDS:
---------
"PK AI -r3"
Returns this "current directory and path"
"PK AI -c3"
Causes current directory to be the VIC room directory, if not already.
"PK AI -c3 new.dir"
Sets the current directory to given directory. If the directory does not
exist the standard error process happens.
PK: LINE DESCRIPTION:
=====================
PK: PK-filename ; last/alt. PK-filename ; opt. default PK-filename
------------------------------------------------------------------
This line contains the current PK-filename (self-reference), the last or
an alternate PK-filename, as well as an optional default PK-filename.
COMMANDS:
---------
"PK PK -?"
Opens the hypertext help system window, at "PK PK" help.(???)
(an AI command call to a VIC instance to run IQ on a VIC-help.iq file
for PK help which may contain an external call to load a web browser
and hypertext/html PK help page.)
"PK PK -r"
Returns this PK: line.
"PK PK -c [PK: line]"
This in effect does several of the below mentioned actions. It is a way
of handing PK the whole PK line (all three fields of the PK line). First
loads in the PK-file, then last/alt. PK-file, then the default PK-file,
Going thru and creation and error processes.
****
If no "PK: line" argument is given it does the same thing as the
following "PK PK -c1" command does except it DOES Auto-save the
current PK-file before loading in the prev./alt. or default PK file.
"PK PK"
Toggle or switches PK line Field 1 and 2 contents. Contents of Field 1
becomes content of Field 2 and vice versa. If field 2 is empty then the
default PK-file is used. It the default does not exist, it is created,
going thru the creation and error process.
PK: FIELD 1 DESCRIPTION:
-------------------------
PK-filename
This is the current PK-file in use with this VIC. This is
self-referencing, the name of this file.
COMMANDS:
---------
"PK PK -r1"
Returns the current PK-filename.
"PK PK -c1"
Drops the current PK-file contents and loads in the last/alt PK-file,
if exist, otherwise loads in the default PK-file. If the default does
not exist it is created, following the method listed in the AI command
reference for default PK-file creation. This includes the use of
VIC-HOME:, PATH: and error actions.
*** This command does NOT update the last/alt. PK-filename position in
the PK-file it loads. ***
In a simple way, this command might be used to traverse a circular
linked-list of PK-files. But used along with other commands and
variables, more complex movement can be done. Keep in mind that the
PK-files are snap-shots or frames of a process and environment, and at
selected point in the process, processes that may also be circular.
"PK PK -c1 PK-filename"
Saves the current PK-file and makes the given PK-file the current. This
also updates the now current PK-file's "last/alt. PK-filename" with the
saved PK-filename. If the given PK-filename does not exist it is created
following the method listed in the AI command reference. This includes
the use of VIC-HOME:, PATH: and error actions.
PK: FIELD 2 DESCRIPTION:
------------------------
last/alt. PK-filename
This is the last used or alternate PK-file used by this VIC.
COMMANDS:
---------
"PK PK -r2"
Returns the last/alt. PK-filename
"PK PK -c2"
Removes the last/alt. PK-filename from the PK-file.
"PK PK -c2 PK-filename"
Sets the last/alt. PK-filename to the given PK-filename. If the given
PK-filename does not exist it is created following the method listed in
the AI command reference. This includes the use of VIC-HOME:, PATH: and
error actions.
PK: FIELD 3 DESCRIPTION:
------------------------
opt. default PK-filename
This is the optional default PK-file used by this VIC.
COMMANDS:
---------
"PK PK -r3"
Returns the "Default PK-filename".
"PK PK -c3"
Removes the "Default PK-filename" from the PK-file.
"PK PK -c3 PK-filename"
Sets the "Default PK-filename" to the given PK-filename. If the given
PK-filename does not exist it is created following the method listed in
the AI command reference. This includes the use of VIC-HOME:, PATH: and
error actions.
OI: LINE DESCRIPTION:
=====================
OI: OI-filename ; last/alt. OI-filename ; opt. default-filename
---------------------------------------------------------------
This line contains the current OI-filename, the last or alternate
OI-filename, as well as an optional default OI-filename. The OI-file
contains the list of variables, opt. variable class and variable value,
used by user defined processes.
COMMANDS:
---------
"PK OI -?"
Opens the hypertext help system window, at "PK OI" help.(???)
(an AI command call to a VIC instance to run IQ on a VIC-help.iq file
for "PK OI" help which may contain an external call to load a web
browser and hypertext/html "PK OI" help page.)
"PK OI -r"
Returns this OI: line
"PK OI -c"
Causes the OI line to reset to default values. Which is default-filename
in field 1 position. If the file does not exist, it is created.
"PK OI -c [OI: line]"
Changes the OI line to the values given.
"PK OI"
Toggles or switches OI line Fields 1 and 2 contents. Contents of Field 1
becomes content of Field 2 and vice versa. If field 2 is empty the then
the default-file is use. If it does not exist then it is created.
OI: FIELD 1 DESCRIPTION:
------------------------
OI-Filename
This is the currently accessed OI-file within this VIC.
COMMANDS:
---------
"PK OI -r1"
Returns the current OI-filename.
"PK OI -c1"
Removes the current OI-filename from the PK-file. In doing this, the
last/alt. OI-filename is moved to the current OI-filename position, if
exist. Otherwise, the default OI-filename is copied to the current
OI-filename position. If the default does not exist, it is created and
placed in the VIC room.
"PK OI -c1 OI-filename"
Sets the current OI-Filename to the given OI-filename. This command
also updates the last/alt. OI-filename to the previous current
OI-filename. If the given OI-file does not exist, it is created
following the standard file creation and use of VIC-HOME:, Path:
and error actions.
OI: FIELD 2 DESCRIPTION:
------------------------
last/alt. OI-filename
This is the last or alternate OI-file accessed within this VIC.
COMMANDS:
---------
"PK OI -r2"
Returns the last/alt. OI-filename.
"PK OI -c2"
Removes the last/alt. OI-filename from the PK-file.
"PK OI -c2 OI-filename"
Sets the last/alt. OI-File to the given OI-filename. If the
OI-file does not exist, it is created following the standard file
creation and use of VIC-HOME:, Path: and error actions.
OI: FIELD 3 DESCRIPTION:
------------------------
opt. default OI-filename
This is the optional default OI-file within this VIC.
COMMANDS:
---------
"PK OI -r3"
Returns the optional/default OI-filename.
"PK OI -c3"
Removes the opt/default OI-filename from the PK-file.
"PK OI -c3 OI-filename"
Sets the opt/default OI-Filename to the given OI-filename. If the given
OI-file does not exist, it is created following the standard file
creation and use of VIC-HOME:, Path: and error actions.
+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
NOTE: In the following IP: and OP: LINE DESCRIPTION...
"Device" is any device that can generate output and/or receive input
(respective of InPut or OutPut Line. These may be pipes (named or unnamed) or
files or devices like stdin/stdout, serial port, internet related port, etc..
It should be formatted in terms of how you would use it in a typical command
shell. I.E. ">>file", "ser:", "|sort", etc..
"preprocessor" and "postprocessor" are optional field that name any program
the input or output is to be processed by before reaching its designation of
input variable or output direction/device. If used it is applied before the
following BoI, EoI, BoO, EoO filtering characters/patterns/offsets are.
"Tag" is really just an optional tag to be used as the user sees fit, but is
associated to variables (OI file contents) created and used by a VIC instance.
BoI = Beginning of Input character(s)/pattern/offset
EoI = End of Input character(s)/pattern/offset
BoO = Beginning of Output character(s)/pattern/offset
EoO = End of Output character(s)/pattern/offset
These are optional character(s)/pattern matching to determine when input and
output begins and ends. i.e. BoI = "cat" and EoI = "dog" [must be quoted] and
with the input string of "the cat chased the mouse while being chased by the
dog, Rover" the input received would be "cat chased the mouse while being
chased by the dog". Perhaps there should be a way to determine whether or not
to include named characters? i.e. -"cat" +"dog" would output "chased the mouse
while being chased by the dog". Also offset values may be used instead of, or
along with, quoted patterns by using unquoted numerical values, where if used
w/o quoted pattern determines the offset of the beginning and/or end of input/
output relative to the beginning of input/output. But if used with quoted
pattern(s), then it's the first pattern match after offset, that begins or end
used input/output.
The BoI/O and EoI/O pattern matching range will be a set or subset of the
IQ commands pattern matching abilities. These pattern matching abilities
will be something following standards already in use.
Thought note:
It may be useful to make OI variable files compatible/interchangeable with
KE files. If I recall, that was one of the whys behind the thought of adding a
"class/tag" to a variable.
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
IP: LINE DESCRIPTION:
=====================
IP: device, preprocess, Tag, BoI, EoI ; opt. last/alt. set ; default set
--------------------------------------------------------------------------
This line contains information relative to input as it pertains to the
OI command (the command for creating and manipulating files of variables
and the contents of these variables.) The output device for input to be
received from, an optional preprocessor stage (this may be another input/
output program or even another VIC), an optional content Tag, the optional
"Beginning of Input" (BoI) character(s)/pattern/offset set and the "End of
Input" (EoI) character(s)/patterns/offset set. It also contains an optional
last/alternate full set of the above as well as a default set.
COMMANDS:
---------
"PK IP -?"
Opens the hypertext help system window, at "PK IP" help.(???)
(an AI command call to a VIC instance to run IQ on a VIC-help.iq file
for "PK IP" help which may contain an external call to load a web
browser and hypertext/html "PK IP" help page.)
"PK IP -r"
Returns this IP: line
"PK IP -c"
Causes the IP: line to reset to default value, which is only
"stdin,,,," in field 1 position.
"PK IP -c [IP: line]"
Changes the IP line to the values given.
"PK IP"
Toggles or switches IP line Fields 1 and 2 contents. Contents of Field 1
becomes content of Field 2 and vice versa. If field 2 is empty then the
default value of "stdin,,,," is used.
IP: FIELD 1 DESCRIPTION:
------------------------
device, preprocess, Tag, BoI, EoI
This is the current IP-set accessed within this VIC.
COMMANDS:
---------
"PK IP -r1"
Returns the current IP-set.
"PK IP -c1"
Removes the current IP-set from the PK-file. In doing this, the
last/alt. IP-set is moved to the current position, if exist. Otherwise,
the default IP-set is copied to the current position. If the default
does not exist, it is created as simply "stdin,,,,".
"PK IP -c1 IP-set"
Sets the current IP-set position to the given IP-set. This command also
moves to the last/alt. IP-set position the prior "current" IP-set (The
IP-set being replaced). If the given IP-set does not contain a device
then the device position is set to stdin.
IP: FIELD 2 DESCRIPTION:
------------------------
opt. last/alt. IP-set
This is the last or alternate IP-set accessed within this VIC.
COMMANDS:
---------
"PK IP -r2"
Returns the last/alt. IP-set.
"PK IP -c2"
Removes the last/alt. IP-set from the PK-file.
"PK IP -c2 IP-set"
Sets the last/alt. IP-set to the given IP-set. If the IP-set does not
contain a device then the device position is set to stdin.
IP: FIELD 3 DESCRIPTION:
------------------------
default IP-set
This is the optional default IP-set within this VIC.
COMMANDS:
---------
"PK IP -r3"
Returns the optional/default IP-set.
"PK IP -c3"
Removes the opt/default IP-set from the PK-file.
"PK IP -c3 IP-set"
Sets the opt/default IP-set to the given IP-set. If the given IP-set
does not contain a device then the device position is set to stdin.
OP: LINE DESCRIPTION:
=====================
OP: device, postprocess, Tag, BoO, EoO ; opt. last/alt. set ; default set
---------------------------------------------------------------------------
This line contains information relative to Output as it pertains to the
Specific VIC instance SF command processor. The device to send SF command
processor output to, an optional postprocessor stage (this may be another
input/output program or even another VIC), an optional Content Tag, the
optional "Beginning of Output" (BoO) character(s)/pattern/offset set and
the "End of Output" (EoO) character(s)/patterns/offset set. It also contains
an optional last/alternate full set of the above as well as a default set.
COMMANDS:
---------
"PK OP -?"
Opens the hypertext help system window, at "PK OP" help.(???)
(an AI command call to a VIC instance to run IQ on a VIC-help.iq file
for "PK OP" help which may contain an external call to load a web
browser and hypertext/html "PK OP" help page.)
"PK OP -r"
Returns this OP: line
"PK OP -c"
Causes the OP: line to reset to default value, which is only
"stdout,,,," in field 1 position.
"PK OP -c [OP: line]"
Changes the OP line
"PK OP"
Toggles or switches OP line Fields 1 and 2 contents. Contents of Field 1
becomes content of Field 2 and vice versa. If field 2 is empty then the
default value of "stdout,,,," is used.
OP: FIELD 1 DESCRIPTION:
------------------------
device, postprocess, Tag, BoO, EoO
This is the current OP-set accessed within this VIC.
COMMANDS:
---------
"PK OP -r1"
Returns the current OP-set.
"PK OP -c1"
Removes the current OP-set from the PK-file. In doing this, the
last/alt. OP-set is moved to the current position, if exist. Otherwise,
the default OP-set is copied to the current position. If the default
does not exist, it is created as simply "stdout,,,,".
"PK OP -c1 IP-set"
Sets the current OP-set position to the given OP-set. This command also
moves to the last/alt. OP-set position the prior "current" OP-set (The
IP-set being replaced). If the given OP-set does not contain a device
then the device position is set to stdout.
OP: FIELD 2 DESCRIPTION:
------------------------
opt. last/alt. OP-set
This is the last or alternate OP-set accessed within this VIC.
COMMANDS:
---------
"PK OP -r2"
Returns the last/alt. OP-set.
"PK OP -c2"
Removes the last/alt. OP-set from the PK-file.
"PK OP -c2 OP-set"
Sets the last/alt. OP-set to the given OP-set. If the OP-set does not
contain a device then the device position is set to stdout.
OP: FIELD 3 DESCRIPTION:
------------------------
default OP-set
This is the optional default OP-set within this VIC.
COMMANDS:
---------
"PK OP -r3"
Returns the optional/default OP-set.
"PK OP -c3"
Removes the opt/default OP-set from the PK-file.
"PK OP -c3 OP-set"
Sets the opt/default OP-set to the given OP-set. If the given OP-set
does not contain a device then the device position is set to stdout.
SF: LINES DESCRIPTIONS:
=======================
SF: SF-LPC flags ; last/alt. flags ; SF-filename@line#
: SF-filename@line#,....>running stack>
-------------------------------------------------------
The SF running stack always shows the "next" file@line# to be processed.
Field 3 can be empty or contain just an SF-filename or an SF stack of
filenames and/or "stdin", "IQ-out" or "ID-out".
SF-LPC FLAGS:
**** The setting of flags should work in a manner that adding or subtracting
a flag changes the value of the position for which that flag belongs.
See "sf-lpc-flags.html" for possible flags.
COMMANDS:
---------
"PK SF -?"
Opens the hypertext help system window, at "PK SF" help.(???)
(an AI command call to a VIC instance to run IQ on a VIC-help.iq file
for "PK SF" help which may contain an external call to load a web
browser and hypertext/html "PK SF" help page.)
"PK SF -r"
Returns this first SF: line
"PK SF -c"
Causes the SF: line to reset to default values, default flags in field
1, field 2 left blank and "SF-default-filename" in field 3 position. If
SF-default-file does not exist and the SF-stack is empty then SF is put
into interactive mode and field 3 is set to stdin.
"PK SF -c [SF: line]"
Changes the first SF: line to the values given.
"PK SF"
Toggles or switches SF line Fields 1 and 2 contents.
Contents of Field 1 becomes content of Field 2 and vice versa.
If field 2 is blank then default flag values are used.
SF: FIELD 1 DESCRIPTION:
------------------------
SF-LPC flags
This is the current SF-LPC flags accessed within this VIC.
COMMANDS:
---------
"PK SF -r1"
Returns the current SF-LPC flags.
"PK SF -c1"
Removes the current SF-LPC flags from the PK-file. In doing this, the
last/alt. SF-LPC flags are moved to the current position, if exist.
Otherwise, the default SF-LPC flags are written to the current position.
"PK SF -c1 [SF-LPC flags]"
Sets the current SF-LPC flags position to the given SF-LPC flags. This
command also moves to the last/alt. SF-LPC flags position the prior
"current" SF-LPC flags (The SF-LPC flags being replaced).
SF: FIELD 2 DESCRIPTION:
------------------------
opt. last/alt. flags
This is the last or alternate SF-LPC flags accessed within this VIC.
COMMANDS:
---------
"PK SF -r2"
Returns the last/alt. SF-LPC flags.
"PK SF -c2"
Clears the last/alt. SF-LPC flags from the PK-file.
"PK SF -c2 [SF-LPC flags]"
Sets the last/alt. SF-LPC flags to the given SF-LPC flags.
SF: FIELD 3 DESCRIPTION:
------------------------
SF-filename@line#
This is the default SF-file and line number to use in this VIC. It is
the default starting position to use when the SF stack is empty (this
is what "empty" is replaced with. This value can contain a stack of
SF-filename@line# values. If this value is empty when the stack is, the
stack gets set to "stdin" and a current SF-LPC flag is automatically
set to interactive mode.
COMMANDS:
---------
"PK SF -r3"
Returns the contents of this field 3.
"PK SF -c3"
Clears the contents of this field 3 from the PK-file.
"PK SF -c3 [SF-filename@line#,....]"
Sets field 3 to the given SF-filename@line# value(s).
SF: FIELD 4 DESCRIPTION (second line):
------------------------
SF-filename@line#,...> running stack>
This is the SF-file running stack in use in this VIC. If this value is
empty and field 3 is also empty then the stack gets set to "stdin" and
a current SF-LPC flag is automatically set to interactive mode.
The SF running stack always shows the "next" file@line# to be processed.
COMMANDS:
---------
"PK SF -r4"
Returns the contents of this field 4.
"PK SF -c4"
Clears the contents of this field 4 from the PK-file.
"PK SF -c4 [SF-filename@line#,...]"
Sets field 4 to the given SF-filename@line#,... value(s).
IQ: LINES DESCRIPTIONS:
=======================
IQ: IQ flags ; last/alt. flags ; IQ-filename@line#
: IQ-filename@line#,....>running stack>
--------------------------------------------------
The IQ running stack always shows the "next" file@line# to be processed.
Field 3 can be empty or contain just an IQ-filename or an IQ stack of
filenames.
IQ FLAGS:
**** The setting of flags should work in a manner that adding or subtracting
a flag changes the value of the position for which that flag belongs. See
the stand alone IQ program for flag possibilities (which may and will likely
change when IQ is integrated into the rest of the VIC).
COMMANDS:
---------
"PK IQ -?"
Opens the hypertext help system window, at "PK IQ" help.(???)
(an AI command call to a VIC instance to run IQ on a VIC-help.iq file
for "PK IQ" help which may contain an external call to load a web
browser and hypertext/html "PK IQ" help page.)
"PK IQ -r"
Returns this first IQ: line
"PK IQ -c"
Causes the IQ: line to reset to default values, default flags in field
1, field 2 left blank and "IQ-default-filename" in field 3 position. If
the IQ-default-file does not exist then IQ won't have any output except
for error out that file does not exist (if error out flag is set).
"PK IQ -c [IQ: line]"
Changes the first IQ: line to the values given.
"PK IQ"
Toggles or switches IQ line Fields 1 and 2 contents.
Contents of Field 1 becomes content of Field 2 and vice versa.
If field 2 is blank then default flag values are used.
IQ: FIELD 1 DESCRIPTION:
------------------------
IQ flags (current)
This is the current IQ flags accessed within this VIC.
COMMANDS:
---------
"PK IQ -r1"
Returns the current IQ flags.
"PK IQ -c1"
Removes the current IQ flags from the PK-file. In doing this, the
last/alt. IQ flags are moved to the current position, if exist.
Otherwise, the default IQ flags are written to the current position.
"PK IQ -c1 [IQ flags]"
Sets the current IQ flags position to the given IQ flags. This
command also moves to the last/alt. IQ flags position the prior
"current" IQ flags (The IQ flags being replaced).
IQ: FIELD 2 DESCRIPTION:
------------------------
opt. last/alt. flags
This is the last or alternate IQ flags accessed within this VIC.
COMMANDS:
---------
"PK IQ -r2"
Returns the last/alt. IQ flags.
"PK IQ -c2"
Clears the last/alt. IQ flags from the PK-file.
"PK IQ -c2 [IQ flags]"
Sets the last/alt. IQ flags to the given IQ flags.
IQ: FIELD 3 DESCRIPTION:
------------------------
IQ-filename@line#
This is the default IQ-file and line number to use in this VIC. It is
the default starting position to use when the IQ stack is empty (this
is what "empty" is replaced with. This value can contain a stack of
IQ-filename@line# values. If this value is empty when the stack is, then
IQ outputs nothing or an error message that no IQ-file is given (when
error out flag is set.)
COMMANDS:
---------
"PK IQ -r3"
Returns the contents of this field 3.
"PK IQ -c3"
Clears the contents of this field 3 from the PK-file.
"PK IQ -c3 [IQ-filename@line#,....]"
Sets field 3 to the given IQ-filename@line# value(s).
IQ: FIELD 4 DESCRIPTION (second line):
------------------------
IQ-filename@line#,...> running stack>
This is the IQ-file running stack in use in this VIC. If this value is
empty then it gets set to the value of IQ field 3 upon the use of the IQ
command. If field 3 is also empty then IQ output nothing or an error
message that no IQ-file is given (if error out flag is set).
The IQ running stack shows the next file@line# to be processed.
When the IQ command is issued then the SF stack has "IQ-out" added to
the stack to indicate where it is getting it's input from.
COMMANDS:
---------
"PK IQ -r4"
Returns the contents of this field 4.
"PK IQ -c4"
Clears the contents of this field 4 from the PK-file.
"PK IQ -c4 [IQ-filename@line#,...]"
Sets field 4 to the given IQ-filename@line#,... value(s).
ID: LINES DESCRIPTIONS:
=======================
ID: ID flags ; last/alt. flags ; ID-filename@line#
: ID-filename@line#,....>running stack>
--------------------------------------------------
The ID running stack always shows the "next" file@line# to be processed
Field 3 can be empty or contain just an ID-filename or an ID stack of
filenames.
ID FLAGS:
**** The setting of flags should work in a manner that adding or subtracting
a flag changes the value of the position for which that flag belongs. There
is currently no reference for this but the functionality used to manipulate
ID flags will be similar to IQ flag manipulation.
COMMANDS:
---------
"PK ID -?"
Opens the hypertext help system window, at "PK ID" help.(???)
(an AI command call to a VIC instance to run IQ on a VIC-help.iq file
for "PK ID" help which may contain an external call to load a web
browser and hypertext/html "PK ID" help page.)
"PK ID -r"
Returns this first ID: line
"PK ID -c"
Causes the ID: line to reset to default values, default flags in field
1, field 2 left blank and "ID-default-filename" in field 3 position. If
the ID-default-file does not exist then ID won't have any output except
for error out that file does not exist (if error out flag is set).
"PK ID -c [ID: line]"
Changes the first ID: line to the values given.
"PK ID"
Toggles or switches ID line Fields 1 and 2 contents.
Contents of Field 1 becomes content of Field 2 and vice versa.
If field 2 is blank then default flag values are used.
ID: FIELD 1 DESCRIPTION:
------------------------
ID flags (current)
This is the current ID flags accessed within this VIC.
COMMANDS:
---------
"PK ID -r1"
Returns the current ID flags.
"PK ID -c1"
Removes the current ID flags from the PK-file. In doing this, the
last/alt. ID flags are moved to the current position, if exist.
Otherwise, the default ID flags are written to the current position.
"PK ID -c1 [ID flags]"
Sets the current ID flags position to the given ID flags. This
command also moves to the last/alt. ID flags position the prior
"current" ID flags (The ID flags being replaced).
ID: FIELD 2 DESCRIPTION:
------------------------
opt. last/alt. flags
This is the last or alternate ID flags accessed within this VIC.
COMMANDS:
---------
"PK ID -r2"
Returns the last/alt. ID flags.
"PK ID -c2"
Clears the last/alt. ID flags from the PK-file.
"PK ID -c2 [ID flags]"
Sets the last/alt. ID flags to the given ID flags.
ID: FIELD 3 DESCRIPTION:
------------------------
ID-filename@line#
This is the default ID-file and line number to use in this VIC. It is
the default starting position to use when the ID stack is empty (this
is what "empty" is replaced with. This value can contain a stack of
ID-filename@line# values. If this value is empty when the stack is, then
ID outputs nothing or an error message that no ID-file is given (when
error out flag is set.)
COMMANDS:
---------
"PK ID -r3"
Returns the contents of this field 3.
"PK ID -c3"
Clears the contents of this field 3 from the PK-file.
"PK ID -c3 [ID-filename@line#,....]"
Sets field 3 to the given ID-filename@line# value(s).
ID: FIELD 4 DESCRIPTION (second line):
------------------------
ID-filename@line#,...> running stack>
This is the ID-file running stack in use in this VIC. If this value is
empty then it gets set to the value of ID field 3 upon the use of the ID
command. If field 3 is also empty then ID output nothing or an error
message that no ID-file is given (if error out flag is set).
The ID running stack shows the next file@line# to be processed.
When the ID command is issued then the SF stack has "ID-out" added to
the stack to indicate where it is getting it's input from.
COMMANDS:
---------
"PK ID -r4"
Returns the contents of this field 4.
"PK ID -c4"
Clears the contents of this field 4 from the PK-file.
"PK ID -c4 [ID-filename@line#,...]"
Sets field 4 to the given ID-filename@line#,... value(s).
KE: LINE DESCRIPTION:
=====================
KE: Master-teeth ; last/alt. M-teeth ; KE-filename
: opt. last/alt. set
---------------------------------------------------
KE data is used by IQ and ID to cause additional constraints to be applied
in what IQ and ID will output. Think of KE in terms of key to unlock access
to specific knowledge/data, and Master-Teeth like Master-Keys that unlock
many such knowledge/data parts. Having NO Master-Teeth defaults in a wild
card '*' that matches all. Hence, the application of KEys causes specified
constraints to be applied.
Master Teeth:
**** The setting of the Master Teeth ..... There is currently no reference
for KE Master-Teeth but the functionality used to manipulate Master-Teeth
should probably include, besides the default of replacing the complete
Master-Teeth field, the option to add (+) a tooth "+tooth" from the list of
Teeth and to remove (-) a tooth "-tooth" from the list. By just adding a '+'
or '-' to the beginning of the tooth to add or subtract it from the
Master-Teeth field. These would of course be used in the commands:
"PK KE -c# [KE Master-Teeth]" I.E. "PK KE -c1 -loose -tooth +dollar" would
remove the Master-teeth "lose" and "tooth" and add the Master-tooth "dollar".
Hint: In making the KE file compatible with the OI variable file it is
likely that a Master tooth might be like a variable name that points to a
variables contents that may contain key teeth (or more than one key.)
COMMANDS:
---------
"PK KE -?"
Opens the hypertext help system window, at "PK KE" help.(???)
(an AI command call to a VIC instance to run IQ on a VIC-help.iq file
for "PK KE" help which may contain an external call to load a web
browser and hypertext/html "PK KE" help page.)
"PK KE -r"
Returns this first KE: line
"PK KE -c"
Causes the KE: line to reset to default values, default Master-Teeth in
field 1, field 2 left blank and "KE-default-filename" in field 3
position. If the KE-default-file does not exist then KE won't have any
constraining effect on IQ or ID usage.
"PK KE -c [KE: line]"
Changes the first KE: line to the values given.
"PK KE"
Toggles or switches KE line Fields 1 and 2 contents.
Contents of Field 1 becomes content of Field 2 and vice versa.
"PK KE x"
Switches KE line 1 with KE Line 2.
KE: FIELD 1 DESCRIPTION:
------------------------
KE Master-Teeth (current)
This is the current KE Master-Teeth accessed within this VIC.
COMMANDS:
---------
"PK KE -r1"
Returns the current KE Master-Teeth.
"PK KE -c1"
Removes the current KE Master-Teeth from the PK-file. In doing this, the
last/alt. KE Master-Teeth are moved to the current position.
"PK KE -c1 [KE Master-Teeth]"
Sets the current KE Master-Teeth position to the given ME Master-Teeth.
This command also moves to the last/alt. KE Master-Teeth position the
prior "current" KE Master-Teeth (The KE Master-Teeth being replaced).
KE: FIELD 2 DESCRIPTION:
------------------------
opt. last/alt. KE Master-Teeth
This is the last or alternate KE Master-Teeth accessed within this VIC
and KE line "set".
COMMANDS:
---------
"PK KE -r2"
Returns the last/alt. KE Master-Teeth.
"PK KE -c2"
Clears the last/alt. KE Master-Teeth from the PK-file.
"PK KE -c2 [KE Master-Teeth]"
Sets the last/alt. KE Master-Teeth to the given KE Master-Teeth.
KE: FIELD 3 DESCRIPTION:
------------------------
KE-filename
This is the KE-file to use in this VIC.
COMMANDS:
---------
"PK KE -r3"
Returns the contents of this field 3.
"PK KE -c3"
Clears the contents of this field 3 from the PK-file.
"PK KE -c3 KE-filename"
Sets field 3 to the given KE-filename.
KE: FIELD 4 DESCRIPTION (second line):
------------------------
opt. last/alt. set
This is an alternate or optional full set of the first line of KE
"KE: Master-teeth ; last/alt. M-teeth ; KE-filename". There are no field
manipulations built in for this second line. It is treated as only one field
because you can exchange line 1 and 2, do manipulation and flip back if you
need to manipulate the contents with built-in commands. The semi-colon ';'
is used to separate fields for line 1.
COMMANDS:
---------
"PK KE -r4"
Returns the contents of this field 4.
"PK KE -c4"
Clears the contents of this field 4 from the PK-file.
"PK KE -c4 [Master-Teeth; last/alt. Master-Teeth; KE-Filename]"
Sets field 4 to the given KE value(s).