feat(works): add eight Nietzsche works with aphorism numbering - #40
Merged
Merged
Conversation
There was a problem hiding this comment.
Pull request overview
Adds eight Friedrich Nietzsche works to the TextRefs registry as new works/*.yaml records, using the existing integer-section citation system with canonical aphorism/section extents and resolvers targeting Nietzsche Source (eKGWB). This expands the registry’s coverage of modern philosophy works without introducing a new citation-system shape.
Changes:
- Added 8 new work records under
works/withinteger-sectionreferences and explicitreferences_rangebounds (total 2,737 references). - Added Nietzsche Source (eKGWB) resolvers for each work using server-validated path URLs (
/eKGWB/{SIGLUM}-{section}) and recordedlast_checked. - Added Wikidata
alternateOfmappings for 7 works and documented the intentional absence of a Wikidata mapping for Vermischte Meinungen und Sprüche.
Reviewed changes
Copilot reviewed 8 out of 8 changed files in this pull request and generated 8 comments.
Show a summary per file
| File | Description |
|---|---|
| works/nietzsche.menschliches-allzumenschliches.yaml | New work record for Menschliches, Allzumenschliches with eKGWB resolver and integer-section extent (1–638). |
| works/nietzsche.vermischte-meinungen.yaml | New work record for Vermischte Meinungen und Sprüche with eKGWB resolver and extent (1–408), intentionally no Wikidata mapping. |
| works/nietzsche.wanderer-und-sein-schatten.yaml | New work record for Der Wanderer und sein Schatten with eKGWB resolver and extent (1–350). |
| works/nietzsche.morgenroete.yaml | New work record for Morgenröthe with eKGWB resolver and extent (1–575). |
| works/nietzsche.froehliche-wissenschaft.yaml | New work record for Die fröhliche Wissenschaft with eKGWB resolver and extent (1–383). |
| works/nietzsche.jenseits-von-gut-und-boese.yaml | New work record for Jenseits von Gut und Böse with eKGWB resolver and extent (1–296). |
| works/nietzsche.antichrist.yaml | New work record for Der Antichrist with eKGWB resolver and extent (1–62). |
| works/nietzsche.geburt-der-tragoedie.yaml | New work record for Die Geburt der Tragödie with eKGWB resolver and extent (1–25). |
💡 Add a code-review agent skill or configure MCP servers for context-aware, tailored reviews. Learn more in the docs.
maehr
added a commit
that referenced
this pull request
Aug 26, 2026
Copilot review on #40: every existing work record carries a Wikipedia `isReferencedBy` mapping beside its Wikidata `alternateOf`, and these eight did not. Correct — the omission was mine, not a decision. Article titles were taken from each Wikidata item's enwiki sitelink rather than guessed from the work title, and every one of the seven URLs was checked and returns HTTP 200. Vermischte Meinungen und Sprüche still carries no mappings, and both absences are now checked rather than assumed. Wikidata has no separate item for it. And no Wikipedia article exists in either language: the English and German titles both return HTTP 404 on 2026-08-26. Registering it unmapped is better than mapping it to the parent work, which would assert something false about what the target denotes (ADR-0006). Refs #36 Co-Authored-By: Claude Opus 5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01CD9MxbT2jSZmJyR9ywJGEs
maehr
added a commit
that referenced
this pull request
Aug 26, 2026
Copilot review on #40: every existing work record carries a Wikipedia `isReferencedBy` mapping beside its Wikidata `alternateOf`, and these eight did not. Correct — the omission was mine, not a decision. Article titles were taken from each Wikidata item's enwiki sitelink rather than guessed from the work title, and every one of the seven URLs was checked and returns HTTP 200. Vermischte Meinungen und Sprüche still carries no mappings, and both absences are now checked rather than assumed. Wikidata has no separate item for it. And no Wikipedia article exists in either language: the English and German titles both return HTTP 404 on 2026-08-26. Registering it unmapped is better than mapping it to the parent work, which would assert something false about what the target denotes (ADR-0006). Refs #36 Co-Authored-By: Claude Opus 5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01CD9MxbT2jSZmJyR9ywJGEs
Verified row from registry #25, tracked in #36. 2,737 references. #25 deferred this row because the eKGWB URI was hash-based and so could not be link-checked. That is no longer true: nietzschesource.org serves a real HTTPS path, and it validates the siglum server-side, so a bad reference returns a genuine 404. No new citation system. These reuse `integer-section`, whose description already says it is generic and that work-specific bounds belong to the registered references rather than the shape check. Extents were found by binary search against the provider's own 404s — about ten requests per work rather than four hundred — and each was confirmed at the boundary, so AC-62 resolves and AC-63 does not. The eight totals match the counts these works are conventionally cited by. Wikidata was resolved with one SPARQL query for every work whose author is Q9358, after keyword search proved unreliable: the top hit for "Jenseits von Gut und Böse" is a Bushido album, and Morgenröthe and Der Antichrist did not surface at all under their English titles. Seven of eight are mapped. Vermischte Meinungen und Sprüche is registered without a Wikidata mapping. The SPARQL query returns no separate item for it — Wikidata treats it only as part of Menschliches, Allzumenschliches II — and mapping it to the parent would be wrong. It is cited on its own siglum and resolves on its own. Refs #36 Co-Authored-By: Claude Opus 5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01CD9MxbT2jSZmJyR9ywJGEs
Copilot review on #40: every existing work record carries a Wikipedia `isReferencedBy` mapping beside its Wikidata `alternateOf`, and these eight did not. Correct — the omission was mine, not a decision. Article titles were taken from each Wikidata item's enwiki sitelink rather than guessed from the work title, and every one of the seven URLs was checked and returns HTTP 200. Vermischte Meinungen und Sprüche still carries no mappings, and both absences are now checked rather than assumed. Wikidata has no separate item for it. And no Wikipedia article exists in either language: the English and German titles both return HTTP 404 on 2026-08-26. Registering it unmapped is better than mapping it to the parent work, which would assert something false about what the target denotes (ADR-0006). Refs #36 Co-Authored-By: Claude Opus 5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01CD9MxbT2jSZmJyR9ywJGEs
maehr
added a commit
to textrefs/textrefs.org
that referenced
this pull request
Aug 26, 2026
* chore(data): bump the registry pointer to 7d109195 Picks up the second-wave works verified against registry #25: - textrefs/registry#39 — Dante, Divina Commedia (14,233 references), with the verse-level Princeton resolver and a canto-level Dante Lab companion - textrefs/registry#38 — Hume, Treatise and first Enquiry (1,468 references) - textrefs/registry#40 — eight Nietzsche works (2,737 references) Closes registry #34, #36 and #37. The registry goes from 12 works to 23, and from 67,959 references to 86,397. npm run verify passes on the new pin: 86,477 records valid, 259,811 pages built, all internal links valid. * chore(deps): safe update of all dependencies within their semver ranges `npm update` only. package.json is untouched; the lockfile moves seven packages to the newest version their declared range already allows: - @astrojs/starlight 0.41.7 -> 0.41.9 - @commitlint/cli 21.2.1 -> 21.2.2 - @commitlint/config-conventional 21.2.0 -> 21.2.2 - astro 7.2.1 -> 7.2.7 - mermaid 11.16.1 -> 11.17.2 - starlight-openapi 0.26.0 -> 0.26.1 - uuid 14.0.1 -> 14.0.2 Deliberately not taken, because neither is a safe update: - starlight-blog 0.28.0 -> 0.29.0 is outside the declared range. - typescript 6.0.3 -> 7.0.2 is a major. Three high-severity advisories remain and are NOT fixed here. All three are the same chain — form-data (CRLF injection) via httpsnippet via starlight-openapi — and npm's only offered remedy is a DOWNGRADE of starlight-openapi to 0.24.0, which it flags isSemVerMajor. `npm audit fix --force` would move the tree backwards, so it was not run. starlight-openapi is a devDependency used to render the API docs at build time; nothing in that chain reaches a published page. npm run verify passes: 86,477 records valid, 259,811 pages built, all internal links valid. --------- Co-authored-by: Moritz Mähr <14755525+maehr@users.noreply.github.com>
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Closes #36. Verified row from #25, part of #28.
Eight works, 2,737 references, no new citation system.
MAVMWSMFWJGBACGTThe reason this row was deferred no longer holds
#25 parked Nietzsche because the eKGWB URI was hash-based and "cannot be confirmed by fetch". The site now serves a real HTTPS path and validates the siglum server-side —
FW-9999,XX-1andFW-125xall return genuine 404s — so these resolvers are link-checkable like any other.No new system
These reuse
integer-section, whose own description invites it: "Generic integer section locators. Exact work-specific bounds are enforced by registered CanonicalReference records, not by this shape check." The siglum is a per-work constant in the resolver template, not a locator variable, so nothing new was needed.How the extents were found
Binary search against the provider's own 404s — about ten requests per work instead of four hundred — with the boundary then checked explicitly in both directions.
AC-62resolves;AC-63returns 404. Same for all eight.The totals that came back are the counts these works are conventionally cited by, which is a useful independent check on the method.
Wikidata, and why keyword search was not enough
Searching by title was actively misleading. The top hit for Jenseits von Gut und Böse is a Bushido album; Morgenröthe and Der Antichrist did not surface at all under their English titles. Resolved instead with a single SPARQL query for every work whose author is Q9358, then each candidate confirmed to carry
P50 = Q9358.Vermischte Meinungen und Sprüche is registered without a Wikidata mapping. That query returns no separate item for it — Wikidata treats it only as part of Menschliches, Allzumenschliches II. Mapping it to the parent would assert something false, and
AGENTS.mdis explicit that the relation follows what the target actually is. It is cited on its own siglum and resolves on its own, so it is registered unmapped, with the reason in the file.Two things worth a reviewer's eye
oe/ue/ae—nietzsche.morgenroete,nietzsche.froehliche-wissenschaft,nietzsche.jenseits-von-gut-und-boese,nietzsche.geburt-der-tragoedie. data: second-wave work candidates with established citation systems #25 sketchednietzsche.frohliche-wissenschaftinstead. Renaming a key after publication is a tombstone event, so worth settling now.GD,EH,GMandZause compound sigla (GD-Sprueche-1) and a different locator shape; they need their own system and are not in this PR.Checks
npm run compile:data— 20 works, 10 systems, 70,696 referencesnpm run validate:data— 70,757/70,757 records validAC 63,GT 26,FW 384,M 576