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





