Networking performatives

Previous: Notification performatives Up: Reserved Performative Names Next: Facilitation performatives

Networking performatives


register
     :name <word>
     :sender <word>
     :receiver <word>
This type indicates that the sender can deliver performatives to the agent named by the :name parameter (this subsumes the case when the sender calls itself by this name).


unregister
     :name <word>
     :sender <word>
     :receiver <word>
This type is the same as a deny of a register.


forward
     :to <word>
     :from <word>
     :content <performative>
     :language KQML
     :ontology <word>
     :sender <word>
     :receiver <word>
This type indicates that the sender wants the :to agent to process the performative in the :content parameter as if it came from the :from agent directly. It is important that the :to agent receive the package, not just the performative, or it will think that the performative is from the next-to-last step in the path.

NOTE: This will normally entail that the response(s) are also wrapped in forward(s), since the responder will want to deliver the response(s) to the requesting agent, and achieving this may involve the use of package or other networking performatives. However, it is possible that agent A must use a package to send a performative to B, but B can send a performative to A directly.

NOTE: Previous versions of KQML defined three levels of KQML syntax -- the communication (package) layer, the message layer, and the content layer. The current approach is a proper generalization, since the layers arise from the embedding of performatives.


broadcast
     :from <word>
     :content <expression>
     :ontology <word>
     :language <word>
     :sender <word>
     :receiver <word>
This type indicates that the sender would like the recipient to route the broadcast performative to each of its outgoing connections, unless the recipient has already received a broadcast performative with this :reply-with (for cycle detection).


pipe
     :to <word>
     :from <word>
     :reply-with <expression>
     :sender <word>
     :receiver <word>

This type indicates that future traffic on this channel should be routed to the :to agent, as if :to and :from were directly connected. Furthermore, the recipient is expected to pass the pipe performative toward the :to agent. Like forward, it is important that the destination receive the pipe performative, so that it knows that performatives from the next-to-last agent on the path come from the :from agent.


break
     :in-reply-to <expression>
     :sender <word>
     :receiver <word>
A performative of this type breaks a pipe. The :in-reply-to parameter value must match the :reply-with value of a previous pipe performative. Not only is the recipient of a break expected to cease piped routing, but it is also expected to pass the break up the pipe. This will have the effect of dismantling the pipe in the opposite direction in which it was built.


transport-address
     :name <word>
     :content <expression>
     :language <word>
     :ontology <word>

The transport-address performative is a way to define an association between a symbolic name for a KQML agent and a transport address. For example, the following expression asserts that the sender uses the name A to refer to the agent who can be contacted at eitech.com 4000

such peformatives can be TELLed, ASKed, MONITORed, etc.

finin@cmsc