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. Imports and exports from and to RDFS are also provided.

Wizards allow to analyze and check facts with respect to some constraints, as well as to query them while taking into account inferences enabled by the ontology. A current limitation of the tool is that the KB is entirely loaded in central memory.

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. A hierarchy can be any partial order and not necessarily a tree (i.e., multi-inheritance is allowed).
More about the vocabulary in the user guide

The other components of the ontology are:
More about rules in the user guide
More about constraints in the user guide
More about individuals in the user guide

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 (or by arrows if there is no ambiguity). 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 notable properties:

How Cogui is related to Cogitant

Cogitant is a C++ API which provides methods for managing and dealing with conceptual graphs. It accepts the COGXML format in input and output (among other formats).

Cogui includes Cogitant. In versions prior to 1.4, all wizards used reasoning capabilities of Cogitant. From version 1.4. these reasoning capabilities have been implemented in Cogui itself, and the user has the choice between using Cogitant or Cogui internal engine.
Note that Cogitant provides further functionnalities and can be installed separately from Cogui for the developement of C++ conceptual graph based applications.

More about Cogitant