glam/data/entity_annotation/modules/advanced/tei/figures.yaml
2025-12-05 15:30:23 +01:00

743 lines
20 KiB
YAML

# =============================================================================
# GLAM-NER: TEI Figures Module (LinkML)
# =============================================================================
# Module: modules/advanced/tei/figures.yaml
# TEI Chapter: 15 - Tables, Formulae, Graphics, and Notated Music
# TEI Module: figures
# Version: 1.0.0
# =============================================================================
#
# This module defines LinkML classes for TEI P5 Chapter 15 elements used for
# encoding tables, mathematical formulae, graphic images, and notated music.
#
# Key Element Groups:
# - Tables: table, row, cell
# - Formulae: formula (inline/block math)
# - Graphics: figure, graphic, figDesc
# - Notated Music: notatedMusic
#
# GLAM-NER Integration:
# - Image annotation and metadata
# - Figure/table caption extraction
# - Mathematical content identification
# - Cultural heritage visual materials
#
# Ontology Alignments:
# - Schema.org: ImageObject, Table, MathSolver
# - IIIF: Canvas, Image, Annotation
# - CIDOC-CRM: E38_Image, E36_Visual_Item
# - Dublin Core: format, extent
# - MathML: math expressions
#
# =============================================================================
id: https://w3id.org/glam/ner/tei/figures
name: glam-ner-tei-figures
title: "TEI Figures Module for GLAM-NER"
version: "1.0.0"
license: https://creativecommons.org/licenses/by/4.0/
see_also:
- https://tei-c.org/release/doc/tei-p5-doc/en/html/FT.html
prefixes:
linkml: https://w3id.org/linkml/
tei: http://www.tei-c.org/ns/1.0/
glam: https://w3id.org/glam/ner/
schema: http://schema.org/
iiif: http://iiif.io/api/presentation/3#
crm: http://www.cidoc-crm.org/cidoc-crm/
dcterms: http://purl.org/dc/terms/
foaf: http://xmlns.com/foaf/0.1/
mathml: http://www.w3.org/1998/Math/MathML/
default_prefix: glam
default_range: string
imports:
- linkml:types
# =============================================================================
# ENUMERATIONS
# =============================================================================
enums:
# ---------------------------------------------------------------------------
# Figure Type Enum
# ---------------------------------------------------------------------------
FigureTypeEnum:
description: >-
Types of figure content.
permissible_values:
illustration:
description: Illustration or drawing
meaning: schema:ImageObject
photograph:
description: Photograph
meaning: schema:Photograph
diagram:
description: Diagram or schematic
meaning: schema:ImageObject
map:
description: Map or cartographic image
meaning: schema:Map
chart:
description: Chart or graph
meaning: schema:ImageObject
plate:
description: Full-page plate illustration
woodcut:
description: Woodcut illustration
engraving:
description: Engraved illustration
facsimile:
description: Facsimile reproduction
portrait:
description: Portrait image
logo:
description: Logo or emblem
# ---------------------------------------------------------------------------
# Graphic Format Enum
# ---------------------------------------------------------------------------
GraphicFormatEnum:
description: >-
Image file formats.
permissible_values:
jpeg:
description: JPEG format
aliases:
- jpg
png:
description: PNG format
gif:
description: GIF format
tiff:
description: TIFF format
aliases:
- tif
svg:
description: SVG vector format
webp:
description: WebP format
pdf:
description: PDF document
jp2:
description: JPEG 2000 format
# ---------------------------------------------------------------------------
# Table Type Enum
# ---------------------------------------------------------------------------
TableTypeEnum:
description: >-
Types of tables.
permissible_values:
data:
description: Data table
layout:
description: Layout table (deprecated)
comparison:
description: Comparison table
schedule:
description: Schedule or timetable
financial:
description: Financial table
statistical:
description: Statistical table
genealogical:
description: Genealogical table
chronological:
description: Chronological table
# ---------------------------------------------------------------------------
# Cell Role Enum
# ---------------------------------------------------------------------------
CellRoleEnum:
description: >-
Role of table cell.
permissible_values:
data:
description: Data cell
meaning: schema:TableCell
label:
description: Label/header cell
total:
description: Total/sum cell
empty:
description: Intentionally empty cell
# ---------------------------------------------------------------------------
# Formula Notation Enum
# ---------------------------------------------------------------------------
FormulaNotationEnum:
description: >-
Mathematical notation systems.
permissible_values:
mathml:
description: MathML markup
meaning: mathml:math
tex:
description: TeX/LaTeX notation
asciimath:
description: AsciiMath notation
openmath:
description: OpenMath content markup
image:
description: Formula as image
plain:
description: Plain text representation
# ---------------------------------------------------------------------------
# Music Notation Enum
# ---------------------------------------------------------------------------
MusicNotationEnum:
description: >-
Music notation systems.
permissible_values:
mei:
description: Music Encoding Initiative (MEI)
musicxml:
description: MusicXML format
abc:
description: ABC notation
lilypond:
description: LilyPond notation
image:
description: Music as image
# =============================================================================
# SLOTS (Attributes)
# =============================================================================
slots:
# ---------------------------------------------------------------------------
# Figure/Graphic Attributes
# ---------------------------------------------------------------------------
figure_url:
description: >-
URL of figure/graphic resource.
range: uri
slot_uri: tei:url
annotations:
tei_attribute: url
figure_width:
description: >-
Width of figure/graphic.
range: string
slot_uri: tei:width
annotations:
tei_attribute: width
figure_height:
description: >-
Height of figure/graphic.
range: string
slot_uri: tei:height
annotations:
tei_attribute: height
figure_scale:
description: >-
Scale factor for rendering.
range: string
slot_uri: tei:scale
annotations:
tei_attribute: scale
mime_type:
description: >-
MIME type of resource.
range: string
slot_uri: dcterms:format
annotations:
tei_attribute: mimeType
# ---------------------------------------------------------------------------
# Table Attributes
# ---------------------------------------------------------------------------
table_rows:
description: >-
Number of rows in table.
range: integer
slot_uri: tei:rows
annotations:
tei_attribute: rows
table_cols:
description: >-
Number of columns in table.
range: integer
slot_uri: tei:cols
annotations:
tei_attribute: cols
# ---------------------------------------------------------------------------
# Cell Attributes
# ---------------------------------------------------------------------------
cell_role:
description: >-
Role of cell (data, label, etc.).
range: CellRoleEnum
slot_uri: tei:role
annotations:
tei_attribute: role
row_span:
description: >-
Number of rows cell spans.
range: integer
slot_uri: tei:rowspan
col_span:
description: >-
Number of columns cell spans.
range: integer
slot_uri: tei:colspan
# ---------------------------------------------------------------------------
# Formula Attributes
# ---------------------------------------------------------------------------
formula_notation:
description: >-
Notation system used for formula.
range: FormulaNotationEnum
slot_uri: tei:notation
annotations:
tei_attribute: notation
# =============================================================================
# CLASSES
# =============================================================================
classes:
# ---------------------------------------------------------------------------
# BASE CLASSES
# ---------------------------------------------------------------------------
FiguresElement:
description: >-
Abstract base class for figures module elements.
abstract: true
class_uri: tei:FiguresElement
annotations:
tei_module: figures
# ---------------------------------------------------------------------------
# FIGURE ELEMENTS
# ---------------------------------------------------------------------------
Figure:
description: >-
Figure container - groups graphic(s) with caption and description.
TEI <figure> element. Maps to Schema.org ImageObject.
is_a: FiguresElement
attributes:
figure_id:
description: Unique identifier for figure.
range: string
identifier: true
figure_type:
description: Type of figure.
range: FigureTypeEnum
head:
description: Figure heading/title.
range: string
fig_desc:
description: Accessibility description of figure.
range: string
graphics:
description: Graphic image(s) in figure.
range: Graphic
multivalued: true
inlined: true
inlined_as_list: true
n:
description: Figure number.
range: string
rend:
description: Rendering/display hint.
range: string
class_uri: tei:figure
annotations:
tei_element: figure
tei_module: figures
glam_hypernym: THG.IMG.FIG
schema_mapping: schema:ImageObject
Graphic:
description: >-
Graphic image reference - points to external image resource.
TEI <graphic> element. Maps to IIIF Image.
is_a: FiguresElement
slots:
- figure_url
- figure_width
- figure_height
- figure_scale
- mime_type
attributes:
graphic_id:
description: Unique identifier.
range: string
identifier: true
desc:
description: Brief description.
range: string
class_uri: tei:graphic
annotations:
tei_element: graphic
tei_module: figures
glam_hypernym: THG.IMG.GRA
iiif_mapping: iiif:Image
FigDesc:
description: >-
Figure description - text describing figure for accessibility.
TEI <figDesc> element.
is_a: FiguresElement
attributes:
description_text:
description: Description content.
range: string
required: true
class_uri: tei:figDesc
annotations:
tei_element: figDesc
tei_module: figures
glam_hypernym: THG.IMG.DES
# ---------------------------------------------------------------------------
# TABLE ELEMENTS
# ---------------------------------------------------------------------------
Table:
description: >-
Table container - structured tabular data.
TEI <table> element. Maps to Schema.org Table.
is_a: FiguresElement
slots:
- table_rows
- table_cols
attributes:
table_id:
description: Unique identifier.
range: string
identifier: true
table_type:
description: Type of table.
range: TableTypeEnum
head:
description: Table heading/caption.
range: string
rows:
description: Table rows.
range: Row
multivalued: true
inlined: true
inlined_as_list: true
n:
description: Table number.
range: string
class_uri: tei:table
annotations:
tei_element: table
tei_module: figures
glam_hypernym: THG.TBL
schema_mapping: schema:Table
Row:
description: >-
Table row - contains cells.
TEI <row> element.
is_a: FiguresElement
attributes:
row_id:
description: Unique identifier.
range: string
role:
description: Role of row (data, label).
range: CellRoleEnum
cells:
description: Cells in row.
range: Cell
multivalued: true
inlined: true
inlined_as_list: true
n:
description: Row number.
range: string
class_uri: tei:row
annotations:
tei_element: row
tei_module: figures
glam_hypernym: THG.TBL.ROW
Cell:
description: >-
Table cell - data or header cell.
TEI <cell> element.
is_a: FiguresElement
slots:
- cell_role
- row_span
- col_span
attributes:
cell_id:
description: Unique identifier.
range: string
content:
description: Cell content.
range: string
n:
description: Cell number.
range: string
class_uri: tei:cell
annotations:
tei_element: cell
tei_module: figures
glam_hypernym: THG.TBL.CEL
schema_mapping: schema:TableCell
# ---------------------------------------------------------------------------
# FORMULA ELEMENTS
# ---------------------------------------------------------------------------
Formula:
description: >-
Mathematical or chemical formula.
TEI <formula> element. Can contain MathML, TeX, or image.
is_a: FiguresElement
slots:
- formula_notation
attributes:
formula_id:
description: Unique identifier.
range: string
identifier: true
formula_content:
description: Formula content (text or markup).
range: string
mathml_content:
description: MathML representation.
range: string
tex_content:
description: TeX/LaTeX representation.
range: string
graphic:
description: Graphic representation of formula.
range: Graphic
inlined: true
n:
description: Formula number.
range: string
rend:
description: Rendering style (inline, display).
range: string
class_uri: tei:formula
annotations:
tei_element: formula
tei_module: figures
glam_hypernym: THG.FRM
mathml_mapping: mathml:math
# ---------------------------------------------------------------------------
# NOTATED MUSIC ELEMENTS
# ---------------------------------------------------------------------------
NotatedMusic:
description: >-
Notated music - embedded music notation.
TEI <notatedMusic> element. Can contain MEI, MusicXML, or image.
is_a: FiguresElement
attributes:
music_id:
description: Unique identifier.
range: string
identifier: true
notation_type:
description: Music notation system.
range: MusicNotationEnum
label:
description: Label for music.
range: string
desc:
description: Description of music.
range: string
ptr:
description: Pointer to external music resource.
range: uri
graphic:
description: Graphic representation.
range: Graphic
inlined: true
class_uri: tei:notatedMusic
annotations:
tei_element: notatedMusic
tei_module: figures
glam_hypernym: THG.MUS
schema_mapping: schema:MusicComposition
# ---------------------------------------------------------------------------
# MEDIA ELEMENTS (Extended)
# ---------------------------------------------------------------------------
Media:
description: >-
Generic media container for audio/video.
TEI <media> element.
is_a: FiguresElement
slots:
- figure_url
- mime_type
- figure_width
- figure_height
attributes:
media_id:
description: Unique identifier.
range: string
identifier: true
media_type:
description: Type of media (audio, video).
range: string
duration:
description: Duration of media.
range: string
desc:
description: Description.
range: string
class_uri: tei:media
annotations:
tei_element: media
tei_module: figures
glam_hypernym: THG.MED
schema_mapping: schema:MediaObject
# ---------------------------------------------------------------------------
# BINARY OBJECT
# ---------------------------------------------------------------------------
BinaryObject:
description: >-
Binary object - embedded binary data (base64 encoded).
TEI <binaryObject> element.
is_a: FiguresElement
slots:
- mime_type
attributes:
encoding:
description: Encoding method (typically base64).
range: string
data:
description: Encoded binary data.
range: string
class_uri: tei:binaryObject
annotations:
tei_element: binaryObject
tei_module: figures
glam_hypernym: THG.BIN
# ---------------------------------------------------------------------------
# IIIF INTEGRATION CLASSES
# ---------------------------------------------------------------------------
IIIFManifest:
description: >-
IIIF Presentation API manifest reference.
Links TEI figures to IIIF resources for image delivery.
attributes:
manifest_uri:
description: URI of IIIF manifest.
range: uri
required: true
canvas_id:
description: Specific canvas ID within manifest.
range: string
label:
description: Human-readable label.
range: string
thumbnail:
description: Thumbnail image URI.
range: uri
class_uri: iiif:Manifest
annotations:
glam_hypernym: THG.IMG.IIF
IIIFImageService:
description: >-
IIIF Image API service endpoint.
Provides dynamic image delivery for TEI graphics.
attributes:
service_uri:
description: Base URI of image service.
range: uri
required: true
profile:
description: IIIF Image API compliance level.
range: string
width:
description: Full image width.
range: integer
height:
description: Full image height.
range: integer
sizes:
description: Available size presets.
range: string
multivalued: true
class_uri: iiif:ImageService
annotations:
glam_hypernym: THG.IMG.SVC
# ---------------------------------------------------------------------------
# HERITAGE IMAGE METADATA
# ---------------------------------------------------------------------------
HeritageImageMetadata:
description: >-
Extended metadata for heritage/cultural images.
Captures provenance, rights, and curatorial information.
attributes:
image_id:
description: Unique identifier.
range: string
identifier: true
title:
description: Image title.
range: string
creator:
description: Image creator/photographer.
range: string
creation_date:
description: Date image was created.
range: date
subject:
description: Subject/content description.
range: string
multivalued: true
rights_statement:
description: Rights/license statement.
range: string
rights_holder:
description: Rights holder name.
range: string
source_institution:
description: Institution holding original.
range: string
accession_number:
description: Accession/catalog number.
range: string
iiif_manifest:
description: Link to IIIF manifest.
range: IIIFManifest
inlined: true
class_uri: crm:E38_Image
annotations:
glam_hypernym: THG.IMG.HER
crm_mapping: crm:E38_Image