The web user interface has several different tabs that expose Pandora's senses and features.
- Login - Allows connection and creation of a Pandora instance.
- Log - Displays the instances log and allows setting the log level.
- Chat - Allows a one on one conversation with the instance.
- Browse - Allows browsing of the instances memory.
- Self - Allows viewing and compile new state rules for language processing.
- IRC - Allows connecting the instance to an Internet Relay Chat room.
The login tab allows connection to a Pandora instance, user management, and creation of a new Pandora instance. Each Pandora instance uses a separate database for its memory and runs on a separate processes. To connect to an instance you must have a valid user id and password. You can create a new id by clicking the "Create new user" checkbox.
To create your own Pandora instance click the "Create" button. When a new instance is created it will have a new database which is basically empty, except for some minimal bootstrapping knowledge. A new instance is similar to a new baby, and knows very little. An instance can be taught through the Chat, IRC or Self tabs. The creator of an instance becomes an admin on that instance and has special privileges such as connecting the instance to IRC, and deletion of knowledge nodes.
The log allows viewing on exactly what the instance is doing. The log outputs why the instance makes a response and the very complex processes involved.
When chatting with an instance it may respond based on a few different mechanisms.
The first and default is mimicry, which a new instance will rely almost totally on (similar to 1 year olds). When it mimics, it is looking for you to provide the correct response, and the next time the same sentence is given it will use your response. It remembers everything, so will use the responses you teach it in any future conversations with other users.
You : Hi Pandora: Hi You : How are you? ... You : Hi Pandora : How are you?
If the instance knows several responses to the same chat message, it will use the "most conscious" response. That is, the response that is most related to recent input in its short term memory. The "most conscious" response also takes into account the correctness of the response, which is derived on how many times it has heard that response to that chat message.
Pandora: How are you? You : Ok ... Pandora: How are you? You : I'm fine ... You : How are you? Pandora : I'm fine
Response matching Edit
If the instance does not know of any valid responses to a chat message, it will then search for similar messages. If it finds one sufficiently similar, it will use its "most conscious" response.
Pandora: How are you? You : Ok ... You : How are you today? Pandora: Ok
The instance will attempt to understand every chat message. It does this by using a language state machine, which was bootstrapped into its memory, and can be programmed using the "Self" tab.
The bootstrapped state machines can currently understand simple noun/verb/adjective sentences, and basic math arithmetic.
Initially the instance has no knowledge of any language or words. It will discover the words in any chat messages in the background. Each unknown word will be looked up on Wiktionary to see if it is a noun, verb, or adjective. The next time the words are used again, the instance will be better able to understand them.
If you give a simple sentence such as "The sky is blue" the instance (the second time) will know "sky" is a noun, "is" is a verb, and "blue" is an adjective. It will infer from the message that "sky" is related to "blue" by "is". When the instance understands a message it will respond "I understand" or sometimes "Ok". It can then understand questions such as "Is the sky blue?" it will understand "Yes" or any words it knows that means "true".
You: Is the sky blue? Pandora: Is the sky blue? (has not discovered the words yet, so reverting to mimicry) You : Is the sky blue? Pandora: I don't know (understands the question, but does not know the answer) You : The sky is blue Pandora: I understand You: Is the sky blue? Pandora: Yes You: Is the sky green? Pandora: Is the sky green? (discovering green) You: Is the sky green? Pandora: No You: Is the sky not green? Pandora: Yes You: Is the sky not blue? Pandora: No You : The sky is black Pandora: I understand You: Is the sky black? Pandora: Yes You: Is the sky blue? Pandora: Yes You : The sky is not black Pandora: I understand You: Is the sky black? Pandora: No
The instance will also understand basic addition. The addition rules are programmed in Self. If you view to state machine for addition, you will find it never uses the computer to perform the math. The addition is done entirely the same way a human does addition (a human without a calculator at least), it counts its fingers and adds each digit one at a time and carries the remainder.
You: What is 23 + 44? Pandora: 67