Dr. Mark Humphrys

School of Computing. Dublin City University.

Online coding site: Ancient Brain

coders   JavaScript worlds

Search:

Free AI exercises


WWM - Part 3 - Part 4




Part 4 - Future work and Conclusion


12. Future work

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

  1. Nail down the list of server queries and responses above. Is this list sufficient to implement all current sub-symbolic agent minds and worlds?
  2. "AIML" - 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:

  1. Browse existing Mind and World servers.
  2. 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.
  3. Be able to link to this Mind/World combination (with arguments) from a Web page, so that any 3rd party may run it.
  4. Run this Mind/World combination.
  5. View the run in progress. 3rd parties can also view the run in progress.
  6. 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:

  1. Servers have URLs at which they describe what they do.
  2. A public site, that we shall call   WWM.COM,   helps clients construct WWM combinations. It provides a HTML form in which one can specify the two remote servers, plus arguments for them.
  3. When you complete the form, it sets up a client URL at   WWM.COM   explaining the arguments and what servers are being used, and providing a "Start run" button.

  4. When you (or any 3rd party) click the "Start run" button on this page, a special client program starts. This program will implement some algorithm making requests to the remote Mind and World servers, managing time-outs, repeated queries, and so on. Perhaps this program actually runs on   WWM.COM's   machine. Or perhaps it is a Java applet written by   WWM.COM   and running on the client machine.

  5. Once the client user clicks the "Start run" button,   WWM.COM   directs us onto a new page, specific to this particular run:

    http://WWM.COM/user-no-5503/combination-no-7/run-no-20
    

    This provides links to the World display URL, Mind display URLs, etc. This run can be viewed by any 3rd party.

  6. 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   WWM.COM   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:

    http://WWM.COM/user-no-5503/combination-no-7/run-no-20/uniqueid
    

    Presumably the client user can bookmark this, log out, and wait for weeks before coming back and hitting "End run".

WWM.COM   will have pages listing of all the combinations constructed on it, perhaps sorted by World. Using the "End run" information,   WWM.COM   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 link 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.

Testing

To fully define the above, we should build and test many different types of WWM networks:

  1. 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.

  2. Implement all of the various alternative forms of WWM servers and networks described in this paper - MindM servers, MindAS servers, WorldW servers, multi-level networks, real robots, shared virtual worlds, world display URLs (for virtual worlds and real robots), time-outs, synchronous and asynchronous worlds, learning servers, automated searches with no user interface, evolutionary searches, etc.

  3. 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.

Long-term prospects

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?

  1. 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 is difficult.

    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 MindM server 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.

  2. 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.], or 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.

  3. 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, Maes, 1989a]. 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.

  4. Can we combine high-bandwidth (symbolic) and low-bandwidth (numeric) servers in networks?

  5. 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 [Dawkins, 1976], and so on. In fact, the first test of this system will probably be in the domain of language evolution [Walshe, 2001].



13. Conclusion

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 this paper (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 and learning, with "alternative strategies constantly bubbling up, seeking attention, wanting to be given control of the body" [PhD, §18.3].

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.



14. Acknowledgements

Thanks to my brother Richard for encouraging me to pursue this project.

Thanks to Dave O'Connor, Ciarán O'Leary, Amanda Marsh, David Sinclair and Ray Walshe for important contributions and discussions.

Thanks to Elizabeth, Thomas and James for putting up with my absences.




Glossary

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.



References

Return to Contents page.



ancientbrain.com      w2mind.org      humphrysfamilytree.com

On the Internet since 1987.      New 250 G VPS server.

Note: Links on this site to user-generated content like Wikipedia are highlighted in red as possibly unreliable. My view is that such links are highly useful but flawed.