Cogui - User Interface Basics v2.0

Contents

1 Main commands
1.1 Main menu
1.2 Main tool bar
2 Views
2.1 Default view layout
2.2 Docking windows framework
2.3 Tabbed panels
2.4 Views description
2.4.1 Project view
2.4.2 Type views
2.4.3 Error view
2.4.4 Result view
2.4.5 Individual  view
3 Editors
3.1 Vertex insertion
3.2 Editing graphs
Selection
Copy, Paste
Drag'n'drop
Automatic arrangements
3.3 Inline edition
3.4 Edges
3.5  Lexicographical search on graphs
4 Keyboard shortcuts

1 Main commands

CoGui provides a classical frame GUI with a main menu and a toolbar.

1.1 Main menu


The File menu allows to open and save projects in COGXML format.
The Edit menu provides Undo/Redo mechanisms for graphs / rules editors. Please note that each editor has its own history of commands, and the undo and redo will only apply to the selected editor. The selection of objects, as well as the copy and paste commands also concern editing graphs and rules.
The View menu provides actions for both view management and visual effects inside the editors.
Commands inside the Graph menu only concern building and modifying the graph-based editors. All these commands can be activated directly inside editors with widgets, contextual popup menus and keyboard shortcuts (see chapter 1.3).
menu Reasoning Reasoning menu gives access to the assistants for querying and applying rules and different algorithms on knowledge base
Tools menu allows to export graph images, import and export RDF(S) data, control vocabulary and facts as well as access preferences.
This allows users access to documentation and informations about LIRMM-RCR team.

1.2 Main toolbar




the main toolbar

2 Views


The CoGui workbench is divided into a number of views. A view has the functionality of a window. Depending on the type of the view it can be closed (sometimes allowed), minimized (sometimes allowed), maximized (always allowed). Views are also dockable/undockable and the windows layout is user customizable. Unlike editors, each type of view has only one instance with a particular behaviour. In the following sections we will first give general information about view management, and then a description of particular behaviour for each kind of view.

2.1 Default view layout

figures below present the views in the default application layout

default view layout (1)


default view layout (2)

2.2 Docking windows framework




view title bar buttons
Users can customize the layout of the application according to their preferences. Users can minimize, maximize, close, dock, undock and move around the windows to create a personalized windows layout. The title bar of each view is provided with buttons on the right corner. Depending on the type of view some buttons can be hidden.

A double click on the view title bar directly maximizes the view. If it is already maximized, it will retrieve its original size.

The default windows layout keeps every view inside a main window (which contains the main menu and the tool bar). However, the user can place one or more views in a floating window somewhere on the screen, independently of main window. The user can also drag a view outside the main window, and in this case a floating window containing the view will be automatically created.

It is also possible to drag and drop views inside the main window in order to conveniently arrange views.
This animation shows how to arrange views inside the main window.

Once the users are satisfied with the layout they can easily save their settings which will be restored the next time the application is started. In the main menu the option "View/Save current layout" saves the new layout, size and position of each view to automatically restore it later. It is always possible to retrieve default windows layouts presented in paragraph 2.1 with the option "View/Restore default layout".

Note that views are not closeable in the main window but can be closed in a floating window. If a view is closed, it is possible to retrieve it with the option "View/Show view" in the main menu.

2.3 Tabbed Panels

Default view layout provides three tabbed panels.
1) Left panel contains the project,the types and the individuals views
2) Bottom panel contains the error, the result and the property views
3) Center panel contains the task view and the editors


contextual menu on tabs
Tabs can be placed on either side of the center panel. The titled tabs can be rotated 90°, 180° and 270° thus making it possible to have vertical texts and icons. You can even reorder tabs using the mouse. All these features are provided by the contextual menu (right click on tab). These preferences can be saved with the same mechanism as windows layout: options "View/Save current layout" and "View/Restore default layout" in main menu. 

Buttons and a drop down list of all the tabs could simplify the selection of a tab in the case where there are too many tabs.


tab selection


2.4 Views descriptions

Each view has a unique instance and a particular behaviour in the application, in this chapter we will describe each type of view.

2.4.1 Project View


The project view gives access to the different objects of the project in a project tree.

project view

Actions on the project tree

Each element of the tree is associated with a context menu accessible by  right click. Please find below a table listing all the possible actions from these menus.
Item Action Description
Concept types/ Relations types/ Nesting types Edit types: tree view Show the type tree panel in concept type view, respectively in relation type view and nesting type view
Graphical editor Open an editor containing the graphical representation of  the type hierarchy
Modules New module Create a new module
Rules New set of rules Create a new set (folder) of rules
Rule set item New rule Create a new rule inside inside the currently selected rule set
New set of rules Create a new sibling set (folder) of rules
Rename set of rules Rename the set of rules
Delete set of rules Delete current rules set and all the rules contained in it
Rule item Edit rule Open an editor containing the graphical representation
New rule Create a new sibling rule
New set of rules Create a new set (folder) of rules. Note that there is only one level of folder. So the new folder is a child of 'Rules' item and not a sibling of the currently selected rule.
Rename Rename the currently selected rule
Delete rule Delete the currently selected rule
Queries New set of queries Create a new set (folder) of graph queries
Query set item New query Create a new query inside the currently selected set
New set of queries Create a new set (folder) of queries. Note that there is only one level of folder. So the new folder is a child of 'Queries' item and not a sibling of the currently selected set of fact.
Rename set of queries Rename the set (folder) of queries
Delete set of queries Delete the currently selected set of queries and all facts contained in it
Query graph item Edit Open an editor containing the graphical representation of the corresponding conceptual graph
Edit whole graph Open an editor containing the graphical representation of the corresponding conceptual graph. Force all vertices to be displayed and forbid reduced edition usage
New query Create a sibling new query graph 
New set of queries Create a new set (folder) of fact graphs. Note that there is only one level of folder. So the new folder is a child of 'Facts' item and not a sibling of the currently selected graph.
Rename Rename query
Delete Delete query
Facts New set of facts Create a new set (folder) of graph facts
Fact set item New fact Create a new fact inside the currently selected set
New set of facts Create a new set (folder) of facts. Note that there is only one level of folder. So the new folder is a child of 'Facts' item and not a sibling of the currently selected set of fact.
Rename set of facts Rename the set (folder) of facts
Delete set of facts Delete the currently selected set of facts and all facts contained in it
Fact graph item Edit Open an editor containing the graphical representation of the corresponding conceptual graph
Edit whole graph Open an editor containing the graphical representation of the corresponding conceptual graph. Force all vertices to be displayed and forbid reduced edition usage
New fact Create a sibling new fact graph 
New set of facts Create a new set (folder) of fact graphs. Note that there is only one level of folder. So the new folder is a child of 'Facts' item and not a sibling of the currently selected graph.
Rename Rename fact graph
Delete fact Delete fact graph


A double-click on the selected element triggers the following action by default: depending on the type of the element it either displays the view of the corresponding hierarchy or it opens the editor of the selected element.

Search for elements in the project tree

The tree project has a search tool. It is thus possible to find anything using its label as a search string. To do this, please make sure the project view is selected and then type the first letters on the keyboard: the first element of the tree beginning with those letters will be automatically selected. If the item is hidden, some elements of the tree will be expanded so that it becomes visible. In addition, if several elements correspond to the query, just use the arrow keys to scroll.

searching in project tree

The search tool supports generic characters such as '*' and '?'. For instance "*pro" will find all items containing the string "pro" such as "approach".

2.4.2 Type views


Each type hierarchy is displayed in a specialized view (concept type view, relation type view and nesting type view).   And it is associated with a context menu accessible by right click.


These views provide a representation in the tree-like structure. But hierarchies of concept types and relation types are not necessarily trees, therefore duplication might occur.

Tool Bar

The type views have a tool bar with actions listed below:
Action Description
expand all items of the tree
Open an editor containing the graphical representation of the type hierarchy
collapse all items of the tree
CoGui can create multilingual ontologies. This action helps to describe the labels and descriptions of each type in several languages.
activate/inhibit drag and drop inside the tree
This feature locks/unlocks the ability to update the tree directly by using drag and drop. Note that this lock concerns only the internal drag'n'drop actions, the tree types can always be dragged from the views to the editors.



To use drag'n'drop, note that it is possible to select multiple types in the tree. For this, keep the Ctrl key down. 

Lexicographic search in types trees


 

search a type by label
The type view benefits from a search tool. It is thus possible to find a type by its label. To do this, make sure that the type view is selected then type the first letters on the keyboard: the first element of the tree beginning with those letters will be automatically selected. If the item is hidden, some elements of the tree will be expanded so that it becomes visible. In addition, if several elements correspond to the query, just use the arrow keys to browse through the different found types or the different paths for the same found type.

The search tool supports generic characters such as '*' and '?'. For instance "*animal" will find all types containing the string "animal".
Note that relation type view items display the signature of each relation type but this signature is not taken into account by the search.

2.4.3 Error view

The Error view displays a list of messages. These messages are generated by the control of the project. This control is triggered either (1) manually by the "control" button or (2)automatically, at the opening of the project or (3)before carrying out certain tasks (querying for example).

the error view
There are three kinds of messages.
information message
warning message
error message
The table is sortable: click on the column header to choose the sorting criteria. A contextual menu is associated with each message. The option "Show it on graph" opens the editor associated with the concerned objects, and the objects are highlighted in red on the editor. Sometimes it is possible to automatically correct the error (or warning). When it can be done, the correction action is added to the contextual menu.

A double click on an error message opens the editor and hightlights the concerned objects, an easy way to correct errors on graphs.
 

2.4.4 Result view

This view contains the result of some assistant operations. When projections (potential answers for the query) are found, they are listed in the table:
Graphs produced by sum and normalization assistant are also displayed in the result view. Note that graphs provided by the assistants are not automatically added to the project, they must be dragged from the result view to the project view to be regsitered and saved.


the result view

A double click on a query anwer opens the corresponding editor and hightlights the projected vertices.

Graphs provided by assistants in the result view are draggable

2.4.5 Individual view

The Individual view lists all the individuals in a sortable table.
Click on the header column to sort.
Individuals could be dragged from the list to the editors.
Use contextual menu to edit to the corresponding individual graph. If the graph doesnt exist, it is automatically created.


3 Editors

Unlike views, editors are closeable, they can not be moved, they are always placed in the central panel. Editors provide a graphical way of modifying the objects of the model. With the exception of the module editor (a table), they use the graph representation. Most objects in the model are graphs and are edited in a graph-based editor. Of course, each edition has its own features, but most of the editing functions are common, and in this chapter we will describe them.

3.1 Vertex insertion


Each kind of graph editor has its own vertices factory:
* Concept type hierarchy allows insertion of concept types
* Relation type hierarchy allows insertion of relation types
* Nesting type hierarchy allows insertion of nesting types
* Other editors (fact graphs, rules, pattern graphs, prototypic graphs, individual graphs) allow insertion of concept and relation vertices

Vertices can be added to the graph by using either the menu "Graph/Insert vertex" option or local toolbar buttons. But the easiest way to place vertices at mouse position is to right-click and choose insert menu options in the contextual menu. It is also possible to drag a type (or several types) from type view trees to the editor or to drag an individual from individual view table to the editor.

3.2 Editing graphs

Selection

Just click on a vertex to select it. Selected vertices can easily be recognized by the handles decorating them. Hold down the left mouse button to select an area: all objects (vertices and edges) entirely contained in this area will be selected. It is useful to do multiple selection to move a large part of the graph with only one operation. Another reason to select several vertices is that they remain fixed during the Spring Layout. In the case of multiple selection the property view remains empty.

This animation shows how to select and move several objects

To add or remove an object from the selection set, keep Shift key pressed.

Copy, Paste


Selected vertices can be copied, cut and pasted in a graph editor or from an editor to another. Edition commands are accessible from main menu, toolbar, contextual menu and via keyboard shortcuts.

Pending edges are not allowed in selection set. Thus an edge can only be copied if its source and target vertices are also selected.

Drag'n'drop

Drag and drop is a very useful feature to speed up edition process. Several kind of drag'n'drop possibilities are proposed in Cogui:
  • Vertices can be dragged and dropped inside the graphical editors. 
  • Types can also be dragged from type tree to graph based editors. If the edited object is a conceptual graph or a rule, the copied object is created with the dragged type (i.e. dragging a concept type creates a concept of this type etc.)
  • Individuals can be dragged from the individual view to graphs and rules editors. A new concept is created on the graph with the dragged individual. The privileged type of the individual is used to type the new concept by default.
  • Types can be dragged and dropped inside the types tree views. To avoid some unexpected actions, drag and drop is disabled by default inside the type view. Activate it by pressing the bouton on the local toolbar of the type view. 
  • Graphs and rules can be drag and drop inside the project tree. To avoid some unexpected actions, drag and drop is disabled by default inside the type view. Activate it by pressing the bouton on the local toolbar.  
  • Graphs produced by the "sum and normalize assistant" are placed in the result view. These graphs can be dragged from the result view to the projet view
  • Types can be dragged from a type tree view to a module

Simple drag and drop in the projet view and the hierachy views will move the selected resource (type, graph, rule,...)  into the tree. But pressing Ctrl button before releasing the left mouse button will add a copy of the selected resource.  It is the simplest way to obtain clones of existing graphs (or existing rules).

Automatic arrangements


Three layouts are preavailable. The algorithms provided to arrange type hierarchies cannot support circuits. The Spring Layouter uses a force-based layout and can be used everywhere.
Arrange hierarchy horizontally
Arrange hierarchy vertically
Spring Layouter is ON
Spring Layouter is OFF

Because the two algorithms for arrangement of hierarchies do not work with circuits, so they generally can not be used with the graphs and rules.



3.3 Inline edition

Double click on a vertex edits its content (more precisely parameters that are most often used in current language). You can also click on the upper left corner. The popup dialog is more (concept) or less (concept type) sophisticated, it depends on the nature of the vertex.This is the easiest way to edit vertices.

edition of a concept type

edition of a relation type

edition of a concept

edition of a relation

Depending on the characters already entered, the fields of concepts and relations provide a list of compatible types and individuals. For conjunctive concept types please enter a new line for each type.

3.4 Edges

The nature of edges depends on the type of edited graph. However, this time, the nature of vertices is enough to guess the nature of the edges that will connect them, ensuring no ambiguity.
The different types of edges are:
edge between a concept and a relation (numbered)
coreference link between concepts representing the same object
oriented edge to express "kind of" relation between types.
correspondance link between a concept placed in the hypothesis of a rule and a concept placed in the conclusion of this rule.

To create a new edge, just place the mouse pointer on port placed at the center of the source vertex: the shape of the mouse pointer is automatically modified and replaced by a hand . Then press on the left button of the mouse and release it when you have reached the target vertex. Note that the order is only important for the "kind of" link between types, for the other edges, it makes no difference. It is always possible to change the source or target vertex after creation by using one of the two handle of a selected edge.

By default ports placed at the center of each vertex are visible, ports can be hidden and connection mode turned off with the button  port off icon on the graph editor toolbar.


3.5 Lexicographical search on graph

The graph editor has its own lexicographical search tool. Press Ctrl-F to popup a search toolbar at the bottom of the editor.



4 Keyboard shortcuts

Ctrl-C
Ctrl-Ins
Copy selected objects
Ctrl-V
Shift-Ins
Paste
Ctrl-X Cut
Ctrl-F Popup the search toolbar
Del Delete selected objects (when a vertex is deleted all edges connected to it are also deleted)
F2 Edit current vertex
F5 Refresh
F8 Control vocabulary
F9 Control base
Ctrl + mouse wheel Use mouse wheel with Control key to zoom in or zoom out inside the graphical editors