-
Notifications
You must be signed in to change notification settings - Fork 2
Limitation Inverse Edges Missing
type: synthesis up: "Typed-Edges-and-Frontmatter" criticizes: "Typed-Edges-and-Frontmatter" tags: [limitation, edges, schema]
The SCHEMA originally defined typed edges (extends:, supports:, criticizes:, etc.) but did not declare their inverses. Filed as GitHub issue #3, surfaced by behavioral testing during PR #4. In-repo half closed 2026-06-12 via PR #31 (SCHEMA Edges-as-Interface-Operations table now has an Inverse column; Edge-Types.md.template declares the previously-missing extendedBy; verification-gate.md realigned to the "KG materialises inverses, agents do not author them" stance). The remaining halves are upstream SHACL spec changes (so the KG materialisation pass actually emits the inverse triples) and an optional PostToolUse write-time check.
Page A declares supports: "[[Page-B]]". The agent then visits Page B to add a back-reference. The natural inverse would be supported-by:, but no such edge type exists in the SCHEMA. The agent's safest choice is related: "[[Page-A]]", which loses the semantic distinction the original supports: edge encoded.
Over time, related: accretes in the wild, and the typed-edge ontology weakens.
The SCHEMA's "Edges as Interface Operations" section now has an Inverse column with the camelCase names that the KG materialisation expects (chosen for compatibility with Edge-Types.md.template's vocabulary from PR #16):
| Forward | Inverse | Note |
|---|---|---|
extends: |
extendedBy |
shipped in PR #31's Edge-Types.md.template edit (it was the only forward predicate missing an explicit inverse line in PR #16) |
supports: |
supportedBy |
already in PR #16 |
criticizes: |
criticizedBy |
already in PR #16 |
source: |
(none — external) | sources are external resources, no graph-internal inverse |
up: |
(none — implicit) | children are implicit |
related: |
(none — symmetric) | fallback edge; symmetric by convention |
The operation contract aligned with PR #16's KG-materialises stance: agents do not write extendedBy:, supportedBy:, etc. in source documents. The KG build pipeline (scripts/kg/) emits the inverse triples automatically from each forward assertion. When a back-reference would help a reader navigate, add it at the body level (typically in the target page's See also section), not as a frontmatter inverse. verification-gate.md's reciprocal-edge criterion was rewritten to make this explicit.
This refines the original snake-case proposal (extended-by:, supported-by:) that this page carried before 2026-06-12. The camelCase form is what shipped and what the KG vocabulary at Edge-Types.md.template uses.
The KG materialisation pass produces the inverse triples only for pairs the SHACL spec at https://la3d.github.io/llm-wiki-colab/ declares as owl:inverseOf. The spec is upstream of this template and currently does not declare extendedBy/supportedBy/criticizedBy as inverses. Until an upstream PR adds them, the in-repo vocabulary is present but the KG queries cannot traverse a typed edge in both directions transparently. Was Analysis-of-model_fusion-Recommendations rec #9(b)(ii); deferred there pending the in-repo half landing (now done).
A PostToolUse write-time check that the agent has not asserted an inverse predicate in a source document is also still pending. Currently the discipline is prose-only via verification-gate.md. Was Analysis-of-model_fusion-Recommendations rec #9(b)(iii); deferred until the SHACL spec change lands.
Priscila explicitly flagged this as a separate concern when surfacing it during PR #4: it was unrelated to the attribution work in PR #4, and a clean fix wanted its own PR plus structural/behavioral tests against fresh projects. The fix landed in two parts: PR #16 (2026-05-29 approx; Edge-Types.md.template with most of the inverse names) and PR #31 (2026-06-12; SCHEMA wiring + verification-gate alignment + the missing extendedBy).
Issue #3 partially closed by PR #31. In-repo half: implemented. Upstream SHACL half: still pending. Write-time enforcement: still pending, possibly unnecessary depending on KG materialisation behaviour.
- Typed-Edges-and-Frontmatter
- Knowledge-Graph-Pipeline
- Lesson-Validation-Methodology
- Lessons-Learned-From-model_fusion: the field report's recommendation #9 builds on this limitation; refined after PR #16 shipped the inverse-edge vocabulary