================================================================================

Dialogs TODO list for release 0.3
=================================

====
Bugs
====


* method 'check(Set)' on server always returns 'True'
    Useful for questionHandler for processing Yes-No question
* Non-deterministic solution in discrimation test of dialog_test.py
    test_discriminate_1, test_discriminate_8 FAILS in the first execution. OK in the execution

* Issue with "location" added when verbalizing "where" questions:
    - jido, where is the box?
    - The location? What do you mean? Give me new information about the object. 
-> "The location" should be "the box"

* "I want you to go to Toto" works and generate the expected set of statements,
but "Go to Toto" doesn't produce anything.

* At the second time, inputting "I want you to go to Toto" would produce a list 
of statements with statements from both the first and the second desire.
========
Features
========

[DONE v0.2.99] Special case for "knows", "sees", "hears" in statement builder -> ~passive actions

[DONE v.0.6.9] uses discrimination.find_unambiguous_desc(self, objectID) to build 
unambiguous descriptions of concepts when answering questions.

[TODO:3] Class grounding case of adjectives
    -> Apples are yellow fruits
    -> [Apple rdfs:subClassOf Yellow_Fruit, 
        {Yellow_Fruit rdfs:subClassOf Fruit}]


[TODO:3] processing the pronouns 'its'
-> "the bottle is in its box"

[DONE v0.2.99] Create an appropriate object property to the preposition 'for'
-> " This box is for white wine" 
-> isRelatedTo

[DONE v0.3]{Complete By End-August} subsentence
-> "learn that..."

[PARTIALLY DONE]{Complete By End-August} second verb
-> "I want you to do something" (for goal verbs)

[TODO:3-4] There is

[TODO:2] Quantifier
    with action verbs ... E.g:
        Danny drives a car
        
        the red apple grows on the blue tree ---> [* rdf:type Grow, 
                                                   * performedBy red_apple,
                                                   * involves blue_tree]
        
        
        Apples grow on tree --> [id_grow rdf:type Grow,
                                id_grow performedBy owl:AllValuesOf(Apple),
                                id_grow isOn owl:someOf(Tree)]
        
        or   -----------------> [id_grow rdf:type Grow,
                                id_grow performedBy id_apple,
                                id_grow isOn id_tree, ]
                                + id_tree rdf:type Tree,
                                + id_apple rdf:type Apple]
                                



[TODO] What do we do when a statement brings an inconsistency?

[TODO:4] What to do with this example?
    Put the green banana on the red table...
    [EVENT rdf:type Put,
    EVENT actsOnObject green_banana,
    {EVENT receivedBy red_table}
    or
    {green_banana receivedBy red_table}]
    
    
    
[PARTIALLY DONE] Numerals (parsing ok)

Support UTF8

"Toto and tata play" -> 2 differents instance of action
"Toto and tata play together" -> only 1 instance of action
=========
Interface
=========

[TODO:4] simple GUI
[TODO:?] Add the possibility to pause the processing to explain step by step what happen
  see 

=============
DOCUMENTATION
=============

[DONE v0.3] Quantifiers
[TODO] Anaphora (previous sentences memory + selection of nominal group)
[DONE v0.3] Processing of human answers (like "No, no, no, I mean the blue bottle")
[TODO] Explain how Dialog deals (or not) with "context"
-> where context is used (-> connection with ontology), where it is missing (eg "I'm going to Toulouse" can be right now or in 2 months. If we know we are talking about the Patrick's holidays next week, it would be clear)
[ONGOING] list which questions are handled by question handler
[ONGOING] Handling of 'OF' held in the field noun_cmpl of nominal groups
    -> For agents :  belongsTo  " The car of Mahdi"
    -> For non-Agents : isRelatedTo  " The bottle of wine"
[PARTIALLY DONE](On Parser OK) specify the process of 'or' as a limit of the input of Dialog module



====================================================================================================

Release 0.4
===========

[DONE v0.3]* Creation of concepts: for instance "Toto is a human". 
In 0.3, Dialog tries to resolve Toto. In cases where it doesn't find any 
matching concepts, Dialog should offer to create a new concept, with "Toto" as
label.
-> use "Learn that or Learn it after a discrimination loop"

[DONE v0.3]* Add a special "Forget that" to leave the resolution loop where Dialog keeps on
asking for more details.


Release 1.0
===========

[TODO] input/output module for supervision
[TODO]{Start by mid-August} speech synthesis -> stdout | festival
[TODO]{Start by mid-August} speech recognition -> sphinx?? in simple cases?? pfff... sphinx version 4
    see Anthony for installation

Release 18.0
============

[STARTED] Nice handling of timeline/history -> has to be done in oro-server?
