plural logo

Plural Noos

A Representation Language Extension for Agent Communication

Agent Communication with Plural Noos

Plural Noos is an extension of the knowledge representation language Noos for intelligent agent communication. The research reported here has been developed at the IIIA.

Plural provides a seamless extension of Noos that supports a distributed scoping and reference for all the basic constructs in Noos. An agent in Plural is a particular knowledge system developed in Noos that has a network address. The acquaintances of an agent are those agents with known address---as in the actors model. Three main capabilities of Plural Noos are:

Using Plural Noos, arbitrary Noos descriptions (of entities and methods) can be transmitted over the network from one agent to another. In particular, cases and CBR methods can be transmitted from a CBR agent to another.

For a concrete application of Plural see our page on Cooperative Case-based Reasoning.

Remark. In the following text feature is used in the sense of feature term formalism as used in Noos.

Alien references

Alien references extend Noos references to agents over the net. For instance, a reference like
(>> feature1 of problem2)
is extended to an alien reference on a specific agent as
(>> feature1 of problem2 at agent3).
Syntactically, a reference to a feature in an agent-i like
(>> feature of entity)
once transmitted to a new agent agent-j becomes an alien reference equivalent to
(>> feature of entity at agent-i)
in agent-j; and an identifier of an entity in agent-i like entity55 once transmitted to a new agent becomes an alien reference like entity55@agent-i in agent-j. Alien references are transmitted over the network: if entity55@agent-i is a value of the feature my-friend of entity99 in agent-j and a new agent has the reference
(>> my-friend of entity99 at agent-j)
it will get the original alien reference entity55@agent-i.

Foreign evaluation

Foreign evaluation allows an agent to use a method owned by another agent ---as in remote procedure call (RPC). Specifically, foreign evaluation allows an agent agent-i to ask an agent-j to execute a specific method method-k@agent-j for a given problem-n of agent-i, as in the expression
(noos-eval (method-k@agent-j problem-n) at agent-j).
In this process, agent-j receives the alien reference problem-n@agent-i and applies method-k to it. During evaluation, further references in agent-j of features of problem-n@agent-i are interpreted as alien references and automatically engage a transmission to agent-i asking the value for that feature. Agent-i is responsible for inferring that value and transmit it as answer to agent-j (in fact an alien reference to that value).

experiment-10 Figure 1. The fearure term of an experment in the protein purification domain (see CoopCBR).

Alien references avoid the problem of maintaining state when objects with state are copied over the network. State is local to agents, and when a description is referenced by another agent, an alien reference is transmitted* regarding the fact that alien references are local to a site (here, an agent).

In essence, if we view a Noos description as a labeled graph, transmission of a description starts at the graph root and ``copies'' the graph in the destination in the following way: if a graph node is constant (like a number or a string) a fresh copy is produced, otherwise an alien reference to that node is created. Since Noos performs lazy evaluation, not all the nodes in a graph are transmitted when the root is referenced, but only those needed by alien references. Path equality (sharing) and circularities in the graph are preserved.

[*] Our approach is similar to that of the distributed object-oriented language Obliq A major difference is that Plural transmit terms over the net while Obliq transmit closures.

Mobile methods

Foreign evaluation requires the remote agent to own a particular method that can then be used by the originating agent. For some cooperation modes it is necessary to support so-called mobile code or migrating programs. Mobile methods are supported by Plural Noos by the capability of transmitting method descriptions. A mobile method description is first defined in an originating agent agent-i. Then, the Plural Noos construct jump can be used to bind the mobile method with the appropriate references and to instantiate the method at the destination agent. In the following example a mobile-method-k---already defined in agent-i---jumps to agent-j containing references to local information (description) and remote information (requirements).

(jump (define (mobile-method-k)
          (description (>> description of problem-13)))
          (requirements (>> of mm-requirements at agent-j)))
     to agent-j) 
When a method jumps to a remote agent, the whole task/method decomposition of the mobile method is ``copied'' in the following sense: the name of the built-in of which the method is a refinement is transmitted, as well as its subtasks. Recursively, the methods defined in the originating agent for those subtasks are also ``copied''. The references of the mobile method in the originating agent are transformed to alien references in the way we explained before. In the example shown, reference
(>> description of problem-13)
in description is transformed at agent-j to the alien reference
(>> description of problem-13@agent-i).

[Cooperative CBR] [Agents Page] [Feature Terms] [Federated Learning] [Noos] [Team Members]