SPARQL 1.1 631 pass · 0 fail · 0 skip
SPARQL 1.1 Query Language
SPARQL 1.1 Update
SPARQL 1.1 Protocol
SPARQL 1.1 Federated Query
SPARQL 1.1 Service Description
SPARQL 1.1 Entailment Regimes
SPARQL 1.1 failures (click to expand)
- (none)
SPARQL 1.1 skips (click to expand)
- (none)
RDF 1.1 1031 pass · 0 fail
RDF 1.1 N-Triples
RDF 1.1 Turtle
RDF 1.1 N-Quads
RDF 1.1 TriG
RDF 1.1 RDF/XML
RDF 1.1 Semantics
RDF 1.1 failures (click to expand)
- (none)
RDF 1.1 skips (click to expand)
- (none)
OWL 2 22+ pass via owl_runner across 7 catalogs (profile-RL/EL/QL + 4 DL) · live scoring
Scope. The OWL 2 W3C Test Cases catalog (~3378
test:TestCase entries across 9 categories) is vendored
under third_party/testing/owl/. As of Phase 2.3
(2026-05-08), seven catalogs run live through
owl_runner with PositiveEntailment / NegativeEntailment /
Consistency / Inconsistency scoring: profile-RL.rdf,
profile-EL.rdf, profile-QL.rdf,
type-positive-entailment.rdf,
type-negative-entailment.rdf,
type-consistency.rdf, type-inconsistency.rdf,
and semantics-direct.rdf. The remaining catalog
(syntax-dl.rdf) needs a DL syntactic-profile checker
before it can score.
Tableau on the live codepath. The F\*
Tableau.tableau_materialise module (1167 LoC, 0
assume val, 0 --lax) is also on the
SPARQL entailment regime codepath via w3c_runner.ml:
parent4/5/6/7, simple7/8, sparqldl-01…12, etc. — the
SPARQL 1.1 Entailment Regimes row above (70/70)
passes because Tableau drives the membership check. The owl_runner
catalogs below currently score under the RL closure path; wiring
Tableau into owl_runner via --regime dl is Phase 2.3d.
Pass-rate context. Across the seven scored
catalogs, the bulk of failures fall into two known categories:
(1) tests that use OWL Functional-Style Syntax (not RDF/XML)
trigger FAIL/no-premise — these need an FSS parser
before scoring is meaningful; (2) Inconsistency-Test failures
(notably the type-Inc 8% rate) are RL-closure incompleteness —
RL doesn't derive every DL contradiction. Lifting requires
either extending is_inconsistent or running
Tableau (Phase 2.3d).
OWL 2 (W3C conformance):
We vendor the full W3C OWL 2 Test Cases at
third_party/testing/owl/ (10 catalog files, ~2500
test:TestCase entries after overlap). After Phase 2.3
(2026-05-08), 7 of 8 main catalogs run live through
owl_runner with PE/NE/Cons/Inc scoring. The runner
applies owl_rl_closure_with_reflexivity (fuel 100) and
for entailment tests checks the conclusion’s triples against
the closure (relaxed bnode match); for consistency tests it consults
RDF_Graph_Executable.is_inconsistent against the same
closure. syntax-dl.rdf is the remaining unwired catalog
(DL syntactic-profile checker pending). The roadmap rows below
point at adjacent W3C/OGC suites we want to add: GeoSPARQL (#239),
JSON-LD 1.1, CSVW, ShEx, DID, VC, RML.
RDFC-1.0 62 pass · 23 fail · 1 stub · of 86 total
RDFC-1.0 (W3C RDF Dataset Canonicalization):
We vendor the full W3C RDFC-1.0 Test Cases at
third_party/testing/rdf-canon/. The canonical-labelling
algorithm lives in F* at formal/fstar/RDF.Canonical.fst
— Hash First Degree Quads (HFDQ) phase verifies cleanly
with no --lax and no --admit_smt_queries.
Eval tests check the canonical N-Quads form bytewise. Phase 2 work
(HNDQ — Hash N-Degree Quads with bounded permutation
enumeration) closes the remaining symmetric-cycle eval tests. Map
tests are STUB pending a runner-side bnode → canonical-id JSON
emitter; NegEval tests need an HNDQ termination guard.
Machine-readable artifacts
latest.csv— one row per suite (timestamp, commit, branch, category, suite, pass/fail/skip/unsupported)latest.json— same data plus totals, structuredhistory/<timestamp>.csv/.json— timestamped copies, one pair per runner invocationperf-parse-serialize.json— parse/serialize/canonicalize throughput (if present; produced bytools/bench-parse-serialize.sh, not this script)
The raw runner logs (including per-test FAIL lines with diffs) are committed to
formal/fstar/ocaml-output/sparql_results.log and
formal/fstar/ocaml-output/rdf_results.log.
Raw per-suite numbers
SPARQL 1.1
631 total: 631 pass, 0 fail, 0 skip, 0 unsupported add pass:8 fail:0 skip:0 unsupported:0 aggregates pass:47 fail:0 skip:0 unsupported:0 basic-update pass:13 fail:0 skip:0 unsupported:0 bind pass:10 fail:0 skip:0 unsupported:0 bindings pass:11 fail:0 skip:0 unsupported:0 cast pass:6 fail:0 skip:0 unsupported:0 clear pass:4 fail:0 skip:0 unsupported:0 construct pass:7 fail:0 skip:0 unsupported:0 copy pass:6 fail:0 skip:0 unsupported:0 csv-tsv-res pass:6 fail:0 skip:0 unsupported:0 delete pass:19 fail:0 skip:0 unsupported:0 delete-data pass:6 fail:0 skip:0 unsupported:0 delete-insert pass:17 fail:0 skip:0 unsupported:0 delete-where pass:6 fail:0 skip:0 unsupported:0 drop pass:4 fail:0 skip:0 unsupported:0 entailment pass:70 fail:0 skip:0 unsupported:0 exists pass:6 fail:0 skip:0 unsupported:0 functions pass:75 fail:0 skip:0 unsupported:0 grouping pass:6 fail:0 skip:0 unsupported:0 http-rdf-update pass:19 fail:0 skip:0 unsupported:0 json-res pass:4 fail:0 skip:0 unsupported:0 move pass:6 fail:0 skip:0 unsupported:0 negation pass:12 fail:0 skip:0 unsupported:0 project-expression pass:7 fail:0 skip:0 unsupported:0 property-path pass:33 fail:0 skip:0 unsupported:0 protocol pass:34 fail:0 skip:0 unsupported:0 service pass:7 fail:0 skip:0 unsupported:0 service-description pass:3 fail:0 skip:0 unsupported:0 subquery pass:14 fail:0 skip:0 unsupported:0 syntax-fed pass:3 fail:0 skip:0 unsupported:0 syntax-query pass:94 fail:0 skip:0 unsupported:0 syntax-update-1 pass:54 fail:0 skip:0 unsupported:0 syntax-update-2 pass:1 fail:0 skip:0 unsupported:0 update-silent pass:13 fail:0 skip:0 unsupported:0
RDF 1.1
1031 total: 1031 pass, 0 fail, 0 skip, 0 unsupported rdf-mt pass:39 fail:0 skip:0 unsupported:0 rdf-n-quads pass:87 fail:0 skip:0 unsupported:0 rdf-n-triples pass:70 fail:0 skip:0 unsupported:0 rdf-trig pass:356 fail:0 skip:0 unsupported:0 rdf-turtle pass:313 fail:0 skip:0 unsupported:0 rdf-xml pass:166 fail:0 skip:0 unsupported:0
How this page is generated
Source: formal/fstar/generate-report.sh. It shells out to the
w3c_runner binary (extracted from F* specs, compiled via OCaml),
scrapes per-suite counts, and writes index.html, latest.csv,
and latest.json. Run ./generate-report.sh --run in
formal/fstar/ to regenerate. CI re-runs on every push and nightly
at 06:00 UTC.