Tool bake-off & scorecard
No single off-the-shelf tool documents the whole OPDA ontology — the OWL generators skip SHACL and treat SKOS unevenly, and none of them render the OPDA-specific layers at all. So the bake-off (ADR-0041 §Amendments) installs and runs every tool, embeds each rendering for personal inspection, scores them per layer against the M6 rubric, and adopts the best method per layer into one woven reference. This page is the bake-off home; the adopted composition is the schema-derived ontology.
The bake-off — all tools
Per ADR-0041 (rev-3 M2, operator direction), the bake-off installs and runs every tool so
each rendering can be inspected personally before settling the composition. The adopted
artefact combines tool renderings where they win, custom opda-gen scripts for
the OPDA-specific layers, and LLM-authored prose for the conceptual layer.
| Tool | Layer it renders | Rendering | Note |
|---|---|---|---|
| pyLODE | OWL term reference | View rendering ↗ | Python CLI; best single-file OWL ref; weak SHACL. |
| WIDOCO | OWL + metadata + VOWL diagrams | View rendering ↗ | Java jar (headless); richest publishable shell; weak SHACL. |
| SHACL Play! | SHACL shapes / profiles → HTML | View rendering ↗ | Sparna; the only tool that documents SHACL — resolves all blank nodes. |
| Skosmos | SKOS schemes (browser) | View rendering ↗ · live browser via make serve-data | NatLibFi Skosmos 3.x over Fuseki (B2 — localhost). Run with make serve-data + make skosmos → localhost:9090; the static schemes list is the linked fallback. |
| Ontospy | OWL + visualisations (multi-page) | View rendering ↗ | Python CLI (3.11); OWL + browsable SKOS; heavy (~87 MB). |
| LODE | OWL term reference (baseline) | View rendering ↗ | Dated; represented via Widoco's embedded LODE — see README. |
| custom opda-gen + LLM | profiles · exemplars · three-graph · governance · known-issues | View rendering ↗ | The OPDA-specific layers no off-the-shelf tool covers — our script + LLM prose. This is the adopted composition. |
Skosmos needs a live SPARQL runtime, so it is not embedded in the static
build (B2 resolved): run it from localhost alongside the build-time Fuseki (the
make serve-data pattern) and browse it at the link above; the contract is the
same as make serve-data today — the link resolves only with the local stack running.
Embedded renderings
Each embeddable tool's output is inlined below for side-by-side inspection (expand a panel
to load its iframe). Panels resolve as the generation step populates
public/development/inputs/pdtf-schema/schema-derived-ontology/use-and-tooling/tools/.
Embedded — pyLODE (OWL term reference)
Embedded — WIDOCO (OWL + metadata + VOWL diagrams)
Embedded — SHACL Play! (SHACL shapes / profiles → HTML)
Embedded — custom opda-gen + LLM (profiles · exemplars · three-graph · governance · known-issues)
M6 rubric scorecard
The decider is the operator, on inspection (ADR-0041 rev-3 M2 / rev-4 M6); the rubric
structures the inspection and the per-layer pick. Each tool is scored
Full / Partial / None per coverage-matrix layer, plus fidelity (does it
misrepresent — raw blank nodes, asserted-as-entailed, SHACL ignored) and integration cost
(effort to theme + wire into opda-gen + the gate). Tie-break: toward the tool
needing least custom post-processing for fidelity.
| Tool | OWL terms | SKOS | SHACL | Overlay profiles + gap | Exemplars | Three-graph | Governance / lineage | Known-issues | Fidelity | Integration cost |
|---|---|---|---|---|---|---|---|---|---|---|
| pyLODE | Full | Partial | None | None | None | None | Partial | None | High | Low |
| WIDOCO | Full | Partial | None | None | None | None | Partial | None | High | Medium |
| SHACL Play! | Partial | None | Full | Partial | None | None | Partial | None | Highest (0 blank nodes) | Low–medium |
| Ontospy | Full | Full | None | None | None | None | Partial | None | High | Medium–high (3.11 pin) |
| LODE (≡ Widoco-embedded) | Full | Partial | None | None | None | None | Partial | None | High | High for nil gain |
| Skosmos | None | Full | None | None | None | None | None | None | n/a (live) | Highest (live server) |
custom opda-gen + LLM | (reuses) | (reuses) | (reuses) | Full | Full | Full | Full | Full | High | — |
"Partial" governance for the OWL/SHACL tools = they render dct:source /
rdfs:comment provenance values present on terms, but none render the
ODR/ADR/council lineage as a structured layer. The profiles / exemplars /
three-graph / known-issues columns are None for every off-the-shelf tool —
the empirical basis for the custom layer.
Bottom line — the per-layer pick
The full scoring detail and per-tool fidelity / integration notes are in COMPARISON.md. The shape of the result:
| Layer | Strongest tool(s) | Why |
|---|---|---|
| OWL term reference | pyLODE (single-file) or WIDOCO (publishable shell + WebVOWL + provenance) | both Full, 0 blank nodes, deterministic, low cost. |
| SKOS schemes | Skosmos (live, Full) → Ontospy (static, Full, browsable) → pyLODE/WIDOCO (Partial) | Skosmos best when the local stack runs; Ontospy is the best static SKOS. |
| SHACL shapes / profiles | SHACL Play! (only option; Full; 0 blank nodes) | the sole tool that documents SHACL at all. |
| Profiles + gap · exemplars · three-graph · lineage · known-issues | custom opda-gen + LLM (only option) | every off-the-shelf tool is None here. |
| Diagram / visual | WIDOCO (embedded WebVOWL) | the only embedded interactive visualisation. |
No off-the-shelf tool covers the OPDA-specific layers — confirmed by
inspection. The composed reference (off-the-shelf where they win + custom
opda-gen + LLM prose), guarded by the two-tier doc-drift gate, is the
configuration the matrix points to; the final per-layer adoption is the operator's call on
inspection (M6). The custom layer's output — the GAP register, the 17 round-trip exemplars,
the three-graph separation, the lineage and the dated known-issues register — is woven into
the rest of the schema-derived ontology.
Related: the adopted composition is the Ontology overview; the decision record is in the ODR / ADR corpus (ADR-0041).
Comments
Loading comments…
Sign in to post a comment