For browsing through a loaded application in the KB we use the Graph Editor. The Graph Editor is started by using the menu item ``Graph Editor'' from the ``Browse'' menu of CBIva. Select Employee as the initial object to be shown in the Graph Editor. After starting the Graph Editor, it will open an internal frame, connect it with the current server, and load the Employee object.
The ConceptBase Graph Editor (described in detail in section 4.2) allows you to display arbitrary objects from the current application. Then, we select the Employee object and choose the Sub classes option from the context menu available via the right mouse-button. We choose to only display explicit subclasses from the submenu and select the Manager object. The displayed graph is now expanded (figure 4.16).
Figure 4.16: The resulting graph after expanding the node Employee with subclasses
Now we expand the node Manager, a subclass of Employee, by choosing the menu item Instances from the popup menu for Manager. We select the menu item ``Show all'' to display all instances of Manager. The resulting graph is shown in figure 4.17.
Figure 4.17: The resulting graph after expanding with the instances of Manager
Note that different object types are represented by different graphical objects. The instances of Manager are shown only as grey rectangles, because they are normal individual objects. The nodes Manager, Salesman, Employee etc. are shown as ovals, since these nodes are instances of the system class SimpleClass (see for a full description of graphical object semantics: Appendix B).
One can move nodes and links by selecting a node or a link and then holding down the left mouse button while moving the cursor to a different position. When the button is released the selected object will be located at the current position and the related links are redisplayed. Selection and movement of multiple nodes and links is also possible.
We can further experiment with the graph editor by showing the classes and attributes of Employee. The classes of Employee are shown by selecting ``Instance of'' from the popup menu. Attributes of an object can be shown by selecting ``Outgoing attributes'' from the menu. The next submenu will show all attribute classes that apply for the current object. In our example, Employee is an instance of Class. Therefore, it has the attribute classes constraint, rule, and mrule (see figure 4.18). The attribute class Attribute applies to all objects as in Telos any kind of object can have an attribute. Furthermore, all attributes of an object are member of the attribute class Attribute. As we want to see all attributes, we select this attribute class and select ``Show all'' from the next submenu. All attributes and their values will be shown in the Graph Editor.
Figure 4.18: The graph after expanding it with the classes and the attributes of the class Employee
The Graph Editor can also show implicit relationships between objects,
e.g. relationships deduced by rules or the Telos axioms.
For example, if we select the object John and select ``Instance of''
from the popup menu, we can display the implicit classes of John
by selecting ``All'' from the next submenu. As John is an instance of
Manager and Manager is a subclass of Employee, John is also an instance
of Employee. As there is no explicit object John->Employee,
the instantiation link between John and Employee will be represented as
an implicit link, i.e. a dashed line (see figure 4.19).
The same applies also to attribute links. For example, the employee Herbert
has an implicit boss-attribute to Phil. This can be shown by selecting
``Outgoing attributes''
``boss''
``All''
``Phil'' from the
popup menu. Note, that the submenu ``All'' for the attribute class Attribute
will be always empty as only explicit attributes can be displayed in this category.
Figure 4.19: The graph showing implicit instantiation and attribute links