IRI resolution and the public RDF
Status: proposed
The standard’s IRIs, https://nova.org.za/nwss/…, resolve. A person following one reaches the term’s page on the public site; a program that asks for Turtle reaches the public module that defines the term. SHACL shapes, the rules and the release manifests are never public.
What is public. An explicit allow-list: the ontology, the glossary’s concept schemes, the indicators and the process graphs. Nothing else is published: not methodologies/, vvr/, reputationRequirements/, knowledgeDomains/, the catalog or the release manifests.
Every published file is stripped of every shape with the blank nodes it reaches (a subject typed in the SHACL namespace or carrying a SHACL predicate, counting the release’s shapes in any corpus file), every triple with a SHACL term in any position, and every check’s rule code: its SPARQL ASK query (iiplat:askQuery) and its smart-function source (nwss:functionSource). A check keeps its IRI, types, label and description. The indicator scheme carries nwss:IndicatorSubmissionShape, and the process graphs carry the rule code.
Published per release, from each release tag’s own tree from v0.1.0-pilot.1 on, never from main (ADR-0013). The site workflow also runs on a tag’s push. Each module is published under rdf/<release>/, with nwss.ttl merging them and rdf/latest/ copying the latest release. Pages are built from main whatever started the run.
Resolution. The generator writes rdf/nwss-htaccess.txt, which the user uploads as public_html/nwss/.htaccess on nova.org.za after each release. Every redirect is a 303 with Vary: Accept, by explicit per-term rules. HTML is the default; Turtle only when the client names text/turtle and names no text/html or names it at a q below 1. The User-Agent is never read. A shape, a check or a term outside the public modules resolves to HTML only. A path such as /nwss/0.1.0-pilot.1/ServicePoint pins a release. A path that names no term is a 404.
Where the pages live. The pages a redirect points to are served from standards.nova.org.za, the custom domain of Nova’s GitHub Pages sites, so a redirect stays on a nova.org.za host. The site URL is site_url in site/site.yml; changing it and regenerating the .htaccess moves every redirect. The old novainstitute.github.io addresses redirect to it.
Which namespace. NWSS is Nova’s standard, so its IRIs stay under nova.org.za. An ontology Nova publishes for general use, such as the methodology or indicator ontology, takes a w3id.org IRI instead, as the AIA ontologies do, so that it outlives any one host or organisation.
NWSS differs from greeningstandard ADR-0032 in two ways. The site code names no standard, so the namespace, prefix and site URL come from the catalog entry and site/site.yml, and the first published release is rdf_first_release in site/site.yml. And a tag is cut on a release-<version> branch (ADR-0013), not on main; the RDF is built from the tag itself, so where it was cut does not matter.
Mirrors ncgs ADR-0032.