Semantic Web and Web 3.0 · class 12 · demo

Break it on purpose

Each button copies the project's files, changes one thing in the copy and runs the five checks over it, as you would by hand with : > project/chain/chain.nt and git checkout afterwards. Nothing is saved: reload the report and it is still green.

Empty the chain graphA SHACL violationA query with a wrong prefix

A SHACL violation

What was changed, on a copy: In output/graph.trig, graph graph:catalogue: product:100 onto:price 4.90 becomes -4.90 (a negative price, as if catalogue.sql had said -4.90).
reproducibility check -- 2026-11-01T17:24:32Z

[skip] no Docker reachable: the health of the services was not checked
[failure] graph with 122 triples, SHACL validation with violations
Validation Report
Conforms: False
Results (1):
Constraint Violation in MinInclusiveConstraintComponent (http://www.w3.org/ns/shacl#MinInclusiveConstraintComponent):
	Severity: sh:Violation
	Source Shape: [ sh:datatype xsd:decimal ; sh:maxCount Literal("1", datatype=xsd:integer) ; sh:message Literal("Price missing, repeated or negative.") ; sh:minCount Literal("1", datatype=xsd:integer) ; sh:minInclusive Literal("0", datatype=xsd:integer) ; sh:path onto:price ]
	Focus Node: <https://data.csoares.me/product/100>
	Value Node: Literal("-4.90", datatype=xsd:decimal)
	Result Path: onto:price
	Message: Price missing, repeated or negative.
[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)

1 check(s) failed, 2 skipped

Exit code 1.

graph [failure] graph with 122 triples, SHACL validation with violations

pyshacl names the focus node, the value and the shape's message. On disk the pipeline would have stopped here (load-semantics.sh uses set -e), and nothing would be sent to the store.

The real project was not touched: its fingerprint is 455c89c03cb22461 before this request and 455c89c03cb22461 after, and the report is still the one from 2026-11-01T17:21:57Z.