ProcessLink Electronic Project Lanquage (EPL) Syntax


Curly brackets have been changed to parentheses for the content field to comply with standard KQML syntax.

ProcessLink EPL messages are based on KQML but with extended performatives and a restrictive format for the message content consisting of field name and value pairs specific to the defined performatives. BNF is used but special symbols for repetition are avoided for readability. Strings are not case-sensitive.


Specific EPL messages are defined for the generic agents:


Outer Syntax

KQML-PL-EPLMessage := "(" <performative> <mandatory> <otherfields> <content> ")"
performative := <string>
mandatory := ":" "Sender" <name> ":" "Reciever" <name> ":" "Language" "ProcessLink-EPL"
otherfields := ":" <name> <value> | ":" <name> <value> <otherfields> | NIL
content := ":" "Content" "(" <content_fields> ")"
content_fields := <name> "|" <value> "&" <content_fields> | <name> "|" <value> "&" | NIL
value := <string> | "(" <string> <value> ")"
name := <string>
string := ASCII string


Content Subfields Syntax

Within a <field-value>, ProcessLink messages will use quotes to define single strings that include spaces. Otherwise, spaces will denote separate tokens in parsing.


Semantics

This is the general form of a KQML message understood by ProcessLink-compliant agents and defines the ProclessLink general message syntax. If the <name> of an <otherfield> is "Ontology", then the <value> should be a <string> with a valid URL pointing to an ontology explaining terms in the content fields.


Example

( Trace
:sender PM
:receiver Redux
:language ProcessLink
:content { Variable | "duration" "task-1" &

    Goal | "engine-design" & }

)


cjp