|
4 | 4 | "purpose": "Provenance record for local external source corpora used during source matching.", |
5 | 5 | "generated": true, |
6 | 6 | "generationPolicy": "no-arabic-text-generation", |
7 | | - "createdAt": "2026-05-03T21:53:35.589Z", |
| 7 | + "createdAt": "2026-05-04T19:38:09.375Z", |
8 | 8 | "createdBy": "scripts/record-source-provenance.js" |
9 | 9 | }, |
10 | 10 | "sources": { |
|
13 | 13 | "riwayah": "hafs", |
14 | 14 | "localPath": "scripts/_raw/quran-uthmani.txt", |
15 | 15 | "exists": true, |
16 | | - "fileSizeBytes": 1557, |
17 | | - "sha256": "2f21dc3851d25c05665c1e90bc9cd1336307038693b7b15ee50f83d2a2ea092c", |
18 | | - "authorityStatus": "unknown", |
19 | | - "isCompleteCorpus": false, |
20 | | - "corpusScope": "sample_subset", |
21 | | - "provenanceWarning": "Local corpus exists but source URL and retrieval method are not confirmed.", |
| 16 | + "fileSizeBytes": 1409970, |
| 17 | + "sha256": "aa0bf9278a177a12e6d9bef621ce37a1d24fa35168b5ae9c13ebcbe01e3686cf", |
| 18 | + "authorityStatus": "official_confirmed", |
| 19 | + "isCompleteCorpus": true, |
| 20 | + "corpusScope": "full_quran", |
| 21 | + "provenanceWarning": "", |
22 | 22 | "duplicateHashGroup": null, |
23 | | - "retrievalMethod": "unknown", |
24 | | - "retrievalUrl": null, |
25 | | - "retrievedAt": null, |
| 23 | + "retrievalMethod": "manual_browser_download", |
| 24 | + "retrievalUrl": "https://tanzil.net/download/", |
| 25 | + "retrievedAt": "2026-05-04T19:36:42Z", |
26 | 26 | "licenseNote": "User must manually accept Tanzil terms before download. Attribution required; no modification of the text.", |
27 | 27 | "canCommitRawFile": false, |
28 | | - "notes": "Needs manual provenance confirmation." |
| 28 | + "notes": "Full Tanzil Hafs Uthmani corpus. Downloaded from https://tanzil.net/download/ on 2026-05-04 after accepting Tanzil license terms (attribution required; no modification of text). Format: surah|ayah|text per line. 6266 lines (6236 verses + 30 lines of header/footer comments). Replaces an earlier 1.5 KB hand-extracted 8-verse subset." |
29 | 29 | }, |
30 | 30 | "kfgqpc-warsh": { |
31 | 31 | "sourceId": "kfqpc-warsh", |
32 | 32 | "riwayah": "warsh", |
33 | 33 | "localPath": "scripts/_raw/kfqpc-warsh.json", |
34 | 34 | "exists": true, |
35 | | - "fileSizeBytes": 1624, |
36 | | - "sha256": "50744189a4f983c2c74cef97e5ce827b0bbd7bb614278447a8d93f02ca1f1f31", |
37 | | - "authorityStatus": "unknown", |
| 35 | + "fileSizeBytes": 2772330, |
| 36 | + "sha256": "f05d0dc652fd46b38563cacb13242f76f80db4cc64d25873da0bce157253872f", |
| 37 | + "authorityStatus": "downloaded_unverified", |
38 | 38 | "isCompleteCorpus": false, |
39 | | - "corpusScope": "sample_subset", |
40 | | - "provenanceWarning": "Local corpus exists but source URL and retrieval method are not confirmed.", |
41 | | - "duplicateHashGroup": "50744189a4f983c2c74cef97e5ce827b0bbd7bb614278447a8d93f02ca1f1f31", |
42 | | - "retrievalMethod": "unknown", |
43 | | - "retrievalUrl": null, |
44 | | - "retrievedAt": null, |
| 39 | + "corpusScope": "unknown", |
| 40 | + "provenanceWarning": "Local file came from a GitHub mirror (thetruetruth/quran-data-kfgqpc), not a direct download from qurancomplex.gov.sa. Local MD5 (44d9aa338325a76a91ff86573bf72a3e) and SHA-1 (98fd8435de6b68708c7c4b4724e803ffcd5ddd3b) do NOT match KFGQPC's published package values (MD5 4701e8bbf053098220cf2cf4cda206a1, SHA-1 44ecea8feb23817fdc01a8ee2162a6a0cf08cae7). Mismatch is consistent with the local file being a JSON extract from KFGQPC's published package archive, but the chain of custody for that extract is not verified. Re-download the package directly from https://qurancomplex.gov.sa/quran-dev/, verify its package hash matches the published value, then extract the JSON to upgrade authorityStatus to official_confirmed.", |
| 41 | + "duplicateHashGroup": null, |
| 42 | + "retrievalMethod": "github_mirror_clone", |
| 43 | + "retrievalUrl": "https://github.com/thetruetruth/quran-data-kfgqpc", |
| 44 | + "retrievedAt": "2026-05-04T19:36:42Z", |
45 | 45 | "licenseNote": "Use only under KFGQPC terms. Raw files are not bundled in this repository.", |
46 | 46 | "canCommitRawFile": false, |
47 | | - "notes": "Needs manual provenance confirmation." |
| 47 | + "notes": "KFGQPC Warsh ʿan Nāfiʿ JSON. KFGQPC's published package hashes (per https://qurancomplex.gov.sa/quran-dev/ as of 2026-05-04): MD5 4701e8bbf053098220cf2cf4cda206a1, SHA-1 44ecea8feb23817fdc01a8ee2162a6a0cf08cae7. Local file MD5: 44d9aa338325a76a91ff86573bf72a3e, SHA-1: 98fd8435de6b68708c7c4b4724e803ffcd5ddd3b, SHA-256: f05d0dc652fd46b38563cacb13242f76f80db4cc64d25873da0bce157253872f." |
48 | 48 | }, |
49 | 49 | "kfgqpc-qalun": { |
50 | 50 | "sourceId": "kfqpc-qalun", |
51 | 51 | "riwayah": "qalun", |
52 | 52 | "localPath": "scripts/_raw/kfqpc-qalun.json", |
53 | 53 | "exists": true, |
54 | | - "fileSizeBytes": 1624, |
55 | | - "sha256": "50744189a4f983c2c74cef97e5ce827b0bbd7bb614278447a8d93f02ca1f1f31", |
56 | | - "authorityStatus": "unknown", |
| 54 | + "fileSizeBytes": 2759672, |
| 55 | + "sha256": "18465c40ebeec40a92eb98745c9b89796ac6e31f6e93988883dfb6602faaea95", |
| 56 | + "authorityStatus": "downloaded_unverified", |
57 | 57 | "isCompleteCorpus": false, |
58 | | - "corpusScope": "sample_subset", |
59 | | - "provenanceWarning": "Local corpus exists but source URL and retrieval method are not confirmed.", |
60 | | - "duplicateHashGroup": "50744189a4f983c2c74cef97e5ce827b0bbd7bb614278447a8d93f02ca1f1f31", |
61 | | - "retrievalMethod": "unknown", |
62 | | - "retrievalUrl": null, |
63 | | - "retrievedAt": null, |
| 58 | + "corpusScope": "unknown", |
| 59 | + "provenanceWarning": "Local file came from a GitHub mirror (thetruetruth/quran-data-kfgqpc), not a direct download from qurancomplex.gov.sa. Local MD5 (6feb9a5365379a14cdb464ff6d7f2a2e) and SHA-1 (1caec97f8c42c107a05d006ea58b9d6eee80038a) do NOT match KFGQPC's published package values (MD5 964208ff04c8aadd3ddc1be262d8cfd3, SHA-1 81733666be17742e13c9fa4c7d26d42b1adc67c8). Mismatch is consistent with the local file being a JSON extract from KFGQPC's published package archive, but the chain of custody for that extract is not verified. Re-download the package directly from https://qurancomplex.gov.sa/quran-dev/, verify its package hash matches the published value, then extract the JSON to upgrade authorityStatus to official_confirmed.", |
| 60 | + "duplicateHashGroup": null, |
| 61 | + "retrievalMethod": "github_mirror_clone", |
| 62 | + "retrievalUrl": "https://github.com/thetruetruth/quran-data-kfgqpc", |
| 63 | + "retrievedAt": "2026-05-04T19:36:42Z", |
64 | 64 | "licenseNote": "Use only under KFGQPC terms. Raw files are not bundled in this repository.", |
65 | 65 | "canCommitRawFile": false, |
66 | | - "notes": "Needs manual provenance confirmation." |
| 66 | + "notes": "KFGQPC Qālūn ʿan Nāfiʿ JSON. KFGQPC's published package hashes (per https://qurancomplex.gov.sa/quran-dev/ as of 2026-05-04): MD5 964208ff04c8aadd3ddc1be262d8cfd3, SHA-1 81733666be17742e13c9fa4c7d26d42b1adc67c8. Local file MD5: 6feb9a5365379a14cdb464ff6d7f2a2e, SHA-1: 1caec97f8c42c107a05d006ea58b9d6eee80038a, SHA-256: 18465c40ebeec40a92eb98745c9b89796ac6e31f6e93988883dfb6602faaea95." |
67 | 67 | } |
68 | 68 | } |
69 | 69 | } |
0 commit comments