CardWorld Next Steps
Prof. James A. Mason, York
University, Toronto -- 2012 August
http://www.yorku.ca/jmason/asdindex.htm
What follows is the current plan for extending the
implementation of CardWorld. Of course it will be revised as
the development progresses, but it should give an idea of the
richness of the CardWorld domain as a testbed for exploring natural
language understanding.
Even before proceeding beyond CardWorld2, it is already clear that
we must sooner or later distinguish between two different types of
Card Agents: (1) omniscient agents, which know
all about the cards and piles on the table, regardless of which
sides of cards are turned up and how cards are stacked, and (2) agents
with limited knowledge , which only know about the cards
whose faces they can "see". It will be interesting to model
agents of both of those types. Omniscient agents can also be
given unrestricted powers of operation on cards and piles, such as
turning over a card in the middle of a stacked pile and reporting
the exact number of cards in a specified collection, whether the
cards are individually visible or not. Being both omniscient
and (potentially) omnipotent, they will
be defined as instances of a CardGod subclass of
CardAgent. Agents with limited knowledge and abilities
for action will be defined as instances of a CardPlayer
subclass of CardAgent. Interestingly, CardPlayers will be more
difficult to model than CardGods, because we will have to keep track
of which individual cards and card faces a CardPlayer can "see", and
we will have to model a CardPlayer's potentially incorrect memories
and beliefs about identities and quantities of cards that the
CardPlayer has seen but can no longer observe directly.
The extensions proposed below are only provisional, for purposes of
discussion. Each additional level listed is probably overly
ambitious with regard to implementation. The actual
implementation of CardWorld3, for instance, will likely involve only
a proper subset of the extensions proposed for it.
CardWorld3
Giving CardAgent knowledge of complementarity
("the other card(s)/pile(s)")
Giving CardAgent knowledge of membership in
collections ("the cards in/of that pile/those pile(s)"; "that pile's
cards")
Giving CardAgent knowledge of exact quantities
(of cards and piles)
* allowing indefinite quantifiers and random
selection (e.g. "stack some of the hearts here", "turn over five (of
the) cards", "shuffle one of the piles")
* knowledge of standard deck(s) and their
contents for various games (with 0, 1, or 2 jokers; Euchre deck,
pinochle deck, etc.)
* knowledge of comparison and sorting orders for
cards (lower, higher; ascending, descending) and ability to change
them
CardWorld4
Giving the two card agents
(including user) points of view: i.e., private and
restricted ability to observe faces of cards
("turn over the
visible card" [in a stack], "stack all the visible hearts here")
* non-omniscient agents
(How much memory should a non-omniscient agent have for
cards observed and manipulated individually?)
* shared piles versus private hands
("ownership" of cards and piles)
* memory for cards manipulated
individually and turned face down
*
modeling capabilities and knowledge of the other agent and
of self
*
cooperative agents
* explicit knowledge and bootstrapping --
e.g. learning new definitions of kinds of piles and
collections
CardWorld5
Introducing
games with goals for each agent;
* allowing each agent to take
initiatives, including manipulating cards and asking
questions
cooperative
versus competitive games
*
competitive agents
* honest versus dishonest agents?
CardWorld6
Giving CardAgent knowledge of
inexact and comparative quantities
* quantities of cards
* degrees of spreading of piles
CardWorld7
Permitting more than two
agents, including human user(s)
link to CardWorld
home page