THE PANELS OF ISTAR

Page not yet finished, but most info present. Please note: The panel images are in Amiga .iff format. PC-users can view these with ?MSWord if you download them.

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.

NOTE: If you want, you can get an IFF file dump of each panel by activating its window, placing cursor over its background and pressing RAmiga-RShift-W. The result is stored in ram: disk as [hex.addr].iff.

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

Initial Control Panel

This small panel resides top left corner of the control screen. It has one column of buttons that are relevant to the program itself, even 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.

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.

The Preferences Panel

Preferences Panel

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):

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.

Main Knowledge Base Panel

There is one Knowledge Base (KB) Panel for each knowledge base that Istar is dealing with. 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.

Knowledge Base Control Panel

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.

Creating a New Relationship Type

Click the 'New' button adjoining the Relationship Types list on the KB panel. A new type is created for you, and the Relationship Type Panel appears, allowing you to fill in its name and other details.

To Create a New Domain (Attribute Type)

There are two ways of creating a new domain or attribute type.

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 New Item Attribute Panel from which you can access the New Domain Panel.

The KB Details Panel

Knowledge Base Details Panel

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

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:

Other, less useful things are:

Easel Control Panel

Easel Control Panel

This panel, as yet poorly designed, allows you to do three things at present:

Exit the panel by the 'No Resize' button.

The Attribute Details Panel

Attribute Details Panel

(Because this is complex panel, you might find it useful to bring up its imagemap which explains each of its gadgets individually.)

The Attribute Details panel for an attribute gives lots of information about it. The main way to bring it up is to click with RMB on an attribute box, but it will also come up if you hit the 'See' button of any panel list that shows attributes. The panel is multi-threading so that you can have any number of them up at once and can continue to operate the main easel and other panels the while.

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:

The User Texts Panel

User Texts Panel

(This is available only from Version 1.0872. Before that, some user texts are set up on the Attribute Details Panel).

The User Texts Panel allows you to set up texts that the user will experience when running the KB. There are a number of texts, with various purposes, and a means of moving and swapping texts around. The texts that can be set from the panel include:

The Attribute Action Panel

Attribute Action Panel

The Attribute Action Panel is a small panel with various buttons allowing you to take action on the attribute. It is intended for use by the knowledge engineer. The panel is small so you can have several in view, for several attributes in which you have an interest. The buttons include (different panel for before version 1.1):

Prior to version 1.1, this panel had different buttons on the left hand side. Its 'Infer' button did NOT do a reset; you had to hit the 'Reset' button first in most cases.

The Item Details Panel

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 at the bottom. With this you can select an attribute and bring up its panel with 'See', create new attributes by hitting 'New' (at which point the New Attribute Panel comes up, and you can delete attributes from an item. Note that you can add an attribute to an item without adding it to the item type. You can also rearrange the attributes in the item using the '1' and 'n' buttons, in which case you will find that on the easel they are also rearranged.

On the left and right half way down are two lists of other things the item relates to (all types of relationship). These are standard list boxes so that you can go to the thing, rearrange things, etc.

You can attach an item to topics as by hitting the 'topics' button.

There might be other things, such as form text.

New Item Attribute Panel

New Item Attribute Panel

This panel adds a new attribute to an item, item type, relationship, or relationship type. Follow the instruction 1,2,3. Select a domain (attribute type), give it a name, and a meaning. If the domain does not exist, hit the 'New Domain' button and up comes the New Domain Panel so you can create one.

The Relationship Instance Details Panel

Relationship Instance 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 in a list box on a 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. Note that if you change the type, unary operator or weight then the visual appearance of the easelpiece of the relationship can change. For inference relationships the colour can switch between the main and the negative pen colours, depending on whether the uop or weight invert the effects of the antecedent.

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

The Weights Panel

Weights Panel

This panel is a convenience to the knowledge engineer. It allows you to set the weights of all the inference antecedents (or consequents) of an attribute. In the ICT project we found setting the bayesian weights a cumbersome operation, especially when we wanted to set the weight of one antecedent relevant to others. This panel allows you to do this; it is accessible by hitting the 'Wts' buttons on the Attribute Details Panel beside the lists of antecedents or consequents (available from version 1.1 onwards). (Actually, not always all the weights: only as many as will fit on the panel; in the rare cases you have more, you will have to set the further ones separately - or else move the further ones up the list, use this panel, and then move them back again.)

This panel had a bug in version 1.1.

Item Type Panel

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:

(The new type is automatically selected for drawing.)

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).

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. (For top and bottom types, 'None' means 'do not draw from here'; for details, see drawing different rel types.

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:

You can also create a free attribute item type via the Attribute Type Panel.

Attribute Types List Panel

Attribute Type List Panel

This panel is a standard panel list. It shows the currently available domains (attribute types) plus a few other buttons:

Attribute Type (Domain) Panel

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

New Domain Panel

This panel allows you to create a new domain (attribute type). 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, 1,2,3:

  1. Select the value type for the domain.
  2. Enter a name for it.
  3. Enter a meaning for it, if any.
  4. Hit 'OK'
Sometimes, after this the Attribute Type Panel comes up to allow you to set other details if you wish.

Relationship Type Panel

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.

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.

Topics of Item

Topics of Item Panel

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 bringing up the Topics Panel, described next.

The above example shows two different uses of topics:

Topics Control Panel

Topics Control Panel

This panel, brought up when you hit the 'Topics' button on KB Panel, allows you to:

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: Make Lists of Things

Lists Panel

The Lists Panel is used to form lists of things, rather like performing a database 'select' or 'join' from the KB. The lists themselves can then be used to create other lists from. It requires 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:

You might notice that these operations are similar to various relational database operations. The source is the equivalent of a relational table, but is more sophisticated, especially being able to source from the whole DAG fans of things in a given list. To achieve each of the RDB operations do the following: