Civilian Language Specification

From: Shuji Morita (morita@octopus.cs.kobe-u.ac.jp)
Date: Sun 11 Feb 2001 - 14:39:40 GMT


Dear Rescue-ML members

Shuji Morita
Kobe University
morita@octopus.cs.kobe-u.ac.jp

------------------

Version 0 Civilian Language Specification

1 Scope
2 The outline of the conversation
 2-1 The outline of the conversation
 2-2 Ask for help
 2-3 The understanding of the request
3 The outline of the grammar
 3-1 Message Type
 3-2 Action
 3-3 ID
4 Grammar
5 Example
 5-1 Example of inform
 5-2 Example of ask for help
 5-3 Example of request

---------------------------------------------------------------------
1 Scope

The civilian's language should be able to express real communication in the future. But, this language isn't made to have the expression beyond the necessity in the incumbent grade. It is because I think that the effective use of the communication becomes difficult. I designed the language in Version 0 so that the civilian could show it in the following.

(1) The civilian informs information on the disaster to agent.
(2) The civilian ask agent for help.
(3) The civilian can understand a request.

---------------------------------------------------------------------
2 The outline of the conversation

2-1 Inform information on the disaster

An inhabitant informs a nearby agent of the information on the disaster by using the say command. When a place is expressed with coordinates, it includes a ±30m error.

2-2 Ask for help

When he is filled up, a civilian asks help like an example (7) or (8). It is only "help" that is used as "action".

2-3 The understanding of the request

The civilian makes it the candidate of the behavior when the request is given to it as the grammar. At this time, a request sentence doesn't necessarily need to have an argument to the action.

---------------------------------------------------------------------
3 The outline of the grammar

3-1 Message Type

inform It means that the proposition of the content is true.
request It means requesting action of the content.
cancel It means canceling action of the content.
not-understood It means that an agent cannot understand the content.

3-2 Action

Each action and the relations of the parameter are as the following.

                ActionObject Source Goal Time Place
move no from to when no
say " " no no when where
tell " " no no when where
rescue object from no when where
open object  no no   when where
extinguish object no no when where
carry object from to when where
help no no no no no

3-3 ID

When ID isn't clear, it is described like a "T number". Each one gives a number to the option for the distinction.

---------------------------------------------------------------------
4 Grammar

ACLCommunicativeAct = Message

Message = "(" MessageType MessageParameter* ")"

MessageType = "inform"
                        | "request"
                        | "cancel"
                        | "not-understood"

MessageParameter = ":sender" Agent
                        | ":receiver" Agents
                        | ":content" Content

Agents = "(" "set" Agent+ ")"

Content = "(" ContentExpression+ ")"

ContentExpression = ActionExpression
                           | Proposition

Proposition = Wff

Wff = AtomicFormula
                           | "(" ActionOp ActionExpression ")"

ActionOp = "done"

AtomicFormula = Property
                           | "(" "state" Object State ")"
                           | "true"
                           | "false"

Property = "(" "type" Object ObjectType ")"

ActionExpression = "(" "action" Agent Action ")"

Agent = "(" "agent" ID ")"

Object = Agent
                           | "(" ObjectKindA ID ")"
                           | "(" ObjectKindB ID ID ")"
                           | "(" "set" Object+ ")"

State = "(" StateName [ Time ]
                                          [ Place ]
                                          [ Degree ] ")"

Action = "(" ActionName [ ActionObject ]
                                          [ Source ]
                                          [ Goal ]
                                          [ Time ]
                                          [ Place ] ")"

ActionObject = "(" "object" Object ")"
                           | ACLComunicativeAct

Source = "(" "source" Object ")"
                           | "(" "source" Place ")"

Goal = "(" "goal" Object ")"
                           | "(" "goal" Place ")"

Time = "(" "time" Integer ")"

Place = "(" "Place" Object ")"
                           | "(" "Place" "(" "position" Integer Integer ")"

Degree = "(" "Degree" Integer ")"

State = "be"
                           | "buried"
                           | "damage"
                           | "blocked"
                           | "fire"
                           | "broken"

Action = "move"
                           | "say"
                           | "tell"
                           | "rescue"
                           | "open"
                           | "extinguish"
                           | "carry"
                           | "help"

ObjectKindA = "agent"
                           | "building"
                           | "node"
                           | "rivernode"

ObjectKindB = "river"
                           | "road"

ObjectType = "Civilian"
                           | "Car"
                           | "FireBrigade"
                           | "AmbulanceTerm"
                           | "PoliceForce"
                           | "FireStation"
                           | "AmbulanceCenter"
                           | "PoliceOffice"
                           | "Refuge"

ID = ["T"]? Integer

Integer = Sign? DecimalLiteral+

Sign = [ "+" , "-" ]

DecimalLiteral = ["0" - "9"]

---------------------------------------------------------------------

5 Example
All examples are remarks to agent of ID200 from agent of ID100.

5-1 Example of inform

(1) The agent of ID150 is buries the building of ID250.

 (inform :sender (agent 100)
         :receiver (set (agent 200))
         :content ((state (agent 150) (buried (place (building 250))))))

(2) Someone is buried in the coordinate (100,200).

 (inform :sender (agent 100)
         :receiver (set (agent 200))
         :content ((state (agent T1) (buried (place (position 100 200))))))

(3) The building of ID300 is fire.

 (inform :sender (agent 100)
         :receiver (set (agent 200))
         :content ((state (building 300) (fire))))

(4) The building of coordinate (100,200) is fire.

 (inform :sender (agent 100)
         :receiver (set (agent 200))
         :content ((state (building T1)
                           (fire (place (position 100 200)) (degree 100)))))
)

(4) The building of ID150 has broken at the time of 15. (the degree is 50.)

 (inform :sender (agent 100)
         :receiver (set (agent 200))
         :content ((state (building 150)
                           (broken (time 15) (degree 50)))))

(5) The road of coordinate (100,200) is blocked.

( inform :sender (agent 100)
         :receiver (set (agent 200))
         :content ((state (road T1 T2)
                          (blocked (place (position 100 200))))))

(6) The road to ID150 from ID250 is blocked. (The degree is 50)

 (inform :sender (agent 100)
         :receiver (set (agent 200))
         :content ((state (road 150 250)
                           (blocked (degree 50)))))

5-2 Example of ask for help

(7) Help.

 (request :sender (agent 100)
          :receiver (set (agent 200))
          :content ((action (agent 200) (help))))

(8) Help. (Say to un-specific many)

 (request :sender (agent 100)
          :receiver (set (agent T1))
          :content ((action (agent T1) (help))))

5-3 Example of request

(9) Move to the building of ID 150. (Say to agent of ID 200 and agent of ID 300)
 (request :sender (agent 100)
          :receiver (set (agent 200) (agent 300))
          :content ((action (move (agent 200) (goal (building 150))))))

(10) Move.

 (request :sender (agent 100)
          :receiver (set (agent 200) (agent 300))
          :content ((action (set (agent 200) (agent 300)) (move) )))

(11) Carry agent of ID 300 to building of ID 150.

 (request :sender (agent 100)
          :receiver (set (agent 200))
          :content ((action (agent 200)
                             (carry (agent 300) (goal (building 150))))))

(12) Say "Move." to agent of ID 300.

 (request :sender (agent 100)
          :receiver (set (agent 200))
          :content ((action
                     (agent 200)
                     (say ((request :sender (agent 200)
                                    :receiver (set (agent 300))
                                    :content ((action (agent 300)
                                                       (move)))))))))



This archive was generated by hypermail 2.1.4 : Sun 22 Sep 2002 - 18:52:57 GMT