Part 4 - Future work and Conclusion
This is clearly the start of an enormous program
of implementation and testing.
The major immediate issues to be solved are the following:
Define the server queries
Nail down the list of server queries and responses above.
Is this list sufficient to implement all current sub-symbolic
agent minds and worlds?
Precisely express these server queries and responses in XML.
Define which fields are mandatory and which are optional.
Define all error conditions, error codes,
error text messages, etc.
Define the client user view
Having defined the server queries and encoded them in XML,
server authors can now construct servers,
write programs to talk to servers,
display the results, etc.
So in that sense, our work is done.
But how about the client user?
How could they use the system, without having to write
programs to talk to servers?
Obviously some client software is needed.
The basic question is whether this software can be provided
through existing Web browsers
or whether some plug-in
or separate client application needs to be installed
by each user.
Client use through existing Web browsers
Consider that we want the non-technical client user
to be able to do the following:
- Browse existing Mind and World servers.
- Specify a Mind server with a number of arguments
(some of which may be the addresses of other Mind servers),
and a World server with a number of arguments.
- Be able to link to this Mind/World combination (with arguments)
from a Web page, so that any 3rd party may run it.
- Run this Mind/World combination.
- View the run in progress.
3rd parties can also view the run in progress.
- The run either lasts for a fixed time,
or until the user clicks some "End run" button.
This could in fact all be done in existing Web browsers,
if we can assume the existence of an Internet portal
to help the non-technical user:
- Servers have URLs at which they describe what they do.
- A public site, that we shall call
construct WWM combinations.
It provides a HTML
form in which one can specify
the two remote servers,
plus arguments for them.
When you complete the form, it sets up a
explaining the arguments and what servers are being used,
and providing a "Start run" button.
- When you (or any 3rd party) click the "Start run" button
on this page,
a special client program starts.
will implement some algorithm
to the remote Mind and World servers,
managing time-outs, repeated queries, and so on.
Perhaps this program actually runs on
Or perhaps it is a Java applet
and running on the client machine.
Once the client user clicks the "Start run" button,
directs us onto a new page, specific to this particular run:
This provides links to the World display URL,
Mind display URLs, etc.
This run can be viewed by any 3rd party.
Either the client program runs for
a fixed number of steps and then terminates
(in which case it could appear to the client user as a normal CGI script,
albeit a very long one),
or else clicking the button starts a
program that does not terminate.
In the latter case
provides an "End run" button perhaps in the Java applet
or perhaps on the page above.
When clicked, this terminates the program that "Start run" began.
In fact we want other people to be able to view the run
at the URL above,
but only the client user that started the run
(which is not necessarily user-no-5503)
can terminate it.
In which case we store information on the client side,
e.g. as a cookie, or perhaps have a special URL:
Presumably the client user can bookmark this, log out,
and wait for weeks
before coming back and hitting "End run".
will have pages listing of all the combinations constructed on it,
perhaps sorted by World.
Using the "End run" information,
may be able to highlight combinations that scored well,
run "Top 10" lists and so on.
Servers have URLs as well,
and each server could have links to all the servers it calls,
all the servers that call it,
all the combinations it was ever part of
(i.e. it would point to
many different client URLs around the network),
and which of these combinations scored well.
Dedicated client software
While it should be possible to use the WWM through a
normal Web browser,
it should be possible to write a dedicated
client application that makes using it easier
for non-technical client users
(and probably server authors too).
Ideally this software would
still allow us, when we are finished, to
to a successful Combination
that can still be run by someone who does not have the software.
Also conversely, clicking on a Combination
in our Web browser would launch this software.
To fully define the above,
we should build and test
different types of WWM networks:
- Implement all of the agent minds and worlds mentioned
in this paper,
including Tyrrell's world,
Noda's soccer server,
a generic Q-learning mind,
generic Action Selection servers, etc.
- Implement all of the various alternative forms of WWM servers and
described in this paper
- MindM servers,
shared virtual worlds,
world display URLs (for virtual worlds and real robots),
synchronous and asynchronous worlds,
automated searches with no user interface, evolutionary searches,
- Take existing AI projects that have already been put online
[see Yahoo list of AI programs online]
and put them online as WWM servers
- including Eliza, MGonz, etc.
If all of the above is solved,
we should have a scheme for implementing the full promise
of the WWM for all sub-symbolic models of mind,
and many simple symbolic ones.
What, then, is the next step?
- Implement more complex symbolic models of mind
as networks of WWM servers.
Presumably these will be more high-bandwidth
than the schemes discussed in this paper.
The servers will communicate by some agent language,
rather than just by numeric values.
As discussed above, standardising a high-level agent language
Within symbolic AI, DPS uses multiple
co-operating minds to solve one problem.
We can currently implement this on the WWM
using a top-level
to collate multiple Mind servers' results
to solve a problem.
There is scope, though, for expanding the list of
server queries to more efficiently
implement some of the DPS models, such as blackboard architectures
and contract nets.
- Apply the model to more than just behaviour.
Can we share / use /
partially-override other people's representations?
There may be applications to
distributed memory across the network
[Porter et al.],
symbol-grounding using multiple representations.
Note that we can already implement something like this with the current system,
where the same input goes to multiple Mind servers,
each of which may form its own representations.
Taking this further might involve a representation
spread over multiple servers,
or servers passing representations to each other.
- Servers might send signals to each other
that are slightly independent of the current state.
For example, a flow of emotions or hormones
or excitation or inhibition flowing through the network
[e.g. Maes, 1989,
Perhaps some of this could be done with the
"Change mind strength" message above.
Or one could have servers constructing new plans and thoughts
independent of the current state.
Perhaps "consciousness" servers constructing a flow of narratives
through the network.
- Can we combine high-bandwidth (symbolic)
and low-bandwidth (numeric) servers
- Minds talking to Minds.
- As discussed,
we may have a mind server talking to another mind server
as its "world".
In this case we could have "real" societies of individuals
instead of just societies of mind.
This may relate to experiments in autonomous language formation
[Steels and Kaplan, 1999],
transmission of memes
and so on.
In fact, the first test of this system will probably be in the domain
of language evolution
There are two issues here - first,
that we need a system of decentralised network AI minds,
and second a proposed protocol for it.
Even if the protocol here is not adopted,
the first part of
(the need to decentralise AI)
stands on its own.
Endnote - Showing the world what a mind looks like
If the WWM scheme becomes successful,
much of the user population of the Internet
will gradually become familiar with minds made up of hundreds
or even thousands of distributed components;
minds that have little identifiable headquarters,
but are made up of a crowded collection of sub-minds,
duplicating, competing, overlapping, communicating
strategies constantly bubbling up, seeking attention, wanting to be given control of the body"
Such models may be long familiar
(at least in theory) to AI researchers,
but they are not much understood outside of AI.
As a result, outside of AI, people still tend to judge statements such as
"The mind is a machine"
by the standards of machines they
are familiar with, such as, say, Microsoft Word.
The WWM scheme may help large numbers of people
expand their imagination to think about
what a mind could be.
Thanks to my brother Richard
for encouraging me to pursue this project.
Thanks to Dave O'Connor,
David Sinclair and
for important contributions and discussions.
Thanks to Elizabeth, Thomas and James for putting up with my
- World - aka Body
- A server that receives actions and returns state.
- Mind - aka behavior, module, submind
- A server that receives state and returns actions.
- Society - aka collection, network
A number of
Mind servers calling each other to
produce an action.
A single top-level Mind server interfaces with the outside world,
receiving the state and returning actions.
- Combination - aka Creature, agent
- A combination of a certain specified Mind server
(which may have a Society behind it)
with a certain specified World server.
The Mind server "runs" in the World server.
Return to Contents