USING ISTAR - FOR SEMANTIC NETS

In the previous chapter, Using Istar - For Inference, we concentrated on inference nets; now we turn to semantic nets which, in the simple form supported by Istar, are like the Mind Maps common in the decision support arena. Istar isn't yet ideal for these, but can still be very useful - the intention is to make it better.

(If you have not already done so, you should read at least the first few sections of Using Istar - For Inference (and before that, Driving Istar) before proceeding further since it covers some of the basic operations that we shall here assume you are familiar with.)

A semantic net is a collection of items linked with relationships. The formalism was originally proposed in the artificial intelligence community in the 1970s as an aid to storing sentences on computer: each piece of the sentence was an item, and various relationships held them together to make the whole text. But today semantic nets are seen more as a flexible kind of data storage. Istar offers some, but not all, of this flexibility.

For semantic nets items and relationships are all important; attributes are less important. So we need to create new types of relationship and item for use in our net. But, after reading Using Istar - For Inference, you should have enough experience of Istar to be able to do this by yourself after reading the Panels chapter, in its sections on creating new item and relationship types. So, instead of step by step instructions on how to create these, we will look at an example. (This part of the tutorial applies only to versions 1.03 and later.)

# Load the 'Philosophy' knowledge base and examine it. It portrays some of the flow of philosophical thought up to the time just before the Reformation and Renaissance, as a semantic net. The net is based on, and is my interpretation of, Survey of the History of Philosophy, classroom teaching notes by John Van Dyk, Professor of Philosophy, Dordt.

# It shows many of the major Western philosophers and how they influenced each other's thinking. Each has a name, a date and, as meaning, a brief description of their philosophical stance. Move the mouse around to see their stances. (The item type, Philosopher, was created for this KB by hitting the 'New' button adjoining the item types list on the KB panel.)

# There is an 'Influence' relationship linking some of them. This shows that, for instance, the thinking of Socrates influenced the thinking of both Plato and the Cynics. (This type of relationship was created specially for this KB, using the 'New' button below the relationship types list on the KB panel.)

# Some influence links are a different colour; they show a negative influence, in that the later thinking reacted against the earlier and developed in an opposing direction. For instance, Tertullian called Plato "the father of all error".

# Peruse the whole KB, and see what you pick up about philosophers and how Western thinking developed up to the Middle Ages. Alter things if you disagree with them.

# It is often useful to see the consequents or antecedents of a given thing. Move over to the right and place the mouse cursor over the name box of Tertullian. Press the 'A' key (A for antecedent; before version 1.06, press the * key on the numeric pad instead; it was changed to 'A' because some Amigas did not have that key, and to make it a bit easier to remember wbich key to press). You will see most of the net disappear, showing only those philosophers and streams of thought that contributed to Tertullian's thought (i.e. were antecedent to it).

# Notice how Tertullian reacted against Plato (negative link), but at the same time was positively influenced by the Stoics, who were themselves positively influenced by Plato. This sounds like a contradiction - when, from one box to another, you have two paths of which one is negative and one is positive. It is not necessarily so, since Tertullian probably absorbed some Platonic ideas while rejecting others.

# Now move the mouse cursor over Plato and press the 'C' key (C for consequents; not available before version 1.06). The net shows now all those philosophers and philosophical systems that have been influenced by Plato, either directly or indirectly - very many of them.

# Notice four things:

The Philosophy KB bundled with version 1.03 and later of Istar is fairly basic, and will hopefully be extended in the near future, especially to use Topics.

Drawing Different Relationship Types

In creating a semantic net you often want to vary the relationship type that you draw from an item, and so want to do so easily. While this could be done by bringing up the RelType List and selecting the relationship type you require each time, Istar provides a more direct ('proximal') way of doing so, for up to four (or even 5) different types.

You create a new relationship by drawing from the edge of a box. But a box has four edges, so Istar allows you to define a different relationship type to draw from each edge if you wish: this gives you four different types. (The fifth is given by the Relationship Qualifier key, usually left Alt, in which case, whatever edge you draw from, if you hold down the key at the start, it will attempt to draw a relationship of the type currently selected.)

So, on the Item Type Panel, you are offered four gadgets, to set the Relationship Type to draw from each edge. You can either select a Rel Type or 'None'.

Note, however, that when 'None' is selected, top and bottom behaves a little differently from left and right. Left and right are considered the main direction, and have slightly more intelligence in selecting a default type. With top and bottom, if you select 'None', then no relationship can be drawn from that edge (unless you hold down the Rel Qualifier key, in which case you get the one selected in the RelTypes List.) But with left and right, if you select 'None' then Istar tries to work out if there is a default type of relationship for a few of its types of item. These include:

Further, if the item type does not have a default that Istar can work out, then the type selected in the RelType List is chosen.

(This means that you will always draw a relationship from left or right sides, whereas you can switch off drawing relationships from top and/or bottom.)

More to come, later


Copyright (c) Andrew Basden, 1996, 1997.

Last updated: 5 April 2000 drawing different rel types.