Cogui in a nutshell


Cogui is a visual tool for building conceptual graph knowledge bases (KB). It allows to create a KB, to edit its structure and content, and to control it. The KB can be serialized in the XML format called COGXML.

Moreover, a basic query-answering  mechanism has been developed for educational purposes. It is meant to illustrate how a KB can be queried. For complex query-answering mechanisms and other reasoning tasks, Cogitant has to be used, see below.

How Cogui is related  to Cogitant

Cogitant is Cogui's companion tool. It is a conceptual graph reasoner, which accepts the COGXML format in input and output (among other formats).  

Cogui includes Cogitant and uses its reasoning capabilities. Moreover, wizards based on Cogitant have been planned for educational purposes. Currently, there is one wizard, called "query facts", which allows to query a selected set of facts (with each fact being considered separately or all facts being merged into a single graph), while using general knowledge represented by the ontology (including rules). This wizard requires the Windows system.

Be aware that you cannot use the full reasoning capabilities of Cogitant through Cogui. For more complex uses, Cogitant has to be installed separately from Cogui.

What's in a knowledge base

A KB is composed of an ontology and a set of conceptual graphs representing assertions, called facts. A conceptual graph can be simple or nested.
The basic component of the ontology is the vocabulary, which consists of:
  1. a hierarchy of concept types (also called concepts), which represent the kinds of entities in the application domain; it is possible to express that some types are disjoint (we say that their conjunction is banned);
  2. a hierarchy of relation types (also called relations), which represent the kinds of relationships between entities, and may have any number of arguments;
  3. possibly, a hierarchy of nesting types, which are used to type subgraphs in nested conceptual graphs, and a set of modules, which are associated with nesting types; a module defines the subset of the global vocabulary relevant to a given nesting type.

  4. Note that each element of vocabulary can be translated into several languages.
    A hierarchy can be any partial order, and not necessarily a tree (that is to say, multi-inheritance is allowed).
    More about the vocabulary in the user guide

    Other components of the ontology are:

  5. a set of individuals (or individual names) and graphs associated with individuals, which represent knowledge about these individuals;
  6. a set of  conceptual graph rules, of form "if graph then graph", which represent general knowledge;

More about individuals in the user guide
More about rules in the user guide

In our conceptual graph model, there is also a kind of knowledge called constraints, which is not implemented yet in Cogui (but is available in Cogitant).


Furthermore, Cogui has been used in the context of building semantic annotations of documents. To accelerate the annotation process, two kinds of graphs have been added to the ontology: prototypical graphs and pattern graphs. These graphs are not used for reasoning, there are simply guides for the annotation task.

More about protypical and pattern graphs in the user guide

The set of facts may contain simple or nested conceptual graphs. A simple conceptual graph is composed of two kinds of nodes, concept nodes and relation nodes. A concept node represents an entity and a relation node represents a relationship between entities (which are its neighbors in the graph). The neighbors of a relation node are totally ordered and this ordering is indicated by numbers on edges incident to the relation node. In a nested conceptual graph, a concept node can be further described by one or several graphs (which are themselves nested conceptual graphs).

More about simple and nested graphs in the user guide
Some properties to be noted: