generated from coulomb/repo-seed
research: Wikibase/Wikidata deep dive (entity-statement graph, SPARQL); UC-73-75
SHARD-WP-0003 T2. Structure & native-query far-end: typed knowledge graph (items/properties, statements = claim+qualifiers+references+rank), RDF projection + SPARQL (WDQS/Blazegraph) incl. federated SERVICE, opaque stable Q/P identity (labels-as-annotation), statement-level provenance. UC-73 (typed-graph shard, lossy render), UC-74 (SPARQL + federated query), UC-75 (per-assertion provenance). Enriched UC-34/58/52/24. Marks T2 done. Feeds SHARD-WP-0002 T12/T16. Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
This commit is contained in:
@@ -12,7 +12,8 @@ Promoted from `research/260608-c2-wiki-origins/`,
|
||||
`research/260614-logseq-deep-dive/`,
|
||||
`research/260614-localfirst-workspaces-deep-dive/`,
|
||||
`research/260614-trilium-deep-dive/`, `research/260614-wikijs-deep-dive/`, and
|
||||
`research/260614-federated-wiki-deep-dive/`.
|
||||
`research/260614-federated-wiki-deep-dive/`, and
|
||||
`research/260614-wikibase-deep-dive/`.
|
||||
See InfoTechPrimers on coulomb.social for use-case catalog conventions.
|
||||
|
||||
## Conventions
|
||||
@@ -605,7 +606,10 @@ database **query API** (filters/sorts) — a strong delegation target
|
||||
(`research/260614-notion-deep-dive/findings.md` §2, §4). **Logseq** shows the third path:
|
||||
Datalog over a **derived** index built from plain files — neither native-DB nor plugin;
|
||||
when no engine exists, shard-wiki can build the index itself (UC-63,
|
||||
`research/260614-logseq-deep-dive/findings.md` §3).
|
||||
`research/260614-logseq-deep-dive/findings.md` §3). **Wikibase** is the far end:
|
||||
**SPARQL** over an RDF projection with **federated `SERVICE`** cross-endpoint joins
|
||||
(`research/260614-wikibase-deep-dive/findings.md` §2) — a graph-query tier above
|
||||
datalog/filters, and `SERVICE` is itself a query-time federation primitive (UC-74).
|
||||
**Priority:** Later
|
||||
|
||||
### UC-53 — Attach a local-first Markdown vault with a live concurrent native editor
|
||||
@@ -965,6 +969,52 @@ chorus compose with shards that assert a canonical? Feeds SHARD-WP-0002 T1–T5;
|
||||
UC-05/UC-27 (union/chorus), UC-26 (fork).
|
||||
**Priority:** Later
|
||||
|
||||
### UC-73 — Attach a typed entity-statement (RDF) knowledge-graph shard
|
||||
|
||||
**Actor:** Orchestrator / adapter
|
||||
**Goal:** Attach a **Wikibase** instance as a **typed entity-statement shard** — items and
|
||||
properties, statements = claim + qualifiers + references + rank — and project entities to a
|
||||
rendered page view (lossy to Markdown) **without flattening away the graph**.
|
||||
**Source:** wikiengines, intent
|
||||
**Notes:** The **structure far-end** beyond Notion DB / XWiki XObjects / Trilium relations:
|
||||
a true typed knowledge graph with `somevalue`/`novalue` known-unknowns
|
||||
(`research/260614-wikibase-deep-dive/findings.md` §1). Content **is not Markdown** — render
|
||||
is a lossy projection (UC-55), so attach as a structured shard and either keep the graph as
|
||||
the canonical payload (T12) or offer a rendered view, never a silent flatten. Feeds
|
||||
SHARD-WP-0002 T12 (typed-graph page payload), T16 (stable opaque identity).
|
||||
**Priority:** Later
|
||||
|
||||
### UC-74 — Graph-query the union (SPARQL) and federate queries across endpoints
|
||||
|
||||
**Actor:** Reader / analyst
|
||||
**Goal:** Query graph-capable shards with a **graph query language (SPARQL)** and **federate
|
||||
queries across endpoints** (`SERVICE`) — a query-time cross-shard join distinct from
|
||||
structural (fork/neighborhood) federation.
|
||||
**Source:** wikiengines, intent
|
||||
**Notes:** SPARQL over the RDF projection (Wikidata Query Service / Blazegraph) is the
|
||||
**native-query far-end** above Roam/Logseq datalog and Notion filters (UC-52); `SERVICE` is
|
||||
a **query-time federation** primitive beside fedwiki's structural federation (UC-72)
|
||||
(`research/260614-wikibase-deep-dive/findings.md` §2). Open: union-level common query vs
|
||||
pass-through to graph-capable shards. Feeds SHARD-WP-0002 native-query tiering; relates
|
||||
UC-63 (derived index — WDQS is one).
|
||||
**Priority:** Later
|
||||
|
||||
### UC-75 — Preserve statement-level provenance (references + rank)
|
||||
|
||||
**Actor:** Core orchestrator
|
||||
**Goal:** Preserve **provenance at the assertion level** — references and **rank** attached
|
||||
to each *statement*, not just per page or per shard — so contradictory values can coexist
|
||||
with a curation signal.
|
||||
**Source:** wikiengines, intent
|
||||
**Notes:** Wikibase attaches **references** (sources) and a **rank**
|
||||
(`preferred`/`normal`/`deprecated`) to each statement
|
||||
(`research/260614-wikibase-deep-dive/findings.md` §1, §5) — provenance granularity **finer**
|
||||
than shard-wiki's per-page model, and the *structured* analogue of fedwiki's chorus (UC-72)
|
||||
and "view multiple versions" (UC-27). The page model + coordination journal should **allow**
|
||||
sub-page/per-assertion provenance even if MVP records per page. Enriches UC-24; feeds
|
||||
SHARD-WP-0002 T12 + provenance model.
|
||||
**Priority:** Later
|
||||
|
||||
---
|
||||
|
||||
## B. Knowledge work and collaboration
|
||||
@@ -1157,7 +1207,11 @@ edit count, and whether the page has local overlays or diverges elsewhere.
|
||||
provenance principle. Xanadu deep dive: provenance is *structural*, not decorative —
|
||||
content remembers where it came from and where it is reused (UC-45), built into the
|
||||
storage model rather than added after the fact
|
||||
(`research/260614-xanadu-deep-dive/findings.md` §4, §8.1).
|
||||
(`research/260614-xanadu-deep-dive/findings.md` §4, §8.1). **Wikibase** pushes provenance
|
||||
*finer than the page*: **references + rank per statement** let sourced, even contradictory,
|
||||
values coexist with a curation signal (UC-75,
|
||||
`research/260614-wikibase-deep-dive/findings.md` §1, §5) — the page model should allow
|
||||
sub-page/per-assertion provenance even if MVP records it per page.
|
||||
**Priority:** Later
|
||||
|
||||
### UC-25 — Collaborative glossary and precise naming
|
||||
@@ -1230,6 +1284,9 @@ CamelCase and `[[free links]]`. Markdown-first link semantics TBD.
|
||||
| UC-70 | | | ✓⊞ | | ✓ |
|
||||
| UC-71 | | | ✓⊞ | | ✓ |
|
||||
| UC-72 | | | ✓⊞ | | ✓ |
|
||||
| UC-73 | | | | ⬡ | ✓ |
|
||||
| UC-74 | | | | ⬡ | ✓ |
|
||||
| UC-75 | | | | ⬡ | ✓ |
|
||||
| UC-08 | ✓ | | |
|
||||
| UC-09 | ✓ | | |
|
||||
| UC-10 | ✓ | | |
|
||||
@@ -1670,6 +1727,38 @@ above fedwiki's fork-DAG provenance edges. Architecture logged for `SHARD-WP-000
|
||||
(T1–T5, T11, T13, T16): journal-as-coordination-journal, story-item write granularity,
|
||||
journal-replay as a third merge model, fork entries as identity≠placement provenance edges.
|
||||
|
||||
### wikibase mapping
|
||||
|
||||
(⬡ UC-73–UC-75 are placed in the **wikiengines** matrix column; lineage = the **Wikibase
|
||||
deep dive**, `research/260614-wikibase-deep-dive/findings.md`.)
|
||||
|
||||
| Wikibase mechanism (findings §) | Catalog UC |
|
||||
|---------------------------------|------------|
|
||||
| Items/properties + statements (claim+qualifiers+refs+rank); not-Markdown graph (§1) | UC-73 (new) |
|
||||
| RDF projection + SPARQL (WDQS/Blazegraph) + federated `SERVICE` (§2) | UC-74 (new) |
|
||||
| References + rank per statement = assertion-level provenance + coexistence (§1, §5) | UC-75 (new) |
|
||||
| Typed records → typed *graph* entities (§1) | UC-34 (enriched) |
|
||||
| Inter-record relations → typed graph edges with qualifiers (§1, §2) | UC-58 (enriched) |
|
||||
| Native query → SPARQL/RDF + federated SERVICE (§2) | UC-52 (enriched) |
|
||||
| Provenance → statement/value granularity (§1, §5) | UC-24 (enriched) |
|
||||
| Opaque stable Q/P IDs; labels = annotations; identity ≠ label/placement (§3) | links UC-51 / T16 |
|
||||
| WDQS = derived SPARQL index over canonical JSON entities via update stream (§3) | links UC-63 |
|
||||
| Rank: contradictory values coexist with a curation signal (§1, §5) | links UC-27 / UC-72 |
|
||||
|
||||
Note: Wikibase (the engine behind **Wikidata**) is the **structure and native-query
|
||||
far-end** of the studied set — a **typed knowledge graph** where a "page" is a set of
|
||||
**statements** (claim + qualifiers + **references** + **rank**), not prose, queried with
|
||||
**SPARQL** over an **RDF** projection (incl. **federated `SERVICE`** cross-endpoint joins).
|
||||
Three things transfer cleanly: **opaque stable identity with labels-as-annotation** (the
|
||||
cleanest real instance of identity ≠ placement, T16); **assertion-level provenance** —
|
||||
references + rank let contradictory values coexist with curation (the *structured* chorus,
|
||||
UC-75/UC-27); and **a derived graph index over a canonical entity store** (WDQS = UC-63 at
|
||||
scale). **Boundary recorded:** content is **not Markdown** — attach as a structured shard
|
||||
and render lossily (UC-55/UC-73), never silent-flatten the graph; expose SPARQL as a
|
||||
graph-query tier (UC-74), not the union default. Architecture logged for `SHARD-WP-0002`
|
||||
(T12/T16): typed-graph page payload, opaque identity, native-query tiering (SPARQL +
|
||||
federated SERVICE), sub-page provenance model.
|
||||
|
||||
---
|
||||
|
||||
## Open questions
|
||||
@@ -1726,5 +1815,10 @@ journal-replay as a third merge model, fork entries as identity≠placement prov
|
||||
vocabulary (create/add/edit/move/remove/fork) at item granularity, or an abstract op
|
||||
set other shards can also emit — and does a **chorus / no-canonical** union (UC-72)
|
||||
compose with shards that assert a canonical? (Federated Wiki dive §9.)
|
||||
24. Does shard-wiki model a **typed-graph page** natively (entities + statements, UC-73) or
|
||||
always project Wikibase to a lossy Markdown/table view (UC-55) — and is **SPARQL/graph
|
||||
query** (UC-74) a union-level capability or a pass-through to graph-capable shards? At
|
||||
what granularity is **provenance** recorded — per page (MVP) or per statement (UC-75)?
|
||||
(Wikibase dive §8.)
|
||||
23. How does shard-wiki **honor/surface a shard's path-based access rules** (UC-06) in a
|
||||
projection without re-implementing its ACL engine? (Wiki.js dive §9.)
|
||||
Reference in New Issue
Block a user