CHI 97 Electronic Publications: Demonstrations
CHI 97 Prev CHI 97 Electronic Publications: Demonstrations Next

The Agentsheets Behavior Exchange: Supporting Social Behavior Processing

Alexander Repenning and James Ambach
Department of Computer Science, Center for LifeLong Learning and Design
University of Colorado, Boulder CO 80309-0430
(303) 492-1349, ralex@cs.colorado.edu,
(303) 492-1503, ambach@cs.colorado.edu
http://www.cs.colorado.edu/~ralex/
http://www.cs.colorado.edu/~ambach/

ABSTRACT

In end-user programming it is still hard to overcome the tension between usability and expressiveness. Some end-user programming approaches focus on simple use but they make it hard or even impossible to write programs expressing useful functionality. Other programming approaches can be very expressive by allowing the construction of arbitrary complex programs but this expressiveness comes at the price of usability. End user programming approaches that are at least reasonably usable and expressive at the same time require not merely a syntactic improvement of programming languages but a new way to conceptualize the programming process in a social context. Social behavior processing describes the idea of elevating programming components to the level of easily composable and decomposable entities that can be shared through the World Wide Web with a community of end-users. The Agentsheets Behavior Exchange is outlined here as a forum for end-user programmers, including middle school kids and professionals, to (a) compose behaviors in order to create interactive SimCityTM-like simulations and games, to (b) comprehend behaviors created by other users or by themselves, and to (c) share these behaviors with other users. In end-user programming it is still hard to overcome the tension between usability and expressiveness. Some end-user programming approaches focus on simple use but they make it hard or even impossible to write programs expressing useful functionality. Other programming approaches can be very expressive by allowing the construction of arbitrary complex programs but this expressiveness comes at the price of usability. End user programming approaches that are at least reasonably usable and expressive at the same time require not merely a syntactic improvement of programming languages but a new way to conceptualize the programming process in a social context. Social behavior processing describes the idea of elevating programming components to the level of easily composable and decomposable entities that can be shared through the World Wide Web with a community of end-users. The Agentsheets Behavior Exchange is outlined here as a forum for end-user programmers, including middle school kids and professionals, to (a) compose behaviors in order to create interactive SimCity-like simulations and games, to (b) comprehend behaviors created by other users or by themselves, and to (c) share these behaviors with other users.

Keywords

agents, World Wide Web, end-user programming, interactive simulation, drag and drop, programming by example, domain-specific applications, education, collaborative learning.

© 1997 Copyright on this material is held by the authors.



Behavior Processing

The tensions between usabilty and expressiveness result in design trade-offs. We have worked in the context of the Agentsheets [5] project and by collaborating with the KidSim/Cococa [6] project on a number of programming approaches including graphical rewrite rules [3] , programming by example [1] and more traditional text-based object-oriented programming approaches.

Graphical rewrite rules are highly usable. With little instruction users can learn the basics of how to create a rule to express motion and change of object appearance. Due to the literal nature of graphical rewrite rules it can become tedious or even impossible to express more complex or more abstract behaviors [3] .

Traditional programming approaches such as Smalltalk, C++, and Java are very expressive by featuring powerful mechanisms including procedural abstraction. However, in these approaches expressiveness comes at the price of usability.

Programming approaches that are usable and expressive at the same time require reconceptualizing the programming process from a solitary solitaire activity to a social process that is supported with new kinds of tools. We call the combination of tools and mechanims to compose, comprehend, and share behaviors Behavior Processors. The Agentsheets Behavior Exchange is a collection of Web pages featuring behaviors: http://www.cs.colorado.edu/~l3d/systems/agentsheets/

Composition

Visual AgenTalk programs, the end-user language of Agentsheets, [4] can be composed and decomposed incrementally along clearly defined boundaries (Figure 1). Conditions, actions, rules and triggers are drag and dropable language components allowing agents to move, change their appearance, open URLs, play sounds, read web pages, speak, receive mouse events, poll the keyboard etc.

Comprehension

Perception by manipulation allows end users to efficiently examine functionality. Any language component (conditions, actions, rules, rule sets, triggers), at any time can be dragged and dropped onto any agent. The component is executed with visual feedback revealing conditions that fail and showing consequences of executing actions.


Figure 1. IF the right cursors key is pressed, there is a piece of road ahead, and Gas is > 0 then the truck agent moves right and adds to its mileage.

Sharing

Sharing is crucial for the social aspect of behavior processing. The ease of trading computational components via the Behavior Exchange enables novices to get access to components created by more proficient users. The clear component boundaries combined with the ability to test and comprehend components separately support the ability to modify and even extend existing components.

The Behavior Exchange supports the trade of components at the project, agent, rule and command level.

Sharing Simulations: Entire simulations are the coarsest components users can share. Once end users find simulations of interest on the Behavior Exchange Web page they can simply drag the simulation out of the page into Agentsheets. The simulation includes all the objects necessary to use it: agents with their rules, commands and resources such as sounds, icons and documentation.

Sharing Agents. The Behavior Exchange features a growing collection of agent classes. Under the heading of special effect agents one can find a simple Flash agent that can be used to animate explosions which come in handy in a number of game-like applications. End-users browsing the Behavior Exchange get a first impression of the behavior through the animated representation of the agent in the page. The Fire agent in Figure 2 is flickering and the Flash agent is exploding repetitively. Each agent is completely embedded as a binary stream in the page. When end-users find interesting behaviors they will simply drag the agents out of the web page into the Agentsheets application. This process will completely transfer the agent with its resources (a look consisting of several icons, a behavior consisting of a Visual AgenTalk program) into the world of the end-user.


Figure 2. A Flash agent is dragged from the Behavior Exchange into a space game.

Live examples of embeded agents such as the Flash agent can be found at http://www.cs.colorado.edu/~l3d/systems/agentsheets/Behavior-Exchange/VAT-Web-Behavior-Browser.html

Agents are transferred as transparent glass boxes. End-users can change the look and the behavior of the agents. When double-clicking an agent they will get access to its rules (similar to Figure 1). To create a compelling flash agent Mike Wright had to create a number of icons and define a timing sequence to switch between icons and play an explosion sound at the right time.

Sharing Rules: Rules represent fragments of behaviors. Users can put interesting rules they would like to share into the Behavior Exchange with a brief explanation what the rule is good for. Other users can make use of the rule by simply dragging it from a web page into Agentsheets.

Sharing Commands: Like rules, commands can be dragged from web pages into Agentsheets. Visual AgenTalk is an open programming language allowing language designers to create their own specialized commands similar to the Buttons system [2] and share them with the programming community. In addition to Buttons, Agentsheets commands can have direct manipulation parameters such as icons, numbers, strings, sounds, and URLs.

The Figure on the left shows a command created by a power user for other end-user. This command can be used to find strings in specific web pages. Using the new command an agent can be built to periodically check a number of web page for the arrival a of new information (such as Apple's new Squeak programming language). Together with other conditions and actions interesting behaviors can be composed.

Acknowledgments

This work is supported by the ARPA under Cooperative Agreement Number CDA-940860, and the National Science Foundation under grant number RED925-3425.

References

1. Cypher, A., Watch What I Do: Programming by Demonstration, MIT Press, Cambridge, MA, 1993.

2. MacLean, A., K. Carter, L. Lövstrand and T. Moran, "User-Tailorable Systems: Pressing the Issues with Buttons," Proceedings CHI'90, Seattle, WA., 1990, pp. 175-182.

3. Repenning, A., "Bending the Rules: Steps toward Semantically enriched Graphical Rewrite Rules," Proceeding of Visual Languages, Darmstadt, Germany, 1995, pp. 226-233.

4. Repenning, A. and J. Ambach, "Tactile Programming: A Unified Manipulation Paradigm Supporting Program Comprehension, Composition and Sharing," Visual Languages 1996, Boulder, CO, 1996.

5. Repenning, A. and T. Sumner, "Agentsheets: A Medium for Creating Domain-Oriented Visual Languages," IEEE Computer, Vol. 28, pp. 17-25, 1995.

6. Smith, D. C., A. Cypher and J. Spohrer, "KidSim: Programming Agents Without a Programming Language," Communications of the ACM, Vol. 37, pp. 54-68, 1994.


CHI 97 Prev CHI 97 Electronic Publications: Demonstrations Next

CHI 97 Electronic Publications: Demonstrations