OPM databases can be accessed via a variety of interfaces such as Genera Web form-based interfaces [6] and application programs. We are currently developing a generic Java-based Web interface for OPM databases, with the OPM query translator running in server mode and communicating with the Java client interface via sockets. In future, we intend to support communication via CORBA ORBs as discussed in the next section.
The OPM Web interface involves three components:
Schema browsing is based on a graphical representation of OPM schemas, where OPM classes are represented as nodes in a graph, attributes are represented as directed labeled edges between nodes, and tuple attributes and union value classes are represented by special (tuple and union) nodes. A schema browsing session involves selecting a target class and then expanding recursively the classes that serve as value classes for the attributes represented in the current browsing session.
The OPM query interface is also based on the graphical representation of OPM schemas mentioned above. Starting with a class, related classes can be selected via a schema browsing session in the main query window. An attribute, A, in this window can be associated with an atomic condition of the form A theta k, where theta is a comparison operator and k is a constant, that is also represented graphically. A subwindow contains the OPM query expression in text format. The text of the query can be edited manually (e.g., for including parentheses or for specifying disjunctions).
For each class involved in a query, one can retrieve the values of the instances in that class: the list of these instances is displayed in order to allow selecting one or several instances. When a class instance is selected, another query is performed in order to retrieve the whole class instance and present it in a pop up Web page.