Programming Agents without a Programming Language
Agents have the potential to actively participate in accomplishing tasks, rather than serving as passive tools as do today's applications.
However, people do not want generic agents--they want help with their jobs, their tasks, their goals.
Agents must be flexible enough to be tailored to each individual.
The most flexible way to tailor a software entity is to program it.
The problem is that programming is too difficult for most people today.
2. • Agents have the potential to Agents have the potential to actively participateactively participate in in
accomplishing tasks, rather than serving asaccomplishing tasks, rather than serving as passive toolspassive tools
as do today's applications.as do today's applications.
• However, peopleHowever, people do not want genericdo not want generic agents--they wantagents--they want
help with help with theirtheir jobs, jobs, theirtheir tasks, tasks, theirtheir goals. goals.
• Agents must be fAgents must be flexibllexible enough to be tailored to eache enough to be tailored to each
individual.individual.
• The most flexible way to tailor a software entity is toThe most flexible way to tailor a software entity is to
program it.program it.
• The problem is that programming isThe problem is that programming is too difficulttoo difficult forfor
most people today.most people today.
3. Problems to restrict wide use of software agents:Problems to restrict wide use of software agents:
• How can ordinary people program agents?How can ordinary people program agents?
• Most people today would say they cannot.Most people today would say they cannot.
• How can ordinary people understand what agents areHow can ordinary people understand what agents are
doing?doing?
• Will they turn dozens or hundreds of agents loose in theirWill they turn dozens or hundreds of agents loose in their
computers if they cannot? Or even one?computers if they cannot? Or even one?
4. The End-User Programming Problem
• How can people tell agents what to do?How can people tell agents what to do?
• More generally, how can ordinary people, who areMore generally, how can ordinary people, who are
not professional programmers, program computers?not professional programmers, program computers?
• Is programming inherently too difficult?Is programming inherently too difficult?
• Can we make programming as easy as givingCan we make programming as easy as giving
directions?directions?
• Can we make programming as easy as editing?Can we make programming as easy as editing?
5. • As a step towards solving this problem, we willAs a step towards solving this problem, we will
describe a prototype system designed to allowdescribe a prototype system designed to allow
children to program agents in the context ofchildren to program agents in the context of
simulated microworlds.simulated microworlds.
• The key idea is to combine two powerfulThe key idea is to combine two powerful
techniques—techniques—
• graphical rewrite rules andgraphical rewrite rules and
• programming by demonstration.programming by demonstration.
6. KidSim
• KidSim ("Kids' Simulations") is a tool kit thatKidSim ("Kids' Simulations") is a tool kit that
allows children to build symbolic simulations.allows children to build symbolic simulations.
• Kids can modify the programming of existingKids can modify the programming of existing
simulation objects and define new ones fromsimulation objects and define new ones from
scratch.scratch.
7. • KidSim simulations consist of:KidSim simulations consist of:
• a a game boardgame board divided into discrete spaces, like a divided into discrete spaces, like a
checkerboardcheckerboard
• a a clockclock whose time is divided into discrete ticks whose time is divided into discrete ticks
• one or more one or more simulation objectssimulation objects (agents) (agents)
• a a copy boxcopy box which is the source of new simulation which is the source of new simulation
objectsobjects
• a a rule editorrule editor where rules are defined and modified where rules are defined and modified
• various other elementsvarious other elements
8.
9. Attributes
KidSim agents have three attributes:KidSim agents have three attributes:
• appearance:appearance:
• Kids can draw their own appearances for agents, encouragingKids can draw their own appearances for agents, encouraging
metaphorical thinking.metaphorical thinking.
10. • properties:properties:
• Kids can define their own data and characteristics forKids can define their own data and characteristics for
agents.agents.
• Typical ones for a monkey character might beTypical ones for a monkey character might be
"name," "age," "height," "weight," "sex," "hunger,""name," "age," "height," "weight," "sex," "hunger,"
"fear" and "climbing ability.""fear" and "climbing ability."
• Properties are name-value pairs.Properties are name-value pairs.
• They serve the same function in KidSim that variablesThey serve the same function in KidSim that variables
do in traditional programming languages.do in traditional programming languages.
• Properties have no inherent meaning to KidSim. TheyProperties have no inherent meaning to KidSim. They
have meaning only if kids use them in rules.have meaning only if kids use them in rules.
11. • rules:rules:
• Kids can define rules of behavior for agents.Kids can define rules of behavior for agents.
• The set of rules for an agent constitutes itsThe set of rules for an agent constitutes its
program.program.