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)
-
}
-
}
-
}}