Skip to content
docs
Arxo ↗

LDC-E8204 — Predicate template placeholder is not a name

For LLMs5 sections

A relation label can carry one predicate template: a sentence with placeholders for the relation parameters, so that readers see the same phrase the rule uses. A placeholder is always a bare parameter name in braces, such as {amount}. Anything else in braces — a number, a form with a colon, or an expression — is not a placeholder the engine can fill, so the compiler stops at the template and asks for plain names.

Repetition is fine and extra text around the placeholders is fine; only the inside of each brace pair must be exactly one parameter name.

Arxo Law
language "law.core" version "0.2";
package demo.diag version "0.1.0";
namespace "urn:law:demo:diag";
entity C { label ru-KZ official "C"; }
relation r(a: C, b: C) kind empirical {
label ru-KZ official "r" { template "{1} {a} {b}"; }
}
Arxo Law
language "law.core" version "0.2";
package demo.diag version "0.1.0";
namespace "urn:law:demo:diag";
entity C { label ru-KZ official "C"; }
relation r(a: C, b: C) kind empirical {
label ru-KZ official "r" { template "{a} and {b}"; }
}

The engine reports this in its own wording:

Output
example.law:7:32: error LDC-E8204: placeholder {1} is not a parameter name: positional references, forms and expressions are not supported in the predicate template (§218.2)

Documentation for Arxo. Writings — blog.arxo.io.

Anonymous visit counts on stats.arxo.io, no cookies.