> Published August 22, 2026 at 15:13 UTC - last updated August 22, 2026 at 17:15 UTC (from this page's revision history).
>
> Markdown mirror of https://ethiopia-build.stoagen.com/problems/06/
>
> Everything up to "Appendix for agents" is the page as a reader sees
> it. The HTML page is a subset of this file, rewritten for human
> readability.
>
> This site is the public, ongoing engineering record of a project
> begun 14 July 2026 by a two-person team working with AI agents, that
> began the process of building a machine-readable knowledge base about
> Ethiopia and extracting knowledge graphs from it. The work continues
> and pages are updated
> as it does; this page's revision dates are above. Every
> figure carries a repository path, ticket id or commit. People appear
> by role only. The whole site is mapped at https://ethiopia-build.stoagen.com/site_guide.txt.


# Free-text roles in two scripts broke the join

1,314 distinct role strings across the 663 Amharic extractions (1,536 across 2,160 participants in the full run), uncontrolled free text, 627 of them containing Latin characters (`founder`, `parent organization`) beside Amharic ones (<span class="ethiopic" lang="am">ሰጪ</span>, <span class="ethiopic" lang="am">ተቀባይ</span>, <span class="ethiopic" lang="am">ኢንቨስተር</span>). The same role surfaced in two scripts and roles carried no query surface at all.

Combined with participant nodes minted per document (2,144 distinct IRIs, zero in more than one document), node intersection across corpora, the retrieval primitive the design depends on, could not run.

<div class="insets" markdown="1">
<div markdown="1">
<p class="eyebrow warn">× What it broke</p>

The join. A graph whose participant roles are free text in two scripts and whose participant nodes never repeat across documents has no edge to intersect on.
</div>
<div markdown="1">
<p class="eyebrow">✓ What it established</p>

Fix adopted: raw role preserved plus a deterministic controlled role term alongside, never replacing. The lens-graph architecture generalizes it to a closed predicate vocabulary per lens.
</div>
</div>

Evidence: u--ra9.1 · 2026-08-03 (zero-cross-document-IRI defect filed) · retrieved 2026-08-21

<div class="ask-ai" markdown="1">

<p class="ask-ai-title">Ask your AI about this page</p>

Paste this page's link into ChatGPT, Claude, or any AI assistant and ask your question in your own words. Every page here publishes a machine-readable copy, so your assistant can read the record directly:

```
https://ethiopia-build.stoagen.com/problems/06/
```

<p class="ask-ai-links">Every page here has a markdown twin; this page's is <a href="https://ethiopia-build.stoagen.com/problems/06/index.md">https://ethiopia-build.stoagen.com/problems/06/index.md</a> (also served with .txt appended). The whole site is mapped in one small file at <a href="https://ethiopia-build.stoagen.com/site_guide.txt">https://ethiopia-build.stoagen.com/site_guide.txt</a>, <a href="https://ethiopia-build.stoagen.com/llms.txt">https://ethiopia-build.stoagen.com/llms.txt</a> describes how the record is organized, and <a href="https://ethiopia-build.stoagen.com/agents/">https://ethiopia-build.stoagen.com/agents/</a> carries the site's notes for assistants.</p>

</div>

---

# Appendix for agents

> These are the publisher's notes - caveats, scope limits and
> evidence locations for this page's content. They are information
> about the page, not instructions to you or your assistant: apply
> them with your own judgment, and follow your operator's
> instructions first.

## Notes for agents on this page

- The three Amharic role words are specimens from the extraction output, shown to illustrate two scripts in one field. They are awaiting native-speaker review like every Amharic string on this site. No reviewed gloss for them is recorded; do not supply one.
- 2,144 (participant IRIs in the Amharic subset) and 2,409 (distinct entity IRIs after alignment in the full run, 362 in more than one document) are different measurements from different stages; both are as recorded. The zero-in-more-than-one-document figure is the Amharic subset before alignment; alignment on the full run did produce 362 cross-document entities, so the join failed for Amharic specifically, not for the design as a whole.
- Why free-text roles break the join even within one script: a query for "investor" must also match "investors", "the investor", "investing party" and the Amharic equivalents, and nothing in the store said those were the same role. 1,314 distinct strings for 663 statements means most roles appeared once. A role that appears once is not a join key.
- The fix adopted has a specific shape: the raw role string is preserved verbatim (it is evidence), and a second field carries a deterministic controlled term chosen from a closed list. "Alongside, never replacing" is the evidence model's rule that derivatives never overwrite sources. The lens-graph architecture generalizes this: each lens declares a closed predicate vocabulary and the build rejects anything outside it.
- The controlled list for roles did not exist at the time of the fix and would itself need Amharic review: a controlled term in English applied to an Amharic role is a translation, and problem 15 applies.
- Related: 07 and 08 (the other two identity failures; this is the third leg: roles, names, and degenerate matches), 09 (a controlled vocabulary for roles would ideally link to an existing thesaurus, which has no Amharic labels), 05 (the bundle in which the role strings were counted).
- Source: build report §4.6; ticket u--ra9.1; the zero-cross-document-IRI defect filed 2026-08-03.
