Semantic Web and Web 3.0 · class 12 · demo
The report
One line per check, in the order of check.sh. Each check is its own program and returns 0 (ok),
2 (skip) or anything else (failure); the exit code is 0 only when nothing failed.
Rebuild the graph and run the checks again
Last run 2026-11-01T17:21:57Z · run IRI run:2026-11-01T17:21:57
reproducibility check -- 2026-11-01T17:21:57Z [skip] no Docker reachable: the health of the services was not checked [ok] graph with 122 triples in 5 graphs, no SHACL violations [ok] 7/7 competency queries return results [ok] contract answered in block 8412991 (2 records indexed) [skip] interface not reachable at http://localhost:8080 (nothing listening) everything that can be checked here passed; 2 check(s) skipped (on the day of the defence there can be none skipped)
| Check | Line, and why | |
|---|---|---|
| skip | services scripts/checks/services.sh every service of project/compose.yaml is running and healthy | [skip] no Docker reachable: the health of the services was not checked Not run in this demo: it is one Python process and brings up no compose stack, so there is no service to ask. This is the line check.sh prints on a machine with no Docker. With the stack up (README, «The full stack, locally») it is [ok] 1 services healthy. |
| ok | graph scripts/checks/graph.py output/graph.trig exists and passes shapes.ttl (SHACL) | [ok] graph with 122 triples in 5 graphs, no SHACL violations Run now, on the graph rebuilt at start-up. The evidence → |
| ok | queries scripts/checks/queries.py every queries/*.rq returns at least one row | [ok] 7/7 competency queries return results Run now, on the graph rebuilt at start-up. The evidence → |
| ok | chain scripts/checks/chain.py chain/chain.nt has records with onto:block | [ok] contract answered in block 8412991 (2 records indexed) Run now, on the graph rebuilt at start-up. The evidence → |
| skip | interface scripts/checks/interface.sh the interface answers with a status below 400 | [skip] interface not reachable at http://localhost:8080 (nothing listening) Not run in this demo: the example project has no interface (the micro frontends are each group's own) and nothing listens on :8080 here. This is the line check.sh prints when nothing answers; with any server on :8080 it is [ok] interface available at http://localhost:8080. |
Before the checks: ./scripts/load-semantics.sh
The example's pipeline.py, unchanged, run inside this process. It is the step that is done
before the verifier: the verifier checks a system that is already up, and can be run over and over.
[load] rebuilding the graph from the sources rebuilding the integrated graph: 1. catalogue (SQL): 29 triples 2. suppliers (CSV): 30 triples 3. external source: 12 triples (aligned with CONSTRUCT) 4. identity: 3 sameAs, 1 closeMatch for human review 5. provenance: run https://data.csoares.me/run/2026-11-01T17:21:57 6. SHACL: no violations (116 triples) written: output/graph.trig (122 quads) [load] no SPARQL_UPDATE_URL: the graph stays in project/output/graph.trig
On a machine with the stack up
The online demo does not start the example's compose stack. Locally, from examples/01-check:
cp .env.example .env && docker compose up -d --build --wait && ./scripts/load-semantics.sh && ./check.sh
— and the first line becomes [ok] 1 services healthy. See the demo's README.