# ============================================================================= # 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
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 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 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 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 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 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 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 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 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 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