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

689 lines
22 KiB
YAML

# =============================================================================
# GLAM-NER: TEI P5 VERSE MODULE
# =============================================================================
# Module: modules/advanced/tei/verse.yaml
# Parent: entity_annotation_rules_v1.7.0_unified.yaml
# Purpose: LinkML schema for TEI P5 Chapter 6 - Verse
# Source: TEI P5 4.10.2 (September 2025) - verse module
# =============================================================================
# This module provides LinkML class definitions for encoding verse texts
# including verse lines, line groups (stanzas), rhyme, meter, caesura, and
# metrical analysis. Essential for poetry collections, literary archives,
# manuscript transcription, and text analysis.
# =============================================================================
id: https://w3id.org/glam/ner/tei/verse
name: glam-ner-tei-verse
title: TEI P5 Verse Module for GLAM-NER
version: "1.0.0"
license: https://creativecommons.org/licenses/by/4.0/
prefixes:
tei: http://www.tei-c.org/ns/1.0/
glam: https://w3id.org/glam/ner/
linkml: https://w3id.org/linkml/
crm: http://www.cidoc-crm.org/cidoc-crm/
schema: http://schema.org/
dcterms: http://purl.org/dc/terms/
foaf: http://xmlns.com/foaf/0.1/
xsd: http://www.w3.org/2001/XMLSchema#
default_prefix: glam
default_range: string
# =============================================================================
# IMPORTS
# =============================================================================
imports:
- linkml:types
# =============================================================================
# ENUMS
# =============================================================================
enums:
# ---------------------------------------------------------------------------
# Line Group Type
# ---------------------------------------------------------------------------
LineGroupType:
description: |
Types of verse line groupings.
Used on @type attribute of <lg> element.
permissible_values:
stanza:
description: Standard stanza grouping
couplet:
description: Two-line grouping
tercet:
description: Three-line grouping
quatrain:
description: Four-line grouping
sestet:
description: Six-line grouping
octave:
description: Eight-line grouping (as in sonnet)
sonnet:
description: Fourteen-line sonnet form
verse_paragraph:
description: Verse paragraph (blank verse)
refrain:
description: Repeated refrain section
envoi:
description: Closing stanza (as in ballade)
strophe:
description: Strophe in classical verse
antistrophe:
description: Antistrophe in classical verse
epode:
description: Epode in classical verse
free:
description: Free verse section
# ---------------------------------------------------------------------------
# Line Part Type
# ---------------------------------------------------------------------------
LinePartType:
description: |
Indicates whether a verse line is complete or partial.
Used on @part attribute of <l> element.
permissible_values:
"Y":
description: Line is partial (yes)
"N":
description: Line is complete (no, default)
I:
description: Initial part of incomplete line
M:
description: Middle part of incomplete line
F:
description: Final part of incomplete line
# ---------------------------------------------------------------------------
# Enjambment Type
# ---------------------------------------------------------------------------
EnjambmentType:
description: |
Indicates whether enjambment occurs at end of line.
Used on @enjamb attribute of <l> element.
permissible_values:
"yes":
description: Enjambment present
"no":
description: No enjambment (end-stopped line)
weak:
description: Weak enjambment
strong:
description: Strong enjambment
# ---------------------------------------------------------------------------
# Metrical Pattern Type
# ---------------------------------------------------------------------------
MetricalPatternType:
description: |
Common metrical feet types for verse analysis.
Values for @type on <seg> when marking feet.
permissible_values:
iamb:
description: Unstressed-stressed (u/)
trochee:
description: Stressed-unstressed (/u)
dactyl:
description: Stressed-unstressed-unstressed (/uu)
anapest:
description: Unstressed-unstressed-stressed (uu/)
spondee:
description: Stressed-stressed (//)
pyrrhic:
description: Unstressed-unstressed (uu)
amphibrach:
description: Unstressed-stressed-unstressed (u/u)
cretic:
description: Stressed-unstressed-stressed (/u/)
bacchius:
description: Unstressed-stressed-stressed (u//)
antibacchius:
description: Stressed-stressed-unstressed (//u)
molossus:
description: Stressed-stressed-stressed (///)
tribrach:
description: Unstressed-unstressed-unstressed (uuu)
# ---------------------------------------------------------------------------
# Rhyme Label Type
# ---------------------------------------------------------------------------
RhymeLabelType:
description: |
Standard rhyme scheme labels.
Used on @label attribute of <rhyme> element.
permissible_values:
a:
description: First rhyme sound
b:
description: Second rhyme sound
c:
description: Third rhyme sound
d:
description: Fourth rhyme sound
e:
description: Fifth rhyme sound
f:
description: Sixth rhyme sound
g:
description: Seventh rhyme sound
x:
description: Unrhymed line
# ---------------------------------------------------------------------------
# Metrical Terminal Type
# ---------------------------------------------------------------------------
MetricalTerminalType:
description: |
Types of metrical notation terminals.
Used on @terminal attribute of <metSym> element.
permissible_values:
"true":
description: Symbol is terminal (represents actual pattern)
"false":
description: Symbol is non-terminal (expandable)
# =============================================================================
# SLOTS (Attributes)
# =============================================================================
slots:
# ---------------------------------------------------------------------------
# Global TEI Attributes
# ---------------------------------------------------------------------------
xml_id:
description: Unique identifier for the element (xml:id)
range: string
slot_uri: tei:id
xml_lang:
description: Language of the element content (xml:lang)
range: string
slot_uri: tei:lang
n:
description: |
Number or label for the element (@n).
Used for line numbers, stanza numbers, etc.
range: string
slot_uri: tei:n
# ---------------------------------------------------------------------------
# Metrical Attributes
# ---------------------------------------------------------------------------
met:
description: |
Metrical pattern or scheme (@met).
Contains notation describing the meter of a line, stanza, or poem.
Common notation: + for stressed, - for unstressed, | for foot boundary.
range: string
slot_uri: tei:met
real:
description: |
Actual metrical realization (@real).
The actual stress pattern as realized, which may differ from @met.
range: string
slot_uri: tei:real
rhyme:
description: |
Rhyme scheme pattern (@rhyme).
Uses letters to indicate rhyme scheme (e.g., "abab cdcd efef gg").
range: string
slot_uri: tei:rhyme
# ---------------------------------------------------------------------------
# Line Attributes
# ---------------------------------------------------------------------------
part:
description: |
Indicates partial line status (@part).
Values: Y (partial), N (complete), I (initial), M (middle), F (final).
range: LinePartType
slot_uri: tei:part
enjamb:
description: |
Indicates enjambment (@enjamb).
Whether the line runs on syntactically to the next.
range: EnjambmentType
slot_uri: tei:enjamb
# ---------------------------------------------------------------------------
# Type Attribute
# ---------------------------------------------------------------------------
element_type:
description: |
Classification of element (@type).
range: string
slot_uri: tei:type
# ---------------------------------------------------------------------------
# Rhyme Element Attributes
# ---------------------------------------------------------------------------
label:
description: |
Rhyme label (@label).
Identifies the rhyme class of a rhyming word.
range: string
slot_uri: tei:label
# ---------------------------------------------------------------------------
# Metrical Declaration Attributes
# ---------------------------------------------------------------------------
pattern:
description: |
Metrical pattern definition (@pattern).
Defines the pattern associated with a metrical symbol.
range: string
slot_uri: tei:pattern
terminal:
description: |
Whether symbol is terminal (@terminal).
Terminal symbols represent actual patterns; non-terminals expand.
range: boolean
slot_uri: tei:terminal
value:
description: |
Symbol value (@value).
The character(s) used for the metrical symbol.
range: string
slot_uri: tei:value
# =============================================================================
# CLASSES - VERSE LINE ELEMENTS
# =============================================================================
classes:
# ---------------------------------------------------------------------------
# l - Verse Line
# ---------------------------------------------------------------------------
VerseLine:
class_uri: tei:l
description: |
Verse line (l) contains a single, possibly incomplete, line of verse.
The verse line is the fundamental unit of metrical composition. Lines
may be complete or partial (when split across stanzas or speakers).
Key attributes:
- @n: Line number
- @met: Metrical pattern
- @real: Actual metrical realization
- @rhyme: Rhyme scheme position
- @part: Whether line is partial (Y/N/I/M/F)
- @enjamb: Whether enjambment occurs
TEI P5 Chapter 6.2 (Components of the Verse Line)
slots:
- xml_id
- n
- met
- real
- rhyme
- part
- enjamb
- xml_lang
attributes:
line_content:
description: Text content of the verse line
range: string
required: true
segments:
description: Metrical segments within the line
range: VerseSegment
multivalued: true
rhyming_words:
description: Rhyming portions marked with <rhyme>
range: Rhyme
multivalued: true
caesura_point:
description: Location of caesura within line
range: Caesura
exact_mappings:
- crm:E33_Linguistic_Object
- schema:CreativeWork
annotations:
tei_element: l
tei_module: core
glam_hypernym: TXT.VRS.LIN
# ---------------------------------------------------------------------------
# lg - Line Group (Stanza)
# ---------------------------------------------------------------------------
LineGroup:
class_uri: tei:lg
description: |
Line group (lg) contains one or more verse lines functioning as a
formal unit, e.g. a stanza, refrain, verse paragraph, etc.
Line groups can be nested hierarchically to represent complex stanza
structures (e.g., a Spenserian stanza with internal couplet).
Key attributes:
- @type: Type of line group (stanza, couplet, tercet, etc.)
- @n: Stanza number
- @met: Metrical pattern for the stanza
- @rhyme: Rhyme scheme for the stanza
TEI P5 Chapter 6.1 (Structural Divisions of Verse Texts)
slots:
- xml_id
- n
- element_type
- met
- rhyme
- xml_lang
attributes:
lg_type:
description: Type of line group
range: LineGroupType
lines:
description: Verse lines in this group
range: VerseLine
multivalued: true
nested_groups:
description: Nested line groups (sub-stanzas)
range: LineGroup
multivalued: true
head:
description: Optional heading for the stanza
range: string
exact_mappings:
- crm:E33_Linguistic_Object
annotations:
tei_element: lg
tei_module: core
glam_hypernym: TXT.VRS.STZ
# ---------------------------------------------------------------------------
# seg - Verse Segment (Metrical Unit)
# ---------------------------------------------------------------------------
VerseSegment:
class_uri: tei:seg
description: |
Segment (seg) represents any segmentation of text below the 'chunk'
level. In verse contexts, used to mark metrical units such as feet,
half-lines, syllables, or other prosodic divisions.
Segments can be nested hierarchically (e.g., feet containing syllables).
Key attributes:
- @type: Type of segment (foot, half-line, syllable)
- @met: Metrical pattern for the segment
- @real: Actual metrical realization
- @n: Segment number or identifier
TEI P5 Chapter 6.2 (Components of the Verse Line)
slots:
- xml_id
- n
- element_type
- met
- real
- part
attributes:
seg_content:
description: Text content of the segment
range: string
required: true
foot_type:
description: Type of metrical foot (if segment is a foot)
range: MetricalPatternType
nested_segments:
description: Nested segments (e.g., syllables within foot)
range: VerseSegment
multivalued: true
exact_mappings:
- crm:E33_Linguistic_Object
annotations:
tei_element: seg
tei_module: linking
glam_hypernym: TXT.VRS.SEG
# =============================================================================
# CLASSES - RHYME AND CAESURA ELEMENTS
# =============================================================================
# ---------------------------------------------------------------------------
# rhyme - Rhyming Portion
# ---------------------------------------------------------------------------
Rhyme:
class_uri: tei:rhyme
description: |
Rhyme (rhyme) marks the rhyming part of a metrical line.
Used to identify and classify rhyming words within verse, allowing
systematic analysis of rhyme schemes and sound patterns.
Key attributes:
- @label: Identifies the rhyme class (a, b, c, etc.)
- @type: Type of rhyme (end, internal, slant, etc.)
TEI P5 Chapter 6.5 (Rhyme)
slots:
- xml_id
- label
- element_type
attributes:
rhyme_text:
description: The rhyming text
range: string
required: true
rhyme_type:
description: Type of rhyme
range: string
exact_mappings:
- crm:E33_Linguistic_Object
annotations:
tei_element: rhyme
tei_module: verse
glam_hypernym: TXT.VRS.RHY
# ---------------------------------------------------------------------------
# caesura - Caesura Point
# ---------------------------------------------------------------------------
Caesura:
class_uri: tei:caesura
description: |
Caesura (caesura) marks the point at which a metrical line may be
divided. An empty element indicating position within a verse line.
In classical prosody, distinguishes:
- Caesura: break within a foot
- Diaeresis: break on foot boundary
TEI uses <caesura> for both types, as modern usage conflates them.
TEI P5 Chapter 6.2 (Components of the Verse Line)
slots:
- xml_id
attributes:
caesura_type:
description: Type of caesura (masculine, feminine, etc.)
range: string
annotations:
tei_element: caesura
tei_module: verse
glam_hypernym: TXT.VRS.CES
# =============================================================================
# CLASSES - METRICAL DECLARATION ELEMENTS
# =============================================================================
# ---------------------------------------------------------------------------
# metDecl - Metrical Notation Declaration
# ---------------------------------------------------------------------------
MetricalDeclaration:
class_uri: tei:metDecl
description: |
Metrical notation declaration (metDecl) documents the notation
employed to represent a metrical pattern when this is specified
as the value of a @met, @real, or @rhyme attribute.
Placed within <encodingDesc> in the TEI header to provide a key
for interpreting metrical notation used throughout the document.
TEI P5 Chapter 6.6 (Metrical Notation Declaration)
slots:
- xml_id
- element_type
attributes:
metrical_type:
description: Type of metrics being declared (met, real, rhyme)
range: string
pattern_info:
description: Prose description of the metrical notation system
range: string
symbols:
description: Metrical symbols defined in this declaration
range: MetricalSymbol
multivalued: true
annotations:
tei_element: metDecl
tei_module: verse
glam_hypernym: DOC.MET
# ---------------------------------------------------------------------------
# metSym - Metrical Symbol Definition
# ---------------------------------------------------------------------------
MetricalSymbol:
class_uri: tei:metSym
description: |
Metrical symbol (metSym) documents the intended significance of a
particular character or character sequence within a metrical notation,
either explicitly or in terms of other defined symbols.
Key attributes:
- @value: The symbol character(s)
- @terminal: Whether symbol is terminal (true) or expandable (false)
TEI P5 Chapter 6.6 (Metrical Notation Declaration)
slots:
- xml_id
- value
- terminal
attributes:
symbol_meaning:
description: Description of what the symbol represents
range: string
required: true
expansion:
description: Pattern expansion for non-terminal symbols
range: string
annotations:
tei_element: metSym
tei_module: verse
glam_hypernym: DOC.MET.SYM
# =============================================================================
# GLAM-NER HYPERNYM MAPPINGS SUMMARY
# =============================================================================
#
# This module covers verse encoding from TEI Chapter 6.
# Primary GLAM-NER hypernym mappings:
#
# TXT.VRS (Verse):
# - Parent category for all verse-related elements
#
# TXT.VRS.LIN (Verse Line):
# - VerseLine - Individual line of verse
#
# TXT.VRS.STZ (Stanza/Line Group):
# - LineGroup - Stanza, couplet, tercet, etc.
#
# TXT.VRS.SEG (Verse Segment):
# - VerseSegment - Metrical unit (foot, syllable, half-line)
#
# TXT.VRS.RHY (Rhyme):
# - Rhyme - Rhyming portion of verse
#
# TXT.VRS.CES (Caesura):
# - Caesura - Break point in verse line
#
# DOC.MET (Document Metadata):
# - MetricalDeclaration - Metrical notation system
#
# DOC.MET.SYM (Metrical Symbol):
# - MetricalSymbol - Symbol definition
#
# =============================================================================
# ONTOLOGY MAPPINGS
# =============================================================================
#
# CIDOC-CRM:
# - VerseLine → crm:E33_Linguistic_Object
# - LineGroup → crm:E33_Linguistic_Object
# - VerseSegment → crm:E33_Linguistic_Object
# - Rhyme → crm:E33_Linguistic_Object
#
# Schema.org:
# - VerseLine → schema:CreativeWork
# - LineGroup → schema:CreativeWork (with @type "Poem" or "Verse")
#
# Dublin Core:
# - MetricalDeclaration → dcterms:description (of encoding)
#
# =============================================================================
# USAGE NOTES
# =============================================================================
#
# Verse module is used for:
# 1. Poetry collections and anthologies
# 2. Literary manuscript transcription
# 3. Metrical and prosodic analysis
# 4. Rhyme scheme documentation
# 5. Critical editions of verse texts
# 6. Digital humanities text analysis
# 7. Heritage institution literary archives
#
# Key encoding patterns:
# - <lg type="stanza"> for stanza groupings
# - <l n="1" met="-+-+-+-+-+"> for individual lines
# - <seg type="foot"> for metrical feet
# - <rhyme label="a"> for rhyming words
# - <caesura/> for mid-line breaks
# - @met for expected pattern, @real for actual realization
# - @rhyme="abab" for rhyme scheme notation
#
# Metrical notation conventions:
# - + or / : stressed syllable
# - - or u : unstressed syllable
# - | : foot boundary
# - ( ) : optional or elided syllable
#
# Integration with other modules:
# - namesdates: Author/poet names
# - msdescription: Manuscript containing verse
# - linking: Standoff annotation of verse features
# - transcr: Primary source verse transcription
#
# Heritage Institution Applications:
# - Literary archive cataloging
# - Poetry manuscript transcription
# - Verse anthology digitization
# - Prosodic research databases
# - Author studies and concordances
#
# =============================================================================
# VERSION HISTORY
# =============================================================================
#
# Version 1.0.0 (2025-12-03):
# - Initial release covering TEI P5 Chapter 6 (Verse)
# - 7 class definitions for verse elements
# - 6 enum definitions for verse classification
# - Core verse elements: l, lg, seg, rhyme, caesura
# - Metrical declaration: metDecl, metSym
# - Ontology mappings to CIDOC-CRM, Schema.org
# - GLAM-NER hypernym annotations
# - Metrical and rhyme attribute support
#
# =============================================================================