Špecifikácia pravidiel

Pravidlá musia byť špecifikované v súbore s príponou ".lw". Formát špecifikácie pravidiel je nasledovný:
compulsory 1 species(SPLISTS)
nondeterm rule(LAWLHS LHS, LAWRHS RHS)

Nasleduje rekurzívny popis domén, ktoré sú relevantné k špecifikácii pravidiel:

SPLISTS = SPLIST *
SPLIST = String *
SPLISTS je zoznam troch zoznamov. Prvý obsahuje vymenovanie všetkých druhov etho-agentov, druhý producentov ekosystému a tretí envo-agentov.

LAWLHS = LAWL *
To znamená, že LAWLHS je zoznam termov, ktoré patria do domény LAWL. LAWLHS je teda zoznam predpokladov, ktoré je nutné splniť, aby sa dané pravidlo vykonalo.
LAWL = obj(short AgentVar, string SpName); action(short AgentVar, string SpName, IACTION); sx(short AgentVar, SEXX); near(short AgentVar, short AgentVar); far(short AgentVar, short AgentVar); sig(short AgentVar, short Position, string Substring)

LAWRHS je naproti LAWLHS dosledkova cast pravidla.
LAWRHS = s(REACTLIST TheOnlyAlternative); case(real ProhabilityOfFirst, REACTLIST FirstAlternative, REACTLIST SecondAlternative)
REACTLIST = REACT *
REACT = re(short, REACTION)
REACTION = ok; bad; death; loss(short); income(short)

Toto je príklad špecifikácie pravidiel:
species([["&", "m"], ["w"], []])
rule([obj(2, "w"), action(1, "&", act2("eat", 2))], s([re(1, income(10)), re(2, loss(10))]))
rule([action(1, "m", act2("atack", 2)), obj(2, "&"), far(1, 2)], s([re(1, bad), re(2, ok)]))
rule([action(1, "m", act2("atack", 2)), obj(2, "&"), near(1, 2)], s([re(1, income(100)), re(2,death)]))
rule([action(1, "m", act2("atack", 2)), obj(2, "&")], case(0.3, [re(1, income(100)), re(2, death)], [re(1, bad), re(2, ok)]))
rule([action(1, "&", any)], s([re(1, ok)]))
rule([action(1, "m", any)], s([re(1, ok)]))

Spracoval: Dudy