GoDiS todo list


This is a list of things to do with GoDiS, both generally and for specific versions (basic, grounding, iod, aod) and applications. It is divided into the following sections:

Explanation of symbols

*,-
todo
x
done to some extent
X
completely done
?
should we do it?
#
abandoned
[...]
new item information (item ID), e.g. author, date and item number
{...}
done item information, e.g. author and date
(...)
comment on item, e.g. author and date
nd
no date specified
na
no author specified

Adding new  items

When adding items, choose one of the sections and write a short description plus a item ID enclosed in square brackets. Mark it with a * . The item id should consist of your initials and the date (in YYMMDD format) and a digit. The digit distinguishes between items submitted by the same person on the same day. E.g. if your name is John Smith and it is October 3rd 2003, the item ID will be [JS 031003-1] for your first submitted item of the day and [JS 031003-2] for your second. This should all be in bold face.

If needed, provide a more detailed non-bold face description of the item below the short description. This can be indented by enclosing it in a blockquote tag. Also, put sub-items in the detailed description (see e.g. item [SL 030521-1]).

Managing  items

When commenting on items, specify your initials and the date enclosed by ordinary brackets ( see e.g. item [DH 030730-1] ). Put the comment at the end.

When an item is completely done and added to the CVS tree, mark it with X and put it at the end of the respective list. Also mark it with
your intials and the date in curly brackets together with an optional comment (see e.g. item [DH 030605-1]) .

When an item is abandoned, put it at the end of the respective list and mark it with a #.

Theory/DME

* Use icm:acc*neg:action(A) instead of request(up) - [DH 030905-1]
Can user dialogue move 'request(up) be seen as 'icm:acc*neg:action(A)' where A is the current action? When system performs icm:acc*neg:action(A) it has the meaning "I can not perform A" (at least in VCR domain). In this case it would mean "I do not want A to be performed". Or does it not qualify as ICM? Anyway, it would be nice to be able to reject issues and actions explicitly, by saing e.g. "do not add a program"/"stop adding a program" etc.
* Limitations for information sharing - [SL/DH 030818-1]

(example domain: TA)
1. if the database returns more than one answer (e.g. "paris" and "london" as answers to X^dest-city(X), the first one (dest-city(paris)) will be taken as the answer to the destination issue in the visa-plan;
need to be able to represent disjunction + decide what "dest-city" means in this case - desired or potential destination 
2. using forget_all in plans will make it impossible to do information sharing, since all info is wiped out after doing the second simultaneous dialogue is a solution to do forget_all only when returning to top?

* GoDiS can not handle polysemy - [DH 030730-1]
Interpretation module always translates input to the first no of matching moves and system can not backtrack. This causes a big problem when scaling up applications and implementing large lexica. Consider e.g. TV programs where 'Nyheter' can be a title as well as a category. Two surface forms may also (possibly) map to objects of the same sort but with different semantic meaning. No idea of how to solve this
This should be solved by enabling clarification alternative-questions as feedback to polysemous input. This would be interrogative feedback on the semantic understanding level  (formally, icm:sem*int:Q}. This will probably require that each polysemous input phrase corresponds to two (or more, depending on the number of meanings) non-polysemous output forms to be used when generating the clarification question.  (SL 030731)

Need to solve problem with interpretation module first (DH 031001)

* remove ACTIONS field in AOD?  - [SL 030731-1 ]

ISSUES could be used for both questions and actions. This corresponds to ordinary use of "issue", e.g. "the issue of adding a program to the vcr". Perhaps define semantic class "issue" which includes both actions and questions.

* combining user-initiative-db-search with current GoDiS dialogue plans - [SL 030702-1]

- 1st strategy is the one used in many NL database search systems; "one-shot" dialogues with some use of context for narrowing the search; presupposes that user takes intiative and adds further restrictions when needed; several results can be returned (so do this in connection with ND dialogue?)
  - 2nd strategy relies on dialogue plans to drive dialogue when user does not take intitiative

* y/n presupposing wh - [SL 030521-1] 

- "Do you want something to drink?" is a y/n question (?Ex.drink(X)) but "presupposes" a wh-question "what do you want to drink"; both should be put on QUD to enable interpretation of the answer "A soda." to the y/n-question. Answering "no" will also answer the wh-question ("nothing"). Need semantics to handle this.
  - "(You want to drink) A soda." as feedback adds a y/n question to QUD, but also the wh-question "What do you want to drink"; this enables corrections not preceded by "no", e.g. "juice!"

* "bind(Q)" action - [SL 030520-1]

x opposite of protect; makes Q available for accommodation but will not result in asking Q
- "real" questions have priority when interpreting short answers? if not, include "bind" in selection of clarification q

* User ask moves irrelevant answers to action-question ("What can I do for you?") - [SL 030727-1]

Perhaps this is bit odd: ask-moves are seen as irrelevant followups to action-question ("What can I do for you?"). Note: if this is changed, make sure that issues actually resolve the action-question.

* get basic, grounding, IOD and AOD running with OAA and Nuance - [SL nd-1]

* implement Negotiative Dialogue as specified in Larsson (2002) thesis - [SL nd-2]

* improved & simplified grounding model (grounding, IOD, AOD) - [SL nd-3]

- one field for each action level, moves are queued through and gradually incremented with new information (move, semantics etc)
- increased coverage of feedback
  * alt-q about different percieved strings

* look at score for individual words instead of score of the whole utterance when doing grounding - [DH 030606-1]

* system confirmation question for the whole latest user utterance instead of one question per user answer move - [DH 030606-2]

Assumes grounding model as in thesis. Also need to extend semantics so that conjuntive questions can be used ("do you mean A and B and C?").

* examine appropriate forms of feedback, e.g. "let's see" etc. - [SL nd-4]

* libraries of rules to be reused by grounding, IOD, AOD - [SL nd-5]

- accommodation
-  grounding
-  ...
-  use macros to enable different infostates?
  load libraries non-monotonically, so that one library's definition of a rule may override that of an earler library.

- load libraries non-monotonically, so that one library's definition of a rule may override that of an earler library. This requires that there are never more than one rule with the same name. (SL 030731)

* asynchronous feedback - [SL nd-6]

  - continue where Alex left it
  - use Nuance?

* semantics - [SL nd-7]
  - individuals as lambda-abstracts, apply answer to question ( X^X@paris )
see also [SL 030915-1] (DH 031002)
* terminology - [SL nd-8]
- speaker -> dp?
- relevant -> about
- shared divided into dgb and other things?

? actions (as part of plans) and actions (as performed by devices, with a corresponding plan) can be easily confused. terminology check? (DH030717)
* improve move selection - [SL nd-9]
- if answer can be found immediately, no need to confirm ("ok" can be skipped)

* improve generation - [SL nd-10]
- need different output forms for altq's depending on what it's about

* limitation: can't handle several instances of same task-type simultaneously - [SL nd-11]

* If two questions or requests appear in sequence, the latter is always dealt with first - [SL 030506-1]
This is due to the use of stacks for ISSUES and ACTIONS. If order is indicated, e.g. "do A1 and then do A2", things should be dealt with in the order they appear.

* Use semantics more similar to notation in thesis. - [DH 030902-1]

In particular use '?' for all questions. Prolog variables should probably be used though  instead of e.g. x1, x2, x3. Also, '.' will not work as an infix operator, so  '^' could be used as before:
* Use Blackburn&Bos-ish semantic representation - [SL 030915-1]
Use a representation more like that in Blackburn & Bos book on computational semantics. Questions are represented as que(P) for y/n and que(X,PX) for wh. Also, it would be nice to do proper lambda calculus, including full beta-reduction and alpha-conversion, as specified in the book.
* .... loads more of GoDiS things todo, need to check which problems are still there... - [SL nd-12]


Modules

* URGENT: Nuance modules: get them to work with GoDiS-AOD and IOD - [SL 030730-2]

* Thresholds for Nuance score should be variables, e.g. "low_thres" och "high_thres" [SL 030814-2]

* output_nuance ,record prompts to speed up / bypass synthesis [SL 030522-1]


* input_nuance: Fixa barge-in när man ringer upp (via telefon eller telefonsimulator), behöver ej vara sofistikerat men vi skulle kunna korta av pauserna efter positiv feedback [SL 030518-1]

* update and include ViaVoice modules [SL 030521-2]

* update and include Festival output module [SL 030521-3]

* update and include Leif's L&H output module (but maybe outdated) [SL 030521-4]


Resources

* clean up lexicons, domain, database and device interface resources - [SL nd-13]

* general OAA UPNP device interface which routes calls through OAA to the real device - [DH nd-14]
Java abstract class se.gu.ling.godis.oaa.devices.OaaUpnpDevice.java

* lexicon: is altlist2altstr_and/or used at all? - [SL 030513-1]

* general lexicon - [na-nd-15]
use general lexicon for input/output forms common to all instances of the same godis version and language (lexicon_aod_english, lexicon_aod_svenska,..)
* enable runtime plugin of resources - [SL 030731-2]
 e.g. a "load_resource" operation

enable runtime unplugging too (DH031001)

Applications

* clean up start-files and godis-files; need consistent naming convention - [SL030814-1]
* start_APP_{nuance/text}.pl
* godis_APP_{nuance/text}.pl
* separate applications from godis - [DH/SL 030521]
- need GODIS environment variable
- applications should not be under godis library
- application spec file should be in same directory as application
- selected_resources should be defined in start file, not in system spec file (godis_aod.pl etc.); perhaps also other things.
- the start file should have a more appropriate name, indicating the application domain


?  macros.pl should be in godis_library (DH 030718)
- user_flags.pl now in general - implement way of adding possible flagValues in app spec file (DH 030718)
* upgrade IMDiS application to work with aod - [SL nd-16]

* upgrade autoroute application to work with iod - [SL nd-17]


* GoDiS Mindstorms - [SL 030730-3]
- write Nuance grammars
* deal with fact that actions may not be performable, that robot may be non-contactable, that actions may fail

Misc. features

none added so far

Bugs


* Files for running GoDiS with Nuance have disappeared from the distribution. There should also be a comprehensive instruction for how to start the system with Nuance, and preferably a script that does everything for you. [SL031013]

* not really a bug per se, but in update rules icm:accommodate has an argument which is not used by the lexicon and could be removed. - [SL 030731-3]

* make sure that all accommodation rules work esp. those using "proposition". - [SL nd-18]
For example, number(7) and channel(7) are classified as  propositions, even though they are not full answers. Perhaps need "full_answer" condition?
x issues2qud accommodation doesn't work for vcr - [SL 030724-1]
- the reason is that the rules requires that the answer is not a proposition. However, number(7) and channel(7) are classified as  propositions, even though they are not full answers. Not sure how to solve this...

{SL030724;NOTE! IOD not fixed or checked!}
* when reraising an closed issue, all answers to questions dominated by that issue must be removed! The same goes for requests.  (integrateUsrAsk, integrateUsrRequest) - [SL 030724-2]

* noFollowUp should integrate actions as well as issues - [DH 030717-1]

* accommodatedependetissue, accommodateDependentFunction not complete: [030520-2]
- must work with raise, bind as well

* (aod) when changing language, sometimes a confirmation subdialogue in the previous language is needed before switching; the best thing would be to do the confirmation in the new language, and if the switch is not confirmed, go back to the original language. - [SL nd-19]


* (aod) exec_forget_all rensar inte agendan! kan finnas icm kvar - [SL nd-20]
"add a program from five oclock" 0.8; "top"
 - vid integrate language change: rensa bara bort icm som angår language change, ej annat (kanske ok med all icm?)
- this will be solved when reimplementing grounding
* (aod) reraising comes one turn too late after revision (?) - [SL nd-21]

X rejectProp rule produces pos*und feedback - [SL 030822-1]
- this leads to strange behaviour if the response to the pos*und feedback is other than positive or nothing. The motivation for producing pos*und is the general principle to produce positive FB on level n-1 when producing negative fb on level n; however in this case it does not work so well and does not seem necessary, since the negative acc-feedback usually contains the rejected material. 

x init_shift done once too many, so one "#" is kept in list - [SL 030724-3]
- this should not be a problem, but there is a bug in the implementation of init_shift in trindikit. This bug has been submitted to the SF site.
 
{SL030724;GoDiS should perhaps still avoid doing init twice...}

X Uncategorized bug [SL 030515-1]:
U: add a program twelve thirty 0.61
  _
  no
  -> returns to top!

{SL 030724;this did not replicate}
x the input_simpletext module does not set score, which leads to errors when checking conditions in update rules [SL 030513-2]

X build script crashes if $TRINDIKIT/classes is not in $CLASSPATH - [DH 030605-1]
{DH030511; now fixed}
X (aod) Accommodation of plan to issues bug - [SL 030506-2]
Accommodation plan2issues does not work if answer to first question in plan for A is given in the same utterance as the request for A. For example, "Add a program channel five" in the VCR domain.

X wrong type of /SHARED/PM in infostate.pl - [DH 031003-1]
/SHARED/PM incorrectly declared as being of the type oqueue in the information state declaration files. Should be a set.

{DH 031003;fixed in iod and aod,  declared as a set in grounding not relevant for basic}

Other

* comment the code, esp. rules and algorithms... - [SL 030724-4]

* describe undocumented features, including... - [SL 030724-5]
- "up" action
- plan constructors:
* if_then_else
* bind
* protect
* forget
* forget_except
* change_domain
* do_action
* webpage - [SL nd-21]

* web demo - [SL nd-22]

* GoDiS application writer's manual - [SL nd-23]

* GoDiS tutorial - [SL nd-24]