Cogui - Facts edition  v2.0

Contents

1 Simple graphs (SGs)
1.1 Overview
1.2 Create and edit facts
1.3 Concept insertion
1.4 Relation insertion
1.5 Coreference
1.6 Reduced edition
2 Graphs with nestings
2.1 Overview
2.2 Nesting a graph
2.3 Nested graph edition


1 Simple graphs (SGs)

1.1 Overview

A SG is labeled bipartite graph. One class of nodes (the concept nodes) is used to represent entities of the discourse universe. A concept node is labeled by a concept type (e.g. Painter, or a conjunctive type such as Painter,Catalan) and, possibly, by an individual (e.g. Picasso). A concept node which is labeled by a concept type without an individual is called a generic concept node. Such a node represents an unidentified element of the type. For instance, contrarily to a node labeled [Painter : Picasso] representing the painter Picasso, a concept node labeled [Painter] represents “a” painter.The second class of nodes represents the relationships between the entities (represented by the concept nodes). For instance, if Guernica is an individual representing the well-known painting realized by Picasso then a relation node labeled (hasPainted) could relate the concept node [Painter : Picasso] to the concept node [Painting : Guernica]. The edge between (hasPainted) and [Painter : Picasso] is labeled by 1, and the edge between (hasPainted) and [Painting : Guernica] is labeled by 2. This edge labeling is used to represent different roles (e.g. to distinguish the subject from the complement). It is also possible to say that two different concept nodes represent the same entity by linking them by a coreference link.

Picture below is described by a simple graph:


conceptual graph description of the picture

1.2 Create and edit facts


New facts and sets of facts can be created by the popup menus of "Facts" item and sub-items from project tree. After creating and naming a new graph, edit by selecting "Edit" menu, or by clicking twice on tree item. An empty graph editor is opened. Use same "Edit option" to re-open existing facts.

When the fact graph contains too many vertices, it couldn't be possible to display the entire graph. In this case the "Edit" menu item opens the fact graph "partially" (See 1.6 about partial edition). Choose "Edit whole graph" to force the edition of all graph.


1.3 Concept insertion


New concepts are inserted by using "Graph/insert vertex/Insert concept" from the main menu or the contextual popup menu or the local toolbar option . Concept types dragged from the concept types tree cause the creation of a  new generic concept of these type. Concepts associated with individuals can be dragged from individual view. The newly created concepts have the privileged type of the individual.


Double left click triggers a popup dialog to define type and individual associated with selected concept. when the user begins to enter text, a list of compatible terms are listed for both concept types and individuals..

Examples:
produce ->

produce -> 
produce ->

When an individual is not already defined, it is automatically created in knowledge base. For type definition, two modes are available: strict mode doesn't accept undefined concept type, free mode accept references to type which is not already defined in vocabulary. Check "free edition mode" in preferences/General if needed. Modes also act on relation types.

Free edition can be useful during the building of the ontology, it avoids to go back to vocabulary editor. But, of course, it must be done, error messages can help:

1.4 Relation insertion

New relations are inserted by using "Graph/insert vertex/Insert relation" from main menu or contextual popup menu or local toolbar option . Relation types dragged from the relation types tree causes the creation of a  new relation.
Double left click triggers a popup dialog to define type  associated with selected relation. when user begin to enter text, a list of relation types is listed.


 The insertion of the relationship is not sufficient, we must also link the relation to adjacent concepts. Chapter 1.3.1.4 explains how to create an edge between two vertices.

Because the relation signature is ordered, edges between concepts and relation are associated with a number from 1 to relation arity. Edge order can be defined with popup menu on the selected edge.


You can also use double-click on selected edge, edge label successively takes all compatible values  between the relation signature and the type of concept.
Of course, copy/paste mechanism can also be used to duplicate pieces of graphs inside the graph or from one to another. Pending edges cannot be copied. Otherwise this error message appears when you try to copy:


See chapter 1.3.1.2 about objects selection

1.5 Coreference

It is also possible to say that two different concept nodes represent the same entity by linking them by a coreference link.
 

coref links means that painter and inventor are the same person

resulting normalized graph in knowledge base


Painter and Inventor are implicitly coreferent

resulting normalized graph

Current version of COGXML doesn't store coref links explicitly but it stores the coreferent sets of concepts. A closure of all possible coreferent links is builded when reading a COGXML representation of the graph. Example below shows a new coreference link has been added after restoring operation.

restored graph

1.6 Reduced edition

 If a graph is too big it could be very tedious (or impossible) to edit it entirely. In this case, CoGui provide a reduced edition mode. Just a part of the graph is displayed. Visible relations are always completed, but displayed concept can have hidden neighbors. Example below shows concepts with hidden neighbors, the number of hidden neighbors is displayed on the upper right corner of the concept.


how to show the neighbors of [Winery:Marietta]

In the fact graph paragraph of general section of preferences, the user can defined limits to choose partial edition rather than whole graph edition:

limits for partial edition in preferences dialog

If a big graph is directly edited from the project tree, some vertices are chosen by default. The user generally prefers to display and update a precise piece of graph. To correct errors inside the graph, choose the edit option on the message in the error view and the graph will be automatically opened with the vertices that generated the error. When another error is selected, the previous edition is replaced by the edition of the new concerned vertices.
To edit parts of the graph without any error, we must query the graph (See chapter 5) and browse through projections in the result view.

2 Graphs with nestings

2.1 Overview
Nested graphs can be inserted inside a concept, these subgraphs are typed (see chap.2.6 about nested types).

Why use nested graphs rather than a "flat" graph to represent informations ?
Consider, for instance, a cottage. It is possible to distinguish internal from external pieces of information about that cottage. The owner's name can be considered as an external piece of information concerning the cottage, whereas the number of rooms is internal information.
In information retrieval the ISBN number of a book can be considered as an external piece of information about that book, whereas the subject of the book is an internal piece of information. In these examples, the internal information can be also called (partial) description of the cottage or of the book).
Zooming is a related notion. Let us consider again the cottage example. Having the land registry position of the cottage, one may want to zoom into the cottage, e.g. one may want  to have the cottage blue print, which can be considered as an internal information about the cottage.  Or, at a deeper level, having the cottage blue print, one may want to know the furniture distribution in a specific room. In the book example, zooming can consist of obtaining the content of a chapter from a reference to this chapter (e.g. the number of this chapter).
Nested graphs can also be related to the notion of context. For instance, in the previous cottage example, the context of the furniture distribution (in a room) is precisely the room having this furniture distribution; the context of the content of a book chapter is precisely this chapter, and so on. The notion of context is close to the two previous notions of external versus internal piece of information, and to zooming. Indeed, zooming takes its full meaning when one knows from where the zooming is done, and an internal piece of information takes its full meaning when the piece of information whose it is an internal piece of information is known. In the forthcoming model only very simple contexts can be represented. Indeed, a context will be represented by a path of nested concept nodes. Thus, having in mind partial description as an intuitive meaning of what we aim to represent is more convenient than context. A partial description can be included into another partial description, thus a recursive model is proposed, and the entities are represented by a hierarchical structure. Similarly to the classical notion of ``boxes within boxes'' used in document processing, a nested graph consists of ``graphs within graphs''.

Example below say at first level that "Miss Michel has lost her cat, she shows a painting".
second level include a nested graph of the type "description" to describe the painting and finally, the coref link expresses the fact that the cat appearing on the painting is, indeed, the lost cat.

2.2 Nesting a graph

To insert a new nested graph inside a concept, select the concept and right click to obtain to contextual menu:


nested graph is added to the concept with default nesting type "nesting"

click on the left upper corner of the nested box to change the type directly

or use contextual menu to change type

2.3 Nested graph edition
Nested graphs can be edited directly at the level of graph containing the parent concept (called the root graph), or edited alone as a classical graph.
Use contextual menu to edit the nested graph alone in the editor and return to the root graph:

Choose "Edit nested graph" option to edit the nested graph alone.
After editing the nested graph, choose this menu option to retreive to root graph edition

Sometimes it may be useful to view the graph root and the nested graphs at the same level. The + sign on the left of the nested graph expands the box to make the nested graph visible. It is useful to see the graphs but it becomes more complex to edit the content of the nested graph. However, it is very convenient to insert a pattern graph or drag selected objects to the nested graph.