PrepIFS and OASIS-4

Links to sections


During the PRISM project a new version of the OASIS coupler has been developed. Part of this development has been to enhance the configuration mechanism for coupling. This has been done by defining XML Schemas for the OASIS-4 coupling configuration files; the PMIOD, SMIOC, AD and SCC define the coupled model environment (PMIOD and AD) and a specific coupled model experiment (SMIOC and SCC). They have been described in detail in the OASIS documentation.

PrepIFS and OASIS-4

XML files can often be difficult to read and write for humans so the idea was to extend prepIFS with a module for configuring OASIS-4 to get configuration support through a graphical user interface (GUI). That meant to visualise the PMIOD XML files and to integrate with the existing prepIFS technology.

The difference between the prepIFS and PMIOD XML content models is that the prepIFS files do not describe hierarchical content but are lists of configuration elements to be presented in different ways. There is no concept of hierarchical context within one XML file except that individual elements can be used with the STRUCT element to group them. The PMIOD files describe a deep hierarchy of elements where often whole subtrees can be optional and their presence dependent on the context.

If we could take advantage of the prepIFS XML files for operational content and the PMIOD XML files for the scientific content the combination should make it possible to cover very large configurations.

The configuration module

PrepIFS screenshot
Figure 1 PrepIFS screenshot (Click on Image to see full scale)


The GUI, see figure 1 above, consists of three window panes:
  1. Navigation tree
    The left hand pane with its icons.
  2. The input fields
    The right hand side with the text fields.
  3. System message pane

Navigation tree

The navigation tree contains all the configuration nodes in the PMIOD. A line in the tree is composed of a navigation handle,icon,node name and local name attribute as in figure 2.
  • Navigation handle
    Opens and closes the view of the subtree for navigation.
  • Icon
    Identifies the type of node, for instance transients with output nodes are represented as an O and input nodes as an I
  • Node name
    The schema name for the node.
  • Local name
    If the node has an attribute local_name it is displayed between square brackets. The local_name is the name for the variable in the model code.
  • Text value
    If the node has a text value only, the value of the text node is displayed between curly braces.


GUI navigation tree components
Figure 2 GUI navigation tree components.


Select node by clicking on nodename or icon and open/close subtrees by clicking on the handle. Once a node has been selected, indicated by the background of the node name being darkened, the keyboard can be used for navigation.

Using the right (MB3) mouse button on the icon or node name pops up a menu for the node. By choosing to add,delete or make choices between nodes you can change the subtree. The menu's last entry is a ``Show attributes'' menu that displays all attributes for the node.

As can be seen in figure 3 the configurable are represented by a green C. One variation can be set by the menu on the node and the current value is displayed between curly braces. The other version is when the configurable represents a text field in the right pane. The blue E nodes represents element nodes that can be opened and closed with the handle. If an element contains only a text node, such as the default node the value is displayed between curly braces so that it needs not to be opened. Finally, a text node Tt representing the value in a text field is displayed in black.



Icon legend
Figure 3 Icon legend.

The input fields

The right hand side pane provides text fields for accessing the configurable/editable nodes in the tree. It shows only the editable nodes that belong to the selected node and its subtree. To see all nodes, point to the root node.

The input fields pane
Figure 4 The input fields pane.


In figure 4 we have selected a transient and all the editable nodes are visible with their labels in the blue area.

The labels also works as fast links to the navigation tree when pressed. This allows for quick navigation to a particular node.

You can use the tab key to walk the text field area. Clicking in the input text field area brings a blue frame to highlight the input state. You can now enter the new value. Validation of the input value according to type takes place when you hit return. If the input is not valid the text field frame becomes red and the old value replaces the invalid value entered.

Various color and movement schemes have been implemented to allow fine tuning of editing operation at hand and are activated through the option menu.

Visual Coupling interface

The visual coupling interface aims to make it easier to keep an overview between model components by listing the input and output nodes for both components. See figure 5.

Selecting a node in the visual coupling interface, to the left in fig 5, also selects the node in the XML pane. This can be used for navigating the two models efficiently. To couple two nodes do as follows:

  1. Select the input or output node of a model in the VCI.
  2. Draw a line from one to the other by pressing the MB1 (Left mouse key) and holding it down while you draw.
  3. Releasing the MB1 over the other node completes the coupling and is indicated by an edge between the nodes in the direction of flow. Nodes are colour coded according to compatibility and coupling can only be done between compatible nodes.
Pressing on an edge removes the coupling in the VCI. Pressing MB2 (Middle mouse button) over a node and moving the mouse moves the node in the pane.



The Visual coupling interface
Figure 5 The Visual coupling interface.

Author Claes Larsson, latest change: Jan 5, 2005

[ Top ]

Site Hits: