Arxo population binding 0.1
An authoring, pinnable binding of microdata tables to the cases of a case package: the model and its semanticHash, the case package, a source as a closed CSV subset with tables, keys, entities, and parent-child relations, column-to-literal translation via TypeRef, the root population table (rowId, case name, weight, legalTime), and fact entries. It carries no legal meaning: the adapter computes nothing — each cell becomes a literal of an origin case_input fact. The contentHash self-pin is the canonical form without the contentHash field. The runner checks table and column name uniqueness, column existence in the header, and predicates and types against the CLIR (POPULATION_BINDING_INVALID / POPULATION_BINDING_MODEL_MISMATCH); the schema only holds the shape.
Versions
Section titled “Versions”Accepted schemaVersion: law.population.binding/0.1.
Top-level fields
Section titled “Top-level fields”| name | type-or-$ref | required | description |
|---|---|---|---|
schemaVersion | "law.population.binding/0.1" | yes | — |
id | screen-binding.schema.json#/$defs/StableId | yes | — |
dataClass | enum (2) | yes | Data class of the source: real triggers a POPULATION_BINDING_DATA_CLASS rejection pending a separate decision on storage. The field is required: its absence is not treated as synthetic. |
model | object | yes | — |
casePackage | object | yes | — |
source | object | yes | — |
population | object | yes | — |
facts | array | yes | — |
contentHash | screen-binding.schema.json#/$defs/Digest | yes | — |
Enumerations
Section titled “Enumerations”| location | values |
|---|---|
properties/schemaVersion | "law.population.binding/0.1" |
properties/dataClass | "synthetic", "real" |
properties/source/properties/encoding | "utf-8" |
properties/source/properties/delimiter | ",", ";", "\t" |
properties/source/properties/decimalSeparator | ".", "," |
$defs/Parent/properties/cardinality | "one", "many" |
$defs/Fact/properties/presence/oneOf/0/properties/kind | "row" |
$defs/Fact/properties/presence/oneOf/1/properties/kind | "boolean_column" |
$defs/Argument/oneOf/0/properties/kind | "entity" |
$defs/Argument/oneOf/1/properties/kind | "column" |
$defs/Argument/oneOf/2/properties/kind | "constant" |
Raw schema
Section titled “Raw schema”PackageName
Section titled “PackageName”Type: string.
Version
Section titled “Version”Type: string.
TableName
Section titled “TableName”Type: string.
ColumnName
Section titled “ColumnName”Name of a CSV header column.
Type: string.
Pattern
Section titled “Pattern”Type: object.
Required: pattern.
| name | type-or-$ref | description |
|---|---|---|
pattern | string | Text with {column} substitutions; the column’s raw value — NULL triggers the row rejection ROW_KEY_NULL. |
ColumnRef
Section titled “ColumnRef”Type: object.
Required: column.
| name | type-or-$ref | description |
|---|---|---|
column | #/$defs/ColumnName | — |
Type: object.
Required: name, file, key, entity, columns.
| name | type-or-$ref | description |
|---|---|---|
name | #/$defs/TableName | — |
file | string | Path to the CSV relative to the binding file. |
key | array | Key columns; uniqueness is a property of the source (POPULATION_SOURCE_INVALID). |
entity | #/$defs/Entity | — |
parent | #/$defs/Parent | — |
columns | array | — |
Entity
Section titled “Entity”Type: object.
Required: idPattern, type.
| name | type-or-$ref | description |
|---|---|---|
idPattern | string | Template for the row entity’s identifier (URN/IRI) with {column} substitutions. |
type | legal-ir.schema.json#/$defs/TypeRef | TypeRef of the model’s nominal entity type; checked against the predicate’s parameter. |
Parent
Section titled “Parent”Child table: the foreign key column points to the key of table table (a single-column key); an orphan triggers POPULATION_SOURCE_INVALID; more than one row when cardinality is one triggers the row rejection ROW_CARDINALITY.
Type: object.
Required: table, column, cardinality.
| name | type-or-$ref | description |
|---|---|---|
table | #/$defs/TableName | — |
column | #/$defs/ColumnName | — |
cardinality | enum (2) | — |
Column
Section titled “Column”Type: object.
Required: name, type.
| name | type-or-$ref | description |
|---|---|---|
name | #/$defs/ColumnName | — |
type | legal-ir.schema.json#/$defs/TypeRef | TypeRef of a literal type (Integer, Decimal, Money, Boolean, Text, Date, Instant), or the name of a model enumeration (in which case members is required). |
currency | string | Currency of a Money literal; required for Money, forbidden otherwise (checked by the tool). |
members | object | Enumeration: source value → model member name. |
trueValues | array | — |
falseValues | array | — |
nullMarkers | array | — |
Type: object.
Required: predicate, table, arguments, presence.
| name | type-or-$ref | description |
|---|---|---|
predicate | screen-binding.schema.json#/$defs/StableId | Identifier of the model’s CLIR symbol_decl (a URN with a #local name). |
table | #/$defs/TableName | Table whose rows generate the fact; argument entities are this table or its ancestors along the parent chain. |
arguments | array | — |
presence | oneOf (2) | — |
required | boolean | NULL in the column argument triggers the row rejection ROW_REQUIRED_NULL instead of the fact simply being absent. |
Argument
Section titled “Argument”Definition Argument.
Documentation for Arxo. Writings — blog.arxo.io.
Anonymous visit counts on stats.arxo.io, no cookies.