Component Description Ariadne Client/Server Architecture Interactive Systems Labs Prepared by: Matthias Denecke denecke@cs.cmu.edu Date 1 1 - Overview: Ariadne Architecture suitable for Multimodal Dialogue Processing Integrates: Terminological Knowledge Base • defines content • task dependent Scripting languages (Tcl/Tk, own language) • defines behavior of the system 2 Client/Server Communication Scheme Message Passing Communication Scheme 2 - Architecture Overview 3 3 - Component Overview: Servers Each Server: Has two communication modes RPC s (passive mode, ex: display icon on map) generate events (active mode, ex. Speech / gesture recognizer) May have a terminological knowledge base May represent information in Typed Feature Structures Has lock mechanisms to synchronize critical sections ensures synchronized access for servers w/ internal state 4 3 - Component Description I : Map Server handles and displays commercial map data bases supported map formats: GDF 2.1, GDF 3.0, MBS displays maps quickly , zooms and pans allows for multimodal input in the map display allows retrieval and grouping of sets of map feature according to certain criteria • group all map feeatures whose name is “fifth ave” and • whose Road Class feature value exceeds 3 applies operations to groups of map features • highlight the last retrieved group 5 3 - Component Description II: Database Server handles and supports data base requests 6 underlying data base: msql maps operations on typed feature structures (subsumption,…) adequately onto SQL commands 3 - Component Description III : GPS Server connects to and handles information from a NMEA GPS generates GPS events if GPS position changes allows access to additional GPS information 7 3 - Component Description IV : NLP Server Work in progress: Fast HPSG style parsing Ranking of parse trees according to • # violated feature constraints • # skipped / missing words • … 8 Generates typed semantic representation of utterance 3 - Component Description V : ardwish Supports full Tcl / Tk language allows convenient access to servers from Tcl Script language example : Highlight a path in the map ard_addserver ard_servercmd ard_servercmd ard_servercmd ard_servercmd ard_servercmd 9 Map.manager map --port 9000 --host localhost map getintersectionindex “forbes ave” “murray ave” start map getintersectionindex “forbes ave” “market sq” dest map sssp $start map calcpath $start list map highlightpath $list 1 true 3 - Component Description VI :Ariadne Dialogue Processing Module Can be Client of other modules Blackboard architecture: Add’l Data Structures to model dialogue possibly disjunctive typed feature structures Entire system behavior defined in Rule Language 10 Stacks : dialogue goals, intentions Trees: dialogue structure Representations of choice blackboard stores orthographic, syntactic, semantic repr. Servers may modify representations through Ariadne simple integration of other RPCs / messages simple definition / extension of systems behavior 4 - External Interfaces Every module offers its API through sockets Parameters for RPCs represented in Typed Feature Structures allows complex parameters to be passed set of TFS supersedes standard data types: strings, ints etc…. Allows for type checking : avoid misrecognitions, faulty msg passing Socket API works together with different processes running • Tcl/Tk • C++ under Windows NT Integration of 11 JANUS Speech recognizer TKNPen Handwriting recognizer 5 - Existing Software “Bridges” each module may execute Tcl/Tk Scripts other than that, no bridges have been implemented however, the wrapper providing the bridge between socket communication and internal data structures may be replaced easily Our wrapper Our wrapper Map 12 GPS CPoF wrapperCPoF wrapper Map GPS 6 - Information Flow How can other components send data to your system send text on a socket What are the inputs to your system depends on the function to be executed API for each server, Ariadne: • defines: – syntax – input output characteristics and types of parameters • available at runtime 13 What are the outputs of your system cf. input 7 - Plug-n-play Part 1 - Have you identified how your components interact with other CPOF components? TBD Part 2 - Are there components in your system that are functionally “similar” to another CPOF component? TBD Part 3 - Are any of your components complementing other CPOF components? TBD 14 8 - Operating Environments and COTS Component Name Required Hardware Operating System Map Server Alpha/Sun/ Linux PC Unix/Linux C++ libtcl8.0.a, libtk8.0.a Alpha/Sun/ Linux PC Unix/Linux C++ libtcl8.0.a,libtk8.0.a Msql Linux PC Unix/Linux C++ libtcl8.0.a, libtk8.0.a Alpha/Sun/ Linux PC Unix/Linux C++ libtcl8.0.a, libtk8.0.a Ariadne Alpha/Sun/ Linux PC Unix/Linux C++ libtcl8.0.a, libtk8.0.a ardwish Alpha/Sun/ Linux PC Unix/Linux C++ libtcl8.0.a, libtk8.0.a Data Base Server GPS Server Parser Server 15 Language Required COTS 9 - Hardware Platform Requirement Hardware required to support system Typical system to run the entire system (Ariadne + 4 Server + Speech Recognizer) • Pentium Pro Linux PC, > 200 MHz • > 64 MB Memory or • reasonably equipped Sun 16 This information will also be used to plan for the CPOF experiments