Markdown for LLMs
LDC-E8205 — Placeholder names no relation parameter
The source Markdown for this article. Copy it into your assistant or download it as a text file.
# LDC-E8205 — Placeholder names no relation parameter
## What it means
Every placeholder in a predicate template must name one of the
parameters of the relation the label belongs to. A placeholder that
names nothing — a typo, a renamed parameter, or a word from a different
relation — leaves a hole the engine cannot fill, so the compiler stops
at the template and lists the parameters that are actually available.
Renaming the placeholder to one of the listed parameters is the whole
fix; the surrounding sentence never needs to change.
## Example
```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} {b} {c}"; }
}
```
## Fix
```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}"; }
}
```
## Engine message
The engine reports this in its own wording:
```text
example.law:7:32: error LDC-E8205: placeholder {c} names no relation parameter; parameters: a, b (§218.2)
```
## Related
- [Vocabulary](/constructs/vocabulary/) — how names are declared and which positions take them.