diff --git a/README.md b/README.md index 1ea7cb2..9991910 100644 --- a/README.md +++ b/README.md @@ -27,6 +27,7 @@ Examples: `circ:us-boston`, `circ:it-roma`, `circ:al-shkodre-pult`, `circ:us-por ## Repository contents - [`data/circumscriptions.json`](data/circumscriptions.json) — the seed registry: 2,935 Latin-rite circumscriptions across 203 countries, generated from the Liturgical Calendar API's world dioceses index, each with its draft canonical ID, the API's `diocese_id` as a cross-reference key, name, nation, and (where available) civil province. +- [`data/circumscription_types.json`](data/circumscription_types.json) — the companion types registry: draft canonical IDs (`ctype:diocese`, `ctype:archeparchy`, `ctype:territorial-abbacy`, …) for the 16 canonical ranks and juridic forms a circumscription can hold, each with its Latin name, the church it belongs to, whether it is territorial, the title of the one who governs it, and the governing canon. Each circumscription's `type` field is a cross-reference into this file. - [`docs/schema-proposal.md`](docs/schema-proposal.md) — the proposed schema and the open questions for the committee. - [`scripts/generate_seed.py`](scripts/generate_seed.py) — regenerates the seed from the API's `world_dioceses.json`. diff --git a/data/circumscription_types.json b/data/circumscription_types.json new file mode 100644 index 0000000..f0f4c6e --- /dev/null +++ b/data/circumscription_types.json @@ -0,0 +1,167 @@ +{ + "$comment": "CECDR circumscription types: draft canonical IDs for the canonical ranks and juridic forms an ecclesiastical circumscription can take. Referenced from data/circumscriptions.json as the value of each entry's `type` field, following the cross-registry convention used elsewhere in the CDCF family (COECDR embeds CRPDR `rp:` IDs, CDOCTDR embeds CRMEDR `mr:` IDs). All IDs are drafts pending committee review; the `ctype:` prefix is a placeholder pending the namespace coordination in open question 1 of docs/schema-proposal.md. The `church` field records which churches are known to use each form and is provisional: it can only be established by enumerating actual circumscriptions, and the seed is still Latin-rite only, so a form marked `latin` here may prove to be `both` once Eastern circumscriptions are added. Two forms have been corrected from `latin` to `both` on exactly this ground: `ctype:territorial-abbacy` (Grottaferrata) and `ctype:apostolic-vicariate` (the Bulgarian Byzantine vicariates suppressed in 1926, which rule 3 keeps referenceable). The values still marked `latin` were checked against Catholic-Hierarchy and per-form surveys — verification aids, not authorities — and not against the Annuario Pontificio, which has not been consulted. See open question 8 in docs/schema-proposal.md.", + "id_scheme": "ctype:", + "entry_count": 16, + "entries": [ + { + "id": "ctype:diocese", + "name_en": "diocese", + "name_la": "dioecesis", + "church": "latin", + "territorial": true, + "head": "diocesan bishop", + "juridic_reference": "CIC can. 369", + "note": "The paradigm case of a particular Church (can. 368). Elevation to archdiocese does not change the circumscription's identity (schema proposal, rule 1)." + }, + { + "id": "ctype:archdiocese", + "name_en": "archdiocese", + "name_la": "archidioecesis", + "church": "latin", + "territorial": true, + "head": "archbishop", + "juridic_reference": "CIC can. 435", + "note": "A diocese whose bishop holds archiepiscopal dignity, most often as metropolitan of an ecclesiastical province. Whether the see is metropolitan is carried by the planned `metropolitan` attribute, not by this type." + }, + { + "id": "ctype:eparchy", + "name_en": "eparchy", + "name_la": "eparchia", + "church": "eastern", + "territorial": true, + "head": "eparchial bishop", + "juridic_reference": "CCEO can. 177", + "note": "The Eastern equivalent of a diocese." + }, + { + "id": "ctype:archeparchy", + "name_en": "archeparchy", + "name_la": "archieparchia", + "church": "eastern", + "territorial": true, + "head": "archeparch", + "juridic_reference": "CCEO can. 177", + "note": "An eparchy whose bishop holds archiepiscopal dignity. Patriarchal and major archiepiscopal sees are archeparchies; the dignity of the church sui iuris is carried by `church_sui_iuris`, not by this type — see open questions below." + }, + { + "id": "ctype:exarchate", + "name_en": "exarchate", + "name_la": "exarchatus", + "church": "eastern", + "territorial": true, + "head": "exarch", + "juridic_reference": "CCEO can. 311", + "note": "A portion of the faithful not yet erected as an eparchy, entrusted to an exarch." + }, + { + "id": "ctype:apostolic-exarchate", + "name_en": "apostolic exarchate", + "name_la": "exarchatus apostolicus", + "church": "eastern", + "territorial": true, + "head": "apostolic exarch", + "juridic_reference": "CCEO can. 311-321", + "note": "An exarchate erected by the Holy See outside the territory of the church sui iuris, typical of the diaspora. Subject of open question 5 in docs/schema-proposal.md." + }, + { + "id": "ctype:territorial-prelature", + "name_en": "territorial prelature", + "name_la": "praelatura territorialis", + "church": "latin", + "territorial": true, + "head": "prelate", + "juridic_reference": "CIC can. 370", + "note": "Formerly styled praelatura nullius dioecesis. Assimilated to a diocese in law (can. 368)." + }, + { + "id": "ctype:territorial-abbacy", + "name_en": "territorial abbacy", + "name_la": "abbatia territorialis", + "church": "both", + "territorial": true, + "head": "abbot", + "juridic_reference": "CIC can. 370", + "note": "Formerly styled abbatia nullius dioecesis. Not a Latin-only form: the Abbazia territoriale di Santa Maria di Grottaferrata is of Byzantine rite and is one of the three circumscriptions of the Chiesa bizantina cattolica in Italia, alongside the eparchies of Lungro and Piana degli Albanesi. Its identity is bound to a monastery rather than to a civil city — see issue #3 on how this affects slug formation." + }, + { + "id": "ctype:apostolic-vicariate", + "name_en": "apostolic vicariate", + "name_la": "vicariatus apostolicus", + "church": "both", + "territorial": true, + "head": "vicar apostolic", + "juridic_reference": "CIC can. 371 §1", + "note": "A missionary circumscription not yet erected as a diocese, governed in the name of the Roman Pontiff. Its vicar is ordinarily a titular bishop. The standing Eastern equivalent is the apostolic exarchate, and no Eastern apostolic vicariate is currently active — but the Bulgarian Greek Catholic Church had two, the Apostolic Vicariates of Macedonia (Thessaloniki) and of Thrace (Adrianople), both erected 1883 and suppressed 1926 into the Apostolic Exarchate of Sofia. Since suppressed circumscriptions keep their IDs and are never deleted (schema proposal, rule 3), this form must remain typable for a Byzantine circumscription." + }, + { + "id": "ctype:apostolic-prefecture", + "name_en": "apostolic prefecture", + "name_la": "praefectura apostolica", + "church": "latin", + "territorial": true, + "head": "prefect apostolic", + "juridic_reference": "CIC can. 371 §1", + "note": "A missionary circumscription at an earlier stage than an apostolic vicariate; its prefect is ordinarily not a bishop. Both Chinese circumscriptions in issue #6 hold this rank." + }, + { + "id": "ctype:apostolic-administration", + "name_en": "apostolic administration", + "name_la": "administratio apostolica", + "church": "both", + "territorial": true, + "head": "apostolic administrator", + "juridic_reference": "CIC can. 371 §2", + "note": "Erected stably where grave and particular reasons prevent the erection of a diocese. Distinct from the temporary administration of a vacant see, which is a state of a circumscription rather than a type of one." + }, + { + "id": "ctype:mission-sui-iuris", + "name_en": "mission sui iuris", + "name_la": "missio sui iuris", + "church": "latin", + "territorial": true, + "head": "ecclesiastical superior", + "juridic_reference": null, + "note": "The earliest stage of missionary organization, preceding an apostolic prefecture. Not defined in the 1983 Code; recognized in the Annuario Pontificio and in the practice of the Dicastery for Evangelization. `juridic_reference` is null pending an authoritative citation." + }, + { + "id": "ctype:military-ordinariate", + "name_en": "military ordinariate", + "name_la": "ordinariatus militaris", + "church": "both", + "territorial": false, + "head": "military ordinary", + "juridic_reference": "Spirituali Militum Curae (1986)", + "note": "Assimilated to a diocese in law. Its territory is a body of armed forces rather than a place, which is why its identifier retains the type word (schema proposal, rule 5) — see issue #4." + }, + { + "id": "ctype:personal-ordinariate", + "name_en": "personal ordinariate", + "name_la": "ordinariatus personalis", + "church": "latin", + "territorial": false, + "head": "ordinary", + "juridic_reference": "Anglicanorum coetibus (2009)", + "note": "Erected for groups of former Anglicans in full communion, retaining elements of Anglican patrimony. Three exist; two of the three are supranational — see issue #5." + }, + { + "id": "ctype:personal-prelature", + "name_en": "personal prelature", + "name_la": "praelatura personalis", + "church": "latin", + "territorial": false, + "head": "prelate", + "juridic_reference": "CIC can. 294-297", + "note": "Erected to promote a particular pastoral work among a defined body of faithful. Opus Dei is presently the only one." + }, + { + "id": "ctype:ordinariate-for-eastern-faithful", + "name_en": "ordinariate for the faithful of Eastern rites", + "name_la": "ordinariatus pro fidelibus ritus orientalis", + "church": "eastern", + "territorial": false, + "head": "ordinary", + "juridic_reference": null, + "note": "For Eastern faithful in a territory where their church sui iuris has no hierarchy of its own; ordinarily entrusted to the local Latin bishop. Subject of open question 5 in docs/schema-proposal.md. `juridic_reference` is null pending an authoritative citation." + } + ] +} diff --git a/data/circumscriptions.json b/data/circumscriptions.json index 976a423..4f14db5 100644 --- a/data/circumscriptions.json +++ b/data/circumscriptions.json @@ -13115,7 +13115,7 @@ "name": "Prelatura personale della Santa Croce e Opus Dei", "nation": null, "church_sui_iuris": "latin", - "type": "personal_prelature", + "type": "ctype:personal-prelature", "note": "Supranational personal prelature: reserved segment `int` instead of a country code (schema proposal, rule 5). The source index lists it under Italy and mislabels it 'Diocesi di Lanusei'; fix submitted upstream (LiturgicalCalendarAPI PR #718)." }, { diff --git a/docs/schema-proposal.md b/docs/schema-proposal.md index 6ca70c3..82a21d5 100644 --- a/docs/schema-proposal.md +++ b/docs/schema-proposal.md @@ -51,15 +51,38 @@ circ:- "nation": "US", "province": "Massachusetts", "church_sui_iuris": "latin", - "type": "archdiocese" + "type": "ctype:archdiocese" } ``` -Planned attributes beyond the seed: `type` (diocese, archdiocese, eparchy, -archeparchy, exarchate, territorial_prelature, territorial_abbacy, -apostolic_vicariate, apostolic_prefecture, apostolic_administration, -military_ordinariate, personal_ordinariate, personal_prelature, mission_sui_iuris), -`metropolitan` (the ID of the metropolitan see), `status` +## Circumscription types + +`type` is not a free string but a cross-reference into a companion registry, +`data/circumscription_types.json`, which mints a canonical ID for each canonical +rank or juridic form a circumscription can hold: + +``` +ctype: +``` + +`ctype:diocese`, `ctype:archeparchy`, `ctype:territorial-abbacy`, +`ctype:apostolic-vicariate`, `ctype:military-ordinariate`, +`ctype:personal-prelature`, and so on — 16 in all. Each entry carries the Latin +name (`name_la`, the Annuario's own nomenclature), the church to which the form +belongs (`latin`, `eastern`, `both`), whether it is territorial, the title of the +one who governs it, and the governing canon or document. + +This follows the cross-registry convention already used in the family: COECDR +embeds CRPDR `rp:` IDs, CDOCTDR embeds CRMEDR `mr:` IDs. An entry therefore +reads `"type": "ctype:diocese"`, and `scripts/generate_seed.py` asserts that +every `type` resolves against the types registry. + +The `ctype:` prefix is a placeholder on the same footing as `circ:`, pending the +namespace coordination in open question 1. + +## Further attributes + +Planned beyond the seed: `metropolitan` (the ID of the metropolitan see), `status` (active | suppressed | merged_into:), `historical_names`, `erected` (date of erection), and external keys (`litcal_id` now; potentially GCatholic and Catholic-Hierarchy keys as cross-references). @@ -93,4 +116,29 @@ enrichment: official names (the seed currently carries the API's names, which mix both). 5. Whether Ordinariates for Eastern-rite faithful without their own hierarchy, and pastoral structures like apostolic exarchates in the diaspora, need a dedicated - type taxonomy beyond the Annuario's. + type taxonomy beyond the Annuario's. Both are provisionally minted in + `data/circumscription_types.json` (`ctype:ordinariate-for-eastern-faithful`, + `ctype:apostolic-exarchate`) so the question can be decided against concrete + entries rather than in the abstract. +6. Whether type IDs should be English (`ctype:territorial-abbacy`, as minted) or + Latin (`ctype:abbatia-territorialis`), following CDOCTDR's use of the Latin + lemma. The Latin name is carried as `name_la` either way, so this is a question + about the identifier alone. +7. Whether patriarchal and major archiepiscopal sees warrant their own type IDs. + They are presently archeparchies, with the dignity of the church *sui iuris* + carried by `church_sui_iuris`; the Annuario lists them distinctly. +8. Confirmation of the `church` field in `data/circumscription_types.json` against + the **Annuario Pontificio itself**. The field records which churches are known + to use each form — an empirical question answerable only by enumerating real + circumscriptions, including suppressed ones, since rule 3 keeps those + referenceable forever. Two initial classifications have already been corrected + on evidence: `ctype:territorial-abbacy` (Grottaferrata, Byzantine, active) and + `ctype:apostolic-vicariate` (the Bulgarian Byzantine vicariates of Macedonia and + Thrace, 1883–1926). The remaining `latin` values were checked against + Catholic-Hierarchy's structured view of the Byzantine tradition and against + per-form surveys, which are verification aids and not authorities; no Eastern + instance was found for diocese, archdiocese, territorial prelature, apostolic + prefecture, mission *sui iuris*, personal prelature or personal ordinariate. + Absence of evidence is weaker than the two positives that forced a change, + particularly for suppressed Eastern circumscriptions, whose coverage in those + sources is uneven. The Annuario remains the authority and has not been consulted. diff --git a/scripts/generate_seed.py b/scripts/generate_seed.py index 653e158..6a76c25 100644 --- a/scripts/generate_seed.py +++ b/scripts/generate_seed.py @@ -30,7 +30,7 @@ "index; qualifier pending committee review."}, "opudei_it": {"slug": "opus-dei", "iso": "int", "nation": None, "name": "Prelatura personale della Santa Croce e Opus Dei", - "type": "personal_prelature", + "type": "ctype:personal-prelature", "note": "Supranational personal prelature: reserved segment " "`int` instead of a country code (schema proposal, " "rule 5). The source index lists it under Italy and " @@ -91,6 +91,12 @@ def main(): ids = [e["id"] for e in entries] dupes = {i for i in ids if ids.count(i) > 1} assert not dupes, f"duplicate ids: {sorted(dupes)[:10]}" + # Every `type` is a cross-reference into data/circumscription_types.json; + # a typo there would silently produce an unresolvable reference. + types_path = repo_root / "data" / "circumscription_types.json" + known = {t["id"] for t in json.load(open(types_path, encoding="utf-8"))["entries"]} + unknown = {e["type"] for e in entries if e["type"] and e["type"] not in known} + assert not unknown, f"unknown circumscription types: {sorted(unknown)}" out = { "$comment": "CECDR seed registry: draft canonical IDs for Catholic " "ecclesiastical circumscriptions, generated from the "