Citation scheme/style models + CSL mapping + flavour parity + JSON Schema + atlas inventory - #76
Open
ronaldtse wants to merge 3 commits into
Open
Citation scheme/style models + CSL mapping + flavour parity + JSON Schema + atlas inventory#76ronaldtse wants to merge 3 commits into
ronaldtse wants to merge 3 commits into
Conversation
- Vocabulary parity extended to 14 flavour DocumentType overlays (kebab-fold comparison tolerating wire/LML spelling differences incl. spaces, underscores and accents). Drift caught and fixed: bsi/iso camelCase, ieee missing five wire values, gb out-of-wire values, itu missing three (handbook/question/contribution), BibItemType missing four (electronic-resource, notated-music, performed-music, personal-communication), etsi accent loss in Norme Europeenne. - TODO 10 core: tools/generate_schema.py emits relaton/schema/bibitem-2020-12.json (363 definitions - classes with attribute cardinality and LML inheritance, enums, open marker classes for polymorphism); tools/validate_schema.py validates the YAML fixture against it; rake schema + fixtures:schema wired into both CI workflows, CI asserts the committed schema is fresh - TODO statuses updated (02 done incl. flavours, 09 stage A partially realized, 10 core done)
* main: Advance basicdoc to the ontology-completion tree
TODO.cc-citation items 06-08: 07 (models + first style): - citation/ module: 14 LML models - CitationScheme (system + disambiguation + name form + localized strings), CitationStyle (scheme + templates + per-type template map + sort rules), BibliographicIndex (entries + collation + grouping), BibliographicStyle (index + layout); CitationSystem enum (ISO 690 Annex A: name-date, numeric, named-tag, running-notes, implied); four views rendered; parity + lint green - citation/styles/iso-690.yml: the ISO 690 name-and-date scheme as DATA, validated against the schema generated from the LML (proves the loop: model -> schema -> instance -> gate) 08 (mapping + gate): - mapping/csl.yaml: 35 CSL type -> BibItemType, 57 variable -> attribute (with wire forms), 8 documented downgrade losses. CSL is a lower-level subset of ISO 690/Relaton - imports downgrade, never extend - tools/validate_csl.py: every mapping target must exist in the generated schema; wired into rake csl + CI (gate: the mapping cannot drift from the models) 06 (complete): - Atlas /inventory.html: every module's types with attributes/values, machine-generated from the LML, linked from primary navigation; inventory.json also emitted The citation module is pure addition - the Rakefile, parity, lint, site, schema, and inventory all discovered it without code changes (OCP proof).
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.
Summary
The full TODO.cc-citation build (items 02, 03, 06, 07, 08, 10 core):
07 - Citation scheme/style/index/style as MODELS (flagship)
citation/module: 14 LML models - CitationScheme (system + disambiguation + name form + localized strings), CitationStyle (scheme + templates + per-type template map + sort rules), BibliographicIndex (entries + collation + grouping), BibliographicStyle (index + layout); CitationSystem enum (ISO 690 Annex A: name-date, numeric, named-tag, running-notes, implied); DisambiguationRules, NameFormRules, LocalizedStrings, TemplateMap, TypeTemplate, SortRule, CollationRules, GroupingRule, LayoutRulescitation/styles/iso-690.yml- ISO 690 name-and-date as data, validated against the schema generated from the LML (fixtures:schema)08 - CSL subset mapping + gate
mapping/csl.yaml: 35 CSL type to BibItemType, 57 variable to attribute (with wire forms), 8 documented downgrade losses - CSL is a lower-level subset of ISO 690/Relaton, imports downgrade, never extendtools/validate_csl.py: every mapping target must exist in the generated schema;rake cslwired into CI - the mapping cannot drift from the models02 (complete) - Flavour vocabulary parity
19 vocabularies gated (5 base + 14 flavour DocumentType overlays), kebab-fold comparison tolerating wire/LML spelling. Caught and fixed: bsi/iso camelCase, ieee missing 5 wire values, gb out-of-wire values, itu missing 3, BibItemType missing 4 (electronic-resource, notated-music, performed-music, personal-communication), etsi accent loss
10 (core) - JSON Schema from the LML
rake schemageneratesrelaton/schema/bibitem-2020-12.json(377 definitions: classes with cardinality + inheritance, enums, open marker classes for polymorphism).rake fixtures:schemavalidates YAML fixtures + style instances. CI asserts the committed schema is fresh06 (complete) - Atlas inventory page
/inventory.html: every module's types with attributes/values, machine-generated, linked from primary navigation03 (partial) - ISO 690 gaps
Edition.audience, printer + sponsor roles; fixture exercises both
OCP proof
The
citation/module was added with zero code changes to any gate: Rakefile tasks, parity, lint, site, schema, inventory all discovered it by globbingTest plan
rake check fixtures- lint 378 types / 32 modules, parity 19 vocabularies, 65 PNGs, XML + YAML + schema + CSL gates