Skip to content

Instantly share code, notes, and snippets.

@igorcadelima
Last active August 18, 2017 13:29
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save igorcadelima/6eb000812d185a9f04711050a3223923 to your computer and use it in GitHub Desktop.
Save igorcadelima/6eb000812d185a9f04711050a3223923 to your computer and use it in GitHub Desktop.
Example of organisational structure
<?xml version="1.0" encoding="UTF-8"?>
<organisational-specification id="pgg"
xmlns="https://github.com/igorcadelima/rambos"
os-version="0.1" xmlns:xsi='http://www.w3.org/2001/XMLSchema-instance'
xsi:schemaLocation="https://github.com/igorcadelima/rambos
https://raw.githubusercontent.com/igorcadelima/rambos/master/src/main/resources/xsd/os.xsd">
<structural-specification>
<role-definitions>
<role id="coordinator" />
<role id="player">
<extends role="detector" />
<extends role="evaluator" />
<extends role="executor" />
</role>
</role-definitions>
<group-specification id="contribution_group">
<roles>
<role id="coordinator" min="1" max="1" />
<role id="player" min="2" />
</roles>
</group-specification>
</structural-specification>
<functional-specification>
<scheme id="run_pgg">
<goal id="round_created" />
<mission id="create_round" min="1" max="1">
<goal id="round_created" />
</mission>
</scheme>
</functional-specification>
<normative-specification>
<norms>
<norm id="general_contribution">
<condition>contribution_pot(Pot) &amp; current_round(Round)</condition>
<issuer>coordinator</issuer>
<content>obligation(Agent,contribution_pot(Pot) &amp; current_round(Round),contribute(Agent,Tokens,Pot,Round),"30 seconds")</content>
</norm>
<norm id="minimum_contribution">
<condition>contribution_pot(Pot) &amp; current_round(Round) &amp; min_contribution(Min, Pot, Round)</condition>
<issuer>coordinator</issuer>
<content>prohibition(Agent,contribution_pot(Pot) &amp; current_round(Round) &amp; min_contribution(Min, Pot, Round),contribute(Agent,Tokens,Pot,Round) &amp; Tokens &lt; Min,"30 seconds")</content>
</norm>
<norm id="maximum_contribution" status="disabled">
<condition>contribution_pot(Pot) &amp; current_round(Round) &amp; max_contribution(Max, Pot, Round)</condition>
<issuer>coordinator</issuer>
<content>permission(Agent,contribution_pot(Pot) &amp; current_round(Round) &amp; max_contribution(Max, Pot, Round),contribute(Agent,Tokens,Pot,Round) &amp; Tokens &gt; Max,"30 seconds")</content>
</norm>
</norms>
<sanctions>
<sanction id="stand_out_freerider">
<condition>current_round(Round)</condition>
<category>
<purpose>punishment</purpose>
<issuer>informal</issuer>
<locus>other_directed</locus>
<mode>indirect</mode>
<polarity>negative</polarity>
<discernability>noticeable</discernability>
</category>
<content>transmit(Target, freerider, Round)</content>
</sanction>
</sanctions>
<links>
<link>
<norm-id>general_contribution</norm-id>
<sanction-ids>
<sanction-id>stand_out_freerider</sanction-id>
<!--<sanction-id>s2</sanction-id>
<sanction-id>s3</sanction-id>
<sanction-id>s4</sanction-id> -->
</sanction-ids>
</link>
</links>
</normative-specification>
</organisational-specification>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment