Skip to content

feat: add Bibliography dataset model (V3 glossarist dataset syntax)#58

Merged
ronaldtse merged 2 commits into
mainfrom
feat/bibliography-model
Jun 18, 2026
Merged

feat: add Bibliography dataset model (V3 glossarist dataset syntax)#58
ronaldtse merged 2 commits into
mainfrom
feat/bibliography-model

Conversation

@ronaldtse

Copy link
Copy Markdown
Member

Summary

Adds the bibliography.yaml dataset model to the concept model, using the V3 glossarist dataset syntax: a single-key YAML mapping (bibliography:) whose value is an array of typed BibliographyEntry items. No stray top-level array, no keyed map — each entry carries its own id.

Changes

  • models/concepts/BibliographyEntry.lutaml — typed entry (id, reference, title, link, type).
  • models/concepts/BibliographyData.lutaml — the file wrapper (bibliography: BibliographyEntry [0..*]).
  • schemas/v3/bibliography.yaml — JSON Schema (validated with jsonschema: sample passes, negative test rejected).
  • README.adoc — new == Bibliography section.

Companion PR: glossarist/glossarist-ruby#186 (implementation).

bibliography.yaml is a single-key YAML mapping (bibliography:) whose value is
an array of typed BibliographyEntry items — the V3 glossarist dataset syntax for
a collection file. Each entry carries its own id; the collection is not keyed by
reference string and is not a stray top-level array.

- models/concepts/BibliographyEntry.lutaml: typed entry (id, reference, title,
  link, type).
- models/concepts/BibliographyData.lutaml: the file wrapper (bibliography:
  BibliographyEntry [0..*]).
- schemas/v3/bibliography.yaml: JSON schema (validated).
- README.adoc: documents the format.
…VerbRep parity

Aligns concept-model with the glossarist-ruby non-verbal refactor.

Two-level hierarchy above the leaves:
- NonVerbalEntity (abstract): 4 shared a11y/provenance fields
  (caption, description, alt, sources). No id, no identifier.
- SharedNonVerbalEntity < NonVerbalEntity: adds id + identifier for
  dataset-shared entities.

Figure, Table, Formula now extend SharedNonVerbalEntity (was NonVerbalEntity
directly). NonVerbRep extends NonVerbalEntity directly — concept-local,
positional, no dataset identity.

NonVerbRep reshape (parity with Figure):
- was: image/table/formula as 3 separate BasicDocument refs + sources
- now: type discriminator + images[] (FigureImage variants) + inherited
  caption/description/alt/sources

New files:
- SharedNonVerbalEntity.lutaml
- NonVerbalType.lutaml (enum: image, table, formula)

README: new "Non-verbal entities" section documents both coexistence
levels (concept-local NonVerbRep, dataset-shared Figure/Table/Formula)
and the two-level hierarchy.
@ronaldtse ronaldtse force-pushed the feat/bibliography-model branch from ffceec3 to 5218239 Compare June 18, 2026 09:52
@ronaldtse ronaldtse merged commit 300b7c1 into main Jun 18, 2026
6 of 9 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant