Phase 1 enrich KJV manifest metadata

This commit is contained in:
2026-07-11 21:52:17 -05:00
parent 5c45070dc6
commit 29bbc41b55
8 changed files with 272 additions and 24 deletions
+15
View File
@@ -0,0 +1,15 @@
# Changelog
## Current
- Enriched the KJV source manifest with translation, edition, contributor, feature, attachment, license, and catalog-display metadata.
- Recorded the reusable manifest convention for future Bible translations and study resources.
- Adopted the convention that each named implementation phase bumps the repo version and is committed locally and remotely.
## 0.1.1 - 2026-07-12
- Phase 1 metadata foundation: expanded the KJV manifest and manifest documentation so future translations can describe editions, source text basis, contributors, concordance links, study notes, commentaries, maps, and other attachments.
## 0.1.0 - 2026-07-12
- Initial LibreBible data repository with KJV `eng-kjv2006` source manifest, checksum checking, USFM import, generated JSONL packages, and generated JSON catalog output.
+18 -2
View File
@@ -21,6 +21,8 @@ The long-term goal is a dynamic resource library that applications can search, i
- Local development happens in the workspace repo on drive `W:`.
- The Christ Unscripted Gitea remote is the remote backup, collaboration, and publishing copy.
- Do not treat resource work as durable until it is committed locally and pushed to Gitea.
- Every named implementation phase should bump the repo version and be recorded in Git both locally and remotely.
- Phase completion means the version bump, code/data/docs changes, and validation result are committed locally and pushed to Gitea.
- The normal flow is local import/check, generated package verification, local commit, push to Gitea, then publish generated catalogs or releases from the pushed state.
- The local repo and the Gitea repo are both intentional copies. Either should be enough to recover the project if the other system fails.
- Do not publish generated resources or release artifacts from a dirty worktree unless Jason explicitly asks for that exact operation.
@@ -62,8 +64,11 @@ Every source resource needs a manifest in `sources/`.
Each manifest should record:
- Stable resource id.
- Resource type, such as `translation`, `study_notes`, `commentary`, `map`, `lexicon`, `dictionary`, `cross_reference`, or `timeline`.
- Human title and abbreviation.
- Language.
- Language code, language name, script, and dialect when relevant.
- Translation date, edition date, source text basis, tradition, and public description when the resource is a Bible translation.
- Contributors and maintainers with their roles.
- Upstream provider.
- Upstream human URL.
- Upstream download URL.
@@ -74,7 +79,18 @@ Each manifest should record:
- Last checked timestamp.
- Importer name and version.
- Generated package paths.
- Feature flags such as `strongs`, `notes`, `morphology`, `commentary`, `maps`, or `cross-references`.
- Structured features and attachment metadata such as `strongs`, `notes`, `morphology`, `commentary`, `maps`, or `cross-references`.
Bible translation manifests should be broad enough to describe editions that include more than plain verse text. A translation may include or later connect to Hebrew, Greek, or Aramaic concordance entries, morphology, lemma links, study notes, commentaries, maps, timelines, media, and cross-reference resources. Do not encode KJV-only assumptions into the manifest shape.
Attachment metadata should identify:
- Attachment resource type.
- Whether the attachment is embedded in the source package or external.
- Relationship type, such as `word-to-strongs`, `verse-to-note`, `range-to-commentary`, `place-to-map`, or `event-to-timeline`.
- Anchor types, such as translation, book, chapter, verse, verse range, word/token, Strong's number, lemma, topic, place, or timeline event.
- Languages and systems involved, such as Hebrew, Greek, Aramaic, Strong's, morphology, or source-language lemmas.
- Generated package path when the attachment is packaged.
## Metadata Truth
+25 -3
View File
@@ -1,25 +1,47 @@
# Resource Manifest
Each `sources/*.json` file describes one upstream resource.
Each `sources/*.json` file describes one upstream resource. The first resource is a Bible translation, but the same manifest discipline should also cover study notes, commentaries, maps, lexicons, dictionaries, timelines, cross-references, and other Bible-study resources.
Required fields:
- `id`: Stable package id used by apps.
- `resource_type`: Type of resource, such as `translation`, `study_notes`, `commentary`, `map`, `lexicon`, `dictionary`, `cross_reference`, or `timeline`.
- `title`: Human-readable title.
- `short_title`: Short human title when different from `title`.
- `abbreviation`: Short label.
- `language`: BCP-47-ish language code.
- `alternate_ids`: Upstream or ecosystem ids for the same resource.
- `language`: Object with language code, name, and dialect when relevant.
- `script`: Script code when useful.
- `canon`: Scope and notes for biblical canon coverage.
- `translation`: Translation-specific metadata, including translation year, edition year, source text basis, tradition, and public description.
- `contributors`: Names and roles for translators, maintainers, publishers, source providers, or package providers.
- `features`: Structured feature list, not just strings.
- `attachments`: Included and future-supported attachment metadata.
- `source.provider`: Upstream publisher or repository.
- `source.url`: Human-facing upstream page.
- `source.download_url`: Machine download URL used by importers.
- `source.format`: Upstream source format, such as `usfm-zip`.
- `source.upstream_id`: Upstream resource id.
- `source.upstream_last_updated`: Upstream last-updated date when known.
- `license.name`: License or rights label.
- `license.redistribution`: Whether this repo may redistribute normalized outputs.
- `license.notes`: Practical rights notes.
- `license.jurisdiction_notes`: Practical rights notes.
- `license.attribution`: Attribution text when needed.
- `checks.expected_sha256`: Last accepted source archive checksum.
- `checks.last_checked_at`: Last automated check timestamp.
- `importer.name`: Script/importer id.
- `importer.version`: Importer version.
- `packages`: Generated package paths.
- `catalog_display`: Human-facing summary and primary feature labels.
Attachment metadata should record:
- `resource_type`: Attachment type, such as `concordance_links`, `study_notes`, `commentary`, `map`, `morphology`, `lexicon`, or `timeline`.
- `relationship`: How the attachment connects, such as `word-to-strongs`, `verse-to-note`, `range-to-commentary`, or `place-to-map`.
- `anchor_types`: The target surfaces it can attach to: translation, book, chapter, verse, verse range, word/token, Strong's number, lemma, topic, place, or timeline event.
- `languages`: Original or target languages involved, including Hebrew, Greek, and Aramaic when applicable.
- `systems`: Concordance or tagging systems involved, such as Strong's or morphology codes.
- `package`: Generated package path when the attachment is packaged.
Update flow:
+2 -2
View File
@@ -1,12 +1,12 @@
{
"name": "libre-bible-data",
"version": "0.1.0",
"version": "0.1.1",
"lockfileVersion": 3,
"requires": true,
"packages": {
"": {
"name": "libre-bible-data",
"version": "0.1.0",
"version": "0.1.1",
"dependencies": {
"adm-zip": "^0.5.16"
}
+1 -1
View File
@@ -1,6 +1,6 @@
{
"name": "libre-bible-data",
"version": "0.1.0",
"version": "0.1.1",
"private": true,
"type": "module",
"scripts": {
+43 -5
View File
@@ -1,20 +1,58 @@
{
"generated_at": "2026-07-12T02:30:18.202Z",
"generated_at": "2026-07-12T02:51:51.354Z",
"resources": [
{
"id": "kjv-eng-kjv2006",
"title": "King James (Authorized) Version",
"abbreviation": "KJV",
"language": "eng",
"language": {
"code": "eng",
"name": "English",
"dialect": "archaic British"
},
"features": [
"strongs",
"usfm"
{
"id": "bible-text",
"type": "translation_text",
"label": "Bible text",
"languages": [
"eng"
],
"embedded": true
},
{
"id": "strongs-links",
"type": "concordance_links",
"label": "Strong's-linked words",
"languages": [
"hebrew",
"aramaic",
"greek"
],
"systems": [
"strongs"
],
"embedded": true,
"package": "packages/json/kjv-eng-kjv2006/strongs-links.jsonl"
},
{
"id": "usfm-source",
"type": "source_format",
"label": "USFM source",
"format": "usfm",
"embedded": false
}
],
"license": {
"name": "Public Domain",
"redistribution": true,
"jurisdiction_notes": "eBible states this work is firmly public domain outside the United Kingdom; UK printing/import may be restricted by Crown letters patent.",
"source_license_url": "https://ebible.org/find/show.php?id=eng-kjv2006"
"source_license_url": "https://ebible.org/find/show.php?id=eng-kjv2006",
"attribution": "This free text is provided courtesy of CrossWire Bible Society and eBible.org.",
"public_domain_outside": [
"United Kingdom"
],
"restricted_notes": "Printing this translation in the United Kingdom or importing printed copies into the UK may require permission from the Crown patent holders."
},
"package_path": "packages/json/kjv-eng-kjv2006/catalog.json",
"counts": {
+57 -6
View File
@@ -2,10 +2,43 @@
"id": "kjv-eng-kjv2006",
"title": "King James (Authorized) Version",
"abbreviation": "KJV",
"language": "eng",
"language": {
"code": "eng",
"name": "English",
"dialect": "archaic British"
},
"features": [
"strongs",
"usfm"
{
"id": "bible-text",
"type": "translation_text",
"label": "Bible text",
"languages": [
"eng"
],
"embedded": true
},
{
"id": "strongs-links",
"type": "concordance_links",
"label": "Strong's-linked words",
"languages": [
"hebrew",
"aramaic",
"greek"
],
"systems": [
"strongs"
],
"embedded": true,
"package": "packages/json/kjv-eng-kjv2006/strongs-links.jsonl"
},
{
"id": "usfm-source",
"type": "source_format",
"label": "USFM source",
"format": "usfm",
"embedded": false
}
],
"source": {
"provider": "eBible.org",
@@ -13,19 +46,37 @@
"download_url": "https://ebible.org/Scriptures/eng-kjv2006_usfm.zip",
"format": "usfm-zip",
"upstream_id": "eng-kjv2006",
"upstream_last_updated": "2026-05-16"
"upstream_last_updated": "2026-05-16",
"available_formats": [
"browser",
"mobile-html",
"epub",
"pdf",
"sword",
"plain-text",
"vpl-sql",
"browser-bible",
"usfx",
"usfm",
"xetex"
]
},
"license": {
"name": "Public Domain",
"redistribution": true,
"jurisdiction_notes": "eBible states this work is firmly public domain outside the United Kingdom; UK printing/import may be restricted by Crown letters patent.",
"source_license_url": "https://ebible.org/find/show.php?id=eng-kjv2006"
"source_license_url": "https://ebible.org/find/show.php?id=eng-kjv2006",
"attribution": "This free text is provided courtesy of CrossWire Bible Society and eBible.org.",
"public_domain_outside": [
"United Kingdom"
],
"restricted_notes": "Printing this translation in the United Kingdom or importing printed copies into the UK may require permission from the Crown patent holders."
},
"importer": {
"name": "scripts/import-usfm.js",
"version": "0.1.0"
},
"generated_at": "2026-07-12T02:30:18.202Z",
"generated_at": "2026-07-12T02:51:51.354Z",
"source_sha256": "4ea6952590d070bfa22985aded48a49581e31b568a60aa09e25f73462e700e7d",
"counts": {
"books": 66,
+111 -5
View File
@@ -1,23 +1,125 @@
{
"id": "kjv-eng-kjv2006",
"resource_type": "translation",
"project_name": "LibreBible",
"title": "King James (Authorized) Version",
"short_title": "King James Version",
"abbreviation": "KJV",
"language": "eng",
"canon": "protocanon",
"features": ["strongs", "usfm"],
"alternate_ids": ["ENGKJV", "eng-kjv2006"],
"language": {
"code": "eng",
"name": "English",
"dialect": "archaic British"
},
"script": "Latn",
"canon": {
"scope": "protocanon",
"notes": "eBible describes this package as protocanon only."
},
"translation": {
"base_title": "King James Version",
"edition": "1769 standardized text with Strong's numbers added",
"translation_year": 1611,
"edition_year": 1769,
"source_text_basis": "Authorized Version / King James Version standardized text of 1769",
"tradition": "Protestant",
"public_description": "The King James Version or Authorized Version of the Holy Bible, using the standardized text of 1769, protocanon only, with Strong's numbers added."
},
"contributors": [
{
"name": "King James Version translators",
"role": "translation"
},
{
"name": "CrossWire Bible Society",
"role": "source text provider"
},
{
"name": "eBible.org",
"role": "publisher and package provider"
}
],
"features": [
{
"id": "bible-text",
"type": "translation_text",
"label": "Bible text",
"languages": ["eng"],
"embedded": true
},
{
"id": "strongs-links",
"type": "concordance_links",
"label": "Strong's-linked words",
"languages": ["hebrew", "aramaic", "greek"],
"systems": ["strongs"],
"embedded": true,
"package": "packages/json/kjv-eng-kjv2006/strongs-links.jsonl"
},
{
"id": "usfm-source",
"type": "source_format",
"label": "USFM source",
"format": "usfm",
"embedded": false
}
],
"attachments": {
"included": [
{
"id": "kjv-eng-kjv2006-strongs-links",
"resource_type": "concordance_links",
"label": "Strong's links",
"relationship": "word-to-strongs",
"anchor_types": ["verse", "word", "strongs_number"],
"languages": ["hebrew", "aramaic", "greek"],
"systems": ["strongs"],
"source": "Embedded in the eBible USFM package.",
"package": "packages/json/kjv-eng-kjv2006/strongs-links.jsonl"
}
],
"supported_future_types": [
"study_notes",
"commentary",
"cross_references",
"morphology",
"lemma_links",
"lexicon",
"dictionary",
"maps",
"timeline",
"media"
]
},
"source": {
"provider": "eBible.org",
"url": "https://ebible.org/find/show.php?id=eng-kjv2006",
"download_url": "https://ebible.org/Scriptures/eng-kjv2006_usfm.zip",
"format": "usfm-zip",
"upstream_id": "eng-kjv2006",
"upstream_last_updated": "2026-05-16"
"upstream_last_updated": "2026-05-16",
"available_formats": [
"browser",
"mobile-html",
"epub",
"pdf",
"sword",
"plain-text",
"vpl-sql",
"browser-bible",
"usfx",
"usfm",
"xetex"
]
},
"license": {
"name": "Public Domain",
"redistribution": true,
"jurisdiction_notes": "eBible states this work is firmly public domain outside the United Kingdom; UK printing/import may be restricted by Crown letters patent.",
"source_license_url": "https://ebible.org/find/show.php?id=eng-kjv2006"
"source_license_url": "https://ebible.org/find/show.php?id=eng-kjv2006",
"attribution": "This free text is provided courtesy of CrossWire Bible Society and eBible.org.",
"public_domain_outside": ["United Kingdom"],
"restricted_notes": "Printing this translation in the United Kingdom or importing printed copies into the UK may require permission from the Crown patent holders."
},
"checks": {
"expected_sha256": "4ea6952590d070bfa22985aded48a49581e31b568a60aa09e25f73462e700e7d",
@@ -31,5 +133,9 @@
"json_catalog": "packages/json/kjv-eng-kjv2006/catalog.json",
"verses_jsonl": "packages/json/kjv-eng-kjv2006/verses.jsonl",
"strongs_jsonl": "packages/json/kjv-eng-kjv2006/strongs-links.jsonl"
},
"catalog_display": {
"primary_features": ["Bible text", "Strong's-linked words", "USFM source"],
"summary": "Public-domain KJV package based on the 1769 standardized text, with Strong's numbers embedded in the source USFM."
}
}