Symptom
The specification header advertises URLs that 404, on every build and in the frozen 1.0 archive. Checking all 103 links in the rendered spec turns up four distinct causes.
1. edDraftURI — "Latest editor's draft"
respec/template.html sets edDraftURI: "https://ekgf.org/spec/{{ branch }}/". Two faults: the /dprod basePath is missing, and the branch name is not slugified, so any branch containing a slash — which is nearly all of them — cannot resolve.
https://ekgf.org/spec/issue/253-respec-publish-date/ 404
https://ekgf.org/dprod/spec/issue-253-respec-publish-date/ 200
2. latestVersion — "Latest published version"
Set to https://www.omg.org/spec/DPROD/dprod/, which is the vocabulary namespace IRI. It identifies the DPROD terms, not a document, and does not dereference. https://www.omg.org/spec/DPROD/ — the catalog entry, which always resolves to the newest published version — is what this field means.
3. The frozen archive has no edDraftURI at all
site/public/spec/archive/1.0/index.html never sets it, so ReSpec infers one from the github config: https://ekgf.github.io/dprod/, the GitHub Pages site retired by #235. Every reader of the published standard met a 404 that appears nowhere in the file.
The archive's latestVersion also points at itself, which is what "this version" means rather than "latest".
4. Two smaller link defects
respec/template.html:405 — href="https://www.omg.org/legal/tm_list.htm.": the sentence's full stop was swallowed into the URL. Present in the archive too.
- Two prose links to
https://www.omg.org/spec/DPROD/dprod.ttl (404). The "Download as RDF" entries in the same document already use a relative dprod.ttl, which resolves within whichever version the reader is on.
Fix
| field |
value |
latestVersion |
https://www.omg.org/spec/DPROD/ — OMG catalog |
edDraftURI |
https://ekgf.org/dprod/spec/develop/ — the one canonical draft |
thisVersion |
https://ekgf.org/dprod/spec/<slug>/ — this build |
Splitting thisVersion out keeps the per-branch URL, under the label that actually means it, while "latest editor's draft" points a preview reader at mainline.
Also: relative ontology links, the namespace IRI rendered as <code> rather than a dead link (matching the namespace table, which already does), the [[dprod]] bibliography entry pointed at the OMG catalog, and the trailing full stop removed from both documents.
tests/test_spec_header_urls.py covers all of it, because ReSpec builds the header client-side and none of this is visible without rendering the page.
Not fixable here
https://www.omg.org/spec/DPROD/dprod/ and https://www.omg.org/spec/DPROD/dprod.ttl do not resolve at OMG. Same family as #232 (dprod-context.jsonld returns 404): the artifacts are not published at their OMG URLs. This issue routes around them; it cannot fix them.
Symptom
The specification header advertises URLs that 404, on every build and in the frozen 1.0 archive. Checking all 103 links in the rendered spec turns up four distinct causes.
1.
edDraftURI— "Latest editor's draft"respec/template.htmlsetsedDraftURI: "https://ekgf.org/spec/{{ branch }}/". Two faults: the/dprodbasePath is missing, and the branch name is not slugified, so any branch containing a slash — which is nearly all of them — cannot resolve.2.
latestVersion— "Latest published version"Set to
https://www.omg.org/spec/DPROD/dprod/, which is the vocabulary namespace IRI. It identifies the DPROD terms, not a document, and does not dereference.https://www.omg.org/spec/DPROD/— the catalog entry, which always resolves to the newest published version — is what this field means.3. The frozen archive has no
edDraftURIat allsite/public/spec/archive/1.0/index.htmlnever sets it, so ReSpec infers one from thegithubconfig:https://ekgf.github.io/dprod/, the GitHub Pages site retired by #235. Every reader of the published standard met a 404 that appears nowhere in the file.The archive's
latestVersionalso points at itself, which is what "this version" means rather than "latest".4. Two smaller link defects
respec/template.html:405—href="https://www.omg.org/legal/tm_list.htm.": the sentence's full stop was swallowed into the URL. Present in the archive too.https://www.omg.org/spec/DPROD/dprod.ttl(404). The "Download as RDF" entries in the same document already use a relativedprod.ttl, which resolves within whichever version the reader is on.Fix
latestVersionhttps://www.omg.org/spec/DPROD/— OMG catalogedDraftURIhttps://ekgf.org/dprod/spec/develop/— the one canonical draftthisVersionhttps://ekgf.org/dprod/spec/<slug>/— this buildSplitting
thisVersionout keeps the per-branch URL, under the label that actually means it, while "latest editor's draft" points a preview reader at mainline.Also: relative ontology links, the namespace IRI rendered as
<code>rather than a dead link (matching the namespace table, which already does), the[[dprod]]bibliography entry pointed at the OMG catalog, and the trailing full stop removed from both documents.tests/test_spec_header_urls.pycovers all of it, because ReSpec builds the header client-side and none of this is visible without rendering the page.Not fixable here
https://www.omg.org/spec/DPROD/dprod/andhttps://www.omg.org/spec/DPROD/dprod.ttldo not resolve at OMG. Same family as #232 (dprod-context.jsonldreturns 404): the artifacts are not published at their OMG URLs. This issue routes around them; it cannot fix them.