Page still under construction
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 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 'Prefs' button takes you to the Preferences Panel.
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.
Its main purpose is to set a few parameters relating to new knowledge bases (standard values in brackets):
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:
Note that changes to the main easel font are only effective next easel you bring up.
First column are to do with current KB:
Second column are to do with the knowledge in the current KB:
Over the right hand half are two lists that are standard panel lists. Above, is the Item Types list. This is perhaps the most frequently used, as you change item type. Adjoining it are buttons to create a new item type, see and edit an existing type, 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!).
Below right 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.
Program-wise, the KB Panel is controlled internally by a yyModuleKBData (where yy is the signature of the module that is the program, e.g. 'kt' for Istar or 'nn' for Annotator) structure which holds all information that pertains to the access to this particular knowledge base by this particular running of this program (or, strictly, module). Normally it would hold the addresses of gadgets for the KB Panel. In this way we obtain an easy way for any program to have any number of KBs active at any time, each having different current item types etc.
Second column of KB Panel, in the middle, there is a three-part gadget
which has the name of the current goal list in its middle. Left wee button
allows you to select a new goal list from among the lists currently in the
KB. Right wee 'S' button will bring up the goal lists's Item Details Panel
so you can peruse and, if needed, reorder, the goals in the list. Hitting
the ResetGoals and InferGoals buttons operate of the current goal list.
Creating a 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. On the KB Panel, hit the 'New' button adjoining the item types
list. This creates a new item type with null name (a dash) and presents
you with the Item Type Panel for this, where you fill in
its details.
At any time you can create one by hitting the 'Att Types' button in the second column of the KB Panel. This brings up a panel of currently available domains. Hit the adjoining 'New' button, and up comes the New Domain Panel.
Or you can create one while in the process of adding an attribute to an item or an item type - which is convenient since it is often at that point that you realise the domain you need is not available. To start this, you hit the 'New' button adjoining a list of attributes, and this brings up the Add Attribute Panel from which you can access the New Domain Panel.
For details of this panel, see p.adp.html, which shows an example as an imagemap to all its parts. The information it contains includes:
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 main things of interest are the unary operator, and the weight. The
use of these is explained in the
The Explain button brings up an explanation of what would happen when
inference is performed with this relationship.
(The new type is automatically selected for drawing.)
Now you're done, draw two items of this new type on the easel. Draw a link
from the right hand edge of the left one to the other. It should draw a
Precedence (or your chosen) relationship; you can check this by bringing up
the Relationship Instance Details panel for the
relationship.
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.
# Click the 'OK' button.
You can also create a free attribute item type via the Attribute Type Panel.
Note that, though now selected in the Relationship Types list in the KB Panel, the next relationship you draw might not be of
this type, since the selected item type might have a standard relationship type.
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.
You might notice that these operations are similar to various database-like
operations, including
# 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.)
At present, the Form facility is simple, and has the following
characteristics:
As KB developer creating a Form is easy. Select 'Form' from the itemtypes list and place a box somewhere to the left of
the group of attributes that you wish to go in the Form. Then draw
relationships from the RHS of the Form box to each attribute in turn (you
must draw in this direction since if you draw from the attribute box
towards the Form box it starts to draw an inference link). Also, click on
the Form box to give it a Name, Meaning and FormText. (Notice that this is
the standard Item Details Panel but with an extra slot
for FormText.)
The action of the inference cycle is that if a form-linked attribute is
found by a backward chaining search then that attribute's Form is presented
to the user with the (first 'six') attributes that are linked to it, in the
order in which the Form item sees them. When the user hits the 'OK' button
all those attributes become answered with the values shown on the Form.
Then each such value is propagated forward before the inference cycle
continues.
You can link any number of attributes to a Form. But they are presented to
the user only approx 'six' at a time and when the seventh is needed by the
backward chaining process the Form will be presented again with the next
'six', and so on. Note that Form only presents unanswered attributes.
Any attribute can be linked with more than one Form. It might be asked as
part of Form 1 and then will not cause Form 2 to come up.
Item Type Panel
The Item Type Panel shows details of an item type. Normally you will see
it when you create a new item type but sometimes
you may wish to alter details of an existing one. When creating a new item
type:
In any case, you can create attributes later, and even change the usage.
Items for Semantic Net
In a semantic net (or a cognitive 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).
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.)
Items as Free Attributes
Free attributes have items that are not
visible and whose only reason for existence is to support the single
attribute. Such items are defined as having precisely one attribute and
having no item box. You will seldom need to create a free attribute item
type, because they are usually created automatically when you create an
attribute type, but should you need to, the procedure is a variation on the
above, as follows:
Attribute Types List Panel
This panel is a standard panel list. It shows
the currently available domains (attribute types) plus a few other buttons:
Attribute Type Panel
This panel shows the details of an attribute type (domain), including
standard things like its name, meaning, value type, and visual appearance.
In addition it has a list of Value Names, especially for use in enumerated
and ordinal types, and a button that creates a free attribute item type for
it.
New Domain Panel
This panel allows you to create a new domain. You will probably use it
most to create enumerated and ordinal types. It is fairly simple process,
in which the steps are numbered for you:
Sometimes, after this the Attribute Type Panel comes up
to allow you to set other details if you wish.
Relationship Type Panel
This panel allows you to define or change the details for the relationship
type, including its name, its usage syntax and semantics, and the visual
appearance of the lines that express its instances on the main easel.
Topics
The Topics panel is brought up for an item, attribute or relationship and
shows one or more banks of checkboxes, each with the name of a topic. You
can link your thing to any of the topics shown by ticking the appropriate
boxes. You can set up new topics by hitting the Topics button on KB Panel.
References
The References facility is not yet available. It will allow you to link
things to external references, e.g. to record why it was that you linked
two attributes that would not normally be linked.
The List Panel
The Lists Panel is used to form lists, in a
two-step operation which is shown on the panel as two long cycle buttons,
the width of the panel, and various detail gadgets below them:
SELECT
and JOIN
.
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.
End User Panels
These are forms that appear when the KB is being run. That is, the end
user sees them.
Runtime Value Entry
This panel, presented during the inference
process, asks for the value of one attribute. It has:
The End User Form
It can be cumbersome to the user to be asked six questions one by one,
especially when they all concern one entity, such as name, address, age,
gender of a patient. Such attributes can be linked to a Form, so that if
any one of them is needed then a Form panel is presented which requests
them all.
Value Gadgets
not yet written
Panel Lists
A number of panels have lists of things from which you may select, and
which are surrounded by various buttons:
Copyright (c) Andrew
Basden 2 February 1998.