Recent Posts
Featured Posts
MDG specification – DGDL last updated September 15, 2016 by Mark
MDG specification – DGDL
-
System{Mediation{ -
turns{magnitude:multiple, ordering:strict} -
roles{speaker, listener, Mediator, Party} -
players{min:3, max:3} -
player{id:Mediator} -
player{id:PartyOne} -
player{id:PartyTwo} -
-
-
store{id:CommitmentsPartyTwo, owner:PartyOne, structure:set, visibility:public, {""}} -
backtrack{on} -
-
/* Rules */
-
rule{id:StartingRule, scope:initial, -
{ assign(Mediator, speaker) -
& move(add, next, PureQuestion, $Party, {p}, Mediator) -
}
-
}
-
-
/* Interactions */
-
interaction{PureQuestion, $Participant, {p}, PureQuestioning, {p}, "Do you believe $p?", -
{ move(add, next, Assert, {p}, Target) -
& move(add, next, Assert, {q}, Target) -
}
-
}
-
interaction{Argue, {p,q}, Asserting, {q}, Arguing, {<{q},{p}>, DefaultInference}, "$p because $q", -
{ -
if{ player(PartyOne) } then -
{ store(add, {q}, CommitmentsPartyOne, PartyOne) -
& move(add, next, PureQuestion, $Party, {q}, Mediator) -
& move(add, next, AssertiveQuestion, $Party, {q}, Mediator) -
& move(add, next, PureChallenge, $Party, {q}, Mediator) -
}
-
else
-
{ store(add, {q}, CommitmentsPartyTwo, PartyTwo) -
& move(add, next, PureQuestion, $Party, {q}, Mediator) -
& move(add, next, AssertiveQuestion, $Party, {q}, Mediator) -
& move(add, next, PureChallenge, $Party, {q}, Mediator) -
& assign(Mediator, speaker)
-
}
-
}
-
}
-
interaction{AssertiveQuestion, $Participant, {p}, AssertiveQuestioning, {p}, "Do you agree $p?", -
{ move(add, next, Withdraw, {p}, Target) -
& move(add, next, Agree, {p}, Target) -
& move(add, next, Disagree, {p}, Target) -
}
-
}
-
-
interaction{PureChallenge, $Participant, {p}, PureChallenging, {p}, "Why $p?", -
{ move(add, next, Argue, {p,r}, Target) -
& move(add, next, Withdraw, {p}, Target) -
}
-
}
-
interaction{Assert, {p}, Asserting, {p}, "I assert $p", -
{ -
if{ player(PartyOne) } then -
{ store(add, {p}, CommitmentsPartyOne, PartyOne) -
-
& move(add, next, AssertiveQuestion, $Party, {p}, Mediator) -
& move(add, next, PureChallenge, $Party, {p}, Mediator) -
}
-
else
-
{ store(add, {p}, CommitmentsPartyTwo, PartyTwo) -
& move(add, next, PureQuestion, $Party, {p}, Mediator) -
& move(add, next, AssertiveQuestion, $Party, {p}, Mediator) -
& move(add, next, PureChallenge, $Party, {p}, Mediator) -
& assign(Mediator, speaker)
-
}
-
}
-
}
-
interaction{Withdraw, {p}, Asserting, {p}, "Withdraw $p", -
{ -
if{ player(PartyOne) } then -
{ store(remove, {p}, CommitmentsPartyOne, PartyOne) -
& move(add, next, AssertiveQuestion, $Party, {p}, Mediator) -
& move(add, next, PureQuestion, $Party, {p}, Mediator) -
& move(add, next, AssertiveQuestion, $Party, {q}, Mediator) -
}
-
else
-
{ store(remove, {p}, CommitmentsPartyTwo, PartyTwo) -
& move(add, next, AssertiveQuestion, $Party, {p}, Mediator) -
& move(add, next, PureQuestion, $Party, {p}, Mediator) -
& move(add, next, AssertiveQuestion, $Party, {q}, Mediator) -
}
-
}
-
}
-
-
interaction{Agree, {p}, Asserting, {p}, "I agree with $p", -
{ -
if{ player(PartyOne) } then -
{ store(add, {p}, CommitmentsPartyOne, PartyOne) -
& move(add, next, PureQuestion, $Party, {q}, Mediator) -
& move(add, next, AssertiveQuestion, $Party, {q}, Mediator) -
}
-
else
-
{ store(add, {p}, CommitmentsPartyTwo, PartyTwo) -
& move(add, next, PureQuestion, $Party, {q}, Mediator) -
& move(add, next, AssertiveQuestion, $Party, {q}, Mediator) -
}
-
}
-
}
-
interaction{Disagree, {c}, Asserting, {!c}, Contradicting, {<{c},{!c}>, DefaultConflict}, "I disagree with $c", -
{ -
if{ player(PartyOne) } then -
{ store(add, {c}, CommitmentsPartyOne, PartyOne) -
& move(add, next, PureQuestion, $Party, {c}, Mediator) -
& move(add, next, Restate, {c}, Mediator) -
}
-
else
-
{ store(add, {c}, CommitmentsPartyTwo, PartyTwo) -
& move(add, next, PureQuestion, $Party, {c}, Mediator) -
& move(add, next, Restate, {c}, Mediator) -
}
-
}
-
}
-
-
interaction{Restate, {p}, Restating, {p}, "$p", -
{ move(add, next, AssertiveQuestion, $Party, {p}, Mediator) -
& move(add, next, PureChallenge, $Party, {p}, Mediator) -
}
-
}
-
}}
