5 · Deployment — Fuseki, modular publishing, day-2 cadence

Apache Jena Fuseki, three released modules, additive evolution. How EL keeps you fast and how reuse keeps you honest.

0/2 done

Theory — Deployment

Why Fuseki, not GraphDB this time

MedaCore picked GraphDB for the SHACL UI and the vendor-specific onto:explain. NorthWind has different constraints:

  • 100% open source — required by procurement.
  • Tight integration with Apache Jena rules (the operations team writes some SPARQL-Update rules for downstream alarm enrichment).
  • EL reasoning via ELK plugin — handles the alarm classification at telemetry rates.

Apache Jena Fuseki + ELK reasoner ticks all three. This is the recurring lesson of the track: the triplestore is a swappable backend. What stays constant is the ontology, the mapping, and the SPARQL.

Three modules, three PURLs, one repo

https://w3id.org/northwind/asset/1.0.0
https://w3id.org/northwind/sensors/1.0.0
https://w3id.org/northwind/events/1.0.0

Each module ships on its own semver. asset-core might be at 1.2.0 while sensors races ahead to 1.7.3. Consumers pin the version they tested against.

CI per module

Same ROBOT pipeline as MedaCore, but run independently per module and gated on the OWL 2 EL profile check (robot validate-profile --profile EL). If a contributor accidentally adds an inverse-property axiom, the build fails because that axiom would silently push the ontology into OWL 2 DL and break the polynomial-time guarantee the operations team relies on.

Reflect

Profile validation is a cheap, high-value CI gate. It encodes a non-functional requirement (polynomial-time reasoning) as a build assertion. The day-2 you don't have is the one you instrumented as a build failure.

  • Which other 'silent profile creep' axioms would you guard against?
  • What's the rollback plan if a profile violation is shipped to production?

Reading in progress · 0 of 2 activities done