decompose(b-0428): DBpedia HKT-MDM demo — 5 atomic child rows B-0480..B-0484#3131
Conversation
….B-0484 B-0428 was too broad to implement atomically (library ADR + new F# project + SPARQL CE + HKT-MDM bindings + demo all in one row). Decomposed into 5 dependency-ordered child rows: B-0480 — library-choice ADR + prior-art audit (gate row, no deps) B-0481 — F# project scaffold + NuGet add + connectivity smoke (← B-0480) B-0482 — SPARQL F# computation expression (← B-0481) B-0483 — HKT-MDM entity bindings + DV2.0 hub-satellite types (← B-0482) B-0484 — end-to-end demo project; closes B-0428 (← B-0483) Build gate: dotnet build -c Release → 0 warnings 0 errors. B-0428 status updated to decomposed. operative-authorization: aaron 2026-05-13: "Cooling period: TBD. The memory file IS the durable record" Co-Authored-By: Claude <noreply@anthropic.com>
There was a problem hiding this comment.
💡 Codex Review
Here are some automated review suggestions for this pull request.
Reviewed commit: 5429dd3fa5
ℹ️ About Codex in GitHub
Your team has set up Codex to review pull requests in this repo. Reviews are triggered when you
- Open a pull request for review
- Mark a draft as ready
- Comment "@codex review".
If Codex has suggestions, it will comment; otherwise it will react with 👍.
Codex can also answer questions or update the PR. Try commenting "@codex address that feedback".
There was a problem hiding this comment.
Pull request overview
This PR decomposes backlog item B-0428 (DBpedia HKT‑MDM canonical demo) into five dependency-ordered P1 child rows (B-0480..B-0484) and updates the parent row to reflect the decomposition.
Changes:
- Added five new per-row backlog files defining the gate/research step (ADR) and the subsequent implementation/demo steps.
- Updated B-0428 to
status: decomposed, added achildren:list, and added a decomposition table linking to the new rows.
Reviewed changes
Copilot reviewed 6 out of 6 changed files in this pull request and generated 3 comments.
Show a summary per file
| File | Description |
|---|---|
| docs/backlog/P1/B-0484-dbpedia-end-to-end-demo-project-2026-05-14.md | Defines the final end-to-end demo/integration-test row that closes B-0428. |
| docs/backlog/P1/B-0483-dbpedia-hkt-mdm-entity-bindings-dv2-hub-satellite-2026-05-14.md | Defines the DV2 hub/satellite entity bindings step for the DBpedia demo stack. |
| docs/backlog/P1/B-0482-dbpedia-sparql-fsharp-ce-computation-expression-2026-05-14.md | Defines the SPARQL computation-expression (query authoring) step and its tests. |
| docs/backlog/P1/B-0481-dbpedia-fsharp-project-scaffold-nuget-connectivity-2026-05-14.md | Defines the project scaffolding + NuGet + connectivity smoke-test step. |
| docs/backlog/P1/B-0480-dbpedia-library-choice-adr-prior-art-audit-2026-05-14.md | Defines the gate row for selecting dotNetRDF vs RDFSharp via an ADR and auditing prior art. |
| docs/backlog/P1/B-0428-dbpedia-direct-dotnetrdf-fsharp-ce-hkt-mdm-canonical-demo-aaron-2026-05-13.md | Marks the parent row as decomposed and links to the new child rows. |
Comments suppressed due to low confidence (2)
docs/backlog/P1/B-0480-dbpedia-library-choice-adr-prior-art-audit-2026-05-14.md:53
- The prior-art audit table says to check
docs/backlog/P1/B-0043-*.md, but B-0043 is currently indocs/backlog/P3/(priority P3). This path/glob won’t find the intended row; update it to the correct location or use a repo-wide glob.
| F# CE model | `src/Core/Dsl.fs` | CircuitBuilder pattern — applies to SparqlBuilder |
| Package manifest | `Directory.Packages.props` | Confirm no RDF packages already present |
| B-0043 parent | `docs/backlog/P1/B-0043-*.md` | Scope of universal-business-templates |
| PR #2913 | GitHub | HKT-MDM universality — confirm `M<'T>` substrate shape |
| DV2.0 rule | `.claude/rules/dv2-data-split-discipline-activated.md` | Hub-satellite partition applies |
docs/backlog/P1/B-0484-dbpedia-end-to-end-demo-project-2026-05-14.md:107
- This checklist says to read
docs/backlog/P1/B-0043-*.md, but the actual B-0043 row is underdocs/backlog/P3/. Update the path/glob so the “composes-with B-0043 check” points at the real file.
## Composes-with B-0043 check
Read `docs/backlog/P1/B-0043-*.md` and verify:
- The demo query (persons / organizations) overlaps with B-0043's
"universal company + government information substrate" scope
- Add a pointer from B-0043 to B-0484 in `composes_with:` on both rows
B-0481 and B-0482 backlog rows were missing blank lines before list blocks that immediately followed prose lines, triggering MD032 (blanks-around-lists) in the required markdownlint gate. Also regenerates docs/BACKLOG.md to include B-0480..B-0484 rows (fixes the non-required backlog-index-integrity drift check). Co-Authored-By: Claude <noreply@anthropic.com>
Thread 1 (B-0481 P1): Replace incorrect Trait-based CI skip guidance with Fact(Skip=...) — CI runs dotnet test with no filter so Trait alone does not skip tests; Fact(Skip=...) skips by default without requiring filter changes. Thread 2 (B-0481 P2): Add missing PREFIX rdfs declaration to smoke-test query to prevent undefined-prefix parse error when the query is copied literally. Thread 3 (B-0482): Remove dangling B-0485 composes_with reference — no B-0485 row exists; broken edge would be flagged by audit-backlog-items.ts. Threads 4+5 (B-0480, B-0484): Fix B-0043 path P1→P3 in both composes_with frontmatter and prose references — B-0043 lives in docs/backlog/P3/. Co-Authored-By: Claude <noreply@anthropic.com>
|
You have reached your Codex usage limits for code reviews. You can see your limits in the Codex usage dashboard. |
There was a problem hiding this comment.
💡 Codex Review
Here are some automated review suggestions for this pull request.
Reviewed commit: 5a0740da97
ℹ️ About Codex in GitHub
Your team has set up Codex to review pull requests in this repo. Reviews are triggered when you
- Open a pull request for review
- Mark a draft as ready
- Comment "@codex review".
If Codex has suggestions, it will comment; otherwise it will react with 👍.
Codex can also answer questions or update the PR. Try commenting "@codex address that feedback".
|
Review threads addressed (2 commits pushed):
Also fixed in the same PR (first commit): MD032 |
Thread PRRT_kwDOSF9kNM6CDkBN (Codex P1): Replace the false claim that CI may exclude Category=Integration tests by default. CI runs 'dotnet test Zeta.sln -c Release' with no category filter — every test runs unconditionally. The recorded fixture path is required for CI safety; live-endpoint fallback requires explicit workflow filter changes. Also fix prose reference at line 103: docs/backlog/P1/B-0043-* → docs/backlog/P3/B-0043-* (B-0043 lives in P3, not P1). Thread PRRT_kwDOSF9kNM6CDkBR (Codex P2): B-0485 dangling reference was already removed from B-0482 by the prior fix commit; resolving thread only. Co-Authored-By: Claude <noreply@anthropic.com>
Copilot threads PRRT_kwDOSF9kNM6CDpWJ / CDpW3 / CDpXH / CDpXg: Repo convention places test projects under tests/ (e.g. tests/Bayesian.Tests, tests/Core.CSharp.Tests) — source code stays under src/. The decompose commit incorrectly used src/DBpedia.Tests/ for all test file references. Fixed in B-0481, B-0482, B-0483, B-0484 (8 occurrences total): src/DBpedia.Tests → tests/DBpedia.Tests throughout. Co-Authored-By: Claude <noreply@anthropic.com>
There was a problem hiding this comment.
Pull request overview
Copilot reviewed 7 out of 7 changed files in this pull request and generated 3 comments.
Comments suppressed due to low confidence (1)
docs/backlog/P1/B-0480-dbpedia-library-choice-adr-prior-art-audit-2026-05-14.md:62
- This evaluation-criteria table also starts rows with
||, which typically creates an extra empty column. Use a single leading|for each row so the table renders as intended.
| Criterion | dotNetRDF 3.x | RDFSharp 3.x |
|-----------|---------------|--------------|
| Last NuGet publish | Verify via search | Verify via search |
| CI offline capability | Needs recording or mocking | Needs recording or mocking |
| SPARQL 1.1 query support | Yes | Yes |
| | Surface | Path | What to verify | | ||
| |---------|------|----------------| | ||
| | F# CE model | `src/Core/Dsl.fs` | CircuitBuilder pattern — applies to SparqlBuilder | | ||
| | Package manifest | `Directory.Packages.props` | Confirm no RDF packages already present | | ||
| | B-0043 parent | `docs/backlog/P3/B-0043-*.md` | Scope of universal-business-templates | |
| | DV2.0 type | DBpedia shape | Change rate | | ||
| |------------|---------------|-------------| | ||
| | **Hub** | Wikipedia article URI (stable business key) | Rare — stable across edits | | ||
| | **Satellite** | Named attributes (label, birth date, occupation, etc.) | Frequent — wiki edits | | ||
| | **Link** | Relationships between entities (e.g. Person → Organization) | Medium | |
| | Row | Title | Type | Depends on | | ||
| |-----|-------|------|------------| | ||
| | [B-0480](B-0480-dbpedia-library-choice-adr-prior-art-audit-2026-05-14.md) | Library-choice ADR + prior-art audit | research (gate) | — | | ||
| | [B-0481](B-0481-dbpedia-fsharp-project-scaffold-nuget-connectivity-2026-05-14.md) | F# project scaffold + NuGet + connectivity smoke | feature | B-0480 | | ||
| | [B-0482](B-0482-dbpedia-sparql-fsharp-ce-computation-expression-2026-05-14.md) | SPARQL F# computation expression | feature | B-0481 | |
Summary
B-0428 (DBpedia via direct dotNetRDF + F# CE — HKT-MDM canonical demo) was too broad to implement atomically. This PR decomposes it into 5 dependency-ordered child rows:
Decomposition rationale
sparql { }CE following theCircuitBuilderpattern fromsrc/Core/Dsl.fs— pure unit tests, no networkM<'T>bindings per PR docs(memory): factory ontology HKT applies directly to master data — every company has one (Aaron 2026-05-13) #2913, with FsCheck property testsB-0428 status updated to
decomposedwith the child table in the body.Build gate
(No F# source changes — backlog docs only.)
Test plan
dotnet build -c Release— 0 warnings, 0 errors ✓🤖 Generated with Claude Code