Catch an undefined relationship before processing

Imagine one agent sends astronomy claims to another application. The sender writes “Earth orbitts the Sun.” A human might infer the intended word. A receiver that requires a registered relationship should flag the typo instead of guessing.

The same intended claim in three forms

Ordinary message

Earth orbits the Sun. I am fully confident.

AIL with a registry identifier

AIL/0.2 M{id=demo1;act=A01;registry=ail-core:0.2;body=P(ail:earth,ail:orbits,ail:sun);conf=1;}

JSON with an application profile

{
  "id": "demo1",
  "act": "A01",
  "registry": "ail-core:0.2",
  "body": [
    "ail:earth",
    "ail:orbits",
    "ail:sun"
  ],
  "conf": 1
}

Change ail:orbits to ail:orbitts. Plain JSON parsing accepts the string. AIL strict registry checking rejects it with E03. A JSON schema that restricts the identifiers also rejects it. Both require agreed vocabulary and enforcement.

Observed comparison

CaseJSON parsing onlyAIL strict validationJSON application profile
Valid structureAcceptedAcceptedAccepted
Misspelled relationshipAcceptedRejectedRejected
Confidence outside rangeAcceptedRejectedRejected
False claim with valid structureAcceptedAcceptedAccepted

The JSON column uses a small explicit Python profile checker in the reproduction script, not a general JSON Schema engine. An equivalent JSON Schema is supplied for this four-case profile. It is not a full encoding of AIL.

Where AIL adds convenience

AIL packages communicative acts, proposition syntax, registry identifiers, and display aliases together. In this implementation, ail:earth~tierra normalizes to ail:earth, so a label can change without changing the concept identifier. This is a convention offered by the format, not an automatic translation service.

AIL/0.2 M{id=alias1;act=A01;registry=ail-core:0.2;body=P(ail:earth~tierra,ail:orbits~orbita,ail:sun~sol);}

Canonical output:

AIL/0.2
M{id=alias1;act=A01;registry=ail-core:0.2;body=P(ail:earth,ail:orbits,ail:sun);}

What the comparison proves

The supplied implementation catches these structural errors and removes display aliases as designed. It does not prove superiority over JSON plus a schema. Stable identifiers and separate display labels can also be represented in JSON. If an existing application schema already meets your needs, this example does not establish a reason to replace it.

The reversed Sun-orbits-Earth claim passes both structural checks. Validation is not fact-checking. These examples contain no AI performance measurements.

Run the comparison · Inspect recorded output · Inspect canonicalization

External reference: JSON Schema enumerated values.