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.

    ToolLayer it rendersRenderingNote
    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.

    ToolOWL termsSKOSSHACLOverlay profiles + gapExemplarsThree-graphGovernance / lineageKnown-issuesFidelityIntegration cost
    pyLODEFullPartialNoneNoneNoneNonePartialNoneHighLow
    WIDOCOFullPartialNoneNoneNoneNonePartialNoneHighMedium
    SHACL Play!PartialNoneFullPartialNoneNonePartialNoneHighest (0 blank nodes)Low–medium
    OntospyFullFullNoneNoneNoneNonePartialNoneHighMedium–high (3.11 pin)
    LODE (≡ Widoco-embedded)FullPartialNoneNoneNoneNonePartialNoneHighHigh for nil gain
    SkosmosNoneFullNoneNoneNoneNoneNoneNonen/a (live)Highest (live server)
    custom opda-gen + LLM(reuses)(reuses)(reuses)FullFullFullFullFullHigh—

    "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:

    LayerStrongest tool(s)Why
    OWL term referencepyLODE (single-file) or WIDOCO (publishable shell + WebVOWL + provenance)both Full, 0 blank nodes, deterministic, low cost.
    SKOS schemesSkosmos (live, Full) → Ontospy (static, Full, browsable) → pyLODE/WIDOCO (Partial)Skosmos best when the local stack runs; Ontospy is the best static SKOS.
    SHACL shapes / profilesSHACL Play! (only option; Full; 0 blank nodes)the sole tool that documents SHACL at all.
    Profiles + gap · exemplars · three-graph · lineage · known-issuescustom opda-gen + LLM (only option)every off-the-shelf tool is None here.
    Diagram / visualWIDOCO (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…