Academia.eduAcademia.edu

Outline

XSTEP: An XML-based Markup Language for Embodied Agents

Abstract

In this paper we propose a XML-based markup language for embodied agents, called XSTEP, based on the scripting language STEP. XSTEP is XML-encoded STEP. STEP is developed on the formal se-mantics of dynamic logic, and has been implemented in the distributed logic programming language DLP, a tool for the implementation of 3D web agents. In this paper, we discuss the issues of markup language design for embodied agents and several aspects of the implementation and application of XSTEP.

References (20)

  1. Alice web site: http://www.alice.org.
  2. Bell, J., A Planning Theory of Practical Rationality. Proc. AAAI'95 Fall Symposium on Rational Agency: Concepts, Theories, Models and Applications, 1-4.
  3. DLP web site: http://www.cs.vu.nl/∼eliens/ projects/logic/index.html.
  4. R. Earnshaw, N. Magnenat-Thalmann, D. Terzopoulos, and D. Thalmann, Computer Animation for Virtual Humans, IEEE Computer Graphics and Applications 18(5), 1998.
  5. Anton Eliëns, DLP, A Language for Distributed Logic Programming, Wiley, 1992.
  6. Anton Eliëns, Principles of Object-Oriented Software Development, Addison-Wesley, 2000.
  7. Anton Eliëns, Zhisheng Huang, and Cees Visser, A platform for Embodied Conversational Agents based on Distributed Logic Programming, Proceedings of AAMAS 2002 WORKSHOP: Embodied conversa- tional agents -let's specify and evaluate them, 2002.
  8. Franois Faure, Gilles Debunne, Marie-Paule Cani-Gascuel, Franck Multon, Dynamic analysis of hu- man walking, Proceedings of the 8th Eurographics Workshop on Computer Animation and Simulation, Budapest, September 1997.
  9. Humanoid animation working group: http://h-anim.org/Specifications/H-Anim1.1/, 2001.
  10. D. Harel, Dynamic Logic, Handbook of Philosophical Logic, Vol. II, D. Reidel Publishing Company, 1984, 497-604.
  11. Zhisheng Huang, Anton Eliëns, Alex van Ballegooij, Paul de Bra, A Taxonomy of Web Agents, Proceed- ings of the 11th International Workshop on Database and Expert Systems Applications, IEEE Computer Society, 765-769, 2000.
  12. Zhisheng Huang, Anton Eliëns, and Paul de Bra, An Architecture for Web Agents, Proceedings of the Conference EUROMEDIA'2001, SCS, 2001.
  13. Zhisheng Huang, Anton Eliëns, and Cees Visser, Programmability of Intelligent Agent Avatars, Pro- ceedings of the Autonomous Agents'01 Workshop on Embodied Agents, 2001.
  14. Zhisheng Huang, Anton Eliëns, and Cees Visser, 3D Agent-based Virtual Communities, Proceedings of the 2002 Web 3D Conference, ACM Press, 2002.
  15. Zhisheng Huang, Anton Eliëns, and Cees Visser, STEP: a Scripting Language for Embodied Agents, submit to the workshop of lifelike animated agents, Tokyo, 2002.
  16. Zhisheng Huang, Anton Eliëns, and Cees Visser, STEP: a Scripting Language for Em- bodied Agents (full version), WASP Research Report, Vrije University Amsterdam, 2002. http://wasp.cs.vu.nl/step/paper/script.pdf.
  17. Zhisheng Huang, Anton Eliëns, and Cees Visser, An ontological investigation on human markup lan- guages, in preparation, 2002.
  18. K. Perlin, and A. Goldberg, Improv: A System for Scripting Intereactive Actors in Virtual Worlds, ACM Computer Graphics, Annual Conference Series, 205-216, 1996. seq([<xsl:apply-templates/> ])<xsl:if test="not(position()=last())">,</xsl:if></xsl:template> <xsl:template match="par"> par([<xsl:apply-templates/> ])<xsl:if test="not(position()=last())">,</xsl:if></xsl:template> <xsl:template match="choice"> choice([<xsl:apply-templates/> ])<xsl:if test="not(position()=last())">,</xsl:if></xsl:template> <xsl:template match="dir"><xsl:value-of select="@value"/></xsl:template> <xsl:template match="speed"><xsl:value-of select="@value"/></xsl:template> <xsl:template match="increment">increment(<xsl:value-of select="@x"/>, <xsl:value-of select="@y"/>,<xsl:value-of select="@z"/>)</xsl:template> <xsl:template match="position">position(<xsl:value-of select="@x"/>, <xsl:value-of select="@y"/>,<xsl:value-of select="@z"/>)</xsl:template> <xsl:template match="rotation">rotation(<xsl:value-of select="@x"/>, <xsl:value-of select="@y"/>,<xsl:value-of select="@z"/>, <xsl:value-of select="@r"/>)</xsl:template> <xsl:template match="time">time(<xsl:value-of select="@value"/>, <xsl:value-of select="@unit"/>)</xsl:template> <xsl:template match="turn"> turn(<xsl:value-of select="@actor"/>, <xsl:value-of select="@part"/>, <xsl:apply-templates select="(dir|rotation)"/>,<xsl:apply-templates select="(speed|time)"/>) <xsl:if test="not(position()=last())">,</xsl:if></xsl:template> <xsl:template match="move"> move(<xsl:value-of select="@actor"/>, <xsl:value-of select="@part"/>, <xsl:apply-templates select="(dir|position|increment)"/>, <xsl:apply-templates select="(speed|time)"/>) <xsl:if test="not(position()=last())">,</xsl:if></xsl:template> <xsl:template match="move_body"> move_body(<xsl:value-of select="@actor"/>, <xsl:apply-templates select="(dir|position|increment)"/>, <xsl:apply-templates select="(speed|time)"/>) <xsl:if test="not(position()=last())">,</xsl:if></xsl:template> <xsl:template match="script_action"> script_action(<xsl:value-of select="@name"/>) <xsl:if test="not(position()=last())">,</xsl:if></xsl:template> <xsl:template match="if_then_else"> if_then_else(<xsl:value-of select="@condition"/>, <xsl:value-of select="@then"/>, <xsl:value-of select="@else"/>) <xsl:if test="not(position()=last())">,</xsl:if></xsl:template> <xsl:template match="do"> do(<xsl:value-of select="@state"/>) <xsl:if test="not(position()=last())">,</xsl:if></xsl:template> <xsl:template match="repeat"> repeat(<xsl:value-of select="@action"/>, <xsl:value-of select="@times"/>) <xsl:if test="not(position()=last())">,</xsl:if></xsl:template> <!--ignore all not matched -->
  19. <!--xsl:template match="*" priority="-1"/ -->
  20. </xsl:stylesheet>