Skip to content

Non-verbal Entities

Glossarist distinguishes two layers of non-verbal representation:

  • Concept-level NonVerbRep — A reference to a non-verbal representation embedded in a specific concept's definition or note.
  • Dataset-level entities — First-class resources (Figure, Table, Formula) authored once at the dataset root and referenced by many concepts.

This separation mirrors how standards actually structure non-verbal material: ISO publications define figures once in a numbered registry (Figure 1, Figure 2, …) and reference them throughout. The v3.1 model formalizes this pattern.

Class hierarchy

gloss:NonVerbalEntity                      (abstract base)
├── gloss:SharedNonVerbalEntity            (dataset-wide identity)
│   ├── gloss:Figure                       (with subfigures + image variants)
│   │   └── gloss:FigureImage              (one image variant)
│   ├── gloss:Table
│   └── gloss:Formula
└── gloss:NonVerbRep                       (concept-level reference)

SharedNonVerbalEntity is the abstract parent of the three dataset-level entity types. Figure, Table, and Formula inherit common fields (id, caption, alt, description, sources) from it.

Figure

A dataset-level figure with localized caption, alt text, and one or more image variants.

FieldTypeCard.Description
idstring1..1Stable identifier, dataset-unique (kebab-case recommended)
identifierstring0..1Display form (e.g. "Figure 7c")
captionlocalized string0..1Localized title/caption, keyed by ISO 639-2
descriptionlocalized string0..1Localized long description (aria-describedby)
altlocalized string1..1Localized short alt text for screen readers
imagesFigureImage[]1..*Image variants (at least one required)
subfiguresFigure[]0..*Recursive composite subfigures
sourcesConceptSource[]0..*Bibliographic sources

Example

yaml
# figures/quantity-classification.yaml
id: quantity-classification
identifier: "Figure 2"
caption:
  eng: "Classification of quantities"
  fra: "Classification des grandeurs"
alt:
  eng: "Diagram showing the hierarchy of quantity types"
description:
  eng: >-
    A tree diagram showing how quantities branch into extensive,
    intensive, and derivative categories.
images:
  - src: quantity-classification.svg
    format: svg
    role: vector
  - src: quantity-classification-dark.svg
    format: svg
    role: dark
  - src: quantity-classification.png
    format: png
    role: raster
    width: 1920
    height: 1080
sources:
  - id: iso-80000-1
    type: authoritative
    status: identical
subfigures:
  - id: quantity-extensive
    alt: { eng: "Extensive quantity subtree" }
    images:
      - { src: quantity-extensive.svg, format: svg }

FigureImage

A single image variant within a figure. Multiple variants allow dark-mode, print, vector/raster, and resolution alternatives.

FieldTypeCard.Description
srcstring1..1Filename in the dataset's images/ directory
formatenum1..1svg | png | jpg | webp | avif | gif
roleenum0..1vector | raster | dark | light | print
widthinteger0..1Pixel width (raster only)
heightinteger0..1Pixel height (raster only)
scaleinteger0..1Resolution scale factor

Table

A dataset-level table. Tables follow the same shape as figures (localized caption/alt, sources) but carry tabular content rather than images.

yaml
# tables/si-base-units.yaml
id: si-base-units
caption:
  eng: "SI base units"
alt:
  eng: "Table listing the seven SI base units, their names, and symbols"
content:
  eng: |
    | Quantity          | Unit     | Symbol |
    |-------------------|----------|--------|
    | length            | metre    | m      |
    | mass              | kilogram | kg     |
    | time              | second   | s      |
    | electric current  | ampere   | A      |
sources:
  - id: bipm-si-brochure
    type: authoritative

Formula

A dataset-level formula with optional LaTeX form. The concept-browser renders formulas via KaTeX when a latexForm is provided.

yaml
# formulas/euler-identity.yaml
id: euler-identity
caption: { eng: "Euler's identity" }
expression: "e^(iπ) + 1 = 0"
latexForm: "e^{i\\pi} + 1 = 0"
alt: { eng: "Euler's identity relating e, i, pi, and 1" }

Concept-level NonVerbRep

The concept-level NonVerbRep is a reference to a non-verbal representation embedded inside a specific concept. It exists for backward compatibility with the V2 model and for cases where a non-verbal representation is truly local to one concept (not shared across the dataset).

FieldTypeCard.Description
typeenum1..1figure | table | formula | image | etc.
idstring0..1Reference to a dataset-level entity
caption, alt, descriptionlocalized string0..1Inline content (when not referencing a shared entity)
sourcesConceptSource[]0..*Per-reference sources

Inline figure mentions

Concepts reference dataset-level figures from running text via the fig mention syntax (analogous to the cite mention syntax for sources):

yaml
eng:
  definition:
    - content: >-
        Quantities are classified hierarchically
        (see {{fig:quantity-classification}}).

The concept-browser resolves these mentions to the figure's full caption, alt text, and image variant at render time.

Why two layers?

Splitting concept-level references from dataset-level entities provides three benefits:

  1. Single source of truth — A figure authored once can be referenced by every concept that needs it, without duplication.
  2. Stable identifiersFigure 2 keeps its identity across the dataset, even as concepts are reorganized.
  3. Accessibility built-in — Localized alt and description live with the figure, so every reference inherits accessible rendering without re-authoring.

See the Figure YAML schema for the formal definition, the Datasets & sections page for the surrounding dataset model, and the Sources page for the related cite mention syntax.

An open source project of Ribose