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