## Test Report for stories.txt

- General results

- Tests details

  - shut down

  - start a plan

  - reschedule a plan

  - inspect memory [FAILED]

  - reload AIL rules

  - permissions on actions

  - log plans

  - dynamic help generation

  - generate documentation as docbook

  - add a user to jabber roster

  - determine nature of contacts

  - multiple agents in one forum

  - setup a conference

  - leave a conference room

  - observe conversation and take notes

  - learn what notes to take

  - learn when to ask for feedback

  - agent can explain why it logged/learned/etc.

  - predefined answers

  - fill some data into a xml file, governed by a template

  - reference a subject present in KB

  - predicts presence based on previous observations

  - Agent asks another agent a question

  - tell your master that

  - Adding and querying

  - XML RDF

  - XML FOAF (Friend-Of-A-Friend)

  - Metalog

  - agent queries imdb, allocine and xmltv

  - update personal information manager

  - use mozilla/sunbird for contacts

  - Notify daily activity

  - Reset activity report

  - Print activity report

### General results

0 tests succeed, 1 tests failed (100% failure).

### Tests details

#### shut down

This test was not run.

#### start a plan

One can ask one's assistant to start an arbitrary plan. This is a low-level action intended to help an advanced user make its assistant do things or debug.

This test was not run.

#### reschedule a plan

A running plan can be rescheduled to a later time. This is a way to delay the execution of plans.

This test was not run.

#### inspect memory

[FAILED]

One can use an arbitrary python expression to inspect narval's memory.

Context: chat, user=jean, bot=narvabot

##### results

SendMessage: jean / inspect elmt.jabberid == 'jean' | SendMessage: jean / inspect elmt.jabberid == 'jean'
ReceiveMessage: narvabot / bla bla bla | ReceiveMessage: narvabot / * MasterInformationsElement: 164

3 actions done in 0 sec

#### reload AIL rules

One can modify the pseudo-natural language processing rules of an agent while it is running. These rules are defined in the file pointed to by URL element named "uri:memory:rules". To test the changes, just tell the agent to reload its "ail brain".

This test was not run.

#### permissions on actions

This test was not run.

#### log plans

This test was not run.

#### dynamic help generation

generate chatbot help for available commands by introspecting active plan. look at existing active plan (and at chatbot.ail file ?!) and generate a help message

This test was not run.

#### generate documentation as docbook

The recipe narval-generate-docbook will look at all the available recipes and generate a docbook/xml file that can be turned into a PDF file.

This test was not run.

#### add a user to jabber roster

One can ask his assistant to add a known jabber id to its personal roster. The agent will then send a jabber request message to the user who will have to accept the subcription for the agent to be able to actually receive the user's presence messages.

This test was not run.

#### determine nature of contacts

This test was not run.

#### multiple agents in one forum

This test was not run.

#### setup a conference

Jean asks his agent to set up a jabber meeting with a list of participants. Narval opens a forum and invites participants.

This test was not run.

#### leave a conference room

This test was not run.

#### observe conversation and take notes

We are chatting with a Narval agent and we want it to remember some of what we say. It could be for example that it records every sentence that contains the word 'action'.

This test was not run.

#### learn what notes to take

This test was not run.

#### learn when to ask for feedback

This test was not run.

#### agent can explain why it logged/learned/etc.

This test was not run.

#### predefined answers

automatically transfert some predefined answers to some input sentences. Let us begin with the simplest example of all. We have an agent named narvabot and a user named Jean.

This test was not run.

#### fill some data into a xml file, governed by a template

This test was not run.

#### reference a subject present in KB

This test was not run.

#### predicts presence based on previous observations

This test was not run.

#### Agent asks another agent a question

This test was not run.

#### tell your master that

This test was not run.

#### Adding and querying

add a statement ~~~~~~~~~~~~~~~

One can add facts to the knowledge base of his agent.

This test was not run.

#### XML RDF

RDF import ~~~~~~~~~~ one can import some XML-RDF to the knowledge base

Knowledge exchanged to Narvals as a RDF triple in the form (the subject, the object, the predicate) can be placed into Narvals KB

acceptance test: the RDF statement for "tony eats pizza." can be captured and exported as rdf triples and end up in another Narvals KB.

:use-recipe: active-commands.kb-rdf-import

RDF export ~~~~~~~~~~

one can export the knowledge base's content as XML-RDF

Knowledge captured in Narvals KB as a RDF triple in the form (the subject, the object, the predicate)

:Example:

the english statement "jean eats pizza." can be captured and exported to rdf triples. (sentence "todays meeting was created yesterday" is not parsed in a generic way yet).

This test was not run.

#### XML FOAF (Friend-Of-A-Friend)

This test was not run.

#### Metalog

Metalog_ is a semantic web research tool that includes Pseudo Natural Language pre-processing and insertion/querying of RDF triples. Metalog was wrapped as a Narval component and can be used in place of the other pseudo natural language and knowledge manipulation tools.

.. _Metalog: http://www.w3.org/RDF/Metalog/

This test was not run.

#### agent queries imdb, allocine and xmltv

Once can ask its agent to query on-line databases about movies, theaters and TV shows.

XMLTV is a tool to query TV programs. IMDB is the Internet Movide Database and Allocine is a french web site that knows everything about movies and theaters.

This test was not run.

#### update personal information manager

Narval listens to a jabber conversation and adds events to the calender of the kontact pim framework.

This test was not run.

#### use mozilla/sunbird for contacts

same as above, but using the mozilla suite. namely version 1.7.2 and sunbird.

acceptance test: see above story 11. start sunbird. check there is no meeting. stop sunbird. type "meeting 2004-09-24 14:00 topic" in jabber. will answer "this is a date". start sunbird and check the meeting is there.

This test was not run.

#### Notify daily activity

This command is used to enter a daily ratio for an activity. An email is sent when the sum of ratios of all activities reaches 1. Notification can use positive or negative ratio, the agent will increment or decrement the existing value (if existing). If the total ratio goes under 0, the activity is deleted.

:Syntax:

([+-]?\d/\d)\s+(.+)$ ([+-]?\d([.,]\d\d?)?|[+-]?[.,]\d\d?)\s+(.+)$

:Example:

1/2 narval assigns half of the working load of the day on the narval project +0.2 redaction assign 20% of the working load to an activity called redaction -0.1 narval decrement load on narval by 10% .4 meeting Fill daily load with 40% of the time spent in a reunion

Watch out

An email is sent as soon as the sum of all activities comes up to 1. All the same, activities may still be notified and will generate other notification mails as long as the sum remains over 1 Restriction

Restrictions weight on the ratio exclusively, meaning the user is free to use any name for his activity.

* ratio must be parseable into a float (or an integer) * -1 <= ratio <= 1

This test was not run.

#### Reset activity report

Reset the current report of activity

:Syntax:

RESET CURRENT ACTIVITY( REPORT)? (DELETE)|(FLUSH)( ALL)? ACTIVITIES FLUSH

:Example:

flush reset current activity report delete all activities

Any of the above will delete all daily activities entered so far.

Watch out

The effect is this command is irreversible. All activities entered for this day will be removed

This test was not run.

#### Print activity report

Print the current report of activity

:Syntax:

WHAT ARE MY ACTIVITIES( SO FAR)?\? PRINT MY ACTIVITY REPORT ACTIVITIES

:Example:

activities print my activity report what are my activities

Any of the above will print the current report of activity for the current day.

This test was not run.