r11 - 16 Nov 2005 - 23:00:27 - JohnNiekraszYou are here:  Calo Web > MoKb

MOKB (Meeting Ontology Knowledge Base)

The MOKB is a single knowledge base with an OAA-enabled interface that allows agents to update and query shared knowledge in the meeting domain. It was used in Y2 by most meeting software agents and for answering questions during the test. The MOKB can be seen as composed of the following components:

  • A terminology (ontology) of multimodal discourse which serves as a knowledge representation (see MokbOntologyY2Specification)
  • A set of executable Java software agents which provide an interface to the KB (See below)
  • A Java-based API for the CALO ontology (we call this the Ontology Programming Interface (OPI)) which gives programmatic access to the KB (the OAA agents are built on top of this) (see OpiFramework? )
  • A database backend server on which the OPI framework sits (see MokbMySqlDatabase)

A graphical depiction of the MOKB architecture is also available.

Executable Software Agents

The MOKB is made up of several independently running software agents:

Agent Description
MOKB OAA Server Agents The server agents are OAA-enabled Java programs which provide an interface to the KB by answering requests for updating and querying. There are three (described below): update, query, and reasoning_query.
MOKB Administrator The administrator is a Java-based GUI which allows administrative actions to be taken on the database such as initialization. It also has an OAA interface so actions can be taken by OAA messages rather than by the GUI.
MOKB GUI Client The GUI client is a Java-based debugging and testing tool which allows human users to fashion queries and updates by hand, which are then sent to the server as OAA messages.
Database Server The database server is the persistent back-end which actually holds the knowledge.

Background

The purpose of the MOKB is to store knowledge about observations of the meeting and hypotheses generated by agents which are trying to understand the meeting. Thus, as a knowledge base, it provides an update and querying capability to software agents (through both an OAA interface and a Java API? ).

CALO Ontology

The knowledge stored in the MOKB is stated using terminology from the CALO ontology. Therefore, it is essential to understand the ontology in order to understand the assertions and query/update them properly. See the following resources:

Foundations in OWL/RDF/XML

The MOKB does not interface directly with the KM version of the CALO ontology. Instead it uses a transformed version of the ontology (same version that is used by IRIS). This knowledge representation language is the Web Ontology Language (OWL), which is related to the Resource Description Framework (RDF) language, and XML (Extensible Markup Language). We advise that users of MOKB make themselves confortable with these languages by reading the W3C? documentation:

Software Documentation

The Servers

The server agents are the interface between OAA client agents and the MOKB database. They will listen to OAA commands and then perform operations on the database. Therefore, the agents must be started using the same setup.pl file as your facilitator, and it must be given the correct database parameters to connect to the right database.

Currently, there are three servers, update. query, and reasoning_query. The reasoning_query server is very slow and should only be used if inference needs to be done on the contents of the database. Basic non-inferenced querying can be done using the query server. Each agent has its own OAA functor which it answers.

See MokbGrammar for details on what the OAA messages should look like and what the functors are.

The Administrator

The administrator allows one to perform basic administrative actions on the MOKB database. These commands may be run using the GUI version of the Administrator or by using OAA messages. Some of these actions take quite a long time. See the stdout for status updates.

Command Description OAA Message
Load This loads all the statements in an N-TRIPLE file (which should have been generated by a save command) into the database. Note that this is additive. If you want a fresh database, you should delete contents first and then load the file. You need to specify a the system path using URI syntax, e.g. file:///c:/path/to/file.n3. mokb_load('filename')
Save Writes the entire contents of the mokb model to file. You need to specify a fully-qualified local file system path. mokb_save('filename')
Delete Erases all the contents in the database (not including the ontology model). mokb_delete([])
View This prints a list of all the triples to stdout (both those in the mokb model, and those inherited from the ontology model). not available in OAA
Init This initializes the core ontology model. mokb_init([])

The GUI Client

The GUI client has two windows which allow you to manually update and query the MOKB. You need to create the exact OAA strings to be sent. The "query performed" and "update performed" messages are messages generated so that you know a query or update was sent to the server, and the result (for queries) should appear in the output window right after it. If nothing appears, the result was empty. To see what's in the database, you can run the MOKB dministrator and hit "show". This is exactly the same as executing the following query, which simply lists all the triples:

mokb_query('SELECT ?x, ?y, ?z WHERE (?x, ?y, ?z)')

The MySQL Database Back-end

See MokbMySqlDatabase for configuration and isntallation instructions.

Topic attachments
I Attachment Action Size Date Who Comment
pdfpdf mokb-architecture.pdf manage 24.2 K 19 Oct 2005 - 19:38 JohnNiekrasz  
 

Semlab Home      
This site is powered by the TWiki collaboration platformCopyright © by the contributing authors. All material on this collaboration platform is the property of the contributing authors.
Ideas, requests, problems regarding Semlab? Send feedback