sts 0.5.2 → 0.5.4
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- checksums.yaml +4 -4
- data/.gitmodules +3 -0
- data/.rubocop.yml +3 -0
- data/.rubocop_todo.yml +17 -3
- data/CLAUDE.md +72 -0
- data/GAPS.guidelines.iso-sts-ed2.1/01-maintenance.md +19 -0
- data/GAPS.guidelines.iso-sts-ed2.1/03-general.md +75 -0
- data/GAPS.guidelines.iso-sts-ed2.1/04-structure.md +75 -0
- data/GAPS.guidelines.iso-sts-ed2.1/05-content.md +63 -0
- data/GAPS.guidelines.iso-sts-ed2.1/06-tables.md +53 -0
- data/GAPS.guidelines.iso-sts-ed2.1/07-formulae.md +41 -0
- data/GAPS.guidelines.iso-sts-ed2.1/08-figures.md +45 -0
- data/GAPS.guidelines.iso-sts-ed2.1/09-terms.md +56 -0
- data/GAPS.guidelines.iso-sts-ed2.1/10-references.md +56 -0
- data/GAPS.guidelines.iso-sts-ed2.1/annex-a-multilingual.md +79 -0
- data/GAPS.guidelines.niso-sts-v1.0/01-introduction-scope.md +27 -0
- data/GAPS.guidelines.niso-sts-v1.0/02-document-structure.md +100 -0
- data/GAPS.guidelines.niso-sts-v1.0/03-front-matter.md +149 -0
- data/GAPS.guidelines.niso-sts-v1.0/04-body-content.md +209 -0
- data/GAPS.guidelines.niso-sts-v1.0/05-tables-figures.md +152 -0
- data/GAPS.guidelines.niso-sts-v1.0/06-math-formulae.md +128 -0
- data/GAPS.guidelines.niso-sts-v1.0/07-references.md +113 -0
- data/GAPS.guidelines.niso-sts-v1.0/08-terminology.md +127 -0
- data/GAPS.guidelines.niso-sts-v1.0/09-metadata.md +113 -0
- data/GAPS.guidelines.niso-sts-v1.0/10-iso-iec-variant.md +141 -0
- data/GAPS.guidelines.niso-sts-v1.0/SUMMARY.md +96 -0
- data/GAPS.guidelines.schema-xref.md +101 -0
- data/Gemfile +2 -1
- data/TODO.sts-refactor/00-overview.md +172 -0
- data/TODO.sts-refactor/01-mathml-delegation.md +153 -0
- data/TODO.sts-refactor/02-type-resolution.md +122 -0
- data/TODO.sts-refactor/03-namespace-coupling.md +158 -0
- data/TODO.sts-refactor/04-register-versioning.md +180 -0
- data/TODO.sts-refactor/05-missing-elements.md +195 -0
- data/TODO.sts-refactor/06-missing-attributes.md +152 -0
- data/TODO.sts-refactor/07-incomplete-models.md +180 -0
- data/TODO.sts-refactor/08-isoiec-profile.md +169 -0
- data/TODO.sts-refactor/09-autoload-cleanup.md +88 -0
- data/TODO.sts-refactor/10-test-coverage.md +164 -0
- data/TODO.sts-refactor/11-duplicate-models.md +168 -0
- data/lib/sts/iso_sts/annex_type.rb +2 -0
- data/lib/sts/iso_sts/app.rb +26 -1
- data/lib/sts/iso_sts/app_group.rb +1 -0
- data/lib/sts/iso_sts/array.rb +1 -0
- data/lib/sts/iso_sts/back.rb +1 -0
- data/lib/sts/iso_sts/body.rb +4 -0
- data/lib/sts/iso_sts/bold.rb +23 -11
- data/lib/sts/iso_sts/break.rb +3 -0
- data/lib/sts/iso_sts/caption.rb +1 -0
- data/lib/sts/iso_sts/comm_ref.rb +2 -0
- data/lib/sts/iso_sts/content_language.rb +22 -0
- data/lib/sts/iso_sts/copyright_holder.rb +4 -2
- data/lib/sts/iso_sts/copyright_statement.rb +4 -2
- data/lib/sts/iso_sts/copyright_year.rb +3 -0
- data/lib/sts/iso_sts/def.rb +1 -0
- data/lib/sts/iso_sts/def_item.rb +1 -0
- data/lib/sts/iso_sts/def_list.rb +1 -0
- data/lib/sts/iso_sts/disp_formula.rb +5 -1
- data/lib/sts/iso_sts/doc_ref.rb +2 -0
- data/lib/sts/iso_sts/document_identification.rb +3 -0
- data/lib/sts/iso_sts/edition.rb +2 -0
- data/lib/sts/iso_sts/ext_link.rb +1 -1
- data/lib/sts/iso_sts/fig.rb +1 -0
- data/lib/sts/iso_sts/fn.rb +1 -0
- data/lib/sts/iso_sts/fn_group.rb +1 -0
- data/lib/sts/iso_sts/front.rb +5 -0
- data/lib/sts/iso_sts/graphic.rb +5 -0
- data/lib/sts/iso_sts/inline_formula.rb +1 -1
- data/lib/sts/iso_sts/iso_meta.rb +4 -3
- data/lib/sts/iso_sts/italic.rb +23 -11
- data/lib/sts/iso_sts/label.rb +7 -5
- data/lib/sts/iso_sts/language.rb +2 -0
- data/lib/sts/iso_sts/list.rb +1 -0
- data/lib/sts/iso_sts/list_item.rb +7 -4
- data/lib/sts/iso_sts/mathml2/math.rb +20 -18
- data/lib/sts/iso_sts/meta_date.rb +20 -0
- data/lib/sts/iso_sts/mixed_citation.rb +35 -11
- data/lib/sts/iso_sts/monospace.rb +26 -0
- data/lib/sts/iso_sts/named_content.rb +44 -0
- data/lib/sts/iso_sts/nat_meta.rb +5 -4
- data/lib/sts/iso_sts/non_normative_example.rb +5 -0
- data/lib/sts/iso_sts/non_normative_note.rb +1 -0
- data/lib/sts/iso_sts/page_count.rb +2 -0
- data/lib/sts/iso_sts/paragraph.rb +34 -22
- data/lib/sts/iso_sts/permissions.rb +3 -0
- data/lib/sts/iso_sts/preformat.rb +8 -5
- data/lib/sts/iso_sts/ref.rb +1 -0
- data/lib/sts/iso_sts/ref_list.rb +1 -0
- data/lib/sts/iso_sts/reg_meta.rb +5 -4
- data/lib/sts/iso_sts/release_date.rb +2 -0
- data/lib/sts/iso_sts/sc.rb +26 -0
- data/lib/sts/iso_sts/sec.rb +12 -2
- data/lib/sts/iso_sts/secretariat.rb +2 -0
- data/lib/sts/iso_sts/standard.rb +6 -0
- data/lib/sts/iso_sts/standard_cross_reference.rb +5 -2
- data/lib/sts/iso_sts/standard_identification.rb +3 -0
- data/lib/sts/iso_sts/standard_ref.rb +16 -0
- data/lib/sts/iso_sts/std.rb +7 -5
- data/lib/sts/iso_sts/std_ref.rb +2 -0
- data/lib/sts/iso_sts/strike.rb +26 -0
- data/lib/sts/iso_sts/styled_content.rb +19 -15
- data/lib/sts/iso_sts/sub.rb +2 -0
- data/lib/sts/iso_sts/sup.rb +2 -0
- data/lib/sts/iso_sts/table.rb +1 -0
- data/lib/sts/iso_sts/table_wrap.rb +1 -0
- data/lib/sts/iso_sts/table_wrap_foot.rb +3 -0
- data/lib/sts/iso_sts/td.rb +32 -14
- data/lib/sts/iso_sts/term.rb +6 -6
- data/lib/sts/iso_sts/term_sec.rb +1 -0
- data/lib/sts/iso_sts/th.rb +32 -14
- data/lib/sts/iso_sts/title.rb +17 -7
- data/lib/sts/iso_sts/title_compl.rb +2 -0
- data/lib/sts/iso_sts/title_full.rb +2 -0
- data/lib/sts/iso_sts/title_intro.rb +2 -0
- data/lib/sts/iso_sts/title_main.rb +2 -0
- data/lib/sts/iso_sts/title_wrap.rb +1 -0
- data/lib/sts/iso_sts/tr.rb +1 -0
- data/lib/sts/iso_sts/underline.rb +26 -0
- data/lib/sts/iso_sts/uri.rb +32 -0
- data/lib/sts/iso_sts/xref.rb +3 -3
- data/lib/sts/iso_sts.rb +11 -0
- data/lib/sts/mathml.rb +21 -0
- data/lib/sts/namespaces.rb +3 -0
- data/lib/sts/niso_sts/abstract.rb +3 -0
- data/lib/sts/niso_sts/access_date.rb +2 -0
- data/lib/sts/niso_sts/accrediting_organization.rb +2 -0
- data/lib/sts/niso_sts/ack.rb +1 -1
- data/lib/sts/niso_sts/addr_line.rb +2 -0
- data/lib/sts/niso_sts/address.rb +3 -0
- data/lib/sts/niso_sts/adoption.rb +1 -1
- data/lib/sts/niso_sts/adoption_front.rb +1 -0
- data/lib/sts/niso_sts/aff_alternatives.rb +3 -0
- data/lib/sts/niso_sts/alt_text.rb +2 -0
- data/lib/sts/niso_sts/alt_title.rb +2 -0
- data/lib/sts/niso_sts/alternatives.rb +3 -4
- data/lib/sts/niso_sts/annotation.rb +1 -3
- data/lib/sts/niso_sts/anonymous.rb +3 -0
- data/lib/sts/niso_sts/app.rb +16 -1
- data/lib/sts/niso_sts/app_group.rb +5 -0
- data/lib/sts/niso_sts/article_title.rb +2 -0
- data/lib/sts/niso_sts/attrib.rb +2 -0
- data/lib/sts/niso_sts/author_comment.rb +1 -3
- data/lib/sts/niso_sts/author_notes.rb +1 -1
- data/lib/sts/niso_sts/authorization.rb +2 -0
- data/lib/sts/niso_sts/award_group.rb +23 -4
- data/lib/sts/niso_sts/award_id.rb +6 -0
- data/lib/sts/niso_sts/back.rb +25 -6
- data/lib/sts/niso_sts/bio.rb +1 -3
- data/lib/sts/niso_sts/body.rb +38 -0
- data/lib/sts/niso_sts/boxed_text.rb +41 -3
- data/lib/sts/niso_sts/break.rb +14 -0
- data/lib/sts/niso_sts/caption.rb +15 -1
- data/lib/sts/niso_sts/chapter_title.rb +2 -0
- data/lib/sts/niso_sts/chem_struct.rb +2 -0
- data/lib/sts/niso_sts/chem_struct_wrap.rb +1 -0
- data/lib/sts/niso_sts/citation_alternatives.rb +3 -0
- data/lib/sts/niso_sts/city.rb +2 -0
- data/lib/sts/niso_sts/code.rb +111 -0
- data/lib/sts/niso_sts/collab.rb +8 -0
- data/lib/sts/niso_sts/collab_alternatives.rb +3 -0
- data/lib/sts/niso_sts/comm_ref_group.rb +3 -0
- data/lib/sts/niso_sts/comment.rb +2 -0
- data/lib/sts/niso_sts/compound_subject.rb +29 -0
- data/lib/sts/niso_sts/compound_subject_part.rb +39 -0
- data/lib/sts/niso_sts/conf_acronym.rb +2 -0
- data/lib/sts/niso_sts/conf_date.rb +2 -0
- data/lib/sts/niso_sts/conf_loc.rb +2 -0
- data/lib/sts/niso_sts/conf_name.rb +2 -0
- data/lib/sts/niso_sts/conf_num.rb +2 -0
- data/lib/sts/niso_sts/conf_sponsor.rb +2 -0
- data/lib/sts/niso_sts/conf_theme.rb +2 -0
- data/lib/sts/niso_sts/conference.rb +3 -0
- data/lib/sts/niso_sts/content_language.rb +2 -0
- data/lib/sts/niso_sts/contrib.rb +1 -0
- data/lib/sts/niso_sts/contrib_group.rb +1 -0
- data/lib/sts/niso_sts/contrib_id.rb +2 -0
- data/lib/sts/niso_sts/copyright_holder.rb +2 -0
- data/lib/sts/niso_sts/copyright_statement.rb +2 -0
- data/lib/sts/niso_sts/copyright_year.rb +2 -0
- data/lib/sts/niso_sts/country.rb +2 -0
- data/lib/sts/niso_sts/counts.rb +3 -0
- data/lib/sts/niso_sts/custom_meta.rb +3 -0
- data/lib/sts/niso_sts/custom_meta_group.rb +3 -0
- data/lib/sts/niso_sts/data_title.rb +29 -0
- data/lib/sts/niso_sts/date.rb +3 -0
- data/lib/sts/niso_sts/date_in_citation.rb +2 -0
- data/lib/sts/niso_sts/day.rb +2 -0
- data/lib/sts/niso_sts/def.rb +3 -0
- data/lib/sts/niso_sts/def_head.rb +18 -0
- data/lib/sts/niso_sts/def_item.rb +13 -0
- data/lib/sts/niso_sts/def_list.rb +25 -3
- data/lib/sts/niso_sts/degrees.rb +2 -0
- data/lib/sts/niso_sts/disp_formula_group.rb +1 -4
- data/lib/sts/niso_sts/disp_quote.rb +3 -1
- data/lib/sts/niso_sts/display_formula.rb +47 -2
- data/lib/sts/niso_sts/doc_number.rb +2 -0
- data/lib/sts/niso_sts/doc_type.rb +2 -0
- data/lib/sts/niso_sts/document_identification.rb +1 -0
- data/lib/sts/niso_sts/editing_instruction.rb +9 -5
- data/lib/sts/niso_sts/edition.rb +2 -0
- data/lib/sts/niso_sts/element_citation.rb +1 -1
- data/lib/sts/niso_sts/elocation_id.rb +2 -0
- data/lib/sts/niso_sts/email.rb +2 -0
- data/lib/sts/niso_sts/equation_count.rb +2 -0
- data/lib/sts/niso_sts/era.rb +2 -0
- data/lib/sts/niso_sts/ext_link.rb +32 -2
- data/lib/sts/niso_sts/fax.rb +2 -0
- data/lib/sts/niso_sts/fig_count.rb +2 -0
- data/lib/sts/niso_sts/fig_group.rb +1 -0
- data/lib/sts/niso_sts/figure.rb +14 -1
- data/lib/sts/niso_sts/floats_group.rb +3 -4
- data/lib/sts/niso_sts/fn.rb +2 -1
- data/lib/sts/niso_sts/fn_group.rb +3 -0
- data/lib/sts/niso_sts/fpage.rb +2 -0
- data/lib/sts/niso_sts/front.rb +16 -0
- data/lib/sts/niso_sts/funding_group.rb +1 -0
- data/lib/sts/niso_sts/funding_source.rb +2 -0
- data/lib/sts/niso_sts/given_names.rb +2 -0
- data/lib/sts/niso_sts/glossary.rb +1 -1
- data/lib/sts/niso_sts/gov.rb +2 -0
- data/lib/sts/niso_sts/graphic.rb +6 -0
- data/lib/sts/niso_sts/hr.rb +3 -0
- data/lib/sts/niso_sts/ics.rb +5 -0
- data/lib/sts/niso_sts/ics_desc.rb +2 -0
- data/lib/sts/niso_sts/ics_wrap.rb +9 -0
- data/lib/sts/niso_sts/index.rb +32 -0
- data/lib/sts/niso_sts/index_div.rb +30 -0
- data/lib/sts/niso_sts/index_entry.rb +32 -0
- data/lib/sts/niso_sts/index_term.rb +1 -0
- data/lib/sts/niso_sts/index_title_group.rb +22 -0
- data/lib/sts/niso_sts/inline_formula.rb +38 -2
- data/lib/sts/niso_sts/inline_media.rb +50 -0
- data/lib/sts/niso_sts/institution.rb +2 -0
- data/lib/sts/niso_sts/institution_id.rb +2 -0
- data/lib/sts/niso_sts/institution_wrap.rb +3 -0
- data/lib/sts/niso_sts/intro.rb +2 -0
- data/lib/sts/niso_sts/is_proof.rb +2 -0
- data/lib/sts/niso_sts/isbn.rb +2 -0
- data/lib/sts/niso_sts/issn.rb +2 -0
- data/lib/sts/niso_sts/issn_l.rb +2 -0
- data/lib/sts/niso_sts/issue.rb +2 -0
- data/lib/sts/niso_sts/kwd_group.rb +9 -0
- data/lib/sts/niso_sts/label.rb +7 -2
- data/lib/sts/niso_sts/legend.rb +39 -0
- data/lib/sts/niso_sts/license.rb +2 -0
- data/lib/sts/niso_sts/license_p.rb +2 -0
- data/lib/sts/niso_sts/list.rb +9 -2
- data/lib/sts/niso_sts/list_item.rb +9 -4
- data/lib/sts/niso_sts/long_desc.rb +2 -0
- data/lib/sts/niso_sts/lpage.rb +2 -0
- data/lib/sts/niso_sts/main.rb +2 -0
- data/lib/sts/niso_sts/media.rb +1 -0
- data/lib/sts/niso_sts/meta_date.rb +2 -0
- data/lib/sts/niso_sts/meta_note.rb +1 -1
- data/lib/sts/niso_sts/metadata_iso.rb +1 -1
- data/lib/sts/niso_sts/metadata_std.rb +16 -8
- data/lib/sts/niso_sts/milestone_end.rb +1 -3
- data/lib/sts/niso_sts/milestone_start.rb +1 -3
- data/lib/sts/niso_sts/mixed_citation.rb +22 -0
- data/lib/sts/niso_sts/mml_content.rb +0 -2
- data/lib/sts/niso_sts/monospace.rb +9 -0
- data/lib/sts/niso_sts/month.rb +2 -0
- data/lib/sts/niso_sts/name.rb +3 -0
- data/lib/sts/niso_sts/name_alternatives.rb +5 -0
- data/lib/sts/niso_sts/named_content.rb +51 -1
- data/lib/sts/niso_sts/nat_meta.rb +3 -0
- data/lib/sts/niso_sts/nested_kwd.rb +3 -0
- data/lib/sts/niso_sts/nlm_citation.rb +1 -1
- data/lib/sts/niso_sts/non_normative_example.rb +15 -2
- data/lib/sts/niso_sts/non_normative_note.rb +14 -2
- data/lib/sts/niso_sts/normative_example.rb +1 -1
- data/lib/sts/niso_sts/normative_note.rb +3 -1
- data/lib/sts/niso_sts/note.rb +1 -1
- data/lib/sts/niso_sts/notes.rb +1 -1
- data/lib/sts/niso_sts/notes_group.rb +1 -0
- data/lib/sts/niso_sts/object_id.rb +4 -0
- data/lib/sts/niso_sts/on_behalf_of.rb +2 -0
- data/lib/sts/niso_sts/open_access.rb +3 -4
- data/lib/sts/niso_sts/originator.rb +2 -0
- data/lib/sts/niso_sts/page_count.rb +2 -0
- data/lib/sts/niso_sts/page_range.rb +2 -0
- data/lib/sts/niso_sts/paragraph.rb +39 -7
- data/lib/sts/niso_sts/part_number.rb +2 -0
- data/lib/sts/niso_sts/part_of_speech.rb +2 -0
- data/lib/sts/niso_sts/patent.rb +2 -0
- data/lib/sts/niso_sts/permissions.rb +7 -1
- data/lib/sts/niso_sts/phone.rb +2 -0
- data/lib/sts/niso_sts/postal_code.rb +2 -0
- data/lib/sts/niso_sts/prefix.rb +2 -0
- data/lib/sts/niso_sts/preformat.rb +15 -0
- data/lib/sts/niso_sts/price.rb +2 -0
- data/lib/sts/niso_sts/principal_award_recipient.rb +2 -0
- data/lib/sts/niso_sts/principal_investigator.rb +2 -0
- data/lib/sts/niso_sts/private_char.rb +3 -3
- data/lib/sts/niso_sts/processing_meta.rb +54 -0
- data/lib/sts/niso_sts/product.rb +2 -0
- data/lib/sts/niso_sts/proj_id.rb +2 -0
- data/lib/sts/niso_sts/pub_date.rb +4 -0
- data/lib/sts/niso_sts/pub_id.rb +2 -0
- data/lib/sts/niso_sts/publisher.rb +3 -0
- data/lib/sts/niso_sts/publisher_loc.rb +2 -0
- data/lib/sts/niso_sts/publisher_name.rb +2 -0
- data/lib/sts/niso_sts/ref_count.rb +2 -0
- data/lib/sts/niso_sts/reference.rb +1 -0
- data/lib/sts/niso_sts/reference_list.rb +6 -1
- data/lib/sts/niso_sts/reference_standard.rb +4 -2
- data/lib/sts/niso_sts/reg_meta.rb +3 -0
- data/lib/sts/niso_sts/related_term.rb +2 -0
- data/lib/sts/niso_sts/release_date.rb +11 -6
- data/lib/sts/niso_sts/release_version.rb +2 -0
- data/lib/sts/niso_sts/release_version_id.rb +2 -0
- data/lib/sts/niso_sts/role.rb +35 -0
- data/lib/sts/niso_sts/ruby.rb +1 -0
- data/lib/sts/niso_sts/sdo.rb +2 -0
- data/lib/sts/niso_sts/season.rb +2 -0
- data/lib/sts/niso_sts/sec_meta.rb +26 -0
- data/lib/sts/niso_sts/secretariat.rb +2 -0
- data/lib/sts/niso_sts/section.rb +47 -4
- data/lib/sts/niso_sts/see_also_entry.rb +26 -0
- data/lib/sts/niso_sts/see_entry.rb +26 -0
- data/lib/sts/niso_sts/self_uri.rb +2 -0
- data/lib/sts/niso_sts/series.rb +2 -0
- data/lib/sts/niso_sts/series_text.rb +2 -0
- data/lib/sts/niso_sts/series_title.rb +2 -0
- data/lib/sts/niso_sts/sig.rb +2 -0
- data/lib/sts/niso_sts/size.rb +2 -0
- data/lib/sts/niso_sts/source.rb +29 -0
- data/lib/sts/niso_sts/speaker.rb +2 -0
- data/lib/sts/niso_sts/speech.rb +1 -1
- data/lib/sts/niso_sts/standard.rb +3 -0
- data/lib/sts/niso_sts/standard_identification.rb +3 -1
- data/lib/sts/niso_sts/state.rb +2 -0
- data/lib/sts/niso_sts/statement.rb +1 -1
- data/lib/sts/niso_sts/std_doc_meta.rb +50 -11
- data/lib/sts/niso_sts/std_id.rb +2 -0
- data/lib/sts/niso_sts/std_id_group.rb +3 -0
- data/lib/sts/niso_sts/std_org.rb +1 -0
- data/lib/sts/niso_sts/std_org_abbrev.rb +2 -0
- data/lib/sts/niso_sts/std_org_group.rb +3 -0
- data/lib/sts/niso_sts/std_org_name.rb +2 -0
- data/lib/sts/niso_sts/std_organization.rb +2 -0
- data/lib/sts/niso_sts/string_conf.rb +2 -0
- data/lib/sts/niso_sts/string_date.rb +2 -0
- data/lib/sts/niso_sts/string_name.rb +2 -0
- data/lib/sts/niso_sts/styled_content.rb +39 -0
- data/lib/sts/niso_sts/sub.rb +11 -0
- data/lib/sts/niso_sts/subj_group.rb +11 -0
- data/lib/sts/niso_sts/subtitle.rb +2 -0
- data/lib/sts/niso_sts/suffix.rb +2 -0
- data/lib/sts/niso_sts/sup.rb +13 -0
- data/lib/sts/niso_sts/suppl_number.rb +2 -0
- data/lib/sts/niso_sts/suppl_type.rb +2 -0
- data/lib/sts/niso_sts/suppl_version.rb +2 -0
- data/lib/sts/niso_sts/supplementary_material.rb +1 -0
- data/lib/sts/niso_sts/surname.rb +2 -0
- data/lib/sts/niso_sts/table_count.rb +2 -0
- data/lib/sts/niso_sts/table_wrap_group.rb +32 -0
- data/lib/sts/niso_sts/term_display.rb +22 -0
- data/lib/sts/niso_sts/term_display_string.rb +22 -0
- data/lib/sts/niso_sts/term_head.rb +2 -0
- data/lib/sts/niso_sts/term_section.rb +3 -3
- data/lib/sts/niso_sts/term_source.rb +2 -0
- data/lib/sts/niso_sts/tex_math.rb +2 -0
- data/lib/sts/niso_sts/textual_form.rb +2 -0
- data/lib/sts/niso_sts/time_stamp.rb +2 -0
- data/lib/sts/niso_sts/title.rb +26 -0
- data/lib/sts/niso_sts/title_wrap.rb +2 -0
- data/lib/sts/niso_sts/toc.rb +32 -0
- data/lib/sts/niso_sts/toc_div.rb +30 -0
- data/lib/sts/niso_sts/toc_entry.rb +30 -0
- data/lib/sts/niso_sts/toc_title_group.rb +22 -0
- data/lib/sts/niso_sts/trans_abstract.rb +1 -0
- data/lib/sts/niso_sts/trans_source.rb +2 -0
- data/lib/sts/niso_sts/trans_title.rb +2 -0
- data/lib/sts/niso_sts/trans_title_group.rb +3 -0
- data/lib/sts/niso_sts/underline.rb +5 -0
- data/lib/sts/niso_sts/uri.rb +4 -0
- data/lib/sts/niso_sts/urn.rb +2 -0
- data/lib/sts/niso_sts/verse_group.rb +1 -1
- data/lib/sts/niso_sts/verse_line.rb +2 -0
- data/lib/sts/niso_sts/version.rb +2 -0
- data/lib/sts/niso_sts/volume.rb +2 -0
- data/lib/sts/niso_sts/volume_id.rb +2 -0
- data/lib/sts/niso_sts/volume_issue_group.rb +3 -4
- data/lib/sts/niso_sts/volume_series.rb +2 -0
- data/lib/sts/niso_sts/word_count.rb +2 -0
- data/lib/sts/niso_sts/year.rb +2 -0
- data/lib/sts/niso_sts.rb +35 -10
- data/lib/sts/profiles/iso_iec/constraints.rb +43 -0
- data/lib/sts/profiles/iso_iec/validator.rb +73 -0
- data/lib/sts/profiles/iso_iec.rb +10 -0
- data/lib/sts/profiles.rb +7 -0
- data/lib/sts/tbx_iso_tml/bold.rb +30 -1
- data/lib/sts/tbx_iso_tml/caption.rb +3 -0
- data/lib/sts/tbx_iso_tml/col.rb +10 -0
- data/lib/sts/tbx_iso_tml/cross_reference.rb +2 -0
- data/lib/sts/tbx_iso_tml/definition.rb +18 -2
- data/lib/sts/tbx_iso_tml/entailed_term.rb +2 -0
- data/lib/sts/tbx_iso_tml/example.rb +9 -3
- data/lib/sts/tbx_iso_tml/external_graphic.rb +2 -0
- data/lib/sts/tbx_iso_tml/external_source.rb +2 -0
- data/lib/sts/tbx_iso_tml/fn.rb +3 -2
- data/lib/sts/tbx_iso_tml/fn_group.rb +3 -0
- data/lib/sts/tbx_iso_tml/geographical_usage.rb +3 -0
- data/lib/sts/tbx_iso_tml/grammatical_gender.rb +2 -0
- data/lib/sts/tbx_iso_tml/grammatical_number.rb +2 -0
- data/lib/sts/tbx_iso_tml/italic.rb +27 -1
- data/lib/sts/tbx_iso_tml/lang_set.rb +2 -0
- data/lib/sts/tbx_iso_tml/mfenced.rb +2 -0
- data/lib/sts/tbx_iso_tml/mfrac.rb +2 -2
- data/lib/sts/tbx_iso_tml/mi.rb +3 -2
- data/lib/sts/tbx_iso_tml/mrow.rb +2 -2
- data/lib/sts/tbx_iso_tml/mspace.rb +2 -0
- data/lib/sts/tbx_iso_tml/mstyle.rb +2 -2
- data/lib/sts/tbx_iso_tml/msub.rb +2 -0
- data/lib/sts/tbx_iso_tml/msup.rb +4 -1
- data/lib/sts/tbx_iso_tml/munder.rb +3 -0
- data/lib/sts/tbx_iso_tml/munderover.rb +2 -0
- data/lib/sts/tbx_iso_tml/normative_authorization.rb +2 -0
- data/lib/sts/tbx_iso_tml/note.rb +11 -7
- data/lib/sts/tbx_iso_tml/part_of_speech.rb +2 -0
- data/lib/sts/tbx_iso_tml/pronunciation.rb +3 -0
- data/lib/sts/tbx_iso_tml/see.rb +2 -0
- data/lib/sts/tbx_iso_tml/semantics.rb +2 -0
- data/lib/sts/tbx_iso_tml/source.rb +6 -0
- data/lib/sts/tbx_iso_tml/subject_field.rb +2 -0
- data/lib/sts/tbx_iso_tml/sup.rb +3 -2
- data/lib/sts/tbx_iso_tml/table.rb +1 -0
- data/lib/sts/tbx_iso_tml/table_wrap.rb +3 -1
- data/lib/sts/tbx_iso_tml/table_wrap_foot.rb +3 -0
- data/lib/sts/tbx_iso_tml/tbody.rb +9 -1
- data/lib/sts/tbx_iso_tml/td.rb +122 -17
- data/lib/sts/tbx_iso_tml/term.rb +9 -5
- data/lib/sts/tbx_iso_tml/term_type.rb +2 -0
- data/lib/sts/tbx_iso_tml/tfoot.rb +5 -1
- data/lib/sts/tbx_iso_tml/th.rb +133 -18
- data/lib/sts/tbx_iso_tml/thead.rb +9 -1
- data/lib/sts/tbx_iso_tml/tr.rb +16 -0
- data/lib/sts/tbx_iso_tml/xref.rb +2 -2
- data/lib/sts/version.rb +1 -1
- data/lib/sts.rb +1 -2
- data/reference-docs/Guidelines for coding ed.2.1.pdf +0 -0
- data/reference-docs/NISO-STS-1-2-compare-1-0.pdf +0 -0
- data/reference-docs/NISOSTS-guidelines-v1.0.pdf +0 -0
- metadata +76 -3
- data/lib/sts/niso_sts/mathml.rb +0 -69
|
@@ -0,0 +1,152 @@
|
|
|
1
|
+
# Section 6: Tables and Section 8: Figures
|
|
2
|
+
|
|
3
|
+
## Overview
|
|
4
|
+
Covers XHTML tables (`<table-wrap>`, `<table>`, `<thead>`, `<tbody>`, `<tr>`, `<th>`, `<td>`, `<colgroup>`, `<col>`), formal and informal tables, table notes/footnotes, unit statements, and figure elements (`<fig>`, `<fig-group>`, `<graphic>`), sub-figures, figure keys, and unit statements.
|
|
5
|
+
|
|
6
|
+
## Table Element Coverage
|
|
7
|
+
|
|
8
|
+
### Table Container
|
|
9
|
+
|
|
10
|
+
| Element | Guidelines Usage | sts-ruby Model | Status | Notes |
|
|
11
|
+
|---------|-----------------|---------------|--------|-------|
|
|
12
|
+
| `<table-wrap>` | Formal table container | `TbxIsoTml::TableWrap` | ✅ Supported | |
|
|
13
|
+
| `@id` | Table identifier (e.g. tab_1, tab-1) | ✅ Mapped | OK | |
|
|
14
|
+
| `@orientation` | "landscape" for landscape tables | ✅ Mapped | OK | |
|
|
15
|
+
| `@position` | "float" or "anchor" | ✅ Mapped | OK | |
|
|
16
|
+
| `@content-type` | Table content type | ✅ Mapped | OK | |
|
|
17
|
+
| `<label>` | Table label ("Table 1") | ✅ Mapped (as string) | ⚠️ Partial | Modeled as string, should support mixed content with `<sup>` |
|
|
18
|
+
| `<caption>` | Table caption | ✅ Via `NisoSts::Caption` | OK | |
|
|
19
|
+
| `<table>` | XHTML table | `TbxIsoTml::Table` | ✅ Supported | |
|
|
20
|
+
| `<graphic>` | Graphic inside table-wrap | ✅ Mapped | OK | |
|
|
21
|
+
| `<table-wrap-foot>` | Table footer/notes | `TbxIsoTml::TableWrapFoot` | ✅ Supported | |
|
|
22
|
+
|
|
23
|
+
### XHTML Table Elements
|
|
24
|
+
|
|
25
|
+
| Element | sts-ruby Model | Status | Notes |
|
|
26
|
+
|---------|---------------|--------|-------|
|
|
27
|
+
| `<table>` | `TbxIsoTml::Table` | ✅ Supported | With `@border`, `@rules`, `@frame`, `@width`, `@style`, `@cellspacing`, `@cellpadding`, `@summary` |
|
|
28
|
+
| `<colgroup>` | `TbxIsoTml::Colgroup` | ✅ Supported | |
|
|
29
|
+
| `<col>` | `TbxIsoTml::Col` | ✅ Supported | With `@align`, `@valign`, `@width`, `@span` |
|
|
30
|
+
| `<thead>` | `TbxIsoTml::Thead` | ✅ Supported | |
|
|
31
|
+
| `<tbody>` | `TbxIsoTml::Tbody` | ✅ Supported | |
|
|
32
|
+
| `<tfoot>` | `TbxIsoTml::Tfoot` | ✅ Supported | |
|
|
33
|
+
| `<tr>` | `TbxIsoTml::Tr` | ✅ Supported | With `@align`, `@valign`, `@style` |
|
|
34
|
+
| `<th>` | `TbxIsoTml::Th` | ✅ Supported | With `@align`, `@valign`, `@colspan`, `@rowspan`, `@scope`, `@style` |
|
|
35
|
+
| `<td>` | `TbxIsoTml::Td` | ✅ Supported | With `@align`, `@valign`, `@colspan`, `@rowspan`, `@scope`, `@style` |
|
|
36
|
+
|
|
37
|
+
### Table Footnotes (Section 6.6.3)
|
|
38
|
+
|
|
39
|
+
| Element | Guidelines Usage | sts-ruby Model | Status | Notes |
|
|
40
|
+
|---------|-----------------|---------------|--------|-------|
|
|
41
|
+
| `<fn>` in `<table-wrap-foot>` | Table footnotes | ✅ Via `TbxIsoTml::Fn` | OK | |
|
|
42
|
+
| `<fn-group>` in `<table-wrap-foot>` | Footnote group | ✅ Via `TbxIsoTml::FnGroup` | OK | |
|
|
43
|
+
| `<p>` in `<table-wrap-foot>` | Unit statements | ✅ Via `NisoSts::Paragraph` | OK | |
|
|
44
|
+
| `<non-normative-note>` in foot | Table notes | ✅ Via `NisoSts::NonNormativeNote` | OK | |
|
|
45
|
+
|
|
46
|
+
### Informal Tables (Section 6.5)
|
|
47
|
+
|
|
48
|
+
| Element | Guidelines Usage | sts-ruby Model | Status | Notes |
|
|
49
|
+
|---------|-----------------|---------------|--------|-------|
|
|
50
|
+
| `<array>` | Informal table wrapper | `NisoSts::SectionArray` | ✅ Supported | Maps `<table>` inside |
|
|
51
|
+
| `<table>` in `<array>` | Table without caption | ✅ Via `TbxIsoTml::Table` | OK | |
|
|
52
|
+
|
|
53
|
+
## Figure Element Coverage
|
|
54
|
+
|
|
55
|
+
### Figure Container
|
|
56
|
+
|
|
57
|
+
| Element | Guidelines Usage | sts-ruby Model | Status | Notes |
|
|
58
|
+
|---------|-----------------|---------------|--------|-------|
|
|
59
|
+
| `<fig>` | Figure container | `NisoSts::Figure`, `IsoSts::Fig` | ✅ Supported | |
|
|
60
|
+
| `@id` | Figure ID (fig_1 / fig-1) | ✅ Mapped | OK | |
|
|
61
|
+
| `@fig-type` | Figure type (usually "figure") | ✅ Mapped on NisoSts::Figure | OK | |
|
|
62
|
+
| `@orientation` | Portrait/landscape | ✅ Mapped | OK | |
|
|
63
|
+
| `<label>` | Figure label | ✅ Via `NisoSts::Label` | OK | |
|
|
64
|
+
| `<caption>` | Figure caption | ✅ Via `NisoSts::Caption` | OK | |
|
|
65
|
+
| `<graphic>` | Figure graphic | ✅ Supported (collection) | OK | |
|
|
66
|
+
| `<p>` | Paragraphs between graphic and designation | ✅ Mapped | OK | |
|
|
67
|
+
| `<non-normative-note>` | Figure notes | ✅ Mapped | OK | |
|
|
68
|
+
| `<def-list>` | Figure key (IEC) | ✅ Mapped on NisoSts::Figure | OK | |
|
|
69
|
+
| `<table-wrap>` | Figure key (ISO) | ✅ Mapped | OK | |
|
|
70
|
+
|
|
71
|
+
### Sub-figures (Section 8.2)
|
|
72
|
+
|
|
73
|
+
| Element | Guidelines Usage | sts-ruby Model | Status | Notes |
|
|
74
|
+
|---------|-----------------|---------------|--------|-------|
|
|
75
|
+
| `<fig-group>` | Sub-figure container (IEC) | `NisoSts::FigGroup` | ✅ Supported | |
|
|
76
|
+
| `<fig>` in `<fig-group>` | Sub-figures | ✅ Supported | OK | |
|
|
77
|
+
| `<label>` / `<caption>` on `<graphic>` | Sub-figure caption (ISO) | ❌ Not supported | Missing | ISO uses `<label>` and `<caption>` as children of `<graphic>` |
|
|
78
|
+
|
|
79
|
+
### Figure Key (Section 8.3)
|
|
80
|
+
|
|
81
|
+
| Coding | Guidelines Usage | sts-ruby Model | Status | Notes |
|
|
82
|
+
|--------|-----------------|---------------|--------|-------|
|
|
83
|
+
| ISO: `<table-wrap content-type="fig-index">` | Figure key as table | ✅ TableWrap has `@content-type` | OK | |
|
|
84
|
+
| IEC: `<def-list list-content="figure">` | Figure key as def-list | ⚠️ Partial | DefList has `@list-type` but guidelines use `@list-content` |
|
|
85
|
+
|
|
86
|
+
## Attribute Gaps
|
|
87
|
+
|
|
88
|
+
### TableWrap
|
|
89
|
+
|
|
90
|
+
| Attribute | Guidelines Usage | Modeled | Status |
|
|
91
|
+
|-----------|-----------------|---------|--------|
|
|
92
|
+
| `@id` | Table ID | ✅ | OK |
|
|
93
|
+
| `@orientation` | landscape/portrait | ✅ | OK |
|
|
94
|
+
| `@position` | float/anchor | ✅ | OK |
|
|
95
|
+
| `@content-type` | Table type | ✅ | OK |
|
|
96
|
+
| `@specific-use` | Layout instruction | ✅ | OK |
|
|
97
|
+
| `@width` on `<table>` | Table width | ✅ | OK |
|
|
98
|
+
| `@style` on `<td>/<th>` | Border styling | ✅ | OK |
|
|
99
|
+
| `@rowspan` on `<td>/<th>` | Merged cells | ✅ | OK |
|
|
100
|
+
| `@colspan` on `<td>/<th>` | Merged cells | ✅ | OK |
|
|
101
|
+
| `@scope` on `<td>/<th>` | Header scope | ✅ | OK |
|
|
102
|
+
| `@padding` (via style) | Cell padding | ✅ (via @style) | OK |
|
|
103
|
+
|
|
104
|
+
### DefList for figure keys
|
|
105
|
+
|
|
106
|
+
| Attribute | Guidelines Usage | Modeled | Status |
|
|
107
|
+
|-----------|-----------------|---------|--------|
|
|
108
|
+
| `@list-content` | "formula", "figure", "abbreviation" | ❌ Not mapped | Missing -- DefList has `@list-type` and `@specific-use` but not `@list-content` |
|
|
109
|
+
|
|
110
|
+
## Table Content Gaps
|
|
111
|
+
|
|
112
|
+
### TableWrapFoot
|
|
113
|
+
|
|
114
|
+
| Element | In Guidelines | In TableWrapFoot | Status |
|
|
115
|
+
|---------|--------------|-----------------|--------|
|
|
116
|
+
| `<fn>` | Table footnotes | ✅ Via `TbxIsoTml::Fn` | OK |
|
|
117
|
+
| `<fn-group>` | Footnote group | ✅ | OK |
|
|
118
|
+
| `<p>` | Unit statements | ✅ | OK |
|
|
119
|
+
| `<non-normative-note>` | Notes | ✅ | OK |
|
|
120
|
+
| `<attrib>` | Attribution | ✅ | OK |
|
|
121
|
+
| `<permissions>` | Permissions | ✅ | OK |
|
|
122
|
+
| `<tr>` (legacy) | Legacy IEC table footnotes | ❌ Not mapped | Legacy IEC puts `<tr><td>` inside `<table-wrap-foot>` -- this is not supported |
|
|
123
|
+
|
|
124
|
+
### Table Cell Content
|
|
125
|
+
|
|
126
|
+
| Element | In Guidelines | In Td/Th | Status |
|
|
127
|
+
|---------|--------------|----------|--------|
|
|
128
|
+
| `<p>` | Cell paragraphs | ✅ | OK |
|
|
129
|
+
| `<break>` | Line breaks in cells | ⚠️ Needs verification | Via content model |
|
|
130
|
+
| `<list>` | Lists in cells | ✅ | OK |
|
|
131
|
+
| `<bold>` | Bold in header cells (ISO) | ✅ | OK |
|
|
132
|
+
| `<roman>` | Roman override in header cells (IEC) | ⚠️ Needs verification | |
|
|
133
|
+
| `<italic>` | Italic in cells | ✅ | OK |
|
|
134
|
+
| `<styled-content>` | Styled cell content | ✅ | OK |
|
|
135
|
+
| `<xref>` | Cross-references | ✅ | OK |
|
|
136
|
+
| `<sub>` / `<sup>` | Sub/superscript | ✅ | OK |
|
|
137
|
+
|
|
138
|
+
## Key Gaps
|
|
139
|
+
|
|
140
|
+
- [ ] **`@list-content` missing on `DefList`**: Guidelines use `<def-list list-content="figure">` for figure keys (IEC, Section 8.3) and `<def-list list-content="formula">` for formula keys (Section 7.5). Only `@list-type` is mapped, not `@list-content`.
|
|
141
|
+
|
|
142
|
+
- [ ] **`<graphic>` lacks child `<label>` and `<caption>` for ISO sub-figures**: Section 8.2 ISO shows `<graphic xlink:href="fig_1.1" id="fig_1.1"><label>a)</label><caption><title>title</title></caption></graphic>`. The `Graphic` model has no `id`, `label`, or `caption` children.
|
|
143
|
+
|
|
144
|
+
- [ ] **`TableWrap#label` is plain string**: The label should support mixed content (e.g. `<sup>` for footnote references). NisoSts uses `Label` class for mixed content, but TbxIsoTml::TableWrap maps label as plain string.
|
|
145
|
+
|
|
146
|
+
- [ ] **Legacy IEC `<table-wrap-foot>` with `<tr>/<td>` children**: Some legacy IEC documents have `<tr><td>` directly inside `<table-wrap-foot>`. Not supported.
|
|
147
|
+
|
|
148
|
+
- [ ] **`<non-normative-example>` not in `<table-wrap-foot>`**: Guidelines Section 5.6.1 mentions examples in tables. Not mapped in `TableWrapFoot`.
|
|
149
|
+
|
|
150
|
+
- [ ] **`@content-type="dimension"` on `<p>` in table footer**: Used for unit statements (Section 6.6.5). The `<p>` in `TableWrapFoot` is `NisoSts::Paragraph` which does not have `@content-type`.
|
|
151
|
+
|
|
152
|
+
- [ ] **Figure `@fig-type` not in IsoSts::Fig**: `IsoSts::Fig` has `fig_type` mapped, so this is OK.
|
|
@@ -0,0 +1,128 @@
|
|
|
1
|
+
# Section 7: Formulae and Equations
|
|
2
|
+
|
|
3
|
+
## Overview
|
|
4
|
+
Covers display formulae (`<disp-formula>`), inline formulae (`<inline-formula>`), formula groups (`<disp-formula-group>`), formula keys (`<def-list>`), and MathML (`<mml:math>`).
|
|
5
|
+
|
|
6
|
+
## Element Coverage
|
|
7
|
+
|
|
8
|
+
### Formula Containers
|
|
9
|
+
|
|
10
|
+
| Element | Guidelines Usage | sts-ruby Model | Status | Notes |
|
|
11
|
+
|---------|-----------------|---------------|--------|-------|
|
|
12
|
+
| `<disp-formula>` | Block display formula | `NisoSts::DisplayFormula` | ✅ Supported | In both NisoSts and IsoSts |
|
|
13
|
+
| `<inline-formula>` | Inline formula | `NisoSts::InlineFormula` | ✅ Supported | |
|
|
14
|
+
| `<disp-formula-group>` | Group of formulae | `NisoSts::DispFormulaGroup` | ✅ Supported | |
|
|
15
|
+
|
|
16
|
+
### Display Formula
|
|
17
|
+
|
|
18
|
+
| Attribute/Child | Guidelines Usage | In DisplayFormula | Status | Notes |
|
|
19
|
+
|----------------|-----------------|-------------------|--------|-------|
|
|
20
|
+
| `@id` | Formula identifier (formula_1 / for-1) | ✅ Mapped | OK | |
|
|
21
|
+
| `@content-type` | Content type | ✅ Mapped | OK | |
|
|
22
|
+
| `@specific-use` | Specific use | ✅ Mapped | OK | |
|
|
23
|
+
| `<label>` | Formula number "(1)" | ✅ Mapped | OK | |
|
|
24
|
+
| `<math>` (mml:math) | MathML expression | ✅ Via `TbxIsoTml::Math` | OK | |
|
|
25
|
+
| `<graphic>` | Alternative graphic | ✅ Mapped (collection) | OK | |
|
|
26
|
+
| `<preformat>` | Preformatted formula | ✅ Mapped | OK | |
|
|
27
|
+
| `<tex-math>` | TeX math | ✅ Mapped | OK | |
|
|
28
|
+
| `<alternatives>` | Alternative representations | ✅ Mapped | OK | |
|
|
29
|
+
|
|
30
|
+
### Inline Formula
|
|
31
|
+
|
|
32
|
+
| Attribute/Child | Guidelines Usage | In InlineFormula | Status | Notes |
|
|
33
|
+
|----------------|-----------------|------------------|--------|-------|
|
|
34
|
+
| `@id` | Formula identifier | ✅ Mapped | OK | |
|
|
35
|
+
| `@content-type` | Content type | ✅ Mapped | OK | |
|
|
36
|
+
| `<math>` (mml:math) | MathML expression | ✅ Via `TbxIsoTml::Math` | OK | |
|
|
37
|
+
| `<alternatives>` | Alternative representations | ✅ Mapped | OK | |
|
|
38
|
+
|
|
39
|
+
### Formula Group
|
|
40
|
+
|
|
41
|
+
| Attribute/Child | Guidelines Usage | In DispFormulaGroup | Status | Notes |
|
|
42
|
+
|----------------|-----------------|---------------------|--------|-------|
|
|
43
|
+
| `@id` | Group identifier (forg-informal-X-Y) | ✅ Mapped | OK | |
|
|
44
|
+
| `@content-type` | Content type | ✅ Mapped | OK | |
|
|
45
|
+
| `<label>` | Group label | ✅ Mapped | OK | |
|
|
46
|
+
| `<disp-formula>` | Individual formulae | ✅ Mapped (collection) | OK | |
|
|
47
|
+
| Text between formulae | e.g. ", or" | ⚠️ Needs verification | Mixed content not declared | Guidelines show text between disp-formula children |
|
|
48
|
+
|
|
49
|
+
### Formula Keys (Section 7.5)
|
|
50
|
+
|
|
51
|
+
| Element | Guidelines Usage | sts-ruby Model | Status | Notes |
|
|
52
|
+
|---------|-----------------|---------------|--------|-------|
|
|
53
|
+
| `<def-list list-content="formula">` | Formula key | ⚠️ Partial | `DefList` exists but `@list-content` not mapped | |
|
|
54
|
+
| `<label>` "where" | Key label | ✅ Mapped | OK | |
|
|
55
|
+
| `<def-item>` | Key entries | ✅ Mapped | OK | |
|
|
56
|
+
| `<term>` | Variable symbol | ✅ Mapped | OK | |
|
|
57
|
+
| `<def>` | Definition | ✅ Mapped | OK | |
|
|
58
|
+
| `<def-head>` (IEC legacy) | Key heading | ❌ Not mapped | Legacy | IEC legacy uses `<def-head>` instead of `<label>` |
|
|
59
|
+
|
|
60
|
+
## MathML Coverage
|
|
61
|
+
|
|
62
|
+
The `TbxIsoTml::Math` model supports the following MathML elements:
|
|
63
|
+
|
|
64
|
+
| MathML Element | In `TbxIsoTml::Math` | Status | Notes |
|
|
65
|
+
|---------------|---------------------|--------|-------|
|
|
66
|
+
| `@id` | ✅ | OK | |
|
|
67
|
+
| `@display` | ✅ ("block") | OK | |
|
|
68
|
+
| `<mrow>` | ✅ | OK | |
|
|
69
|
+
| `<msub>` | ✅ | OK | |
|
|
70
|
+
| `<msup>` | ✅ | OK | |
|
|
71
|
+
| `<mn>` | ✅ | OK | |
|
|
72
|
+
| `<mo>` | ✅ | OK | |
|
|
73
|
+
| `<mi>` | ✅ | OK | |
|
|
74
|
+
| `<mtext>` | ✅ | OK | |
|
|
75
|
+
| `<mfrac>` | ✅ | OK | |
|
|
76
|
+
| `<mspace>` | ✅ | OK | |
|
|
77
|
+
| `<semantics>` | ✅ | OK | |
|
|
78
|
+
| `<mstyle>` | ✅ | OK | |
|
|
79
|
+
| `<mfenced>` | ✅ | OK | |
|
|
80
|
+
| `<munderover>` | ✅ | OK | |
|
|
81
|
+
|
|
82
|
+
### MathML Elements Missing from Model
|
|
83
|
+
|
|
84
|
+
| MathML Element | Guidelines Usage | In Model | Status | Notes |
|
|
85
|
+
|---------------|-----------------|----------|--------|-------|
|
|
86
|
+
| `<munder>` | Under scripts | ✅ `TbxIsoTml::Munder` | OK | Exists as separate class |
|
|
87
|
+
| `<mover>` | Over scripts | ❌ Not in Math | Missing | |
|
|
88
|
+
| `<mtable>` | Math tables | ❌ | Missing | |
|
|
89
|
+
| `<mtr>` | Math table rows | ❌ | Missing | |
|
|
90
|
+
| `<mtd>` | Math table cells | ❌ | Missing | |
|
|
91
|
+
| `<maligngroup>` | Alignment groups | ❌ | Missing | |
|
|
92
|
+
| `<malignmark>` | Alignment marks | ❌ | Missing | |
|
|
93
|
+
| `<mglyph>` | Math glyphs | ❌ | Missing | |
|
|
94
|
+
| `<mlongdiv>` | Long division | ❌ | Missing | |
|
|
95
|
+
| `<mscarries>` | Carries | ❌ | Missing | |
|
|
96
|
+
| `<mscarry>` | Carry | ❌ | Missing | |
|
|
97
|
+
| `<msline>` | Stack line | ❌ | Missing | |
|
|
98
|
+
| `<mstack>` | Stack | ❌ | Missing | |
|
|
99
|
+
| `<menclose>` | Enclosure notation | ❌ | Missing | |
|
|
100
|
+
| `<merror>` | Error message | ❌ | Missing | |
|
|
101
|
+
| `<mmultiscripts>` | Multi-scripts | ❌ | Missing | |
|
|
102
|
+
| `<mprescripts>` | Pre-scripts | ❌ | Missing | |
|
|
103
|
+
| `<msubsup>` | Sub-superscript pair | ❌ | Missing | |
|
|
104
|
+
| `<maction>` | Math action | ❌ | Missing | |
|
|
105
|
+
| `<mpadded>` | Padded space | ❌ | Missing | |
|
|
106
|
+
| `<mphantom>` | Phantom space | ❌ | Missing | |
|
|
107
|
+
| `<annotation>` | Annotation | ❌ | Missing | Part of `<semantics>` |
|
|
108
|
+
| `<annotation-xml>` | XML annotation | ❌ | Missing | Part of `<semantics>` |
|
|
109
|
+
|
|
110
|
+
## Attribute Gaps
|
|
111
|
+
|
|
112
|
+
| Attribute | Parent | Guidelines Usage | Modeled | Status |
|
|
113
|
+
|-----------|--------|-----------------|---------|--------|
|
|
114
|
+
| `@list-content` | `<def-list>` | "formula" for formula keys | ❌ Not mapped | Missing |
|
|
115
|
+
|
|
116
|
+
## Key Gaps
|
|
117
|
+
|
|
118
|
+
- [ ] **`@list-content` not mapped on `DefList`**: Guidelines use `<def-list list-content="formula">` for formula keys and `<def-list list-content="figure">` for figure keys. This attribute is critical for distinguishing key types. Currently only `@list-type` and `@specific-use` exist.
|
|
119
|
+
|
|
120
|
+
- [ ] **`<def-head>` (IEC legacy) not supported**: IEC legacy sometimes uses `<def-head>` instead of `<label>` in definition lists.
|
|
121
|
+
|
|
122
|
+
- [ ] **Text content between `<disp-formula>` in `<disp-formula-group>`**: The guidelines show text like ", or" between formula elements. The `DispFormulaGroup` model does not declare mixed content, so this text would be lost.
|
|
123
|
+
|
|
124
|
+
- [ ] **MathML coverage is limited**: Only ~16 MathML presentation elements are modeled out of the ~35+ defined in the NISO STS schema. Complex formulae using `<mover>`, `<mtable>`, `<menclose>`, `<mmultiscripts>`, etc. will not round-trip correctly. The guidelines explicitly note "we assume that this will be handled by a specialized WYSIWYG tool" -- but for XML round-tripping, more complete MathML support is needed.
|
|
125
|
+
|
|
126
|
+
- [ ] **`<annotation>` / `<annotation-xml>` not in `<semantics>`**: The `Semantics` model needs to be checked for completeness.
|
|
127
|
+
|
|
128
|
+
- [ ] **`<mml:math>` namespace handling**: The MathML elements in guidelines use `mml:` prefix. `TbxIsoTml::Math` uses `namespace ::Sts::Namespaces::MathmlNamespace`. Need to verify that this correctly handles the `mml:math`, `mml:mrow`, etc. prefixed elements.
|
|
@@ -0,0 +1,113 @@
|
|
|
1
|
+
# Section 10: References
|
|
2
|
+
|
|
3
|
+
## Overview
|
|
4
|
+
Covers internal cross-references (`<xref>`), external references (`<std>`, `<mixed-citation>`), footnotes (`<fn>`), URLs (`<uri>`, `<ext-link>`), bibliography structure, and reference elements.
|
|
5
|
+
|
|
6
|
+
## Element Coverage
|
|
7
|
+
|
|
8
|
+
### Internal Cross-References (Section 10.1)
|
|
9
|
+
|
|
10
|
+
| Element | Guidelines Usage | sts-ruby Model | Status | Notes |
|
|
11
|
+
|---------|-----------------|---------------|--------|-------|
|
|
12
|
+
| `<xref>` | Cross-reference element | `TbxIsoTml::Xref` | ✅ Supported | |
|
|
13
|
+
| `@ref-type` | Type of target | ✅ Mapped | OK | Values: app, bibr, disp-formula, fig, fn, list, sec, table, table-fn, other |
|
|
14
|
+
| `@rid` | ID of target | ✅ Mapped | OK | |
|
|
15
|
+
| `<sup>` in `<xref>` | Superscript footnote refs | ✅ Mapped | OK | |
|
|
16
|
+
| `text content` | Reference text | ✅ Mapped | OK | |
|
|
17
|
+
|
|
18
|
+
### External References (Section 10.2)
|
|
19
|
+
|
|
20
|
+
| Element | Guidelines Usage | sts-ruby Model | Status | Notes |
|
|
21
|
+
|---------|-----------------|---------------|--------|-------|
|
|
22
|
+
| `<std>` | Reference to a standard | `NisoSts::ReferenceStandard` | ✅ Supported | |
|
|
23
|
+
| `@type` on `<std>` | dated/undated | ✅ Mapped | OK | |
|
|
24
|
+
| `@std-id` on `<std>` | Standard ID | ✅ Mapped | OK | |
|
|
25
|
+
| `<std-ref>` | Standard reference text | `NisoSts::StandardRef` | ✅ Supported | |
|
|
26
|
+
| `<std-id>` in `<std>` | Standard identifier | ✅ Mapped via `StdId` | OK | |
|
|
27
|
+
| `<std-id-group>` | Group of IDs | ✅ Mapped | OK | |
|
|
28
|
+
| `<title>` in `<std>` | Title of referenced standard | ✅ Mapped | OK | |
|
|
29
|
+
| `<mixed-citation>` | Non-standard reference | `NisoSts::MixedCitation` | ✅ Supported | Rich content model |
|
|
30
|
+
| `<uri>` | URL references | `NisoSts::Uri` | ✅ Supported | |
|
|
31
|
+
| `<ext-link>` | External links | `NisoSts::ExtLink` | ✅ Supported | With `@xlink:href` |
|
|
32
|
+
|
|
33
|
+
### Footnotes (Section 10.1.4)
|
|
34
|
+
|
|
35
|
+
| Element | Guidelines Usage | sts-ruby Model | Status | Notes |
|
|
36
|
+
|---------|-----------------|---------------|--------|-------|
|
|
37
|
+
| `<fn>` | Footnote content | `NisoSts::Fn`, `TbxIsoTml::Fn` | ✅ Supported | |
|
|
38
|
+
| `@id` on `<fn>` | Footnote ID | ✅ Mapped | OK | |
|
|
39
|
+
| `<label>` in `<fn>` | Footnote label | ✅ Mapped | OK | |
|
|
40
|
+
| `<p>` in `<fn>` | Footnote text | ✅ Mapped | OK | |
|
|
41
|
+
| `<fn-group>` | Footnote group (IEC legacy) | `NisoSts::FnGroup`, `TbxIsoTml::FnGroup` | ✅ Supported | |
|
|
42
|
+
|
|
43
|
+
### Bibliography (Section 4.4.3)
|
|
44
|
+
|
|
45
|
+
| Element | Guidelines Usage | sts-ruby Model | Status | Notes |
|
|
46
|
+
|---------|-----------------|---------------|--------|-------|
|
|
47
|
+
| `<ref-list>` | Bibliography container | `NisoSts::ReferenceList` | ✅ Supported | |
|
|
48
|
+
| `@content-type="bibl"` | Bibliography marker | ✅ Mapped | OK | |
|
|
49
|
+
| `@id` | Bibliography ID (sec_bibl / sec-bibliography) | ✅ Mapped | OK | |
|
|
50
|
+
| `<title>` | "Bibliography" | ✅ Mapped | OK | |
|
|
51
|
+
| `<ref>` | Individual reference | `NisoSts::Reference` | ✅ Supported | |
|
|
52
|
+
| `@id` on `<ref>` | Reference ID (biblref_1 / bib-1) | ✅ Mapped | OK | |
|
|
53
|
+
| `<label>` in `<ref>` | Reference label "[1]" | ✅ Mapped | OK | |
|
|
54
|
+
| `<std>` in `<ref>` | Standard reference | ✅ Mapped | OK | |
|
|
55
|
+
| `<mixed-citation>` in `<ref>` | Non-standard reference | ✅ Mapped | OK | |
|
|
56
|
+
| Nested `<ref-list>` | Subdivided bibliography | ✅ Mapped (collection) | OK | |
|
|
57
|
+
| `<non-normative-note>` in `<ref>` | Notes on references | ❌ Not mapped in Reference | Missing | Guidelines show this in Section 4.4.3 |
|
|
58
|
+
|
|
59
|
+
### Abbreviations (Section 10.1.5)
|
|
60
|
+
|
|
61
|
+
| Element | Guidelines Usage | sts-ruby Model | Status | Notes |
|
|
62
|
+
|---------|-----------------|---------------|--------|-------|
|
|
63
|
+
| `<def-list list-content="abbreviation">` | Abbreviation list | ⚠️ Partial | DefList exists but `@list-content` not mapped | |
|
|
64
|
+
| `<def-item>` with `@id` | Abbreviation entry | ✅ Mapped (DefItem has `@specific-use` but not `@id`) | ⚠️ Partial | |
|
|
65
|
+
| `<term>` | Abbreviation | ✅ Mapped | OK | |
|
|
66
|
+
| `<def>` | Definition | ✅ Mapped | OK | |
|
|
67
|
+
|
|
68
|
+
## Attribute Gaps
|
|
69
|
+
|
|
70
|
+
| Attribute | Parent Element | Guidelines Usage | Modeled | Status |
|
|
71
|
+
|-----------|---------------|-----------------|---------|--------|
|
|
72
|
+
| `@ref-type` on `<xref>` | All cross-references | ✅ | OK | |
|
|
73
|
+
| `@rid` on `<xref>` | Target ID | ✅ | OK | |
|
|
74
|
+
| `@type` on `<std>` | dated/undated | ✅ | OK | |
|
|
75
|
+
| `@std-id-link-type` on `<std-id>` | Link type (urn, id, ooi) | ✅ | OK | |
|
|
76
|
+
| `@std-id-type` on `<std-id>` | ID type (dated, undated) | ✅ | OK | |
|
|
77
|
+
| `@originator` on `<std-id>` | Originating body | ❌ Not mapped | Missing | IEC metadata example shows this |
|
|
78
|
+
| `@xlink:type` on `<mixed-citation>` | XLink type | ✅ | OK | |
|
|
79
|
+
| `@publication-type` on `<mixed-citation>` | Publication type | ✅ | OK | |
|
|
80
|
+
| `@content-type` on `<ref>` | Reference type | ✅ | OK | |
|
|
81
|
+
| `@specific-use` on `<ref>` | IEC delete marker | ❌ Not mapped | Missing | IEC amendments use `@specific-use="delete"` on `<ref>` |
|
|
82
|
+
| `@list-content` on `<def-list>` | "abbreviation" | ❌ Not mapped | Missing | |
|
|
83
|
+
|
|
84
|
+
## ReferenceStandard Gaps
|
|
85
|
+
|
|
86
|
+
The `ReferenceStandard` model maps `<std>` content:
|
|
87
|
+
|
|
88
|
+
| Feature | Guidelines Usage | In ReferenceStandard | Status |
|
|
89
|
+
|---------|-----------------|---------------------|--------|
|
|
90
|
+
| `<std-ref>` | Standard reference text | ✅ | OK |
|
|
91
|
+
| `<title>` | Standard title | ✅ | OK |
|
|
92
|
+
| `<std-id>` | Standard identifier | ✅ Via `StdId` | OK |
|
|
93
|
+
| `<std-id-group>` | ID group | ✅ | OK |
|
|
94
|
+
| `<fn>` | Footnotes | ✅ | OK |
|
|
95
|
+
| `<xref>` | Cross-references | ✅ | OK |
|
|
96
|
+
| `<bold>` | Bold text | ✅ | OK |
|
|
97
|
+
| `<styled-content>` | Styled content | ❌ Not mapped | IEC amendments use `<styled-content specific-use="delete">` inside `<std>` |
|
|
98
|
+
| `<italic>` | Italic text | ❌ Not mapped | May appear in std content |
|
|
99
|
+
| Mixed text content | e.g. ", 7.3.1" after std-ref | ✅ (via mixed_content) | OK |
|
|
100
|
+
|
|
101
|
+
## Key Gaps
|
|
102
|
+
|
|
103
|
+
- [ ] **`<non-normative-note>` not mapped in `Reference`**: Guidelines show `<non-normative-note>` inside `<ref>` in normative references (Section 4.3.3 case 2 example with "W3C XML Schema").
|
|
104
|
+
|
|
105
|
+
- [ ] **`@list-content` not mapped on `DefList`**: Critical for abbreviation lists (Section 10.1.5), formula keys (Section 7.5), and figure keys (Section 8.3).
|
|
106
|
+
|
|
107
|
+
- [ ] **`@originator` missing on `StdId`**: IEC metadata example shows `<std-id originator="IEC" std-id-link-type="urn" std-id-type="dated">`.
|
|
108
|
+
|
|
109
|
+
- [ ] **`<styled-content>` not in `ReferenceStandard`**: IEC amendments use `<styled-content specific-use="delete">` and `<styled-content specific-use="insert">` inside `<std>` elements (Section 5.5.1 examples).
|
|
110
|
+
|
|
111
|
+
- [ ] **`@specific-use` not on `Reference`**: IEC amendments use `<ref specific-use="delete">` to mark deleted references.
|
|
112
|
+
|
|
113
|
+
- [ ] **`DefItem` missing `@id`**: Abbreviation cross-references use `<def-item id="abb-acsi">` (Section 10.1.5). Currently `DefItem` has `@specific-use` but not `@id`.
|
|
@@ -0,0 +1,127 @@
|
|
|
1
|
+
# Section 9: Terms and Definitions
|
|
2
|
+
|
|
3
|
+
## Overview
|
|
4
|
+
Covers terminological entries using TBX (ISO standard) and `<term-display>` (IEC fallback), including `<term-sec>`, `<tbx:termEntry>`, `<tbx:langSet>`, `<tbx:tig>`, `<tbx:term>`, `<tbx:definition>`, `<tbx:note>`, `<tbx:example>`, `<tbx:source>`, `<tbx:entailedTerm>`, `<tbx:see>`, `<tbx:subjectField>`, and `<term-display>`.
|
|
5
|
+
|
|
6
|
+
## Element Coverage
|
|
7
|
+
|
|
8
|
+
### Terminological Entry Container
|
|
9
|
+
|
|
10
|
+
| Element | Guidelines Usage | sts-ruby Model | Status | Notes |
|
|
11
|
+
|---------|-----------------|---------------|--------|-------|
|
|
12
|
+
| `<term-sec>` | Terminological entry section | `NisoSts::TermSection`, `IsoSts::TermSec` | ✅ Supported | |
|
|
13
|
+
| `@id` on `<term-sec>` | Entry ID (sec_3.1 / con-3.1.3) | ✅ Mapped | OK | |
|
|
14
|
+
| `<label>` in `<term-sec>` | Entry number | ✅ Mapped | OK | |
|
|
15
|
+
| `<tbx:termEntry>` | TBX term entry | `TbxIsoTml::TermEntry` | ✅ Supported | With `@id` |
|
|
16
|
+
| `<term-display>` | Appearance-oriented entry | `NisoSts::TermDisplay` | ✅ Supported | IEC fallback |
|
|
17
|
+
|
|
18
|
+
### TBX langSet
|
|
19
|
+
|
|
20
|
+
| Element | Guidelines Usage | sts-ruby Model | Status | Notes |
|
|
21
|
+
|---------|-----------------|---------------|--------|-------|
|
|
22
|
+
| `<tbx:langSet>` | Language set | `TbxIsoTml::LangSet` | ✅ Supported | |
|
|
23
|
+
| `@xml:lang` on `<tbx:langSet>` | Language | ✅ Mapped (`lang`) | OK | |
|
|
24
|
+
|
|
25
|
+
### TBX Definition
|
|
26
|
+
|
|
27
|
+
| Element | Guidelines Usage | sts-ruby Model | Status | Notes |
|
|
28
|
+
|---------|-----------------|---------------|--------|-------|
|
|
29
|
+
| `<tbx:definition>` | Term definition | `TbxIsoTml::Definition` | ✅ Supported | |
|
|
30
|
+
| `<break/>` in definition | Line break in definition | ⚠️ Needs verification | Definition uses mixed content? | |
|
|
31
|
+
|
|
32
|
+
### TBX Term Information Group
|
|
33
|
+
|
|
34
|
+
| Element | Guidelines Usage | sts-ruby Model | Status | Notes |
|
|
35
|
+
|---------|-----------------|---------------|--------|-------|
|
|
36
|
+
| `<tbx:tig>` | Term information group | `TbxIsoTml::TermInformationGroup` | ✅ Supported | |
|
|
37
|
+
| `@id` on `<tbx:tig>` | TIG identifier | ✅ Mapped | OK | |
|
|
38
|
+
| `<tbx:term>` | Term text | `TbxIsoTml::Term` | ✅ Supported | |
|
|
39
|
+
| `@id` on `<tbx:term>` | Term ID (IEC: ter-sound_pressurep) | ⚠️ Check | Term class exists | |
|
|
40
|
+
| `<tbx:partOfSpeech>` | Part of speech | `TbxIsoTml::PartOfSpeech` | ✅ Supported | With `@value` (noun, verb, adj, adv) |
|
|
41
|
+
| `<tbx:normativeAuthorization>` | Term status | `TbxIsoTml::NormativeAuthorization` | ✅ Supported | With `@value` (preferredTerm, admittedTerm, deprecatedTerm) |
|
|
42
|
+
| `<tbx:termType>` | Term type | `TbxIsoTml::TermType` | ✅ Supported | With `@value` (acronym, abbreviation, fullForm, symbol, formula, equation) |
|
|
43
|
+
| `<tbx:grammaticalNumber>` | Grammatical number | `TbxIsoTml::GrammaticalNumber` | ✅ Supported | |
|
|
44
|
+
| `<tbx:grammaticalGender>` | Grammatical gender | `TbxIsoTml::GrammaticalGender` | ✅ Supported | |
|
|
45
|
+
|
|
46
|
+
### TBX Notes and Examples
|
|
47
|
+
|
|
48
|
+
| Element | Guidelines Usage | sts-ruby Model | Status | Notes |
|
|
49
|
+
|---------|-----------------|---------------|--------|-------|
|
|
50
|
+
| `<tbx:note>` | Notes on terms | `TbxIsoTml::Note` | ✅ Supported | With `@id` |
|
|
51
|
+
| `<tbx:example>` | Examples | `TbxIsoTml::Example` | ✅ Supported | |
|
|
52
|
+
|
|
53
|
+
### TBX Cross-References
|
|
54
|
+
|
|
55
|
+
| Element | Guidelines Usage | sts-ruby Model | Status | Notes |
|
|
56
|
+
|---------|-----------------|---------------|--------|-------|
|
|
57
|
+
| `<tbx:entailedTerm>` | Cross-ref between terms | `TbxIsoTml::EntailedTerm` | ✅ Supported | With `@target` |
|
|
58
|
+
| `@target` | Internal reference | ✅ Mapped | OK | |
|
|
59
|
+
| `@xtarget` | External reference | ⚠️ Check | May not be mapped | Guidelines mention `@xtarget` for external term refs |
|
|
60
|
+
| `<tbx:see>` | Reference to other clauses | `TbxIsoTml::See` | ✅ Supported | With `@target` |
|
|
61
|
+
| `<tbx:crossReference>` | Cross reference | `TbxIsoTml::CrossReference` | ✅ Supported | |
|
|
62
|
+
|
|
63
|
+
### TBX Source and Subject
|
|
64
|
+
|
|
65
|
+
| Element | Guidelines Usage | sts-ruby Model | Status | Notes |
|
|
66
|
+
|---------|-----------------|---------------|--------|-------|
|
|
67
|
+
| `<tbx:source>` | Source of definition | `TbxIsoTml::Source` | ✅ Supported | |
|
|
68
|
+
| `<tbx:subjectField>` | Subject field | `TbxIsoTml::SubjectField` | ✅ Supported | |
|
|
69
|
+
|
|
70
|
+
### term-display (IEC, Section 9.4)
|
|
71
|
+
|
|
72
|
+
| Element | Guidelines Usage | sts-ruby Model | Status | Notes |
|
|
73
|
+
|---------|-----------------|---------------|--------|-------|
|
|
74
|
+
| `<term-display>` | Appearance-oriented entry | `NisoSts::TermDisplay` | ✅ Supported | |
|
|
75
|
+
| `<p>` in term-display | Entry text | ✅ Mapped | OK | |
|
|
76
|
+
| `<term>` in term-display | Term | ✅ Via `NisoSts::Term` | OK | But check if `term-display` maps `<term>` -- currently only maps `<p>` and `<non-normative-note>` |
|
|
77
|
+
| `<def>` in term-display | Definition | ❌ Not mapped | Missing | Guidelines show `<def>` inside `<term-display>` |
|
|
78
|
+
| `<list>` in term-display | Lists in definitions | ❌ Not mapped | Missing | |
|
|
79
|
+
| `<xref>` in term-display | Cross-references | ❌ Not mapped | Missing | |
|
|
80
|
+
|
|
81
|
+
## Attribute Gaps
|
|
82
|
+
|
|
83
|
+
| Attribute | Parent Element | Guidelines Usage | Modeled | Status |
|
|
84
|
+
|-----------|---------------|-----------------|---------|--------|
|
|
85
|
+
| `@id` on `<tbx:note>` | Note ID (nte-3.1.3-1) | ✅ Mapped | OK | |
|
|
86
|
+
| `@id` on `<tbx:term>` | Term ID (IEC: ter-rated_capacity) | ⚠️ Check | Need to verify `Term` has `@id` | |
|
|
87
|
+
| `@value` on `<tbx:partOfSpeech>` | noun, verb, adj, adv | ✅ Mapped | OK | |
|
|
88
|
+
| `@value` on `<tbx:normativeAuthorization>` | preferredTerm, admittedTerm, deprecatedTerm | ✅ Mapped | OK | |
|
|
89
|
+
| `@value` on `<tbx:termType>` | acronym, abbreviation, fullForm, symbol, formula, equation | ✅ Mapped | OK | |
|
|
90
|
+
| `@target` on `<tbx:entailedTerm>` | Internal term ref | ✅ Mapped | OK | |
|
|
91
|
+
| `@xtarget` on `<tbx:entailedTerm>` | External term ref | ⚠️ Check | May not be mapped | |
|
|
92
|
+
| `@target` on `<tbx:see>` | See target | ✅ Mapped | OK | |
|
|
93
|
+
|
|
94
|
+
## TermDisplay Content Gaps
|
|
95
|
+
|
|
96
|
+
The `TermDisplay` model is severely limited. Guidelines Section 9.4 shows rich content:
|
|
97
|
+
|
|
98
|
+
| Element | In Guidelines `<term-display>` | In TermDisplay model | Status |
|
|
99
|
+
|---------|-------------------------------|---------------------|--------|
|
|
100
|
+
| `<p>` | Paragraph text | ✅ | OK |
|
|
101
|
+
| `<non-normative-note>` | Notes | ✅ | OK |
|
|
102
|
+
| `<term>` | Term text with `@id` | ❌ Not mapped | Missing |
|
|
103
|
+
| `<def>` | Definition with `<p>` children | ❌ Not mapped | Missing |
|
|
104
|
+
| `<list>` | Lists in definition | ❌ Not mapped | Missing |
|
|
105
|
+
| `<xref>` | Cross-references | ❌ Not mapped | Missing |
|
|
106
|
+
| `<label>` | Labels | ❌ Not mapped | Missing |
|
|
107
|
+
| `<styled-content>` | Styled content | ❌ Not mapped | Missing |
|
|
108
|
+
| `<italic>` | Italic text | ❌ Not mapped | Missing |
|
|
109
|
+
| `<fig>` | Figure references | ❌ Not mapped | Missing |
|
|
110
|
+
|
|
111
|
+
## Key Gaps
|
|
112
|
+
|
|
113
|
+
- [ ] **`TermDisplay` is severely incomplete**: Only has `<p>` and `<non-normative-note>`. Missing `<term>`, `<def>`, `<list>`, `<xref>`, `<label>`, `<styled-content>`, `<italic>`, `<fig>`. IEC documents that use `<term-display>` (amendments, special series) will lose content.
|
|
114
|
+
|
|
115
|
+
- [ ] **`<def>` not in `TermDisplay`**: The guidelines (Section 9.4) clearly show `<def><p>...</p></def>` inside `<term-display>`.
|
|
116
|
+
|
|
117
|
+
- [ ] **`<term>` not in `TermDisplay`**: Guidelines show `<term id="ter-normal_load">normal load</term>` inside `<term-display>`.
|
|
118
|
+
|
|
119
|
+
- [ ] **`@xtarget` on `EntailedTerm`**: Guidelines mention `@xtarget` for cross-references to terms external to the document. Need to verify this is mapped.
|
|
120
|
+
|
|
121
|
+
- [ ] **`<std>` inside `<tbx:source>`**: Guidelines show `<tbx:source>SOURCE: <std>...</std></tbx:source>`. Need to verify that the `Source` model supports inline `<std>` elements.
|
|
122
|
+
|
|
123
|
+
- [ ] **`<tbx:geographicalUsage>` and `<tbx:grammaticalGender>`**: Guidelines note these "will probably be used in the future". Currently modeled (both classes exist), which is good preparation.
|
|
124
|
+
|
|
125
|
+
- [ ] **`<tbx:pronunciation>`**: Not mentioned heavily in guidelines but exists in `TermInformationGroup`. Acceptable as prepared for future use.
|
|
126
|
+
|
|
127
|
+
- [ ] **`Section` missing `<term-sec>` children in `IsoSts::Sec`**: `IsoSts::Sec` does have `term_sec` mapped, so this is OK.
|
|
@@ -0,0 +1,113 @@
|
|
|
1
|
+
# Section A: Metadata Usage
|
|
2
|
+
|
|
3
|
+
## Overview
|
|
4
|
+
Covers the detailed metadata structures used by ISO (Section A.1), IEC (Section A.2), and National bodies (Section A.3), including specific elements and attributes shown in the complete metadata examples.
|
|
5
|
+
|
|
6
|
+
## ISO Metadata (Section A.1)
|
|
7
|
+
|
|
8
|
+
### `<std-meta>` Complete Element Set
|
|
9
|
+
|
|
10
|
+
| Element | In Guidelines Example | In MetadataStd | Status | Notes |
|
|
11
|
+
|---------|----------------------|---------------|--------|-------|
|
|
12
|
+
| `<title-wrap xml:lang="en">` | Multi-language titles | ✅ Collection | OK | |
|
|
13
|
+
| `<intro>` | Title intro | ✅ | OK | |
|
|
14
|
+
| `<main>` | Title main | ✅ | OK | |
|
|
15
|
+
| `<compl>` | Title complementary | ✅ | OK | |
|
|
16
|
+
| `<full>` | Title full | ✅ | OK | |
|
|
17
|
+
| `<proj-id>` | Project ID | ✅ | OK | |
|
|
18
|
+
| `<release-version>` | DIS/FIS/IS | ✅ | OK | |
|
|
19
|
+
| `<std-ident>` | Standard identification | ✅ | OK | |
|
|
20
|
+
| `<originator>` | ISO/IEC | ✅ | OK | |
|
|
21
|
+
| `<doc-type>` | IS, TR, TS, etc. | ✅ | OK | |
|
|
22
|
+
| `<doc-number>` | Document number | ✅ | OK | |
|
|
23
|
+
| `<part-number/>` | Part number (can be empty) | ✅ | OK | |
|
|
24
|
+
| `<edition>` | Edition number | ✅ | OK | |
|
|
25
|
+
| `<version>` | Version number | ✅ | OK | |
|
|
26
|
+
| `<std-org>` | Standards organization | ✅ | OK | |
|
|
27
|
+
| `@std-org-type` | sdo | ✅ | OK | |
|
|
28
|
+
| `<std-org-abbrev>` | ISO | ✅ | OK | |
|
|
29
|
+
| `<content-language>` | en | ✅ | OK | |
|
|
30
|
+
| `<std-ref type="dated">` | Dated reference | ✅ | OK | |
|
|
31
|
+
| `<std-ref type="undated">` | Undated reference | ✅ | OK | |
|
|
32
|
+
| `<doc-ref>` | ISO/DIS 16936-1(en) | ✅ | OK | |
|
|
33
|
+
| `<comm-ref>` | Committee reference | ✅ | OK | |
|
|
34
|
+
| `<secretariat>` | Secretariat | ✅ | OK | |
|
|
35
|
+
| `<ics>` | ICS code | ✅ | OK | |
|
|
36
|
+
| `<page-count count="8"/>` | Page count | ✅ | OK | |
|
|
37
|
+
| `<std-xref type="revises">` | Cross-reference | ✅ | OK | |
|
|
38
|
+
| `<permissions>` | Copyright | ✅ | OK | |
|
|
39
|
+
| `<copyright-statement>` | Copyright statement | ✅ (string) | OK | |
|
|
40
|
+
| `<copyright-year>` | Copyright year | ✅ | OK | |
|
|
41
|
+
| `<copyright-holder>` | Copyright holder | ✅ | OK | |
|
|
42
|
+
| `<self-uri>` | Self URI | ✅ | OK | |
|
|
43
|
+
| `<custom-meta-group>` | Custom metadata | ✅ | OK | |
|
|
44
|
+
| `<custom-meta>` | Custom metadata entry | ✅ | OK | |
|
|
45
|
+
| `<meta-name>` | Metadata key | ✅ | OK | |
|
|
46
|
+
| `<meta-value>` | Metadata value | ✅ | OK | |
|
|
47
|
+
| `<abstract>` | Abstract | ❌ Not in MetadataStd | Missing | ISO example does NOT show this, but IEC does |
|
|
48
|
+
| `<release-date>` | Release date | ✅ | OK | But ISO example does not show `@date-type` |
|
|
49
|
+
|
|
50
|
+
## IEC Metadata (Section A.2)
|
|
51
|
+
|
|
52
|
+
### IEC-Specific Elements in `<std-meta>`
|
|
53
|
+
|
|
54
|
+
| Element | In Guidelines Example | In MetadataStd | Status | Notes |
|
|
55
|
+
|---------|----------------------|---------------|--------|-------|
|
|
56
|
+
| `<permissions>` with `<license>` | License block | ⚠️ Permissions missing `<license>` | Missing | IEC requires full license text |
|
|
57
|
+
| `<inline-graphic/>` in copyright-statement | Copyright symbol | ❌ copyright-statement is string | Missing | Cannot contain inline-graphic |
|
|
58
|
+
| `<br/>` in copyright-statement | Line break | ❌ copyright-statement is string | Missing | |
|
|
59
|
+
| `<license>` | License block | ❌ Not in Permissions | Missing | |
|
|
60
|
+
| `<license-p>` | License paragraph | ❌ Not in Permissions | Missing | |
|
|
61
|
+
| `<address>` in `<license-p>` | Contact address | ❌ Not available | Missing | |
|
|
62
|
+
| `<addr-line>` in `<address>` | Address line | `NisoSts::AddrLine` exists | OK class but not in permissions context | |
|
|
63
|
+
| `<license_ref>` | License reference URL | ❌ Not in Permissions | Missing | |
|
|
64
|
+
| `<proj-id>` with namespace prefix | "iec:proj:19106" | ✅ | OK | |
|
|
65
|
+
| `<release-version>` | IS | ✅ | OK | |
|
|
66
|
+
| `<std-id-group>` inside `<std-ident>` | Group of IDs | ✅ | OK | |
|
|
67
|
+
| `<std-id>` with `@originator` | Originator attribute | ❌ Not on StdId | Missing | |
|
|
68
|
+
| `<isbn>` in `<std-ident>` | ISBN | ❌ Not in StandardIdentification | Missing | IEC shows `<isbn>9782832263464</isbn>` inside `<std-ident>` |
|
|
69
|
+
| `<suppl-type/>` | Supplement type | ❌ Not in StandardIdentification | Missing | |
|
|
70
|
+
| `<suppl-number/>` | Supplement number | ❌ Not in StandardIdentification | Missing | |
|
|
71
|
+
| `<std-org>` | Organization | ✅ | OK | |
|
|
72
|
+
| `<std-org-abbrev>` | IEC | ✅ | OK | |
|
|
73
|
+
| `<content-language>` | en | ✅ | OK | |
|
|
74
|
+
| `<release-date date-type="published">` | Release date with type | ✅ Has `@date-type` | OK | |
|
|
75
|
+
| `<meta-date type="stability-date">` | Meta date | ✅ Has `@type` | OK | |
|
|
76
|
+
| `<comm-ref>` with `@id` | Committee with ID | ❌ comm-ref is plain string | Missing | IEC: `<comm-ref id="id_1215">TC 25</comm-ref>` |
|
|
77
|
+
| Multiple `<ics>` | Multiple ICS codes | ✅ Collection | OK | |
|
|
78
|
+
| `<counts>` | Counts wrapper | ❌ Not modeled | Missing | IEC: `<counts><page-count count="149"/></counts>` |
|
|
79
|
+
| `<self-uri xlink:type="simple">` | Self URI with xlink type | ✅ Has SelfUri | OK | |
|
|
80
|
+
| `<abstract xml:lang="en">` | Abstract | ❌ Not in MetadataStd | Missing | |
|
|
81
|
+
| `<custom-meta-group>` | Custom metadata | ✅ | OK | |
|
|
82
|
+
|
|
83
|
+
## National Metadata (Section A.3)
|
|
84
|
+
|
|
85
|
+
The guidelines mention national metadata can use multiple `<std-meta>` instances. The `NatMeta` class exists and has similar structure to `RegMeta`.
|
|
86
|
+
|
|
87
|
+
| Feature | In NatMeta | Status | Notes |
|
|
88
|
+
|---------|-----------|--------|-------|
|
|
89
|
+
| `<title-wrap>` | ✅ Collection | OK | |
|
|
90
|
+
| `<std-ident>` | ✅ | OK | |
|
|
91
|
+
| `<permissions>` | ✅ | OK | |
|
|
92
|
+
| `<custom-meta-group>` | ✅ Collection | OK | |
|
|
93
|
+
| `@id` on nat-meta | ❌ Not mapped | Missing | |
|
|
94
|
+
|
|
95
|
+
## Key Gaps
|
|
96
|
+
|
|
97
|
+
- [ ] **`<license>` block missing from `Permissions`**: The IEC metadata example (Section A.2) shows a full license block with `<license>`, `<license-p>`, `<address>`, `<addr-line>`, and `<license_ref>`. The `License` and `LicenseP` classes exist but are NOT wired into the `Permissions` model.
|
|
98
|
+
|
|
99
|
+
- [ ] **`<copyright-statement>` needs rich content**: Currently modeled as plain string. IEC example shows it containing `<inline-graphic/>`, `<br/>`, and mixed text. Needs to be a structured element.
|
|
100
|
+
|
|
101
|
+
- [ ] **`<copyright-holder>` should be collection**: ISO example shows multiple `<copyright-holder>` elements in a single `<permissions>` block.
|
|
102
|
+
|
|
103
|
+
- [ ] **`<isbn>` missing from `StandardIdentification`**: IEC example shows `<isbn>` inside `<std-ident>`.
|
|
104
|
+
|
|
105
|
+
- [ ] **`<suppl-type>`, `<suppl-number>` missing from `StandardIdentification`**: IEC shows these empty elements inside `<std-ident>`.
|
|
106
|
+
|
|
107
|
+
- [ ] **`<counts>` wrapper not modeled**: IEC uses `<counts><page-count/></counts>` instead of bare `<page-count>`. Neither `MetadataStd` nor `MetadataIso` maps `<counts>`.
|
|
108
|
+
|
|
109
|
+
- [ ] **`<abstract>` not in metadata models**: IEC shows `<abstract xml:lang="en"><p>...</p></abstract>` inside `<std-meta>`.
|
|
110
|
+
|
|
111
|
+
- [ ] **`<comm-ref>` should support `@id`**: IEC: `<comm-ref id="id_1215">TC 25</comm-ref>`. Currently plain string.
|
|
112
|
+
|
|
113
|
+
- [ ] **`@originator` missing from `StdId`**: IEC: `<std-id originator="IEC" std-id-link-type="id" std-id-type="dated">`.
|