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
The basic component of the ontology is the vocabulary, which consists of:
- 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);
- a hierarchy of relation types (also called relations), which represent the kinds of relationships between entities, and may have any number of arguments;
- 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.
A hierarchy can be any partial order and not necessarily a tree (i.e., multi-inheritance is allowed).
The other components of the ontology are:
- a set of rules of form if graph then graph, which represent general domain knowledge and allow to enrich facts with inferred information;
- a set of constraints also encoded as graphs, which represent forbidden or mandatory factual information;
- a set of individuals (or individual names) and associated graphs
which represent knowledge about these individuals.
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:
- a concept node can be labelled by a list of concept types
conjunctive type), that is to say multi-instantiation is allowed;
- two concept nodes can be related by a coreference link,
that these nodes represent the same entity;
- when a graph is nested in a concept node, this nesting is typed, which allows to describe an entity according to several dimensions or viewpoints.
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
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