An Uncoupled Interface to Soar using SML Pearson, Marinier, Stokes Dunham, Voigt.

6
An Uncoupled Interface An Uncoupled Interface to Soar using SML to Soar using SML Pearson, Marinier, Stokes Pearson, Marinier, Stokes Dunham, Voigt Dunham, Voigt

description

Features Embedded or socket connections Embedded or socket connections Multiple language support for applications Multiple language support for applications Combined debugging and I/O interface Combined debugging and I/O interface Dynamic connection/disconnection Dynamic connection/disconnection Tools less tightly tied to particular Soar version Tools less tightly tied to particular Soar version Often faster than interfaces Often faster than interfaces Logical structure to output from kernel Logical structure to output from kernel

Transcript of An Uncoupled Interface to Soar using SML Pearson, Marinier, Stokes Dunham, Voigt.

Page 1: An Uncoupled Interface to Soar using SML Pearson, Marinier, Stokes Dunham, Voigt.

An Uncoupled Interface to An Uncoupled Interface to Soar using SMLSoar using SML

Pearson, Marinier, Stokes Pearson, Marinier, Stokes Dunham, VoigtDunham, Voigt

Page 2: An Uncoupled Interface to Soar using SML Pearson, Marinier, Stokes Dunham, Voigt.

System ArchitectureSystem ArchitectureSoar Kernel

gSKI

KernelSML

ClientSML

SWIG LanguageLayer

Application

SML

Soar 8.6 Kernel (C)

Higher-level Interface (C++)

Encodes/Decodes function calls and responses in XML (C++)

Soar Markup Language

Encodes/Decodes function calls and responses in XML (C++)

Wrapper for Java/Tcl (Not needed if app is in C++)

Application (any language)

Page 3: An Uncoupled Interface to Soar using SML Pearson, Marinier, Stokes Dunham, Voigt.

FeaturesFeatures• Embedded or socket connectionsEmbedded or socket connections• Multiple language support for Multiple language support for

applicationsapplications• Combined debugging and I/O interfaceCombined debugging and I/O interface• Dynamic connection/disconnectionDynamic connection/disconnection• Tools less tightly tied to particular Soar Tools less tightly tied to particular Soar

versionversion• Often faster than 8.5.2 interfacesOften faster than 8.5.2 interfaces• Logical structure to output from kernelLogical structure to output from kernel

Page 4: An Uncoupled Interface to Soar using SML Pearson, Marinier, Stokes Dunham, Voigt.

Why SML + gSKI?Why SML + gSKI?• Why not SGIO?Why not SGIO?

– SGIO couldn’t support debugging a kernel embedded in a SGIO couldn’t support debugging a kernel embedded in a simulationsimulation

– Difficult to extend as embedded/remote decision happens at top Difficult to extend as embedded/remote decision happens at top level of SGIO, so two internal implementations for all level of SGIO, so two internal implementations for all commands/structurescommands/structures

– Kept the SGIO interface (largely) for clients connecting through Kept the SGIO interface (largely) for clients connecting through SMLSML

• Why not C APIWhy not C API– No direct support for remote connectionsNo direct support for remote connections– No support for dynamic connection/disconnectionNo support for dynamic connection/disconnection– Tight binding between tools and the kernel, so a change to either Tight binding between tools and the kernel, so a change to either

requires a rebuild of bothrequires a rebuild of both– Not as clean of an API as gSKINot as clean of an API as gSKI– Filled the same role as gSKI but with less encapsulation of objectsFilled the same role as gSKI but with less encapsulation of objects

Page 5: An Uncoupled Interface to Soar using SML Pearson, Marinier, Stokes Dunham, Voigt.

Optional Use ModelsOptional Use Models• Ignore SML completely and just link to gSKIIgnore SML completely and just link to gSKI• Send raw XML data to/from the kernelSend raw XML data to/from the kernel• Build on our client side implementations Build on our client side implementations

which hide most of XML communicationwhich hide most of XML communication• Use just the “SGIO” portion to build an I/O Use just the “SGIO” portion to build an I/O

interfaceinterface• Use just the “debugger” portion to build a Use just the “debugger” portion to build a

debugger or command line tooldebugger or command line tool• Use it all to build a combination tool or Use it all to build a combination tool or

something we’ve not seen beforesomething we’ve not seen before

Page 6: An Uncoupled Interface to Soar using SML Pearson, Marinier, Stokes Dunham, Voigt.

Future (as of April 2005)Future (as of April 2005)• Improve the robustness of interactions between Improve the robustness of interactions between

SML systems (it’s still early days here)SML systems (it’s still early days here)• ApplicationsApplications

– Java EatersJava Eaters– Java TankSoarJava TankSoar

• Extend the Java Debugger to new capabilities we Extend the Java Debugger to new capabilities we haven’t had beforehaven’t had before– Make better use of the new structured (XML) output Make better use of the new structured (XML) output

from the kernelfrom the kernel– Add new features to support debugging to the kernelAdd new features to support debugging to the kernel

• Embed Java Debugger and Visual Soar inside Embed Java Debugger and Visual Soar inside Eclipse as plug-ins to create an IDE.Eclipse as plug-ins to create an IDE.