VARIOUS PANELS OF ISTAR

Here we describe some of the panels you will encounter in using Istar. 
Those not described here should be fairly obvious once you know these.


THE SCREENS

Istar uses two screens, separate from Workbench.  The Control Screen comes 
up first, with a grey background.  It is used for the panels.  The main 
Easel comes up when you have a knowledge base ready.  Its size can changed 
with the Prefs button on Initial Control Panel.

      The control screen usually resides along the bottom and can be moved
manually using the two-pixel strips along its top.  Then there is a thin 
backdrop window that shows the meanings of items.  Important on this window 
is the gadget at the left hand end with two arrows.  This moves the control 
screen up and down quickly.


THE INITIAL CONTROL PANEL

This resides top left corner of the control screen.  One column of buttons 
that valid when there is no KB - things like 'About' and 'Quit'.  The 
'Errors' button allows you to explore the various levels of any error that 
occurs, though it is perhaps of more use to technical users.

      But, to get going, use 'New' or 'Get KB', which will, respectively,
create a new KB for you or load an existing one.  When a KB is successfully 
loaded the main easel will appear and on the control screen a KB panel will 
appear.  You can load or create any number of KBs (depending on memory), 
each with a drawing easel and each with its own KB panel.

      (In version 1.01 you could only have a single KB at a time and there
was no KB panel.  Instead, the main control panel held three columns of 
buttons and there were separate panels to select item type, relationship 
type and to show the goal list.)

      The 'Prefs' button brings up a Preferences panel.


PREFERENCES

This panel is being developed.  You should normally only alter it right at 
the start of the program at present, as some of its facilities have little 
or no effect after a KB has arisen.  Try things and see: if it works, fine, 
if not, remember to set it at start next time.

Its main purpose is to set a few parameters relating to new knowledge bases 
(standard values in brackets):

      #  Size and name of new KB (50,000 LWs and 30%)
      #  Size and depth of its main Easel (30 by 24 inches)

Dimensions are measured in 1/256 of inch (approx. tenth of a millimetre).

      It also allows you to set the amount by which all main Easels scroll
and to select fonts for:

      #  Main Easel
      #  Question panels
      #  Documents (not yet used)

Note that changes to the main easel font are only effective next easel you 
bring up.


THE KNOWLEDGE BASE PANEL

The KB panel concerns a whole knowledge base.  It comprises two columns of 
buttons at its left and two lists at its right, with a few other buttons. 
The name of the KB is shown in the window title of the panel.

First column are to do with current KB:

      #  Save
      #  Save As
      #  KB Dump - to export ASCII translations of the KB
      #  Easel - to resize the main Easel etc.
      #  KB Area - to see details and rename: KBA Panel
      #  Clone KB (not yet working)
      #  Rid - to get rid of the KB

Second column are to do with the knowledge in the current KB:

      #  See Easel - when multi KBs, to bring Easel to front
      #  Reset Goals (to prepare the goal list for ...)
      #  Infer Goals (to start a run)
      #  Goal List (brings up the Goal List panel)
      #  Att Types (to create new attribute types)
      #  Topics (to manage topics)
      #  Find (to search for item etc. by name or sub-string)

Third column is the Item Types list.  This is perhaps the most frequently 
used, as you change item type.  Below it are buttons to create a new item 
type, edit an existing type, clone an existing type (not yet implemented) 
and get rid of an item type (dangerous, since you lose all items of that 
type; try it on a dummy KB you have created for the purpose!).

Fourth column is the Relationship Types list, with buttons to create a new 
relationship type or edit an existing one.  You will seldom use this list, 
except when you are making up specific relationships.


THE KBA PANEL

Hit the 'KB Area' button on KB panel, and up comes the 'Knowledge Base 
Area' (KBA) panel, which tells you various things about the KB itself.  The 
most useful things are:

      #  Name:  You can change the name of your KB, up to 40 chars.

      #  DSA % Expansion:  Make this higher for dynamic KBs; it is the
      amount (as a %) of free space ('virgin glass' if we use the metaphor
      of recycling glass bottles) created in the KB when it is next loaded.
      Standard value is 30%, which gives plenty for the average knowledge
      engineering session.  DSA means 'Data Structure Area' - where almost
      everything goes.

      #  Min DSA:  30% of zero is zero, which is a problem when your KB is
      young.  So we also stipulate a minimum size for the DSA.  Standard
      value is 50,000 longwords (200,000 bytes).

Altering the last two resizes the KBA when you hit 'OK' (though it doesn't 
work yet in Version 1.03) but you should seldom need to do so.  Of minor 
interest are the following:

      #  KBA at:  The address in memory of the start of the KBA.  Decimal.

      #  Actual size:  Actual size in memory (bytes).

      #  Blocks:  How many separate blocks in the KB.  An Istar free
      attribute typically comprises around 10 blocks.

      #  Bottles and Glass:  This shows how much 'free space' or 'glass'
      there is to be recycled.  Bottles shows how many separate pieces,
      Glass the total amount (in bytes).  Usually only of minor interest,
      except when the KB gets fragmented.

Other, less useful things are:

      #  Version:  Ignore this.  At present always 0.  It is the version of
      software, NOT of the knowledge you have put there.

      #  Max Ring Length:  Occasionally this is used to check against
      infinite loops, but not always.  Usually ignore it at 9999.

      #  Tasks:  How many Amiga tasks are currently sharing this.  Always 1
      at present (the current task).


THE ATTRIBUTE DETAILS PANEL

Bring up the Attribute Details panel for a given attribute (step 8 in 
<Driving Istar>).  Lots of information, some of which you can change.

Exit Buttons:
When you hit OK (or OK-Act) the changes made will be stored with the 
Attribute.
If you hit Cancel, they will not be made - with the exception of those 
lists underneath the exit buttons.
Show:  Helps you find the attribure box on the Easel.  Hitting this button 
will bring back the Easel but with only this attribute and those connected 
to it showing.

Top row:  Name and Meaning, as discussed above.  Also a wee OK button for 
convenience.

Next row:  To do with Attribute Value
1.  Attribute Type.  Hit the wee button to change it.
2.  Value.  Gadget type depends on type, e.g. sliders for proportions. 
There might be more than one gadget; e.g. Ratio is two integers, Bayesian 
is four sliders.

Next row:  More about values
1.  Show Value:  CheckBox you can tick if you want value to be shown on 
main easel.  At present only works for booleans, bayesians, probabilities, 
proportions.
2.  Inf:  CheckBox Ticked if value is infinite (eg. from divide by 0)
3.  Unk:  Ticked if unknown.  Attributes can have a value of 'unknown' 
(which is different from 'not answered' below).  This would be for instance 
when you ask the new Employee their age and they say 'I don't know'.
4.  MBK:  Means 'Must be Known'.  Tick this and 'Unk' is not allowed.  (In 
this version has no effect.)


DERIVATION

The attribute's value must be derived (obtained) from somewhere or somehow. 
Istar offers three methods:

Left hand side Three Radio Buttons:  Derivation:  Shows how Value of 
attribute is derived when the KB is run (as in step 10 in <Driving>):
1.  Constant.  You then alter the Value gadget(s) in row 2.
2.  Infer.  Then the Inference Method comes into play.  See above for how 
to change it.  See below for Antecedents.
3.  User Supplied.  This means that to obtain the value we ask the user a 
question when the KB is run.  (If Infer is selected but there are no 
attributes then it is treated as User Supplied.)


INFERRED ATTRIBUTES

The inference method is shown in the gadget to the right of the Infer Radio 
Button, and changed by hitting the wee button attached.  The inference 
method list thus presented depends on the Attribute Type.  For instance 
Integer attributes can have all the normal arithmetic plus more.  See below 
for list of inference methods.

Bottom Left of panel:  Antecedents.
Here is a list of the antecedents, in their order.  So if we have 
subtraction inference method then the value of this attribute will be the 
value of the first, minus the values of all the others.  Sometimes the 
order matters, sometimes not.
'To 1':  You can change the order by selecting an antecedent and hitting 
'To 1', which moves it to first in list.  Note that this change is NOT 
undone if you then hit Cancel.
'See':  Hitting 'See' button will bring up the attribute panel of the 
selected antecedent.

Bottom Right of panel:  Consequents
As with antecedents.  But changing the order with the 'To 1' button is 
unlikely to make much difference in practice except perhaps some change of 
speed.

USER SUPPLIED ATTRIBUTES

Long String Gadget 'Q':  To right of 'User Supplied' button.  If you fill 
this in then this is the text that will appear in the User Question panel. 
Usually it is in the form of a question, and can be up to 256 characters 
long.

Next Row:  To do with explanation facility.  When the user is asked for a 
value, they might want an explanation of why the question is being asked, 
or more detail about the question.  This text in this string gadget and it 
will be presented to the user when they hit the 'Help' button on the User 
Question Panel.

OVERRIDING

Next Row:  Overriding.
Knowledge Based Systems are often used in decision support.  This often 
requires the facility to override an attribute's value temporarily to try 
something out.  e.g. "What if we increase the size of this building by 20 
%?"  To allow this, each Attribute in Istar in fact has two values, not one 
- a main value and an override.  The effect of overriding is that 
inferencing does not proceed through this attribute and it is treated as 
Constant or User Supplied rather than inferred.  This could be achieved 
merely by changing the Derivation to Constant and altering the value.  But 
the original value is then lost.  But with the Istar override facility, the 
original value is retained and can be switched back in when the what-iffing 
is finished.

1.  Left Check Box allows Attribute to be overridden.
2.  String Gadget to its right is for text to put to user when it is 
overridden; see below.
3.  Check Box to right shows whether or not it has been overridden.  If so, 
then the Value shown is the override value.

STATUS OF ATTRIBUTE

Next Row: Status.

1.  Answered.  If ticked then this attribute has been answered.  The 
Answered flag is used when running the KB to determine whether or not to 
seek to derive its value.  If answered, do not, if not answered, do.

      Normally if User Supplied then the user has answered a User Question
about it.  If Inferred, it usually means that all its antecedents have been 
answered.  e.g. If X = A + B + C, X is answered only when all of A, B, C 
have been answered.  But for some inference methods the attribute can be 
answered before all its antecedents have been.  e.g. X = A * B * C if A is 
0 then we know the value of X immediately.

2.  Visited (DoneWith).  This is used during forward chaining (q.v.).  It 
means that the value of the attribute has been propagated and so do not 
bother doing so again.  Not usually very instructive information.

3.  Error.  Not yet fully used.  But designed to indicate e.g. trying to 
multiply two strings or other nonsensical things.  This information is 
usually only of value when debugging the KB.

OTHER INFO ON ATTRIBUTE

Next row:  Other information.

1.  Item to which this attribute belongs.
2.  'See' takes you to the Item Details Panel.
3.  DSAP:  Unique internal identifier for the Attribute. ('Data Structure 
Area Pointer').

4.  Topics.  Bring up the Topics panel (q.v.).

ANTECEDENTS AND CONSEQUENTS

Bottom of panel, left for antecedents, right for consequents

1.  Related attribute list.  Select one and the wee buttons come into play:
2.  'A' Action button:  Click this to raise the attribute details panel for 
the selected attribute.
3.  'R':  Click this to raise relationship instance panel for the link.
4.  'X':  Click this to gain explanation of what happens in the link.
5.  'To 1':  Click this to make that attribute first in list.


THE ITEM DETAILS PANEL

The item details panel can be accessed by clicking the 'See' button on the 
attribute details panel attached to the item name.  It will also appear if 
you click on an item box on the easel, such as a form.

      Most of it is straightforward, such as label/name and meaning.  There
is a list of attributes it contains taking up most of the left hand side. 
With this you can select an attribute and bring up its panel with 'See' and 
you can make it the first attribute in the item with 'To 1', though this 
has very little effect in the current version.

      You can attach an item to topics as above.

      The two buttons concerned with importing and displaying text are not
effective in this version.


THE RELATIONSHIP INSTANCE DETAILS PANEL

The relationship details panel comes up if you click on a link on the main 
easel or if you click the wee 'R' button at the bottom of the attribute 
detaild panel.  It gives details about the relationship, including 
antecedent and consequent.

      The main things of interest are the unary operator, and the weight.
The use of these is explained in the <Using Istar> document.

      The Explain button brings up an explanation of what would happen when
inference is performed with this relationship.


TO CREATE NEW ITEM TYPE

To create a new item type the main thing is to give it a name, and then 
some other information depending on what you want it for.  The basic 
operation is as follows:

#  Click 'New' button under Item Type list on the KB panel.

#  Enter the name for it.

#  Ignore all the checkboxes for now.

#  What colours do you want?  First Pen gives colour of label, if any. 
Second Pen gives colour of outline box.  Pattern gives pattern for outline 
box.  Similar to Relationship Type Panel.  (This is not available in 
versions earlier than 1.03.)

#  Click the 'OK' button.

(The new type is automatically selected for drawing.)


ITEMS FOR SEMANTIC NET

In a semantic net (or a mental map) the important thing about items is the 
relationships they have with other items.  So it is a good idea to define 
relationship types that will be drawn from the items of this type.  So we 
add a couple of extra steps to the above, to define the relationship types 
you want (not available until version 1.03).

#  Click 'New' button under Item Type list on the KB panel.
#  Enter the name for it.
#  Ignore all the checkboxes for now.

#  There are two type gadgets mid-panel, showing 'None' and labelled 'Left' 
and 'Right'.  Click the 'Right' one.  Up comes a list of relationship 
types.  [Bug in version 1.03:  If there is more than one KB active, the 
list will not appear; get rid of all but this KB.]  Select one, such as 
'Precedence' and click the 'OK' button.

#  What colours do you want?  First Pen gives colour of label, if any. 
Second Pen gives colour of outline box.  Pattern gives pattern for outline 
box.  Similar to Relationship Type Panel.

#  Click the 'OK' button on the Item Types Panel.

#  On the Easel, draw two items of this new type.  Now draw a link from the 
right hand edge of the left one to the other.  It should draw a Precedence 
relationship; you can check this by bringing up the Relationship Instance 
Details panel for the relationship (see above).

Note that we did not set the 'Left' relationship type.  We could do so. 
But when it is 'None' then the type drawn will be that shown selected in 
the Relationship Types List on the KB panel.


ITEMS AS DATABASE RECORDS

The other main use of items is as a database record, a collection of 
attributes.  So for this, we take a few extra steps to add attributes. 
(You can create item types with both relationship types and attributes; no 
problem.)

#  Click 'New' button under Item Type list on the KB panel.
#  Enter the name for it.
#  Ignore all the checkboxes for now.

#  At bottom right is a type gadget which shows attribute type.  Click the 
wee button to its left to bring up list of attribute types.  Select the 
type required.

#  (If not available, click Cancel on the list, keep the Item Type panel 
but send it to back, then create the attribute type you require as 
described below.)

#  In string gadget to its left, give it a name.

#  IMPORTANT:  Now click the rectangular gadget above the attribute type 
gadget to add it to the list of gadgets.

#  Repeat the above to add other attributes.

#  What colours do you want?  First Pen gives colour of label, if any. 
Second Pen gives colour of outline box.  Pattern gives pattern for outline 
box.  Similar to Relationship Type Panel.  (This is not available in 
versions earlier than 1.03.)

#  Click the 'OK' button.


ITEMS AS FREE ATTRIBUTES

You should seldom have to create your own free attribute types, since these 
are automatically created when you create an attribute type.  But if you 
wish to do so, you must create an item with a single attribute and with 
'Has Own Box' not ticked, so that no box is shown for the item itself. 
(Note that at present it is not possible to suppress the item's box, so you 
cannot strictly create new free attribute types.)


TO CREATE A NEW ATTRIBUTE TYPE

#  In KB panel click the 'Att Types' button.  This brings up a panel for 
attribute types.  The left hand list is of currently available attribute 
types.  The right hand side is for giving ordinals and enumerated types 
(and other types in future) names for their values.

#  Decide on name for attribute type and enter that in the 'N' gadget on 
left hand side.

#  If you wish, you can give it a meaning in the 'M' gadget.  Maybe to 
explain more about it.

#  Now click the wee button at the left of the 'V' type gadget at the 
bottom, to obtain a list of fundamental value types.  Select the one you 
want.

#  Lastly, click the left 'Add' action button to add it to the list of 
attribute types available.

#  If the value type chosen is Enumerated or Ordinal then you will want to 
add names for its values.  These have values from 1 upwards.

#  In the 'N' string give the name for the first value, such as 'Sunday'. 
Then click the right 'Add' button to add it to the list.

#  Then give the name for the second value and click 'Add'.  And the third, 
and so on.  Until finished.

#  When finished, click the 'Done' button, and the attribute type is 
available for use e.g. in creating an item type.


CREATING A NEW RELATIONSHIP TYPE

Click the 'New' button beneath the Relationship Types list on the KB panel. 
Up comes a panel that allows you to define the name for the relationship 
type, various parameters of it and visual appearance of the lines that 
express its instances on the main easel.

#  Enter a name.

#  Is it DAG or not?  If DAG (Directed Acyclic Graph) then you cannot form 
cycles with instances of this type of relationship.  That is, you cannot 
build a KB with links e.g. from A to B, B to C, C to D, and D back to A 
(though you can have A to B, B to C, C to D and A to D).  Many types of 
relationship are DAGs, e.g. most dependencies.

#  If it is DAG, does this type of relationship perform inference?  Usually 
not.

#  The next four check boxes should normally be left ticked for maximum 
flexibility.

#  Pens and pattern.  The two pens can define the colours in which 
instances of this type of relationship will be drawn for positive and 
negative versions of the relationship.  If either is zero then a default 
colour will be used that indicates whether the relationship is a DAG, is 
inference or not.  The pattern is 16 pixels repeated along the line. 
Usually used to give visual indication of type of relationship.

#  When done, click the 'Create' button (or 'Cancel').

EDITING A RELATIONSHIP TYPE

To make changes to the name of a relationship type or in any of the above 
parameters, select the type in the Relationship Type list and click the 
'Edit' button beneath it.

      Note that if you alter the visual appearance, existing instances of
this type will not be altered in visual appearance.  But new instances will 
take on the new appearance.  Also, when you bring up a Relationship Details 
panel and click 'OK' the visual appearance will change.

      BEWARE:  Do not change parameters of the standard relationship types
(though you may change their visual appearance to suit your tastes).  In 
particular, if you make 'Inference' to be not a DAG you will be allowed to 
create an infinite loop in the KB.


FINDING SOMETHING BY NAME

On main control panel, click the 'Find' button.  This brings up the Find 
panel (which in the current version is rather sparse and empty).  It allows 
you to find attributes, attribute types, items, item types, relationships, 
relationship types by sub-strings their names contain.

#  Enter the sub-string in the long string gadget at the top.

#  Then click either Item, Att or Rel, depending on what you want to find. 
It then brings up a panel for the thing found, if any: an attribute action 
panel, an item details panel or a relationship instance panel.

#  Note that it will search the types before the instances.

#  If it's not the one you want, send that panel away (Cancel or Done) and 
click Continue.  It will continue the search from where it left off.

#  You can watch the number.

#  If you want to find the total number of items, attributes or 
relationships, clear the string gadget and hit the appropriate button.  The 
number then shows you the total number, including the number of types.

#  (Note that in current version, Rel does not work.)


Copyright (c) Andrew Basden, 1996
