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

863 lines
27 KiB
YAML

# =============================================================================
# GLAM-NER: TEI P5 FEATURE STRUCTURES MODULE
# =============================================================================
# Module: modules/advanced/tei/iso-fs.yaml
# Parent: entity_annotation_rules_v1.7.0_unified.yaml
# Purpose: LinkML schema for TEI P5 Chapter 19 - Feature Structures (ISO 24610-1)
# Source: TEI P5 4.10.2 (September 2025) - iso-fs module
# =============================================================================
# This module provides LinkML class definitions for encoding feature structures,
# typed attribute-value matrices used in computational linguistics. Essential
# for morphological analysis, syntactic features, and structured NER attributes.
# =============================================================================
id: https://w3id.org/glam/ner/tei/iso-fs
name: glam-ner-tei-iso-fs
title: TEI P5 Feature Structures 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/
dcterms: http://purl.org/dc/terms/
skos: http://www.w3.org/2004/02/skos/core#
lexinfo: http://www.lexinfo.net/ontology/3.0/lexinfo#
ontolex: http://www.w3.org/ns/lemon/ontolex#
olia: http://purl.org/olia/olia.owl#
gold: http://purl.org/linguistics/gold/
xsd: http://www.w3.org/2001/XMLSchema#
default_prefix: glam
default_range: string
# =============================================================================
# IMPORTS
# =============================================================================
imports:
- linkml:types
# =============================================================================
# ENUMS
# =============================================================================
enums:
# ---------------------------------------------------------------------------
# Feature Value Types
# ---------------------------------------------------------------------------
FeatureValueTypeEnum:
description: Types of feature values in feature structures
permissible_values:
binary:
description: Binary value (true/false, +/-)
symbol:
description: Symbolic value from closed set
numeric:
description: Numeric value
string:
description: String value
fs:
description: Nested feature structure
vCollection:
description: Collection of values (list, set, bag)
default:
description: Default value
any:
description: Any/underspecified value
none:
description: No value/null
# ---------------------------------------------------------------------------
# Collection Types
# ---------------------------------------------------------------------------
CollectionTypeEnum:
description: Types of value collections
permissible_values:
list:
description: Ordered list (duplicates allowed)
set:
description: Unordered set (no duplicates)
bag:
description: Unordered multiset (duplicates allowed)
# ---------------------------------------------------------------------------
# Organization Types for Feature Libraries
# ---------------------------------------------------------------------------
FeatureLibraryTypeEnum:
description: Types of feature/value libraries
permissible_values:
feature:
description: Library of feature definitions
value:
description: Library of feature values
fs:
description: Library of feature structures
# ---------------------------------------------------------------------------
# Common Linguistic Feature Names
# ---------------------------------------------------------------------------
LinguisticFeatureEnum:
description: Common linguistic feature names (Universal Dependencies inspired)
permissible_values:
# Nominal features
Case:
description: Grammatical case
meaning: olia:hasCase
Definite:
description: Definiteness
meaning: olia:hasDefiniteness
Gender:
description: Grammatical gender
meaning: olia:hasGender
Number:
description: Grammatical number
meaning: olia:hasNumber
# Verbal features
Aspect:
description: Grammatical aspect
meaning: olia:hasAspect
Mood:
description: Grammatical mood
meaning: olia:hasMood
Tense:
description: Grammatical tense
meaning: olia:hasTense
VerbForm:
description: Form of verb
meaning: olia:hasVerbFormMood
Voice:
description: Grammatical voice
meaning: olia:hasVoice
# Pronominal features
Person:
description: Grammatical person
meaning: olia:hasPerson
Poss:
description: Possessive
PronType:
description: Pronoun type
Reflex:
description: Reflexive
# Other features
Degree:
description: Degree of comparison
meaning: olia:hasDegree
Polarity:
description: Positive/negative polarity
NumType:
description: Numeral type
# ---------------------------------------------------------------------------
# Case Values
# ---------------------------------------------------------------------------
CaseValueEnum:
description: Grammatical case values
permissible_values:
Nom:
description: Nominative case
meaning: olia:Nominative
Acc:
description: Accusative case
meaning: olia:Accusative
Dat:
description: Dative case
meaning: olia:Dative
Gen:
description: Genitive case
meaning: olia:Genitive
Voc:
description: Vocative case
meaning: olia:Vocative
Loc:
description: Locative case
meaning: olia:Locative
Ins:
description: Instrumental case
meaning: olia:Instrumental
Abl:
description: Ablative case
meaning: olia:Ablative
# ---------------------------------------------------------------------------
# Gender Values
# ---------------------------------------------------------------------------
GenderValueEnum:
description: Grammatical gender values
permissible_values:
Masc:
description: Masculine gender
meaning: olia:Masculine
Fem:
description: Feminine gender
meaning: olia:Feminine
Neut:
description: Neuter gender
meaning: olia:Neuter
Com:
description: Common gender
meaning: olia:CommonGender
# ---------------------------------------------------------------------------
# Number Values
# ---------------------------------------------------------------------------
NumberValueEnum:
description: Grammatical number values
permissible_values:
Sing:
description: Singular
meaning: olia:Singular
Plur:
description: Plural
meaning: olia:Plural
Dual:
description: Dual
meaning: olia:Dual
Coll:
description: Collective
Ptan:
description: Plurale tantum
# ---------------------------------------------------------------------------
# Tense Values
# ---------------------------------------------------------------------------
TenseValueEnum:
description: Grammatical tense values
permissible_values:
Past:
description: Past tense
meaning: olia:Past
Pres:
description: Present tense
meaning: olia:Present
Fut:
description: Future tense
meaning: olia:Future
Imp:
description: Imperfect
Pqp:
description: Pluperfect
# =============================================================================
# SLOTS
# =============================================================================
slots:
# ---------------------------------------------------------------------------
# Feature Structure Properties
# ---------------------------------------------------------------------------
fs_type:
description: Type of feature structure
range: string
fs_id:
description: Unique identifier for feature structure
identifier: true
range: string
# ---------------------------------------------------------------------------
# Feature Properties
# ---------------------------------------------------------------------------
feature_name:
description: Name of feature
range: string
required: true
feature_value:
description: Value of feature
range: string
value_type:
description: Type of feature value
range: FeatureValueTypeEnum
# ---------------------------------------------------------------------------
# Library Properties
# ---------------------------------------------------------------------------
library_type:
description: Type of feature library
range: FeatureLibraryTypeEnum
# =============================================================================
# CLASSES
# =============================================================================
classes:
# ---------------------------------------------------------------------------
# Feature Structure (fs)
# ---------------------------------------------------------------------------
FeatureStructure:
description: >-
A feature structure (attribute-value matrix) - a collection of
feature-value pairs organized as a structural unit. Used to represent
complex linguistic information in a typed, structured format.
class_uri: tei:fs
mixins:
- TEIElement
slots:
- fs_id
- fs_type
attributes:
type:
description: Type of feature structure (typed FS)
range: string
features:
description: Features in this structure
range: Feature
multivalued: true
feats:
description: References to features in a library
range: string
multivalued: true
annotations:
tei_element: fs
tei_module: iso-fs
glam_hypernym: feature_structure
ontology_mapping: gold:FeatureStructure
# ---------------------------------------------------------------------------
# Feature (f)
# ---------------------------------------------------------------------------
Feature:
description: >-
A feature-value specification associating a feature name with a value.
Values can be atomic (binary, symbol, string, numeric) or complex
(nested feature structure, collection).
class_uri: tei:f
mixins:
- TEIElement
slots:
- feature_name
- value_type
attributes:
name:
description: Feature name (required)
range: string
required: true
fVal:
description: Reference to value in library
range: string
value:
description: Inline atomic value
range: FeatureValue
nested_fs:
description: Nested feature structure value
range: FeatureStructure
annotations:
tei_element: f
tei_module: iso-fs
glam_hypernym: feature
ontology_mapping: gold:Feature
# ---------------------------------------------------------------------------
# Feature Value (abstract base)
# ---------------------------------------------------------------------------
FeatureValue:
description: >-
Abstract base for feature values. Concrete types include binary,
symbol, string, numeric, and complex values.
class_uri: glam:FeatureValue
abstract: true
mixins:
- TEIElement
slots:
- value_type
annotations:
glam_hypernym: feature_value
# ---------------------------------------------------------------------------
# Binary Value (binary)
# ---------------------------------------------------------------------------
BinaryValue:
description: >-
A binary feature value representing exactly two possible values
(true/false, +/-, yes/no).
class_uri: tei:binary
is_a: FeatureValue
attributes:
value:
description: Binary value (true or false)
range: boolean
required: true
annotations:
tei_element: binary
tei_module: iso-fs
glam_hypernym: binary_value
# ---------------------------------------------------------------------------
# Symbol Value (symbol)
# ---------------------------------------------------------------------------
SymbolValue:
description: >-
A symbolic feature value from a finite, predefined set of possible
values (e.g., case values, gender values).
class_uri: tei:symbol
is_a: FeatureValue
attributes:
value:
description: Symbolic value from closed set
range: string
required: true
annotations:
tei_element: symbol
tei_module: iso-fs
glam_hypernym: symbol_value
ontology_mapping: skos:Concept
# ---------------------------------------------------------------------------
# Numeric Value (numeric)
# ---------------------------------------------------------------------------
NumericValue:
description: >-
A numeric feature value representing a number or numeric range.
class_uri: tei:numeric
is_a: FeatureValue
attributes:
value:
description: Numeric value
range: float
required: true
max:
description: Maximum value (for ranges)
range: float
trunc:
description: Whether value is truncated
range: boolean
annotations:
tei_element: numeric
tei_module: iso-fs
glam_hypernym: numeric_value
# ---------------------------------------------------------------------------
# String Value (string)
# ---------------------------------------------------------------------------
StringValue:
description: >-
A string feature value - arbitrary text content.
class_uri: tei:string
is_a: FeatureValue
attributes:
value:
description: String content
range: string
required: true
annotations:
tei_element: string
tei_module: iso-fs
glam_hypernym: string_value
# ---------------------------------------------------------------------------
# Default Value (default)
# ---------------------------------------------------------------------------
DefaultValue:
description: >-
A default feature value used when no explicit value is provided.
class_uri: tei:default
is_a: FeatureValue
attributes:
default_value:
description: Default value to use
range: FeatureValue
annotations:
tei_element: default
tei_module: iso-fs
glam_hypernym: default_value
# ---------------------------------------------------------------------------
# Null/Any Value (vAlt, vNot, etc.)
# ---------------------------------------------------------------------------
NullValue:
description: >-
Represents absence of a value or null.
class_uri: tei:null
is_a: FeatureValue
annotations:
tei_element: "null"
tei_module: iso-fs
glam_hypernym: null_value
# ---------------------------------------------------------------------------
# Value Collections (vColl)
# ---------------------------------------------------------------------------
ValueCollection:
description: >-
A collection of feature values organized as a list, set, or bag.
class_uri: tei:vColl
is_a: FeatureValue
attributes:
org:
description: Organization type (list, set, bag)
range: CollectionTypeEnum
values:
description: Values in collection
range: FeatureValue
multivalued: true
annotations:
tei_element: vColl
tei_module: iso-fs
glam_hypernym: value_collection
# ---------------------------------------------------------------------------
# Value Alternation (vAlt)
# ---------------------------------------------------------------------------
ValueAlternation:
description: >-
Represents alternation/disjunction of possible values (value1 OR value2).
class_uri: tei:vAlt
is_a: FeatureValue
attributes:
alternatives:
description: Alternative possible values
range: FeatureValue
multivalued: true
annotations:
tei_element: vAlt
tei_module: iso-fs
glam_hypernym: value_alternation
# ---------------------------------------------------------------------------
# Value Negation (vNot)
# ---------------------------------------------------------------------------
ValueNegation:
description: >-
Represents negation of a value (NOT this value).
class_uri: tei:vNot
is_a: FeatureValue
attributes:
negated_value:
description: Value being negated
range: FeatureValue
annotations:
tei_element: vNot
tei_module: iso-fs
glam_hypernym: value_negation
# ---------------------------------------------------------------------------
# Value Merge (vMerge)
# ---------------------------------------------------------------------------
ValueMerge:
description: >-
Represents merging/unification of feature values.
class_uri: tei:vMerge
is_a: FeatureValue
attributes:
merged_values:
description: Values to merge/unify
range: FeatureValue
multivalued: true
annotations:
tei_element: vMerge
tei_module: iso-fs
glam_hypernym: value_merge
# ---------------------------------------------------------------------------
# Feature Libraries
# ---------------------------------------------------------------------------
# ---------------------------------------------------------------------------
# Feature Library (fLib)
# ---------------------------------------------------------------------------
FeatureLibrary:
description: >-
A library of reusable feature definitions that can be referenced
from feature structures.
class_uri: tei:fLib
mixins:
- TEIElement
slots:
- library_type
attributes:
features:
description: Feature definitions in library
range: Feature
multivalued: true
annotations:
tei_element: fLib
tei_module: iso-fs
glam_hypernym: feature_library
# ---------------------------------------------------------------------------
# Feature Value Library (vLib)
# ---------------------------------------------------------------------------
ValueLibrary:
description: >-
A library of reusable feature values that can be referenced
from features.
class_uri: tei:vLib
mixins:
- TEIElement
attributes:
values:
description: Value definitions in library
range: FeatureValue
multivalued: true
annotations:
tei_element: vLib
tei_module: iso-fs
glam_hypernym: value_library
# ---------------------------------------------------------------------------
# Feature Structure Library (fvLib)
# ---------------------------------------------------------------------------
FSLibrary:
description: >-
A library of reusable feature structures.
class_uri: tei:fvLib
mixins:
- TEIElement
attributes:
feature_structures:
description: Feature structure definitions
range: FeatureStructure
multivalued: true
annotations:
tei_element: fvLib
tei_module: iso-fs
glam_hypernym: fs_library
# ---------------------------------------------------------------------------
# Feature System Declaration (fDecl, fsdDecl)
# ---------------------------------------------------------------------------
FeatureSystemDeclaration:
description: >-
Declares a feature system including valid feature names, value types,
and constraints. Enables validation of feature structures.
class_uri: tei:fsdDecl
mixins:
- TEIElement
attributes:
fs_declarations:
description: Feature structure type declarations
range: FSDeclaration
multivalued: true
feature_declarations:
description: Individual feature declarations
range: FeatureDeclaration
multivalued: true
annotations:
tei_element: fsdDecl
tei_module: iso-fs
glam_hypernym: feature_system_declaration
# ---------------------------------------------------------------------------
# Feature Structure Declaration (fsDecl)
# ---------------------------------------------------------------------------
FSDeclaration:
description: >-
Declares a type of feature structure with its valid features.
class_uri: tei:fsDecl
mixins:
- TEIElement
attributes:
type:
description: Type name for this FS
range: string
required: true
base_types:
description: Base types this inherits from
range: string
multivalued: true
feature_constraints:
description: Constraints on features
range: FeatureDeclaration
multivalued: true
annotations:
tei_element: fsDecl
tei_module: iso-fs
glam_hypernym: fs_declaration
# ---------------------------------------------------------------------------
# Feature Declaration (fDecl)
# ---------------------------------------------------------------------------
FeatureDeclaration:
description: >-
Declares a feature with its name, valid values, optionality, and range.
class_uri: tei:fDecl
mixins:
- TEIElement
attributes:
name:
description: Feature name
range: string
required: true
optional:
description: Whether feature is optional
range: boolean
value_range:
description: Valid value type/range
range: ValueRange
default:
description: Default value
range: FeatureValue
annotations:
tei_element: fDecl
tei_module: iso-fs
glam_hypernym: feature_declaration
# ---------------------------------------------------------------------------
# Value Range (vRange)
# ---------------------------------------------------------------------------
ValueRange:
description: >-
Specifies the range of valid values for a feature.
class_uri: tei:vRange
mixins:
- TEIElement
attributes:
value_type:
description: Type of values allowed
range: FeatureValueTypeEnum
valid_values:
description: Enumerated valid values
range: string
multivalued: true
annotations:
tei_element: vRange
tei_module: iso-fs
glam_hypernym: value_range
# ---------------------------------------------------------------------------
# GLAM-NER Extensions: Entity Feature Structures
# ---------------------------------------------------------------------------
# ---------------------------------------------------------------------------
# Entity Feature Structure
# ---------------------------------------------------------------------------
EntityFeatureStructure:
description: >-
Feature structure for representing structured entity attributes.
Extends FS with entity-specific typing and validation.
class_uri: glam:EntityFeatureStructure
is_a: FeatureStructure
attributes:
entity_type:
description: NER entity type this FS describes
range: string
canonical_name:
description: Canonical entity name
range: string
features:
description: Entity attribute features
range: EntityFeature
multivalued: true
annotations:
glam_hypernym: entity_fs
ontology_mapping: gold:FeatureStructure
# ---------------------------------------------------------------------------
# Entity Feature
# ---------------------------------------------------------------------------
EntityFeature:
description: >-
A feature describing an entity attribute (birth date, occupation, etc.).
class_uri: glam:EntityFeature
is_a: Feature
attributes:
attribute_type:
description: Type of entity attribute
range: string
wikidata_property:
description: Corresponding Wikidata property
range: string
confidence:
description: Extraction confidence
range: float
annotations:
glam_hypernym: entity_feature
# ---------------------------------------------------------------------------
# Morphological Feature Structure
# ---------------------------------------------------------------------------
MorphologicalFS:
description: >-
Feature structure for morphological analysis of a token.
Encapsulates Universal Dependencies morphological features.
class_uri: glam:MorphologicalFS
is_a: FeatureStructure
attributes:
lemma:
description: Lemma/base form
range: string
pos:
description: Part of speech
range: string
case:
description: Grammatical case
range: CaseValueEnum
gender:
description: Grammatical gender
range: GenderValueEnum
number:
description: Grammatical number
range: NumberValueEnum
tense:
description: Grammatical tense
range: TenseValueEnum
person:
description: Grammatical person
range: string
mood:
description: Grammatical mood
range: string
voice:
description: Grammatical voice
range: string
aspect:
description: Grammatical aspect
range: string
additional_features:
description: Other morphological features
range: Feature
multivalued: true
annotations:
glam_hypernym: morphological_fs
ontology_mapping: olia:MorphosyntacticCategory
# ---------------------------------------------------------------------------
# Semantic Role Feature Structure
# ---------------------------------------------------------------------------
SemanticRoleFS:
description: >-
Feature structure for semantic role labeling.
class_uri: glam:SemanticRoleFS
is_a: FeatureStructure
attributes:
predicate:
description: Predicate/verb
range: string
role:
description: Semantic role (Agent, Patient, etc.)
range: string
argument_span:
description: Text span of argument
range: string
frame:
description: Semantic frame (FrameNet/PropBank)
range: string
annotations:
glam_hypernym: semantic_role_fs
# ---------------------------------------------------------------------------
# Mixin: TEI Element
# ---------------------------------------------------------------------------
TEIElement:
description: Base mixin for all TEI elements
mixin: true
attributes:
xml_id:
description: XML identifier
slot_uri: dcterms:identifier
range: string
xml_lang:
description: Language code
slot_uri: dcterms:language
range: string
rend:
description: Rendition or appearance
range: string
corresp:
description: Correspondence to another element
range: string
n:
description: Number or label
range: string