hi
This is the design plan of the communication
language between the
agents.
Shuji Morita
Kobe University
morita@octopus.cs.kobe-u.ac.jp
1 Scope
2 The classification of the conversation
3 The outline of FIPA ACL
3.1 The expression which transmits information
3.2 The expression of the question of the
truth
3.3 The expression of the question of the
reference
3.4 The expression of the order
4 The outline of SL
4.1 The grammar of SL
5 The design of the language
5.1 Grammar
5.2 Addition AtomicFomula
5.3 Component
5.4 Example
6 Reference literature
The purpose of this sentence is to express the conversation of the inhabitant in the disaster with the outline of FIP ACL and SL.
The conversation which an inhabitant talks
about can be classified as follows.
The conversation of transmitting information
The conversation that truth is asked to it
The conversation which it is referred to
for
The conversation of the order
Though there is a conversation which doesn't
apply to the upper classification, it is
limited at the time of the disaster, and
it applies to this classification mostly
by the actual conversation.
This classified conversation can be expressed
as follows with FIPA ACL.
3.1 The expression which transmits information
An agent i transmits a proposition A to the
agent j.There is the following thing in the
communicative act of FIPA ACL in this case.
inform
confirm
disconfirm
This expression becomes the following when
a communication act is inform.
(inform
:sender i
:receiver j
:content A
)
3.2 The expression of the question of the
truth
An agent i asks an agent j the truth of the
proposition A.There is the following thing
in the communication act of FIPA ACL in this
case.
query-if
This expression becomes the following.
(query-if
:sender i
:receiver j
:content A
)
It answers as follows if a proposition A
is truth.
(inform
:sender i
:receiver j
:content A
)
It answers as follows if a proposition A
is truth.
(inform
:sender i
:receiver j
:content (not A)
)
3.3 The expression of the question of the
reference
"Where is the house of S?" It thinks
in the question.This is expressed temporarily
with (home-position S T).It is expressed
as follows with SL in the place of the house
of S.
(itoa ?x (home-position S ?x))
The question of "Where is the house
of S?" can be expressed by asking about
this.There is the following thing in the
communication act of FIPA ACL in this case.
query-ref
This expression becomes the following.
(query-ref
:sender i
:receiver j
:content (itoa ?x (home-position S ?X)
)
This answer becomes the following.
(inform
:sender i
:receiver j
:content (= (itoa ?x (home-position S ?X))
T
)
)
Or, this answer becomes the following.
(inform
:sender i
:receiver j
:content (home-position S T) )
)
3.4 The expression of the order
A movement is expressed with ActionExpression,
and the practice is required.There is the
following thing in the communication act
of FIPA ACL in this case.
request
request-when
reqwest-whenever
A proposition A is made the condition of
the order.This expression becomes the following.
(request
:sender i
:receiver j
:content ActionExpression
)
(request-when
:sender i
:receiver j
:content (ActionExpression A)
)
(request-whenever
:sender i
:receiver j
:content (ActionExpression A
)
SL is the language to express content of
FIPA ACL.
4.1 The grammar of SL
Content = "(" ContentExpression+
")".
ContentExpression = IdentifyingExpression
| ActionExpression
| Proposition.
Proposition = Wff.
Wff = AtomicFormula
| "(" UnaryLogicalOp Wff ")"
| "(" BinaryLogicalOp Wff Wff ")"
| "(" Quantifier Variable Wff ")"
| "(" ModalOp Agent Wff ")"
| "(" ActionOp ActionExpression
")"
| "(" ActionOp ActionExpression
Wff ")".
UnaryLogicalOp = "not".
BinaryLogicalOp = "and"
| "or"
| "implies"
| "equiv".
AtomicFormula = PropositionSymbol
| "(" BinaryTermOp Term Term ")"
| "(" PredicateSymbol Term+ ")"
| "true"
| "false".
BinaryTermOp = "="
| "\="
| ">"
| ">="
| "<"
| "=<"
| "member"
| "contains"
| "result".
Quantifier = "forall"
| "exists".
ModalOp = "B"
| "U"
| "PG"
| "I".
ActionOp = "feasible"
| "done".
Term = Variable
| FunctionalTerm
| ActionExpression
| IdentifyingExpression
| Constant
| Sequence
| Set.
IdentifyingExpression = "(" ReferentialOperator
Term Wff ")".
ReferentialOperator = "iota"
| "any"
| "all".
FunctionalTerm = "(" "cons"
Term Term ")"
| "(" "first" Term ")"
| "(" "rest" Term ")"
| "(" "nth" Term Term
")"
| "(" "append" Term Term
")"
| "(" "union" Term Term
")"
| "(" "intersection"
Term Term ")"
| "(" "difference" Term
Term ")"
| "(" ArithmeticOp Term Term ")"
| "(" FunctionSymbol Term* ")"
| "(" FunctionSymbol Parameter*
")".
Constant = NumericalConstant
| String
| DateTime.
NumericalConstant = Integer
| Float.
Variable = VariableIdentifier.
ActionExpression = "(" "action"
Agent Term ")"
| "(" "|" ActionExpression
ActionExpression ")"
| "(" ";" ActionExpression
ActionExpression ")".
PropositionSymbol = String.
PredicateSymbol = String.
FunctionSymbol = String.
Agent = Term.
Sequence = "(" "sequence"
Term* ")".
Set = "(" "set" Term*
")".
Parameter = ParameterName ParameterValue.
ParameterValue = Term.
ArithmeticOp = "+"
| "-"
| "*"
| "/"
| "%".
String = Word
| StringLiteral.
Word = [~ "\0x00" - "\0x20",
"(", ")", "#",
"0" - "9", ":",
"-", "?"]
[~ "\0x00" - "\0x20",
"(", ")"]*.
ParameterName = ":" String.
VariableIdentifier = "?" String.
Sign = [ "+" , "-" ].
Integer = Sign? DecimalLiteral+
| Sign? "0" ["x", "X"]
HexLiteral+.
Dot = ".".
Float = Sign? FloatMantissa FloatExponent?
| Sign? DecimalLiteral+ FloatExponent.
FloatMantissa = DecimalLiteral+ Dot DecimalLiteral*
| DecimalLiteral* Dot DecimalLiteral+.
FloatExponent = Exponent Sign? DecimalLiteral+.
Exponent = ["e","E"].
DecimalLiteral = ["0" - "9"].
HexLiteral = ["0" - "9",
"A" - "F", "a"
- "f"].
StringLiteral = "\""( [~ "\""]
| "\\\"" )*"\"".
DateTime = Year Month Day "T" Hour
Minute
Second MilliSecond TypeDesignator?.
Year = DecimalLiteral DecimalLiteral DecimalLiteral
DecimalLiteral.
Month = DecimalLiteral DecimalLiteral.
Day = DecimalLiteral DecimalLiteral.
Hour = DecimalLiteral DecimalLiteral.
Minute = DecimalLiteral DecimalLiteral.
Second = DecimalLiteral DecimalLiteral.
MilliSecond = DecimalLiteral DecimalLiteral
DecimalLiteral.
TypeDesignator = ["a" - "z",
"A" - "Z"].
AtomicFomula of SL is added so that it can
express a conversation in the disaster.
5.1 Grammar
AtomicFomula = "(" Property Object
Value [Time] ")"
| "(" ObjectRelation Object Object
[Time] ")"
| "(" EventRelation Wff Wff ")"
| "(" "state" Object
State ")"
| "(" ConjectureOp Wff ")"
ActionExpression = "(" "action"
Object Action ")"
Object = "(" ObjectKind DecimalLiteral
")"
| "(" ObjectKind "t"
DecimalLiteral ")"
| "(" "set" Object* ")"
| "(" Object Modify ")"
Modify = Wff
Value = Constant
| "(" UnitWord Constant ")"
Time = "(" "time" DateTime
[TimeOp]")"
| "(" "time" TimeWord
[TimeOp]")"
| "(" "time" Duration
")"
| "(" "time" Wff ")"
Duration = "(" "duration"
Value ")"
ConjectureOp = "certainly"
| "guess"
| "hearsay"
| "appearance"
| "likeliness"
State = "(" StateName [ Source
]
[ Goal ]
[ Time ]
[ Place ]
[ Implement ]
[ Manner ]
[ Degree ]
[ Frequency ]
[ Obligation ]
")"
Action = "(" ActionName [ ActionObject
]
[ Source ]
[ Goal ]
[ Time ]
[ Place ]
[ Implement ]
[ Manner ]
[ Degree ]
[ Frequency ]
[ Obligation ]
")"
ActionObject = "(" "object"
Object ")"
| "(" "object" ACLComunicativeAct
")"
Source = "(" "source"
Object ")"
| "(" "source" Place
")"
Goal = "(" "goal" Object
")"
| "(" "goal" Place ")"
Place = "(" "Place" [PlaceOp]
Object ")"
| "(" "Place" "("
"position" X Y ")"
| "(" "Place" Wff ")"
X = NumericalConstant
Y = NumericalConstant
Implement = "(" "implement"
Object ")"
0Manner = "(" "manner"
MannerWord ")"
Degree = "(" "degree"
Value ")"
| "(" "degree" DegreeWord
")"
Frequency = "(" "frequency"
Value ")"
| "(" "frequency" FrequencyWord
")"
Obligation = "(" "obligation"
ObligationOp ")"
ObligationOp = "must"
| "should"
| "necessity"
| "inevitability"
| "recommendation"
| "permission"
5.2 Addition AtomicFomula
5.2.1 ( Property Object Value [Time] )
The construction that the characteristics
of Object, size, width, a color, sex, the
element which is the target which isn't strange
comparatively are expressed.It has Property,
Object, Value and Time as a component.Time
can be omitted.It is put in this construction,
and the following sentence fits.
The color of the building is red.
The person is a man.
The highest speed per hour of the car is
200km per hour.
A P building is built seven floors.
5.2.2 ( ObjectRelation Object Object [Time]
)
The construction that relations between Object
and Object are described.
It has ObjectRelation, Object, Object and
Time as a component.
Time can be omitted.It is put in this construction,
and the following sentence fits.
i is father of j.
i and j were friends.
This building is mine.
The neighbor of the hospital is school.
That road is connected with this road.
5.2.3 ( "state" Object State )
It consists of Object and State as a component.The
construction that the condition of Object
is described.It is put in this construction,
and the following sentence fits.
I was in the hospital at 10 o'clock.
He has severe injury.
My house burns.
A person is buried with this building.
All the buildings of the A area collapsed.
5.2.4 ( EventRelation Wff Wff )
The construction that relations between the
sentence and the sentence are described.It
has EventRelation, Wff and Wff as a component.It
is put in this construction, and the following
sentence fits.
Because he got hurt, he told a hospital.
If a house burns, I go to the refuge.
5.2.5 ( ConjectureOp Wff )
The construction that the sentence of the
guess is expressed.
It has ConjectureOp and Wff as a component.The
kind of the guess is specified with ConjectureOp.
5.2.5.1 ConjectureOp = "expected"
It means an expected guess.It is put in this
construction, and the following sentence
fits.
He must be safe.
This must be safe.
He is supposed to be all right.
5.2.5.2 ConjectureOp = "guess"
It means a guess.It is put in this construction,
and the following sentence fits.
That building is probably fire.
That way will be blocked.
5.2.5.3 ConjectureOp = "hearsay"
It means a hearsay.It is put in this construction,
and the following sentence fits.
It is said that he is not here.
It is said that he is sick.
5.2.5.4 ConjectureOp = "appearance"
It is put in this construction, and the following
sentence fits.
It seems that he is severe illness.
This car seems to break.
5.2.5.5 ConjectureOp = "likeliness"
It is put in this construction, and the following
sentence fits.
Fire may spread out here.
An expressway may crumble.
5.3 Component
5.3.1 Object
Object is the component of the world.When
it says concretely, a person, a building,
a road point at the simple substance of the
thing or a meeting.There is the following
method as the way of expressing Object.
5.3.1.1 ID expression
The kind of Object is specified and expressed
with ID assigned to Object.
(Example)
The building where ID is p
The way where ID is q
5.3.1.2 Pronoun expression
The thing that ID isn't understood in the
moment is expressed by the kind of Object
and temporary ID (to put "T" in
front of ID to distinguish it from the expression
with 5.3.1.1).
(Example)
A person is hurt.
(state (agent T 0) (injury))
The way where ID is q
5.3.1.3 modification expression
A red building A.The car which my father
owns.Object that it is modified like this
is expressed by the form of (Object Modify).
(Example)
A red building p is the house of i.
(own (agent i) ((building p) (color * red)))
Like this, a part to limit is described with
"*".This is the same as the following.
(and (own (agenti) (building p))
(color (agent p) red))
5.3.1.4 Plural expression
Plural Object is expressed.
(Example)
i and j were said to the hospital p.
(done (action (set (agent i) (agent j))
(move (goal ((building p) (type hospital))))))
5.3.2 Value
5.3.2.1 Constant expression
It is expressed with the numerical value
or the word.
(Example)
100, 0x045, red, hospital
5.3.2.2 Unit expression
A unit is given to the numerical value and
expressed.
(Example)
(meter 5)
(yen 8)
5.3.3 Time
5.3.3.1 Date
It is expressed with the date.The expression
of the progress of the time is added with
TimeOp.
5.3.3.2 The word of the time
It is expressed with the word which expresses
time, now and past, and so on.
The expression of the progress of the time
is added with TimeOp.
5.3.3.3 The expression of the amount of time.
(Example)
Five hours (time (duration (hour 5)))
Three days (time (duration (day 3)))
5.3.3.4. The expression of the sentence
(Example)
When i got hurt.
(time (state (agent i) (injury)))
When the house of i is fire.
(time (state ((building T 0) (own (agent
i) *)) (fire)))
5.3.4 State
It is the component to express state.It has
Source, Goal, Space, Implement, Manner and
Frequency as an argument.All arguments can
be omitted.It has the possibility that meaning
becomes imperfect by omitting it.
5.3.5 Action
It is the component to express action.It
has ActionObject, Source, Goal, Space, Implement,
Manner and Frequency as an argument.All arguments
can be omitted.It has the possibility that
meaning becomes imperfect by omitting it.
5.3.6 ActionObject
The object of the action is expressed.Object
or ACLCommunicativeAct is made a component.
(Example)
When it has Object as a component.
j was treated with i.
(done (action (agent i) (treat (object (agent
j)))))
When it has ACLCommunicativeAct as a component.
i said "A building p burns." to
j.
(done (action (agent i)
(say (object (inform
:sender i
:receiver j
:content (state (building p) (fire)))))))
5.3.7 Source
The start point of the change.
It has Object or Place as a component.
(Example)
When it has Object as a component.
i bought a car from j.
(done (action (agent i) (buy (goal (agent
j)))))
When it has Space as a component.
i was moved from the building p.
(done (action (agent i) (move (goal (place
(building p))))))
5.3.8 Goal
The end of the change.
It has Object or Place as a component.
(Example)
When it has Object as a component.
i bought j a car.
(done (action (agent i) (buy (goal (agent
j)))))
When it has Place as a component.
i was moved to the building p.
(done (action (agent i) (move (goal (place
())))))
5.3.9 Place
The place where a movement is done. Or, a
place to be state.
5.3.9.1 The expression of Object
A place is expressed with Object.The one
related to the position with Object is expressed
with PlaceOp.PlaceOp can be omitted.
(Example)
In the building p (place in (building p))
On the road q (place on (road q))
5.3.9.2 The expression of a degree of particulars
A position is expressed by the X coordinate,
the Y coordinate.
(Example)
X coordinate 10, Y coordinate 40
(place (position 10 40))
5.3.9.3 The expression of the sentence.
(Example)
where there is i
(place (state (agent i) (be)))
where i extinguished the fire
(place (done (action (agent i) (extinguish))))
5.3.10 Implement
The thing used when a movement was done is
expressed.
(Example)
i was moved by car to school.
(done (action (agent i) (move (goal ((building
T 0) (type * school))) implement (car T 1))))
5.3.11 Manner
The aspect of the movement and the aspect
of the condition are expressed.
(Example)
A building p crumbled suddenly.
(state (building p) (collapse (manner suddenly)))
5.3.12 Degree
5.3.12.1 The expression of Value
(Example)
i was moved 5km.
(done (action (agent i) (move (degree (kilometer
5)))))
5.3.12.2 The expression of DegreeWord
(Example)
A building p burns violently.
(state (building p) (fire (degree hard)))
5.3.13 Frequency
5.3.13.1 The expression of Value
(Example)
i was said twice.
(done (action (agent i) (say (frequency (time
2)))))
5.3.13.2 The expression of DegreeWord
(Example)
i often gets hurt.
(state (agent i) (injury (frequency often)))
5.4 Example
An agent i tells an agent j in all the sentences.
(1) Call a rescue team
(request
:sender i
:receiver j
:content (action (agent j) (call ((agent
T 0) (job * ambulance-team))))
:language sl
)
(2) Carry me to the p hospital.
(request
:sender i
:receiver j
:content (action (agent j)
(carry (object (agent i))
(goal ((building p) (type hospital)))))
:language sl
)
(3)It remove rubble at me
(request
:sender i
:receiver j
:content (action (agent j) (remove (object
rubble)
(place on (agent i))))
:language sl
)
(4) Help me.
(request
:sender i
:receiver j
:content (action (agent j) (help))
:language sl
)
(5) Treatment me.
(request
:sender i
:receiver j
:content (action (agent j) (treatment (object
(agent i))))
:language sl
)
(6) Go to the refuge
(request
:sender i
:receiver j
:content (action (agent j) (move (goal ((building
T 0) (type * refuge)))))
:language sl
)
(7) Carry A to the hospital.
(request
:sender i
:receiver j
:content (action (agent j) (carry (object
A)
(goal ((building 0) (type * hospital)))))
:language sl
)
(8) Extinguish fire of my house.
(request
:sender i
:receiver j
:content (action (agen j) (extinguish ((building
T 0) (own (agent i) *))))
:language sl
)
(9) Transmit that I am safe to A.
(request
:sender i
:receiver j
:content (action (agent j)
(say (object (inform
:sender j
:receiver a
:content (state (agent i) (safety))
:language sl))))
:language sl
)
(10) I am to transmit that you are in the
refuge p if going to A.
(request-when
:sender i
:receiver j
:content ((action (agent j)
(say (object (inform
:sender j
:receiver a
:content (state i (be (place ((building p)
(type * refuge)))))
:language sl))))
(state ((agent j) (meet (goal (agent a)))))
)
(11) It can be done to me with the telephone
if seeing a son.
(request-when
:sender i
:receiver j
:content ((action (agent j)
(tell (object (inform
:sender j
:receiver a
:content (done (action (agent j)
(look (object ((agent T 0) (son (agent i)
*)))))))
:language sl))))
(done (action (agent j) (look (object ((agent
T 0) (son (agent i) *)))))))
)
(12) Run away if seeing household chores.
(request-whenever
:sender i
:receiver j
:content ((action (agent j) (escape))
(done (action (agent j) (look (object ((building
T 0) (state * (fire))))))))
)
(13) My house burns.
(inform
:sender i
:receiver j
:content (state (building T 0) own((agent
i) *)) (fire))
)
(14) The right building of p burns.
(inform
:sender i
:receiver j
:content (state (building T 0) right(building
p) *)) (fire))
)
(15) I am in the p hospital now.
(inform
:sender i
:receiver j
:content (state (agent i) (be (place (building
p) (type * hospital))
(time now)))
)
(16) A person may be buried with the building.
(inform
:sender i
:receiver j
:content (likeliness (state (agent T 0) (buried
(placuilding T 0)))))
)
(17) A must be in school now
(inform
:sender i
:receiver j
:content (certainly (state (agent A) (be
(place ((building T 0) (type * school)))
(time now))))))
)
FIPA HOME
http://www.fipa.org/
Agent Communication Language Specification
http://www.fipa.org/specs/fipa00003/
FIPA SL Content Language Specification
http://www.fipa.org/specs/fipa00008/