docs← Back to article

Markdown for LLMs

Comparisons

The source Markdown for this article. Copy it into your assistant or download it as a text file.

Download this articlePlain text ↗
# Comparisons

Arxo is an executable-knowledge system: norms written as rules, answers with
grounds you can recheck. It is not the only tool in that space. This section
maps twenty systems and formats that overlap with it — what each one is for,
where the overlap lies, how the answers differ, and what has actually been
checked so far.

There is no winner here. Each page names the reader it helps, the profile
that was studied, and the state of the evidence. Where a comparative run has
not happened, the page says so plainly.

## How to read this section

Every direction page carries an **evidence passport**: the date its sources
were checked, the version or profile studied, what the comparison rests on,
and whether anything was executed. Three labels appear throughout:

- **Confirmed by documentation** — a property read in the official docs,
  the pinned sources, a standard, or a paper.
- **Checked by execution** — a property observed in an actual run, with the
  version and the run attached. Used sparingly in this first release.
- **Protocol prepared; comparative run not performed** — the experiment is
  designed, frozen, and reproducible, but neither side has been run yet.
  Expected outcomes in such protocols are predictions from the text, not
  results.

Two outcome words need a gloss. A case marked **not comparable** means the
two sides answer different questions (different stages, units, editions, or
purposes) — it is a limit of the comparison, not a failure of either side.
A **mismatch** means both sides answered the same question differently, with
the cause still open until a source settles it. Agreement on a bank of cases
is never presented as proof that two languages are equivalent.

The [methodology](/comparisons/methodology/) page explains the setup:
contracts, reproducibility, outcome classes, and the shared scenarios.

## Across systems

Some questions cut across directions. These pages answer them once:

- [Capability matrix](/comparisons/matrix/) — twenty systems and Arxo,
  property by property: missing facts, conflicts, time, deontic positions,
  explanations, engineering, and the machine author. Only properties
  confirmed in the studied sources are filled in.
- [Classic problems of normative reasoning](/comparisons/classic-problems/)
  — thirteen textbook problems, from Tweety to the burden of proof: how
  Arxo writes each one and which systems here address it natively.
- [Measurements](/comparisons/measurements/) — the runs that were actually
  executed: the Catala parity run, a US tax code run with language models,
  and science tasks with and without tools.
- Shared scenarios — [one contract, four
  systems](/comparisons/contract-lifecycle/), [one charities text, five
  systems](/comparisons/jersey-charities/), and [explaining yes, no, and
  unknown](/comparisons/explanations/).
- [Beyond law](/comparisons/beyond-law/) — runs against canons outside
  legal texts: a language test suite, computer algebra, a proof-assistant
  kernel, and tournament pairing.

Several directions also have a companion page: a write-up of an executed
run ([Catala](/comparisons/catala-parity-run/), [LLM /
RAG](/comparisons/llm-rag-irc-run/)), a case bank ([L4](/comparisons/l4-charities-case-bank/)),
or a guide for developers coming from another system
([OPA](/comparisons/coming-from-opa/), [Cedar](/comparisons/coming-from-cedar/),
[DMN](/comparisons/coming-from-dmn/), [Drools](/comparisons/coming-from-drools/)).

## By task

### Computing amounts from normative texts

- [Catala](/comparisons/catala/) — executable tax and benefit rules written
  next to the statute text, with exact money and date handling.
- [OpenFisca](/comparisons/openfisca/) — mass microsimulation of taxes and
  benefits over dated parameters, built for reform comparison.
- [M / Mlang](/comparisons/mlang/) — the compiler behind the French income-tax
  computation, with a mechanically checked core.
- [PolicyEngine](/comparisons/policyengine/) — household tax-benefit
  simulation with dated parameters and one-step reforms.
- [RegelRecht](/comparisons/regelrecht/) — executable Dutch agency
  regulations kept next to the article text, with test scenarios beside
  the law.

### Drawing normative and logical conclusions

- [Logical English](/comparisons/logical-english/) — norms written in
  controlled natural language, explained in the words of the source
  sentences. One of three separate Prolog-family approaches studied here.
- [PROLEG](/comparisons/proleg/) — legal reasoning from Japan's presumed-fact
  theory, where the burden of proof decides the unproven fact.
- [Blawx](/comparisons/blawx/) — visual block authoring over an answer-set
  engine, strong on explaining negative answers and hypotheticals.
- [L4](/comparisons/l4/) — isomorphic rules with typed duties and
  permissions; also listed under contracts for its deontic core.

### Authorization and business rules

- [OPA / Rego](/comparisons/opa/) — decoupled policy decisions for services
  and infrastructure, with bundles, logs, and strict checks.
- [Cedar](/comparisons/cedar/) — small verified authorization core where a
  prohibition always wins and the answer names the deciding policies.
- [DMN](/comparisons/dmn/) — the standard decision table, portable across
  engines; the named hit policy decides what overlap means.
- [Drools / DRL](/comparisons/drools/) — a stateful rule engine with working
  memory, incremental re-evaluation, and event streams.

### Contracts and the obligation lifecycle

- [Accord / Cicero](/comparisons/accord/) — a contract clause as template
  text plus data model plus executable logic, with events out.
- [Symboleo](/comparisons/symboleo/) — obligations and powers over an event
  account, checked exhaustively by a model checker.
- [Stipula](/comparisons/stipula/) — contracts as programs with state-gated
  calls, linear assets, and non-cancellable timeouts.
- [L4](/comparisons/l4/) — listed here too for its duties, permissions, and
  their fulfilment over event streams.

### Representing documents and exchanging models

- [LegalRuleML](/comparisons/legalruleml/) — the interchange standard for
  norms: what survives a transfer, what needs extensions, what is lost.
- [Akoma Ntoso](/comparisons/akoma-ntoso/) — markup of acts and their
  editions, and the round trip between marked text and pinned sources.

### Interviews and working with text through a language model

- [docassemble](/comparisons/docassemble/) — guided interviews that gather
  facts and assemble the resulting document.
- [LLM / RAG](/comparisons/llm-rag/) — three fixed architectures compared on
  one held-out bank: model with text, model with retrieval, model with an
  executable model behind tools. Arxo itself assumes models write
  formalizations, so this is not Arxo versus an abstract machine mind.

### Beyond law

- [Beyond law](/comparisons/beyond-law/) — runs against executable canons
  outside legal texts.
- [WebAssembly: the i32 spec-tests run](/comparisons/wasm-spec-tests-run/)
  — integer values and traps against the official test script.
- [Computer algebra: the textbook-steps run](/comparisons/computer-algebra-run/)
  — textbook rules against SymPy and Wolfram.
- [Lean: the divisibility-instances run](/comparisons/lean-run/) —
  applied theorems against kernel proofs.
- [FIDE: the Dutch-pairing check run](/comparisons/fide-pairing-run/) —
  presented pairings against an endorsed pairing tool.

## Relation to the research tree

Each page rests on a direction under `experiments/comparisons/` in the
project repository: a research report, a source bibliography with check
dates, and a frozen experiment protocol. The tree currently holds exactly
the twenty directions above — no more, no less. Three shared scenarios
(one contract lifecycle, one charities text across five systems, one
explanation comparison) feed the methodology and the scenario sections;
they are not separate alternatives, and each has its own page under
[Across systems](#across-systems). Experiment templates in the tree are
infrastructure, not pages.

The related tutorial stays where it is: [Coming from
Catala](/language/coming-from-catala/) teaches the concept mapping hands-on,
while [Catala](/comparisons/catala/) records what the comparison program
has and has not established.

## Growing the section

A new result lands in three moves: the experiment runs and its outcome
table is filled in the research tree, the direction page gains a dated
results section with a link to the run, and the passport line is updated.
Addresses are stable: one direction keeps one main page; a run write-up,
a case bank, or a guide lands as a companion page next to it, and the main
page links to it instead of moving.