Artificial Intelligence

The Pandora GUI is a Java Swing client UI. It provides a user interface on Pandora's senses and memory. The UI provides several tabs, each tabs providing interaction with a sense, memory, or various debug functions.



The menu bar provides some basic functions.

The "Pandora" menu provides several options:

  • "Bootstrap" - This will load Pandora's memory with some basic concepts. These include the basic primitives such as "classification", "thing" and "word". Also some basic language concepts and English words are loaded. A language state machine is also defined. The bootstrap will save to the long term memory.
  • "Import" - This allows loading of another Pandora database. This is very convenient for loading a language dictionary of words, or other information. There are several Pandora databases available on the SourceForge project's file downloads. To import a database just find the folder the database is stored in, and select any file in the database's root directory.

Status (Pandora) Pane[]

The status pane provides some basic debugging functions.

The "Dump Status" button dumps Pandora's current status to the log window. This includes the loaded senses, memory, thoughts, and their current status.

The "Dump Memory" button logs the short and long term memory. Currently this just prints the size of the memorys (number of vertices).

The "Clear" button just clears the log.

Eventually it is desired to have Pandora's logging to log to the status log, but this has not been implemented yet, so the log will go to System.out, or the console.

Context Pane[]

The context pane allows viewing and searching Pandora's memory.

"Filter" queries are wild card searches on the data value of vertices. This allows any word vertex or primitive to be searched for. To find vertices that do not have data, search for a word or primitive related to the vertex, and drill down to the desired vertex.

Either the short term or long term memory can be queried. The long term memory is basically the database. The short term memory is the currently active/loaded vertices, these can include uncommitted changes, but are normally committed. By default with no filter, all of the vertices are displayed, but only the first 1000 or so.

The tree pane allows traversing a vertex. Clicking on a vertex expands its relationships. Each relationship has a relationship "type" and "target". Either can be drilled into. Although displayed as a tree, the memory is a graph, so you can traverse cycles infinitely, one level at a time.

There are several context buttons that can be used to modify Pandora's memory at a low level directly. For the most part, they work best when browsing the long term memory. The "Delete" button will delete the selected vertex and remove all relationships to that vertex. If a relationship is selected, then only the relationship will be deleted.

The "Select" button will select the current vertex as the context sense's current selection. This can be used to associate basic words to the vertex. For example you could select the vertex for "book", then in the "text" tab select the "Associate" language state. Then any word that is typed (say novel) will be associated with the vertex. This is meant to simulate showing a baby or person of foreign language a object and saying the word to associate the meaning.

The "Instantiate" button will create a new instance of a classification vertex, a vertex representing a classification (such as thing) should first be selected. This allows the creation of a new vertex.

The "Relationship" and "Associate" buttons allow a relationship between two vertices to be defined. First use the "Select" button to select the source of the relationship, then use the "Relationship" button to select the type of relationship, then select the target of the relationship in the tree pane and use the "Associate" button to define the relationship.

These low level functions are normally not required, as Pandora should learn through her senses, but can be used to fix some bad data, or for low level learning.

Voice Pane[]

The voice pane allows her voice to be disabled, or voice recognition to be enabled.

IRC Pane[]

The IRC pane allows connecting Pandora to monitor any IRC chat room. When connecting to a room, her default language state will be listening. You can switch this is discussion, so she will answer any questions she knows the answer to. You can also switch to conversation, and she will answer any chat. This can be annoying though as she will default to mimicry if she does not understand, so can get her banned pretty quick.

Text Pane[]

The text pane allows you to chat with Pandora one on one. You can switch the language state to correction, to correct her if she gives a bad response.

HTTP Pane[]

The HTTP pane allows Pandora to browse any website. Pandora has built in HTTP support for Wiktionary and Freebase websites.

If you enter a Wiktionary word or category, she will parse the page and add the word, or all words in the category to her memory. Giving her word definitions improves her language ability.

If you enter a Freebase topic or class, she will query the topics and add the topic and all its relationships, or all topics for the class to her memory. Giving her knowledge on a topic allows her to answer questions on the topics.

If you give her a generic website, she will parse the headers from the site and relate them hierarchically.