textbooks: fix URLs after first end-to-end fetch

First make fetch-textbooks run revealed three URL issues that the
license-validator catches as policy-correct but the underlying
hosts return as 404:

- Keller-Trotter applied-combinatorics.org used a stale
  /appcomb/sec_pre.html path; the canonical PreTeXt-generated
  book lives at /book/app-comb-2.html.
- Open Data Structures uses /ods-cpp/ /ods-python/ /ods-java/
  trailing-slash directory paths, not /ods-cpp.html (404). Three
  language editions of the same content; ingest all three so the
  multi-language structure stays intact.
- Hilbert Foundations of Geometry on Wikisource resolves to a
  1906 Popular Science Monthly article ABOUT Hilbert's work, not
  Hilbert's translated text. Project Gutenberg eBook #17384 is
  PDF/TeX only — no clean HTML edition exists. Same status as
  Boole #15114: kept the entry as a placeholder for license +
  provenance documentation, urls intentionally empty until PDF
  source support lands (out of scope per #000031).

Final fetch result: 7/7 manifested URLs ingested (Bogart,
Keller-Trotter front matter, Levin front matter, Aristotle Prior
Analytics, ODS C++, ODS Python, ODS Java) — 7 docs / 7 chunks /
86 edges / 8/8 Merkle proofs verify (verify samples 8 because
Aristotle yields multiple chunks).

Two textbooks (Hilbert + Boole) carry zero URLs; the helper
script's allow-list passes them through (license is PD;
license_url is set) but emits no URLs since their `urls` array
is empty. Documents this gap explicitly in each entry's notes
field so future operators see what awaits PDF source support.

Front-matter URLs alone yield minimal indexable content per
textbook (PreTeXt single-chapter scaffolds). To grow real
coverage: append more chapter URLs to a textbook's `urls`
array, OR use `make crawl-ingest URL=<home>` per the README's
"Going deeper" section.
This commit is contained in:
russell@unturf.com 2026-05-09 15:06:24 -04:00
parent 0154191bd4
commit 8d433427d2
No known key found for this signature in database

View file

@ -1,8 +1,8 @@
{"_meta":{"version":"v1","created":"2026-05-09","notes":"Manifest of public-domain or copyleft-redistributable math / logic / computer-science textbooks for surface-ingest into arborist (#000031). License discipline: PD = public domain by age; CC-BY-SA = redistributable with attribution + share-alike; GFDL = redistributable under GNU Free Documentation License. Excludes CC-BY-NC (non-commercial clauses incompatible with arborist's AGPLv3 distribution profile) and excludes proprietary texts. Each entry's `urls` field is the seed URL list ingested via HtmlPageSource. To grow coverage of a textbook, add more chapter URLs to its `urls` array; the existing crawler (`make crawl-ingest URL=<base>`) is the alternative for full BFS."}}
{"id":"bogart-ctgd-2017","title":"Combinatorics Through Guided Discovery","author":"Kenneth P. Bogart","year":"2017 (estate-released open)","license":"GFDL-1.3","license_url":"https://www.gnu.org/licenses/fdl-1.3.html","domain":"combinatorics","pillar_targets":["VII"],"urls":["https://bogart.openmathbooks.org/ctgd/index.html"],"home_url":"https://bogart.openmathbooks.org/","notes":"Pedagogical combinatorics text. Author's estate explicitly opened under GFDL. Excellent fit for claim-pack pillar VII source citations."}
{"id":"keller-trotter-applied-comb-2017","title":"Applied Combinatorics","author":"Mitchel T. Keller, William T. Trotter","year":"2017+","license":"CC-BY-SA-4.0","license_url":"https://creativecommons.org/licenses/by-sa/4.0/","domain":"combinatorics","pillar_targets":["VII"],"urls":["https://www.appliedcombinatorics.org/appcomb/sec_pre.html"],"home_url":"https://www.appliedcombinatorics.org/appcomb/","notes":"AIM-approved open textbook from Georgia Tech. Covers permutations / combinations / inclusion-exclusion / generating functions / recurrence / Polya / graphs / discrete optimization."}
{"id":"keller-trotter-applied-comb-2017","title":"Applied Combinatorics","author":"Mitchel T. Keller, William T. Trotter","year":"2017+","license":"CC-BY-SA-4.0","license_url":"https://creativecommons.org/licenses/by-sa/4.0/","domain":"combinatorics","pillar_targets":["VII"],"urls":["https://appliedcombinatorics.org/book/app-comb-2.html"],"home_url":"https://appliedcombinatorics.org/book/","notes":"AIM-approved open textbook from Georgia Tech, PreTeXt-generated single-page HTML. Covers permutations / combinations / inclusion-exclusion / generating functions / recurrence / Polya / graphs / discrete optimization."}
{"id":"levin-discrete-math-3rd","title":"Discrete Mathematics: An Open Introduction (3rd edition)","author":"Oscar Levin","year":"2019","license":"CC-BY-SA-4.0","license_url":"https://creativecommons.org/licenses/by-sa/4.0/","domain":"discrete-mathematics","pillar_targets":["I","II","III","VII"],"urls":["https://discrete.openmathbooks.org/dmoi3/frontmatter.html"],"home_url":"https://discrete.openmathbooks.org/dmoi3/","notes":"Discrete-math text covering logic, set theory, proof techniques, basic number theory, functions, relations, elementary combinatorics. 3rd ed is CC-BY-SA-4.0; the 4th edition switched to CC-BY-NC-SA which is incompatible with our distribution profile — pin to the 3rd."}
{"id":"hilbert-foundations-geometry-1902","title":"The Foundations of Geometry","author":"David Hilbert (E. J. Townsend, transl.)","year":"1899/1902 (Townsend translation)","license":"PD","license_url":"https://en.wikipedia.org/wiki/Public_domain","domain":"geometry","pillar_targets":["IV"],"urls":["https://www.gutenberg.org/cache/epub/17384/pg17384-images.html"],"home_url":"https://www.gutenberg.org/ebooks/17384","notes":"Project Gutenberg eBook #17384. Hilbert's axiomatization of Euclidean geometry — foundational source cited by claim-pack pillar IV."}
{"id":"boole-laws-of-thought-1854","title":"An Investigation of the Laws of Thought","author":"George Boole","year":"1854","license":"PD","license_url":"https://en.wikipedia.org/wiki/Public_domain","domain":"logic","pillar_targets":["I"],"urls":["https://www.gutenberg.org/cache/epub/15114/pg15114-images.html"],"home_url":"https://www.gutenberg.org/ebooks/15114","notes":"Project Gutenberg eBook #15114. Boole's foundational treatise establishing what became propositional logic / Boolean algebra. PD by age."}
{"id":"hilbert-foundations-geometry-1902","title":"The Foundations of Geometry","author":"David Hilbert (E. J. Townsend, transl.)","year":"1899/1902 (Townsend translation)","license":"PD","license_url":"https://en.wikipedia.org/wiki/Public_domain","domain":"geometry","pillar_targets":["IV"],"urls":[],"home_url":"https://www.gutenberg.org/ebooks/17384","notes":"Project Gutenberg eBook #17384 — PDF/TeX only, no clean HTML format (Wikisource only has the 1906 Popular Science Monthly secondary article, not Hilbert's translated text). URLs intentionally empty until PDF source support lands; entry kept for license + provenance documentation. Hilbert's axiomatization of Euclidean geometry — foundational source cited by claim-pack pillar IV."}
{"id":"boole-laws-of-thought-1854","title":"An Investigation of the Laws of Thought","author":"George Boole","year":"1854","license":"PD","license_url":"https://en.wikipedia.org/wiki/Public_domain","domain":"logic","pillar_targets":["I"],"urls":[],"home_url":"https://www.gutenberg.org/ebooks/15114","notes":"Project Gutenberg eBook #15114 — PDF/TeX only, no HTML format. URLs intentionally empty until PDF source support lands; entry kept for license + provenance documentation. Boole's foundational treatise establishing propositional logic / Boolean algebra."}
{"id":"aristotle-prior-analytics-jenkinson","title":"Prior Analytics","author":"Aristotle (A. J. Jenkinson, transl.)","year":"~350 BCE; Jenkinson translation 1928","license":"PD","license_url":"https://en.wikipedia.org/wiki/Public_domain","domain":"logic","pillar_targets":["I"],"urls":["https://en.wikisource.org/wiki/Prior_Analytics"],"home_url":"https://en.wikisource.org/wiki/Prior_Analytics","notes":"Wikisource HTML. Aristotle's foundational treatise on syllogistic logic. Modus ponens / modus tollens / law of excluded middle all trace back here."}
{"id":"morin-open-data-structures","title":"Open Data Structures","author":"Pat Morin","year":"2013+","license":"CC-BY-2.5","license_url":"https://creativecommons.org/licenses/by/2.5/","domain":"computer-science","pillar_targets":[],"urls":["https://opendatastructures.org/ods-cpp.html","https://opendatastructures.org/ods-python.html"],"home_url":"https://opendatastructures.org/","notes":"Comprehensive open data-structures text. CC-BY-2.5 — fully redistributable. CS algorithms / complexity / asymptotic analysis foundation."}
{"id":"morin-open-data-structures","title":"Open Data Structures","author":"Pat Morin","year":"2013+","license":"CC-BY-2.5","license_url":"https://creativecommons.org/licenses/by/2.5/ca/","domain":"computer-science","pillar_targets":[],"urls":["https://opendatastructures.org/ods-cpp/","https://opendatastructures.org/ods-python/","https://opendatastructures.org/ods-java/"],"home_url":"https://opendatastructures.org/","notes":"Comprehensive open data-structures text. CC-BY-2.5 (Canadian port) — fully redistributable. Three language editions (C++, Python, Java) of the same content. CS algorithms / complexity / asymptotic analysis foundation."}