Factoidal — COTTAS / Parquet demo (js_of_ocaml, Phase 2)

This page loads a COTTAS Parquet file (four string columns: subject, predicate, object, graph) and runs a SPARQL query against it entirely in the browser. Parquet decoding is done by the F*-verified Parquet.Footer module; Zstandard decompression uses the vendored fzstd MIT library (~8 KB). Everything else is the same factoidal.js as the main demo.
Phase 2 milestone — see the wiring plan. Remote URL loading works via fetch; the cached bytes are fed to the virtual FS. Turtle-size inputs can be slow (see the performance caveats in CLAUDE.md) but the bundled 1 KB sample runs instantly.
Loading factoidal.js…
Results will appear here.

Try your own COTTAS file

Point the URL field above at any COTTAS-encoded Parquet file reachable by fetch. Same-origin or CORS-enabled only. Generate new COTTAS artifacts with tools/corpus_pipeline.py materialize-nq-cottas-corpus in the repo.

Local paths like ./cottas-examples/sample.parquet resolve relative to this HTML page — drop your own *.parquet next to it on the same host to test.