Agents as Multi-threaded Logical Objects
Keith L. Clark and Peter Robinson
Abstract
In this paper we describe a distributed object oriented logic
programming language, which is an extension of the
multi-threaded Qu-Prolog described in Programming internet distributed DAI applications in Qu-Prolog. An object is a collection of threads deductively
accessing and updating a shared logic program.
The key features of the language, such as static and dynamic object methods and
multiple inheritance, are illustrated through a series of small examples.
We show how we can implement
object servers, allowing remote spawning of objects, which we can use as
staging posts for mobile agents. We give as an example an
information gathering
mobile agent that can be queried about the information it has so far
gathered whilst it is
gathering new information.
Finally we define a class of
co-operative reasoning agents that can do resource bounded inference for full
first order predicate logic, handling multiple queries and information updates
concurrently.
We believe that the combination of the concurrent OO and the LP
programming paradigms produces a powerful tool for quickly implementing
rational multi-agent applications on the internet.
Click here
for a compressed PostScript version of the paper (OOQuP.ps.gz,
145554 bytes).