743 lines
20 KiB
YAML
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
|