Consociational codification

Ranking rules so the order settles conflicts

Desired behavior is written as a set of rules. Each rule is a graded measure of how badly an outcome violates it. The rules are arranged in a priority order, so when two rules conflict, the ordering decides rather than a judgment made in the moment. Adapting the system to another jurisdiction means reordering the same rules instead of rewriting them. This is how one specification can serve places that weigh the same considerations differently. The work also derives which edits to a rule set preserve the guarantees that an earlier ordering already gave.

The method (highlighting differences with Consociational codification)

Scroll the diagram sideways to see all of it.

Use it in codefrom aiag.codified import PriorityRules
from aiag.codified import PriorityRules

privacy = lambda prompts, replies: [0.0 if "555-" in r else 1.0 for r in replies]
helpful = lambda prompts, replies: [min(len(r) / 60, 1.0) for r in replies]
rules = PriorityRules([privacy, helpful])  # privacy outranks helpfulness, which only breaks ties

question = "What's Dana's phone number?"
replies = ["It's 555-0142, she's usually free after six.", "I can't share her number, but I can pass on a message."]
best = rules.best(question, replies)  # -> 1
reward = rules([question] * 2, replies)  # -> [0.073..., 1.09], one number that keeps the order

pip install aiagEvery method in aiag Library on GitHub

Concept Analysis: Theoretical Foundations

Each concept is read twice: whether the approach carries it over, and whether the approach's own sources claim it. A concept that the approach claims but does not carry over is a shortfall. A concept that it neither claims nor carries over is an omission, which marks a gap in the field rather than a failure of the work.

Segmental autonomy

PartialShortfall · partially preserved

Definition (Arend Lijphart, Democracy in Plural Societies, 1977)

In a deeply divided society, each group governs its own internal affairs (e.g., its schools and its family law) within its own sphere, instead of everyone living under one uniform rule.

Analysis

Rules come from law, from ethics, and from the local culture. The compositional operations allow one rulebook to be built from another, so a locale can in principle be given its own priority ordering. However, no sphere is set aside in which a group's rules simply apply. Every rule, whatever its source, sits in one common order and can be outranked by a rule from elsewhere. A local norm is therefore decisive only if it happens to rank high enough, rather than because it is local.

Choice-of-law rule

PartialShortfall · partially preserved

Definition (Friedrich Carl von Savigny, System of the Modern Roman Law, 1849)

When several bodies of rules could govern the same case, an explicit rule decides which one actually does and states the reason. Without such a rule, "different rules for different groups" gives no answer for the cases that fall between groups.

Analysis

The pre-order is an explicit, prior, and machine-checkable rule for deciding which of several conflicting rules governs an outcome. It is stated with more precision than anything else in this regime. What it lacks is a connecting factor. Savigny's rule attaches a case to a body of law through some feature of the case. This ranking, in contrast, is fixed in advance and is the same whatever the case. It therefore answers which rule outranks which, but never which rulebook a given situation belongs to.

Mutual veto and proportionality

AbsentOmission

Definition (Arend Lijphart, Democracy in Plural Societies, 1977)

Decisions that affect all groups require every group's consent, and representation is proportional to each group's size. As a result, no segment can simply be outvoted on what matters most to it.

Analysis

Whoever authors the rulebook assigns priority. No group whose law, ethics, or culture contributed a rule consents to that rule's rank or can block a change to it. Nothing is proportional to population, stake, or anything else. The constraint-preserving operations protect earlier rules against later edits, but this is a guarantee to the specification rather than to any segment.

Concept Analysis: Newly Introduced

Constraint-preserving amendment

Added

The paper derives which operations on a rulebook may be allowed if constraints introduced earlier are to remain in force. A proposed change can therefore be checked against that list before it is admitted, rather than disputed afterward. Legal orders face the same problem. They answer it with doctrine on implied repeal and entrenchment, worked out case by case once someone litigates the later rule. Here, whether an amendment undoes a prior settlement is decided algebraically, before the amendment enters the rulebook.

Papers

arXiv:1902.09355MethodBuiltAuthority: Developer (open)

It defines a rulebook as a pre-ordered set of rules, each similar to a violation metric over possible outcomes. The rules' priority ordering imposes a pre-order on those outcomes. It then derives which operations on rulebooks preserve constraints introduced earlier.

CodeRulebook
from aiag.codified import Rulebook

violation = lambda name: lambda prompts, outcomes: [o[name] for o in outcomes]
rules = {name: violation(name) for name in ("collision", "clearance", "lane")}
book = Rulebook(rules, [("collision", "clearance"), ("clearance", "lane")])

# Passing a cyclist: cross the centre line, or squeeze past too close
cross, squeeze = {"collision": 0, "clearance": 0, "lane": 1}, {"collision": 0, "clearance": 0.6, "lane": 0}
book.best("pass the cyclist", [cross, squeeze])  # -> 0
elsewhere = book.reorder([("collision", "lane"), ("lane", "clearance")])  # the same rules, another jurisdiction's order
elsewhere.best("pass the cyclist", [cross, squeeze])  # -> 1
  • RulebookRewardaiag/codified/consociational_codification.py:49 Rulebooks: rules are violation metrics in a priority pre-order that ranks outcomes; another culture or jurisdiction re-orders the same rules, and refining priorities or adding a rule at the bottom keeps every earlier preference (Censi et al., 2019).

pip install aiagEvery method in aiag Library on GitHub