Irish and English

Irish and English preview image

1 collaborator



Tagged by Vinicius Marino Carvalho about 1 month ago


Tagged by Vinicius Marino Carvalho about 1 month ago


Tagged by Vinicius Marino Carvalho about 1 month ago


Tagged by Vinicius Marino Carvalho about 1 month ago

Visible to everyone | Changeable by everyone
Model was written in NetLogo 6.0.1 • Viewed 159 times • Downloaded 2 times • Run 0 times
Download the 'Irish and English' modelDownload this modelEmbed this model

Do you have questions or comments about this model? Ask them here! (You'll first need to log in.)


In the 13th century, Ireland was a patchwork of provinces ruled by native clan chiefs and English magnates. The relationships between them are hard to systematize, for they acted

independently, and the English Crown (which nominally ruled over everyone) often encouraged factionalism.

However, independent as their actions were, English magnates did manage to settle and colonize most of the territory of Ireland, relying on military might and strategic alliances with native clans to overwhelm their enemies. Irish chiefs often did the same, counting on powerful foreigners to help them against rivals.

Irish and English is a simplified model of this process. The agents are Irish and English elites who will wage wars, build alliances and protect their allies in an abstract representation of medieval Ireland


Each time unit represents the time required to decide on, plan and organize a military raid. Agents might seek alliances with other agents and wage wars against their rivals. Allied agents will decide whether to support their peers in their military endeavors or abandon them to their fate.

The likelihood of adopting a cooperative or hostile approach depends on two properties: bellicosity and power. The more beligerant a agent is, the more likely it will pursue conflict. The more powerful one becomes, the more it will dissuade potential attackers and invite potential allies.

Bellicosity and power change depending on agents' actions. Power is always lost on combat, as even a successful campaign incur in expenses and attrition. Losers, however, lose much more. Bellicosity will increase each time an agent becomes involved in a war, and decrease by being in an alliance.

If two agents nurture an alliance for long enough, their bellicosity will drop to 0, as they grow complacent with the political security. If an agents gets left out, it might lash out against the others, growing ever more beligerant without an alliance to balance the lure of warfare.

Irish agents have an additional property: stability. It represents the fractious nature of Irish clans, and the difficulties encountered by chiefs in securing the support of their vassals. Irish nobles value military prowess, and will comply to kings who do well in battle. However, if an agent suffers through a string of defeats, it will see its subjects move to greener pastures. Stability acts as a discount factor to power: the more it drops, the more an agent's power pool shrinks.

#### Agent properties

power - military strength. Determines the prospect of victory when waging war, and the likelihood of obtaining allies

ally-power - military strength of allied agents

war-effort - sum of power + ally-powers

bellicosity - propensity to declare war.

allies? - number of allies

stability (irish only) - internal stability of the clan, representing the compliance of vassal chiefs. Acts as a discount factor to calculate power. Increases after military victories, decreases after defeats.

#### Environment

The environment is a simple Voronoi diagram representing the holdings of Irish chiefs and English magnates. Actions occur within network segments involving agents connected by alliances and warfare links. Alliances are depicted in white, active wars in black. There is a third class of links, alliance requests, that do not appear on the map.

#### Setup

The setup button randomly distributes agents within the model space. The stability of Irish actors is always set at 1.0. The ally count is always set at 0. The value of other properties (number of agents, bellicosity, power) is assigned based on inputs in the interface tab.

##### Time step

Each time unit is divided into the following steps:

Wars are cleared

replenish-power - power is replenished and recalculated (eg. Irish's stability factor)

offer-alliance - agents decide whether to send an alliance request

accept-alliance - agents who received an alliance request decide whether to accept it. If they, they become allies.

declare-war - agents decide whether or not to declare war on other agents.

opt-out - allies of warmongering agents decide whether to contribute to the war effort. If they decline, the alliance is dissolved

wage-war - Warring agents "roll" their war-effort score against one another. Warfare alwas take a toll on power, but losers lose much more.

Perish - agents with 0 power or less die

refresh-territory - patches refresh the Voronoi diagram

Alliance-requests are cleared

The model stops if all agents of a given breed perish. However, it may also come to a standstill if they reach a cooperative equilibrium (i.e. nobody attacks anybody). This gridlock can be broken by the modeler with the help of some tools in the interface.


The interface allows the modeler to adjust the model's critical parameters: number of agents, power and bellicosity of each breed.

The "stability" switch activates or de-activates the stability variable for Irish agents. The "warfare" chooser determines whether agents are allowed to declare war on agents of the same breed.

In addition, there are three buttons designed to interact with the model during a run. "Clear alliances" kills all alliances. "Provoke" increases the bellicosity of a given breed. Together, they can be used to break a standstill.

The output graphs plot the overall power of agents, total number of alliances and active wars, and stability and bellicosity of each agent. The latter one is useful to indicate if it is necessary to provoke agents.

Agent distribution can vary in significant ways depending on the choice of parameters. One breed might dominate the entire map, or reach a cooperative equilibrium with the other. By experimenting with the inputs, the modeler can try several combinations to compare with documented historical outcomes.


In the 13th century, the English colonized most of the territory of Ireland. The remaining chiefs preserved their power largely due to alliances with some of the foreigners. Which choice of parameters produces this outcome?

In the 14th and 15th centuries, the Irish overwhelmed the English, reducing their influence to small areas on the East coast. What set of conditions produce similar developments?

Nationalistic historiography used to paint the colonization of Ireland as the united struggle of a people against foreign oppressors. Try experimenting with the "warfare" chooser. Does limiting aggression to raids between breeds significantly affect the outcome? In which circunstances?

What set of parameters arrive at standstills more often? What does it take to break them?


This model is roughly based on some intuitive ideas behind the behavior of English and Irish elites in the 13th century, but it is in no way validated. The parameters are mock variables and do not conform to historiographical observations.

Most importantly, it does not take in account the role of reputation and history of cooperation in the agents' propensity to cooperate. (DUFFY 1996, PERROS 1995). The bellicosity property is an attempt to provide some dynamism to the agents' actions, but does not adequately represent the adaptative nature of political decision making. Incorporating these factors to the model will make it more realistic.

Frame (2013) has added that agents' standing in broader social circuits played a crucial role in Anglo-Irish relationships. The incorporation of a network model of Irish and English nobility would bring these observations to the agent-based environment. It would also take in account the role of English vassals, which are absent from the current model.

Historically, the English magnates and some of the Irish chiefs were subject to the English Crown and its representative in Ireland, the justiciar. Adding them as agents to the model would allow us to factor in royal interference in Anglo-Irish relationships.

The model also operates on a virtual space, with no impact to the agents' decisions. Medieval elites were a landed aristocracy, and their ability to wage war was directly tied to their capacity to draw resources and manpower from their holdings. Moreover, O'Byrne (2003) and others have shown that castle building had a negative impact on the Irish's propensity to cooperate with the English, as they relied on the ability to move their troops and cattle herds around unhindered. Incorporating some sort of spatial model (a GIS or otherwise) to the environment would allow us to investigate these factors.


The model uses the create-temporary-plot-pen procedure to plot bellicosity and stability. It allows us to plot the variable of each agent individually. Because create-temporary-plot-pen requires a string, we also need to use the "word" procedure to turn each turtle's number (their "who" value) into a string. See bellicosity and stability plots in the interface tab for the full code.


See Hotelling's Law and Voronoi models in the NetLogo library for other uses of the Voronoi diagram


The code for the refresh-territory procedure was based on Uri Wilensky's Voronoi model in the Netlogo library

## Copyright and License">Licença Creative Commons" />
Este obra está licenciado com uma Licença">Creative Commons Atribuição-NãoComercial 4.0 Internacional.

#### Bibliography

DUFFY, S. King John’s Expedition to Ireland, 1210: The Evidence Reconsidered. **Irish Historical Studies**, v.30. n.117, 1996, pp. 1-24

FRAME, R. Ireland after 1169: Barriers to Acculturation on an ‘English’ Edge. In: STRINGER, K.J.; JOTISCHKY, A. (Ed.) **Norman Expansion: Connections, Continuities and Contrasts**. Farham: Ashgate, 2013, pp. 115-144

O’BYRNE, E. **War, Politics and the Irish of Leinster 1156-1606**. Dublin: Four Courts, 2003

PERROS, H. Crossing the Shannon Frontier: Connacht and the Anglo-Normans, 1170-1224. In: BARRY, T.; FRAME, R.; SIMMS, K. **Colony and Frontier in Medieval Ireland**. London/Rio Grande: Hambledon Press, 1995, pp. 118-138

Wilensky, U. (2006). NetLogo Voronoi model. Center for Connected Learning and Computer-Based Modeling, Northwestern University, Evanston, IL.

Comments and Questions

Please start the discussion about this model! (You'll first need to log in.)

Click to Run Model

breed [ irish an-irish ]
breed [ english an-english ]

undirected-link-breed [ alliances alliance ]
undirected-link-breed [ wars war ]
directed-link-breed [ alliance-requests alliance-request ]

globals [
power-english ;; sum of the power of all English agents
power-irish ;;   sum of the power of all Irish agents

turtles-own [
irish-own [ stability ]

to setup
  ask turtles [
    set allies? count alliance-neighbors

to setup-agents
  set-default-shape irish "crown"
  ask  n-of (num-irish) patches with [ count turtles-here = 0 ] [   ;; an alternative procedure to create turtles. Makes it easier to work with the Voronoi diagram
      sprout-irish 1[
        set color 53
        set stability 1.0
        set power irish-power * stability
        set size ( 1 + 2 * ( power / 100 ) )                       ;; sizes matches the power meter. The stronger the agent, the bigger it is.
        set bellicosity irish-bellicosity
  set-default-shape english "chess rook"
  ask  n-of (num-english) patches with [ count turtles-here = 0 ] [
      sprout-english 1[
        set color 13
        set power english-power
        set size ( 1 + 2 * ( power / 100 ) )
        set bellicosity english-bellicosity
  ask patches [refresh-territory]

to go
  ask wars [ die ]                                               ;; unlike alliance requests, wars are killed at the beginning of a tick, so we can see which ones have formed at each tick
  set power-english  sum [ power ] of english                    ;; set up "power" as a global variable so it can be plotted
  set power-irish sum [ power ] of irish
  if not any? irish [ stop ]                                     ;; if there are no agents of any one breed, stops the simulation
  if not any? english [ stop ]
  ask turtles [
    set allies? count alliance-neighbors
    set size ( 1 + 2 * ( power / 100 ) )
  ask patches [
  ask alliance-requests [ die ]

;; Environment Procedures

to refresh-territory
  set pcolor [color + 2] of min-one-of turtles [distance myself]       ;; this is the code that generates the Voronoi diagram

;; Turtle Procedures

to replenish-power
  set power ( power + 10 )
  if power >= 100 [                                  ;; power needs to be capped, lest it baloons indefinitely
    set power 100
  if breed = irish and stability? [ set power ( stability * power ) ]

to offer-alliance
    if allies? = 0 [
    if any? other turtles with [ allies? = 0 ] [
    ask one-of other turtles with [ allies? = 0] [
    create-alliance-request-from myself]
  ask alliance-requests [ set color yellow ]          ;; alliance-requests are colored yellow for debugging purposes only. Since they are killed the same time unit they are generated, we never get to see them
  if allies? > 0 [
    set bellicosity bellicosity - 0.1
    if bellicosity <= 0 [                            ;; bellicosity needs to be capped, lest it drop below 0.0
      set bellicosity 0

to accept-alliance
  if any? in-alliance-request-neighbors with [ power >= [power] of myself  ] [
    ask out-alliance-neighbors [ die ]                                            ;; agents suspend offers of alliance if they happen to receive a favorable one. This is to ensure each agent gets only one ally.
    if any? alliance-request-neighbors [
    create-alliance-with one-of alliance-request-neighbors
  ask alliances [
    set color white

to declare-war
  if warfare = "all-out" [
    if any? other turtles with [ not alliance-neighbor? myself and power <= [ power ] of myself ] [              ;; agents won't wage wars with enemies more powerful than themselves
   if random-float 1.0 < bellicosity [                                                                           ;; the "roll" that determines propensity to declare war
    ask one-of other turtles with [ not alliance-neighbor? myself and power <= [ power ] of myself ]
   [ create-war-with myself]
   ask wars [ set color black]
  if warfare = "irish-english" [
    if any? other turtles with [ not alliance-neighbor? myself and power <= [ power ] of myself and breed !=[ breed ] of myself ] [
    if random-float 1.0 < bellicosity [
      ask one-of other turtles with [ not alliance-neighbor? myself and power <= [ power ] of myself and breed !=[ breed ] of myself ]
    [ create-war-with myself]
     ask wars [ set color black]

To opt-out
  if any? alliance-neighbors with [ any? war-neighbors ] [
    if any? alliance-neighbors with [ power < 0.5 * [power] of myself ] [              ;; if an agent gets too weak, its allies will ditch it.
    ask my-alliances [ die ]

to wage-war
  set ally-power sum [ power ] of alliance-neighbors
  set war-effort power + ally-power
  ask war-neighbors [
    ifelse ( [ war-effort ] of self ) * random-float 1.0 < ( [ war-effort ] of myself )     ;; calculation that determines the outcome of wars
    [ set power ( power - random-float 30 )
      set bellicosity bellicosity + 0.1
      if bellicosity > 1 [ set bellicosity 1 ]
        if breed = irish and stability? [ set stability stability - 0.1 ]                   ;; irish agents lose stability when defeated
    [ set power ( power - random-float 10 )                                                 ;; loss of power due to attrition and war expenses
      set bellicosity bellicosity + 0.1
      if bellicosity > 1 [ set bellicosity 1 ]
        if breed = irish and stability? [ set stability stability - 0.1 ]

to perish
    if power <= 0 [ die ]

;; Interface Button Procedures

to clear-alliances
  ask alliances [ die ]

to provoke-english
  ask english [ set bellicosity bellicosity + 0.1 ]

to provoke-irish
  ask irish [ set bellicosity bellicosity + 0.1 ]

There is only one version of this model, created about 1 month ago by Vinicius Marino Carvalho.

Attached files

File Type Description Last updated
Irish and English.png preview Preview for 'Irish and English' about 1 month ago, by Vinicius Marino Carvalho Download

This model does not have any ancestors.

This model does not have any descendants.