Hyperinsulinemia leads to uncoupled insulin regulation of the
An Uncoupled Interface to Soar using SML Pearson, Marinier, Stokes Dunham, Voigt.
-
Upload
gervase-fisher -
Category
Documents
-
view
217 -
download
0
description
Transcript of 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
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)
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
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
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
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.