Appendix D

Conversational operators

 

 

 

Information/Reference-Level Operators

OPERATOR assert:

level:  information/reference

IF          wants(Me,assert(Me,Info,Other))

            turn(Me)

THEN        assert(Me,Info,Other)

EFFECTS     - wants(Me,act(Me,assert(Info,Other))

OPERATOR assertion-received:

level:  information

IF          act(Other,assert(believe(Other,Info),Me))

            turn(Other)

            not(believe(Other,Info))

EFFECTS     + believe(Other,Info)

OPERATOR do-request:

level:  information

IF          wants(Me,request(Me,Info,Other))

            turn(Me)

THEN        request(Me,Info,Other)

EFFECTS     - wants(Me,request(Me,Info,Other))

OPERATOR do-request-received:

level:  information

IF          request(Other,act(Me,Act),Me))

            wants(Me,act(Me,Act))

EFFECTS     - request(Other,act(Me,Act),Me))

 

Turn-Level Operators

OPERATOR acknowledge-my-turn:

level:  turn

IF          turn(Other)

            give_turn(Other,Me)

THEN        acknowledge_turn(Me,turn(Me))

EFFECTS     - give_turn(Other,Me)

            - turn(Other)

            + turn(Me)

OPERATOR acknowledge-others-turn:

level:  turn

IF          turn(Me)

            take_turn(Other)

            not(wants(Me,act(Me,Act)))

THEN        acknowledge_turn(turn(Other))

EFFECTS     - take_turn(Other)

            - turn(Me)

            + turn(Other)

OPERATOR recognize-my-turn-1:

level:  turn

IF          give_turn(Other,Me)

            turn(Other)

            not(request_turn(Me))

EFFECTS     - turn(Other)

            - give_turn(Other,Me)

            + turn(Me)

OPERATOR recognize-my-turn-2:

level:  turn

IF          give_turn(Other,Me)

            request-turn(Me)

            turn(Other)

EFFECTS     - turn(Other)

            - request-turn(Me)

            - give_turn(Other,Me)

            + turn(Me)

OPERATOR give-turn-1:

level:  turn

IF          wants(Me,act(Other,Act))

            turn(Me)

THEN        give_turn(Me,Other)

EFFECTS     - turn(Me)

            + turn(Other)

OPERATOR give-turn-2:

level:  turn

IF          request_turn(Other)

            turn(Me)

            not(wants(Me,act(Me,Act)

THEN        give_turn(Me,Other)

EFFECTS     - turn(Me)

            - request_turn(Other)

            + turn(Other)

OPERATOR give-turn-3:

level:  turn

IF          request(Me,Info,Other)

            turn(Me)

THEN        give_turn(Me,Other)

EFFECTS     - turn(Me)

            + turn(Other)

OPERATOR request-turn:

level:  turn

IF          wants(Me,act(Me,Act))

            turn(Other)

            not(request_turn(Me))

            (Act = assert(Me,Info,Other)) or (Act = request(Me,Req,Other))

THEN        request_turn(Me)

OPERATOR hold-turn:

level:  turn

IF          wants(Me,act(Me,Act))

            turn(Me)

            not(hold_turn(Me))

            (Act = assert(Me,Info,Other)) or (Act = request(Me,Req,Other))

THEN        hold_turn(Me)