Node Definition

Each class and association can be fully defined by means of a view expression: the view completely defines a particular object that cannot be expressed by the EER diagrammatic constructs alone. This is done by using a view language based on the DLR description logic whose syntax is described in appendix A. The view expression must be entered in the Definition tab panel that appears when the class or the association is selected. Figure 9 shows the interface at the moment of giving a definition for a class.

Figure 9: Adding a view definition to a class.
Image DefinitionCreation

A definition has a global context, meaning it can express inter-schema relationships as well as intra-schema relationships. The particulars of the DLR syntax are included in one appendix. The view language includes two syntactic sorts: one for entities and one for relationships. Full boolean operators are allowed, plus a selection operator (selecting tuples in a relationship with a specific entity type in some named role argument) and a unary projection operator (projecting a relationship over a named role argument). A generalised projection operator with cardinality restrictions is available as well. Examples of the use of the DLR language as a view definition language in ICOM can be found at the ICOM home page

Since a definition can refer to objects in different schemas, a name-prefix is used in definitions to distinguish objects with the same name but from different schemas. The name-prefix used is the schema's name followed by a slash, the type of the item (class, role or association) and the sharp $\sharp$ symbol. For example, Class1 in Schema1 and Class1 in Schema2 would be referred to as Schema1/Class$\sharp$Class1 and Schema2/Class$\sharp$Class1 respectively.

There is a feature in ICOM to make life easier in typing node names within definitions. In the contextual menus of classes and associations there is the "Copy name" item, which once selected will copy the name a clipboard. This name can be recovered through the "Paste name" menu item in the contextual menu at the Definiton tab panel.

Classes and associations with a view definition are shown with (+) appended to their names in the editing panel. See figure 9.

Pablo Fillottrani 2010-08-17