Tabela de conteúdos
AgentSheets
From personal and information Agents to interactive demos, modifiable simulations to virtual game worlds, AgentSheets' unique user interface captivates people and draws them into a new relationship with technology.
Homepage | http://www.agentsheets.com |
---|---|
Origin | AgentSheets, Inc. |
Year | 1991 |
Version | 2.6.1 |
License | proprietary |
Language | Visual AgenTalk |
Everything is visual, and there is no source code. The user drag-and-drops and selects almost everything, with some entrances for very simple codes inside of some text boxes. The user can interact with the simulation, can pause/stop/define velocity, and can generate input for the agents. It seems to be more a tool for earning money than for doing some kind of science, but there is an article using this program (Klaus, D.M.. Microgravity and its Implication for Fermentation Technology. Trends in Biotechnology. 16(9): 369-373, 1998), and they have a good number of citations in the literature. The program has a 10 day licence, with possibility of studying the examples. But it is not possible to create new models.
The different types of agents are represented by icons, and when the programmer wants to refer to a given type of agent, he can select its icon. One agent can change its icon depending on his state, and we can use the icon as a definition of state.
Space is always represented by a grid (called agentsheet), and it has the concept of empty and full cells for moving. Walls are always-full locations. The neighbourhood is defined manually, it is the same for each type of agent, and it is limited to at most the eight surrounding cells. Each agent is related to a spatial position in a given time, and a cell contains a stack of agents.
The execution of an agent in a time step is a sequence of if and then blocks. The program has a coupple of pre-defined constructors that can be used for the definition of these blocks, as shown in the table below. All the functions of the agents are defined using the syntax: “on method_23 …”, and it can be triggered by some pre-defined situations, also shown in the following table.
if | see, see a, stacked (above, below, …), next to, empty, key (keyboard), % chance, once every, hear, is, has attribute, on top of, direction, user confirm |
---|---|
then | move, move random, new, change, erase, set color to, wait, broadcast |
event | while running, on (function call), when creating new agent, tool, mouse |
See how the communication of the agents can be done in the last paper on this page.
There is an event OnCount for each agent. It can set global variables for example @SMALL = @SMALL + 1, to facilitate summarize the model's content in a time step.
TerraME: If one agent can register itself in the space with a type, then we can count using the registering
Timer{ Event{ message = function(event) local mycount = 0 ForEachCell(cs, function(cell) mycount = mycount + table.size(GetAgents(cell, "fish")) end) print("Number of fishes: "..mycount) end} }
Examples of models
- Mud particles can be piled up on top of each other. Pilling up will result in some pressure which can lead to disintegration of mud piles resulting in mud slides and avalanches
- Bridge builder. Users are instructed to build a bridge with the minimal number of bricks. Cars move from the left to the right. Fall down if it is empty below it and crash when reaches the bottom. The bricks compute the force acting on it, and falls down if there is enough pressure above, and space below to move.
- The doctor cures one infected person in its neighbourhood, and one infected person can infect another person with a probability.
Papers
Agentsheets: A medium for creating domain-oriented visual languages
Repenning, A. Sumner, T., 1995 | Computer | 129 citations in Scholar |
Customized visual representations enable end users to achieve their programming goals. Here, designers work with users to tailor visual programming languages to specific problem domains. We describe a design methodology and a tool for creating domain oriented, end user programming languages that effectively use visualization. We first describe a collaborative design methodology involving end users and designers. We then present Agentsheets, a tool for creating domain oriented visual programming languages, and illustrate how it supports collaborative design by examining experiences from a real language design project. Finally, we summarize the contributions of our approach and discuss its viability in industrial design projects.
The Pragmatic Web: Agent-based multimodal Web interaction with no browser in sight
A. Repenning and J. Sullivan, 2003 | IFIP Conference on Human-Computer Interaction | 9 citations in Scholar |
In contrast to the Syntactic and Semantic Web the Pragmatic Web is not about form or meaning of information but about how information is used. The Pragmatic Web’s mission is to provide information consumers with computational agents to transform existing information into relevant information of practical consequences. This transformation may be as simple as extracting a number out of a table from a single Web page or may be as complex as intelligently fusing the information from many different Web pages into new aggregated representations.
The Pragmatic Web language extensions (such as the WWW Read condition) allow agents to parse Web pages. Agents can extract information from HTML or XML pages.
There is an interesting exemple of a real-time application. Agents read data of temperature and wind direction from the Internet, calculate the weather conditions for mountain biking, and show it visually in their icons, as shown in the figure in the right side. The paper does not describe wether Agentsheets has any connections to GIS, therefore we can assume that the agents were put in the space manually.
TerraME: the location of an agent can be calculated with a Region (Trajectory), but TerraME lacks dynamical visual representation, that can be solved with an R integration for plotting (or perhaps TerraView could be enhanced to help that?)
The paper also describes Mobility Agents. They are agents that answer questions about the transportation system to a traveler. The system is composite by equipaments such as GPS in the buses and wireless devices to the travelers. The agents should do, for instance, 1) finding the location of the right bus; 2) informing Melanie how close it is to the bus stop she is at; 3) warning her when it is arriving; 4) guiding her to board the bus; 5) informing her when her destination is approaching; and 6) reminding her to gather her belongings before leaving the bus. There is a third person in the model, that customizes the agents and observes the transportation situation in real-time.
Agent-based end-user development
A. Repenning and A. Ioannidou, 2004 | Communications of the ACM | 10 citations in scholar |
The goal of agent-based end-user development (EUD) is to empower end users with agents they can instruct directly. […] Conceptually, the idea of instructing agents includes what is often called end-user programming that addresses some of the major objections users have toward agents, such as the lack of trust and the need to train them.
Agents communicate with each other in a number of ways. They may be using spatial references expressed as relative or absolute cell coordinates, broadcasting without a spatial reference to agents of a certain type, or sending messages wirelessly to agents hosted on other computers.
The authors repeat the bike example above, including the figure. There is also another model for constructing and testing bridges.
Using AgentSheets to teach simulation to undergraduate students
Joaquim Carvalho (2000) | JASSS 3(3):2 | html |
Abstract: The AgentSheets simulation software has been used for the last two years in a course for undergraduate students. The ease of use and extreme care put into the interface makes this tool a classroom success, allowing students to have hands-on experience of model construction without the overhead of learning complicated frameworks or programming languages. The limitations of the tool, in particular those that make difficult the construction of more complex models, are reviewed.