LIRIL Classification System
Every record in The 504 Database is classified by LIRIL — the Neural Processing Unit at the core of TENET5. This page documents how LIRIL processes, classifies, and routes accountability records. All classifications are baked at build time, not generated dynamically, ensuring reproducibility and auditability.
What is LIRIL?
LIRIL is the ethics gate and classification engine of the TENET5 system. Named for the palindromic center of the SATOR square (SATOR → AREPO → TENET → OPERA → ROTAS), LIRIL processes every input through a deterministic classification pipeline before any other agent sees it.
In the context of The 504 Database, LIRIL classifies each government accountability record into one of six categories based on keyword analysis, source verification, and severity assessment. The classification results appear as banners on investigation pages and as data attributes on individual records.
Architecture
Input Record
↓
┌─────────────────────────────┐
│ 1. Keyword extraction │
│ 2. Source verification │
│ 3. Severity scoring │
│ 4. Category assignment │
│ 5. Confidence calculation │
│ 6. ARTSTEM routing │
└─────────────────────────────┘
↓
Classification Result
↓
Internal message routing
↓
Build-time bake → HTML data attributes
The SATOR Square
LIRIL's routing is based on the SATOR square — a 5×5 Latin palindrome that reads the same in all directions. In the TENET5 architecture, each row of the SATOR square maps to a routing function:
| Row | Word | Function |
|---|---|---|
| Row 1 | SATOR | Sower — input ingestion, record creation |
| Row 2 | AREPO | Plough — data extraction, keyword parsing |
| Row 3 | TENET | Holds/Principle — classification decision, routing core |
| Row 4 | OPERA | Works — output generation, page building |
| Row 5 | ROTAS | Wheels — deployment, publishing, sync |
LIRIL operates at Row 3 — TENET — the center axis. It is the pivot point between ingestion (rows 1–2) and output (rows 4–5). Every classification decision passes through the TENET row. The LIRIL bar on each page shows SATOR·TENET·ROTAS — indicating data was sown (SATOR), worked (OPERA), and classified at the center (row3 = TENET).
Classification Categories
LIRIL classifies each record into one of six categories. Classifications are deterministic — the same input always produces the same output given the same SEED value (118400).
CONVICTION
60 recordsCriminal conviction documented. Individual found guilty by a court. Sentence recorded. Source: court records, Hansard, or official government announcements.
CHARGE
93 recordsCriminal charge laid but no conviction yet recorded. Includes charges by RCMP, provincial police, or via s.504 private prosecution. Presumption of innocence applies.
ETHICS
24 recordsEthics violation found by the Conflict of Interest and Ethics Commissioner, Senate Ethics Officer, or provincial ethics commissioner. Not criminal, but documented breach of public trust standards.
SCANDAL
774 recordsDocumented accountability failure: misuse of public funds, breach of public trust, failure to act, or systemic negligence. Source: Auditor General reports, parliamentary committee findings, investigative journalism with primary sources.
EXPENSE
15 recordsImproper expense claim documented by parliamentary expense auditors, AG, or Senate/House expense review processes. Typically involves ineligible claims, overclaiming, or dual-claiming.
CONFLICT
14 recordsDocumented conflict of interest — personal financial interest intersecting with public duty. May or may not trigger a formal ethics investigation. Includes revolving door, post-office lobbying, and undisclosed interests.
Record counts as of last build. Total: 1,105 records across all categories.
Classification Methodology
Each record passes through a 5-step classification pipeline:
Keyword Extraction
Record text is parsed for accountability-relevant keywords: "convicted", "charged", "ethics violation", "misuse of funds", "conflict of interest", etc. Keywords are weighted by specificity — "convicted in court" scores higher than "alleged misconduct".
Source Verification
Each record's source is categorized: primary (court records, Hansard, AG reports), secondary (investigative journalism with primary source citations), or tertiary (general media). Primary sources receive highest confidence. Records with only tertiary sources are flagged for review.
Severity Scoring
Records are scored on a severity scale based on: public impact (number of citizens affected), financial scale (dollars involved), institutional level (municipal/provincial/federal), and whether criminal conduct is documented.
Category Assignment
Based on keyword match + source quality + severity, LIRIL assigns one of the six categories. The decision is deterministic — keyword-decisive means a strong keyword match overrides other signals. This is the [keyword-decisive] tag shown in LIRIL bars.
Confidence Calculation
Final confidence percentage reflects how strongly the evidence supports the classification. 99% = primary source directly confirms category. 90%+ = strong keyword match with secondary source. Below 85% = flagged for manual review. Confidence is shown in the LIRIL bar on each page (e.g., "ETHICS 99%").
Build-Time Baking
LIRIL classifications are baked at build time, not computed on page load. This is a deliberate architectural choice:
- Reproducibility: Given the same SEED (118400) and the same input data, LIRIL produces identical classifications every time
- Auditability: Every classification result is committed to the Git repository as static HTML. The full classification history is in version control
- No runtime dependency: The site works without any backend, API, or live connection to the TENET5 mesh.
tenet5.liril.classifyis used during the build process, not at page load - Tamper evidence: Because classifications are in Git, any modification is visible in the commit history. You cannot change a record's classification without creating a Git commit
Build Pipeline
Records (HTML) → LIRIL classify (tenet5.liril.classify)
↓
Internal message routing
↓
HTML data attributes written:
data-type="conviction|charge|ethics|scandal|expense|conflict"
data-level="federal|provincial|municipal"
data-party="lib|con|ndp|ind"
↓
Git commit → Git push → GitHub Pages deploy
↓
Static HTML served — no runtime classification
Internal Communication
LIRIL communicates over an internal NATS message bus. The following subjects are used during the build process:
| Subject | Direction | Purpose |
|---|---|---|
| tenet5.liril.classify | Build → LIRIL | Submit record for classification |
| tenet5.liril.classify.response | LIRIL → Build | Return classification result + confidence |
| tenet5.liril.status | Internal | Heartbeat and model status (periodic) |
| tenet5.liril.audit | LIRIL → Build | Classification audit trail logger |
Transparency Commitment
The 504 Database is built on the principle that government accountability records should be publicly accessible, machine-readable, and independently verifiable. LIRIL's classification system is documented here because:
- No classification is hidden. Every record's category is visible in the HTML source as
data-typeattributes. - No algorithm is undisclosed. The keyword-decisive method is documented on this page. The SEED is public.
- No record is unsourced. Every record in the database links to primary or secondary sources — AG reports, court records, Hansard, committee testimony, or investigative journalism with cited primary documents.
- Version history is public. The TENET-5.github.io repository is open. Every classification change is a Git commit.
- Section 504 is the foundation. Criminal Code s.504 gives every Canadian the right to lay an information before a justice. This database provides the documented evidence base for citizens to exercise that right.