Computer Architecture, Advanced Architectures Part VII Advanced Architectures.
TrindiKit. TrindiKit architecture & concepts what’s in TrindiKit? comparison with other...
-
Upload
dwayne-day -
Category
Documents
-
view
217 -
download
0
Transcript of TrindiKit. TrindiKit architecture & concepts what’s in TrindiKit? comparison with other...
![Page 1: TrindiKit. TrindiKit architecture & concepts what’s in TrindiKit? comparison with other architectures this talk.](https://reader036.fdocuments.net/reader036/viewer/2022062422/56649ef65503460f94c0a94f/html5/thumbnails/1.jpg)
TrindiKit
![Page 2: TrindiKit. TrindiKit architecture & concepts what’s in TrindiKit? comparison with other architectures this talk.](https://reader036.fdocuments.net/reader036/viewer/2022062422/56649ef65503460f94c0a94f/html5/thumbnails/2.jpg)
What is TrindiKit?
• a toolkit for – building and experimenting with dialogue move engines and systems, – based on the information state approach
• originally developed in TRINDI, considerably extended and improved in SIRIDUS
![Page 3: TrindiKit. TrindiKit architecture & concepts what’s in TrindiKit? comparison with other architectures this talk.](https://reader036.fdocuments.net/reader036/viewer/2022062422/56649ef65503460f94c0a94f/html5/thumbnails/3.jpg)
Key ideas
• thinking in terms of IS updates– update rules
• functions IS (+moves) IS (+moves)
• generic domain-independent dialogue management– requires modularity
• use of global information state – defined in terms of abstract datatypes– all modules can access all information
![Page 4: TrindiKit. TrindiKit architecture & concepts what’s in TrindiKit? comparison with other architectures this talk.](https://reader036.fdocuments.net/reader036/viewer/2022062422/56649ef65503460f94c0a94f/html5/thumbnails/4.jpg)
module1 module…
Total Information State (TIS)•Information state proper (IS)•Module Interface Variables•Resource Interface Variables
resource1
control
modulei modulej module… modulen
resource… resourcem
DME
![Page 5: TrindiKit. TrindiKit architecture & concepts what’s in TrindiKit? comparison with other architectures this talk.](https://reader036.fdocuments.net/reader036/viewer/2022062422/56649ef65503460f94c0a94f/html5/thumbnails/5.jpg)
TrindiKit
basicdialogue theory
domain & languageresources
basic system
application
information state approach
genre-specific theoryadditions
genre-specific system
![Page 6: TrindiKit. TrindiKit architecture & concepts what’s in TrindiKit? comparison with other architectures this talk.](https://reader036.fdocuments.net/reader036/viewer/2022062422/56649ef65503460f94c0a94f/html5/thumbnails/6.jpg)
• explicit information state datastructure – makes systems more transparent – enable e.g. context sensitive interpretation, distributed decision
making, asynchronous interaction
• update rules – provide an intuitive way of formalising theories in a way which can
be used by a system– represent domain-independent dialogue management strategies
• resources– represent domain-specific knowledge– can be switched dynamically
• e.g. switching language on-line in GoDiS
• modular architecture promotes reuse– basic system -> genre-specific systems– genre-specific system -> applications
TrindiKit features
![Page 7: TrindiKit. TrindiKit architecture & concepts what’s in TrindiKit? comparison with other architectures this talk.](https://reader036.fdocuments.net/reader036/viewer/2022062422/56649ef65503460f94c0a94f/html5/thumbnails/7.jpg)
technical features
• interfaces to OAA (but can also run without it)– see e.g. demo by Zinn et al.
• system modules can run either serially or in parallell
• wrappers for off-the-shelf recognizers and synthesizers
• runs on UNIX, Windows, Linux• currently uses SICStus Prolog
– but considering moving to YAP prolog (freely available Sicstus clone)
– possibly reimplement in other language
![Page 8: TrindiKit. TrindiKit architecture & concepts what’s in TrindiKit? comparison with other architectures this talk.](https://reader036.fdocuments.net/reader036/viewer/2022062422/56649ef65503460f94c0a94f/html5/thumbnails/8.jpg)
availability• version 2.1 is available• version 3.0a coming at end of 2002
– SIRIDUS deliverable D6.4
• TrindiKit website– www.ling.gu.se/projects/trindi/trindikit
• SourceForge project– development versions available– developer community?
• licensed under GPL• more info in
– Larsson & Traum: NLE Special Issue on Best Practice in Dialogue Systems Design, 2000
– TrindiKit manual (available from website)
![Page 9: TrindiKit. TrindiKit architecture & concepts what’s in TrindiKit? comparison with other architectures this talk.](https://reader036.fdocuments.net/reader036/viewer/2022062422/56649ef65503460f94c0a94f/html5/thumbnails/9.jpg)
Flexible issue-based dialogue management
![Page 10: TrindiKit. TrindiKit architecture & concepts what’s in TrindiKit? comparison with other architectures this talk.](https://reader036.fdocuments.net/reader036/viewer/2022062422/56649ef65503460f94c0a94f/html5/thumbnails/10.jpg)
Goals
• explore and implement issue-based dialogue management– adapt Ginzburg’s KOS to dialogue system (GoDiS)
and implement– extend theory (incl. accommodation, action-oriented
dialogue, negotiation, conditional responses)
• separating general and domain-dependent phenomena helps reconfigurability– general theory of dialogue, extended into
subtheories for different dialogue types– minimize effort for adapting to new domains
![Page 11: TrindiKit. TrindiKit architecture & concepts what’s in TrindiKit? comparison with other architectures this talk.](https://reader036.fdocuments.net/reader036/viewer/2022062422/56649ef65503460f94c0a94f/html5/thumbnails/11.jpg)
TrindiKit
GoDiS
GoDiS-I GoDiS-A
TravelAgency
Auto-route
Xeroxmanual
VCRmanager
IBDM
homedevice
manager
ISapproach
genre-specific
application-specific
![Page 12: TrindiKit. TrindiKit architecture & concepts what’s in TrindiKit? comparison with other architectures this talk.](https://reader036.fdocuments.net/reader036/viewer/2022062422/56649ef65503460f94c0a94f/html5/thumbnails/12.jpg)
Basic issue-based dialogue management
• enquiry-oriented dialogue (database search)• starting point:
– Ginzburg’s DGB and – related DGB update protocols
• moves: ask, answer, (greet, quit)• raising and addressing issues
– incl. short answers
• dialogue plans• handling multiple simultaneous issues• information sharing between plans• sample domain: travel agency
![Page 13: TrindiKit. TrindiKit architecture & concepts what’s in TrindiKit? comparison with other architectures this talk.](https://reader036.fdocuments.net/reader036/viewer/2022062422/56649ef65503460f94c0a94f/html5/thumbnails/13.jpg)
basic infostate
PRIVATE : PLAN : OpenStack( Action )
AGENDA : OpenQueue( Action )
SHARED :
BEL : Set( Prop )
COM : Set( Prop )
QUD : OpenStack( Question )
LU: SPEAKER: Speaker MOVES: OpenQueue( Move )
ISSUES : OpenStack( Question )
• QUD:local, questions available for ellipsis resolution• ISSUES: global, questions which have been raised but not yet resolved
![Page 14: TrindiKit. TrindiKit architecture & concepts what’s in TrindiKit? comparison with other architectures this talk.](https://reader036.fdocuments.net/reader036/viewer/2022062422/56649ef65503460f94c0a94f/html5/thumbnails/14.jpg)
Semantics• Proposition: n-ary predicate-argument structure
– e.g. dest-city(paris)
• Question– Y/N-questions: ?P, P is a proposition– wh-questions: ?x.P(x)– alt-questions: {?P1, …, ?Pn}
• ShortAns– individual markers: paris, april, …– yes, no
• Q-A relations (adapted from Ginzburg)– resolves(A,Q): A resolves Q
• dest-city(paris) resolves ?x.dest-city(x)– relevant(A,Q): A is a relevant answer to Q
• not(dest-city(paris)) is relevant to ?x.dest-city(x), but does not resolve it
![Page 15: TrindiKit. TrindiKit architecture & concepts what’s in TrindiKit? comparison with other architectures this talk.](https://reader036.fdocuments.net/reader036/viewer/2022062422/56649ef65503460f94c0a94f/html5/thumbnails/15.jpg)
sample dialogue plan
task: ?x.price(x)<findout(?x.how(x))
findout(?x.dest-city(x))findout(?x.dept-city(x))findout(?x.dept-month(x))raise(?x.dept-day(x))findout(?return)If return then < findout(?x.ret_month)
findout(?x.ret_day) >raise(?x.class(x))consultDB(?x.price(x))>
![Page 16: TrindiKit. TrindiKit architecture & concepts what’s in TrindiKit? comparison with other architectures this talk.](https://reader036.fdocuments.net/reader036/viewer/2022062422/56649ef65503460f94c0a94f/html5/thumbnails/16.jpg)
Dealing with multiple issues
• if user asks Q, push Q on ISSUES and load plan for dealing with Q
• if users asks Q’ while system is dealing with Q, throw out plan for Q but Q remains on ISSUES
• when Q’ resolved, Q topmost on ISSUES will trigger reloading plan for dealing with Q– general rule: if SHARED.COM contains info resolving
Q, don’t ask Q– so any resolved questions in plan will be thrown out
![Page 17: TrindiKit. TrindiKit architecture & concepts what’s in TrindiKit? comparison with other architectures this talk.](https://reader036.fdocuments.net/reader036/viewer/2022062422/56649ef65503460f94c0a94f/html5/thumbnails/17.jpg)
Information sharing across plans
• GoDiS does not keep track of which plan was being executed when propositions were added
• so information sharing is determined by question sharing across plans
• plan for VISA question: ?need_visa<findout(?x.dest-city(x))
findout(?x.dept-city(x))findout(?x.citizenship(x))consultDB(?need_visa) >
– shared 2 questions with plan for ?x.price(x)
![Page 18: TrindiKit. TrindiKit architecture & concepts what’s in TrindiKit? comparison with other architectures this talk.](https://reader036.fdocuments.net/reader036/viewer/2022062422/56649ef65503460f94c0a94f/html5/thumbnails/18.jpg)
Sample dialogue: multiple tasks & info sharing
S> Welcome to the travel agency! U> price information S> (…) Lets see. How do you want to travel? U> by flightS> (…) What city do you want to go to? U> parisS> (…) What city do you want to go from? U> do I need a visa ?S> (…) Lets see. What country are you from? U> swedenS> Okay. Yes, you need a Visa. S> Returning to the issue of price. Lets see. What city do
you want to go from?
![Page 19: TrindiKit. TrindiKit architecture & concepts what’s in TrindiKit? comparison with other architectures this talk.](https://reader036.fdocuments.net/reader036/viewer/2022062422/56649ef65503460f94c0a94f/html5/thumbnails/19.jpg)
Grounding and feedback(Interactive Communication Management)
• feedback types (Allwood, Clark)– action level: contact, perception, understanding,
acceptance– polarity: positive, negative
• update strategies– optimistic
• non-cautious• cautious
– pessimistic
• feedback and grounding for a dialogue system
![Page 20: TrindiKit. TrindiKit architecture & concepts what’s in TrindiKit? comparison with other architectures this talk.](https://reader036.fdocuments.net/reader036/viewer/2022062422/56649ef65503460f94c0a94f/html5/thumbnails/20.jpg)
Some ICM dialogue moves
• Interactive Communication Management– feedback– turntaking– sequencing: reflects dialogue structure
• icm:Level{*Polarity}{:Content}– icm:und*neg – ”I don’t understand”– icm:und*pos:P – ”To Paris.”– icm:acc*neg:Q – ”Sorry, I can’t answer Q”– icm:acc*pos – ”Okay”– icm:reraise:Q – ”Returning to the issue Q”– icm:loadplan – ”Let’s see…”
![Page 21: TrindiKit. TrindiKit architecture & concepts what’s in TrindiKit? comparison with other architectures this talk.](https://reader036.fdocuments.net/reader036/viewer/2022062422/56649ef65503460f94c0a94f/html5/thumbnails/21.jpg)
Question Accommodation
• to deal with – user initiative (other than asking questions)– giving more/less/other information than
requested– simple information revision– reraising issues
• basic idea:– move questions to QUD or ISSUES to
adapt to user utterances
![Page 22: TrindiKit. TrindiKit architecture & concepts what’s in TrindiKit? comparison with other architectures this talk.](https://reader036.fdocuments.net/reader036/viewer/2022062422/56649ef65503460f94c0a94f/html5/thumbnails/22.jpg)
Sample dialogue: accommodation
S: Welcome to the travel agency.U: From London to Paris in April
– not relevant to anything on ISSUES (since ISSUES is empty)– look in domain knowledge for a plan with matching questions– the plan for dealing with ?x.price(x) is found; this question depends on – dependent issue accommodation: push on ISSUES ?x.price(x)– load plan for ?x.price(x) – issue accommodation: push on ISSUES ?x.dest-city(x)– integrate answer (requres matching question on ISSUES)– same with ?x.dept-city(x), ?x.dep_month(x)
S: Alright, you want to know about price. (…)
– proceed to next plan item
S: How do you want to travel?– ISSUES=<?x.how(x), ?x.price(x)>
(NOTE: sys only deals with price & visa issues)
![Page 23: TrindiKit. TrindiKit architecture & concepts what’s in TrindiKit? comparison with other architectures this talk.](https://reader036.fdocuments.net/reader036/viewer/2022062422/56649ef65503460f94c0a94f/html5/thumbnails/23.jpg)
Action-oriented dialogue based on menus
• GoDiS-A: for action-oriented dialogue • each plan now associated with an action or a
question– add SHARED.ACTIONS: Stack(Action)– ACTIONS has a similar role to ISSUES
• New moves: – request(Action) – confirm(Action) [or report(Action, Status)]
• adapt accommodation strategies to AOD• sample domain: menu-based dialogue for VCR• (demo during lunch break)
![Page 24: TrindiKit. TrindiKit architecture & concepts what’s in TrindiKit? comparison with other architectures this talk.](https://reader036.fdocuments.net/reader036/viewer/2022062422/56649ef65503460f94c0a94f/html5/thumbnails/24.jpg)
Converting menus to plans
Menu Plan construct
multi-choice list: <a1, a2, ..., an >
findout({?action(a1), ?action(a2),...,?action(an)})
tick-box:+/-P
findout(?P)
dialogue window:parameter=___
findout(?x.parameter(x))
pop-up message confirming action a as done
confirm(a)
![Page 25: TrindiKit. TrindiKit architecture & concepts what’s in TrindiKit? comparison with other architectures this talk.](https://reader036.fdocuments.net/reader036/viewer/2022062422/56649ef65503460f94c0a94f/html5/thumbnails/25.jpg)
VCR menu structure fragment
• change play status– play, stop etc.
• change channel– channel: _
• timer recording– add program
• channel:_• date:_• start-time:_• end_time:_• display added program
– delete program• display existing programs• delete program:_
• settings– clock, etc.
![Page 26: TrindiKit. TrindiKit architecture & concepts what’s in TrindiKit? comparison with other architectures this talk.](https://reader036.fdocuments.net/reader036/viewer/2022062422/56649ef65503460f94c0a94f/html5/thumbnails/26.jpg)
Plan for VCR>timer recording>add program
findout(?x.program_position_to_store(x)),findout(?x.date_to_store(x)),findout(?x.start_time_to_store(x)),findout(?x.stop_time_to_store(x)),dev_do(vcr, 'AddProgram')
• (confirmations generated by update rule whenever some action is done, so not needed in plan)
![Page 27: TrindiKit. TrindiKit architecture & concepts what’s in TrindiKit? comparison with other architectures this talk.](https://reader036.fdocuments.net/reader036/viewer/2022062422/56649ef65503460f94c0a94f/html5/thumbnails/27.jpg)
Sample menu dialogue(with language change!)
S: Welcome to the VCR manager. Let’s see. What can I do for you?
U: Add a program today, channel five– request(add_program) -> plan is loaded– issue accommodation to integrate ”channel
five”
S: What time do you want to start recording?U: Five fifteen…
![Page 28: TrindiKit. TrindiKit architecture & concepts what’s in TrindiKit? comparison with other architectures this talk.](https://reader036.fdocuments.net/reader036/viewer/2022062422/56649ef65503460f94c0a94f/html5/thumbnails/28.jpg)
Other architectures
• Agent communication protocols– Open Agent Architecture– KQML
• Dialogue system toolkits– DARPA Communicator– SOAR, NL-SOAR
• Systems (implementing specific dialogue theory)– Verbmobil– VoiceXML
• have been compared to TrindiKit (see deliverables or ask)
![Page 29: TrindiKit. TrindiKit architecture & concepts what’s in TrindiKit? comparison with other architectures this talk.](https://reader036.fdocuments.net/reader036/viewer/2022062422/56649ef65503460f94c0a94f/html5/thumbnails/29.jpg)
relevant properties
• support for information state approach– which datastructures/datatypes are
supported?
• support for managing control flow– not limited to pipelining
• asynchronous processing• modularity• potential for scalability
![Page 30: TrindiKit. TrindiKit architecture & concepts what’s in TrindiKit? comparison with other architectures this talk.](https://reader036.fdocuments.net/reader036/viewer/2022062422/56649ef65503460f94c0a94f/html5/thumbnails/30.jpg)
OAA
• ”Facilitator” (hub) manages communication between ”agents” (spokes)
• facilitator can maintain global information state– what datastructures are available?
• asynchronous processing• modular• similar to scriptless version of DARPA
Communicator
![Page 31: TrindiKit. TrindiKit architecture & concepts what’s in TrindiKit? comparison with other architectures this talk.](https://reader036.fdocuments.net/reader036/viewer/2022062422/56649ef65503460f94c0a94f/html5/thumbnails/31.jpg)
KQML
• Knowledge Querying and Manipulation Language
• communication protocol between agents
![Page 32: TrindiKit. TrindiKit architecture & concepts what’s in TrindiKit? comparison with other architectures this talk.](https://reader036.fdocuments.net/reader036/viewer/2022062422/56649ef65503460f94c0a94f/html5/thumbnails/32.jpg)
DARPA Communicator
• Hub-and-spoke architecture• modularity, flexible control,
asynchronous processing• hub functions
– message routing between servers (spokes)– state maintenance– control flow; script decides which server to
call next
![Page 33: TrindiKit. TrindiKit architecture & concepts what’s in TrindiKit? comparison with other architectures this talk.](https://reader036.fdocuments.net/reader036/viewer/2022062422/56649ef65503460f94c0a94f/html5/thumbnails/33.jpg)
DARPA communicator cont’d
• limited support for information states– ”tokens”: frames with name, index, and list
of feature-value pairs– tokens processed by scripts
• set of rules determining when to call a server + which arguments (features) to pass
• Hub scripts too limited to do real dialogue management– most actual systems have separate
dialogue manager– hub mostly used for data routing
![Page 34: TrindiKit. TrindiKit architecture & concepts what’s in TrindiKit? comparison with other architectures this talk.](https://reader036.fdocuments.net/reader036/viewer/2022062422/56649ef65503460f94c0a94f/html5/thumbnails/34.jpg)
SOAR
• toolkit for modeling cognitive agents• similar to TrindiKit in some respects• keeps single information state
– however, only one datastructure whereas TrindiKit has extendible range of (possibly complex) datatypes
• update rules– some nice ways of triggering rules which can be
considered for TrindiKit
• supports ”chunking” of rules– however, may not be too useful in practice
![Page 35: TrindiKit. TrindiKit architecture & concepts what’s in TrindiKit? comparison with other architectures this talk.](https://reader036.fdocuments.net/reader036/viewer/2022062422/56649ef65503460f94c0a94f/html5/thumbnails/35.jpg)
VoiceXML
• Frame-based dialogue manager• not really an architecture, more like a
domain-independent dialogue system • Requires scripting dialogues in detail• Combine with GoDiS?
– use GoDiS as VoiceXML server, dynamically building VoiceXML scripts
– use VoiceXML specifications converted to GoDiS
![Page 36: TrindiKit. TrindiKit architecture & concepts what’s in TrindiKit? comparison with other architectures this talk.](https://reader036.fdocuments.net/reader036/viewer/2022062422/56649ef65503460f94c0a94f/html5/thumbnails/36.jpg)
Verbmobil
• not dialogue system per se– rather, dialogue translation system
• several local information states, not one global – ”partitioned blackboard”– which datastructures? extendible set?
• limited control support