@prefix morph: <http://www.w3.org/ns/lemon/morph#> .
@prefix ontolex: <http://www.w3.org/ns/lemon/ontolex#> .
@prefix owl: <http://www.w3.org/2002/07/owl#> .
@prefix rdf: <http://www.w3.org/1999/02/22-rdf-syntax-ns#> .
@prefix rdfs: <http://www.w3.org/2000/01/rdf-schema#> .
@prefix vartrans: <http://www.w3.org/ns/lemon/vartrans#> .
@prefix xsd: <http://www.w3.org/2001/XMLSchema#> .

morph:CompoundHead a owl:Class ;
    rdfs:label "Compound Head"@en ;
    rdfs:comment "Compound Head is a Word Formation Relation that connects the (lexical entry representing the) morphological head of a compound with the (lexical entry representing the) compound."@en ;
    rdfs:subClassOf morph:CompoundRelation .

morph:CompoundingRule a owl:Class ;
    rdfs:label "Compounding Rule"@en ;
    rdfs:comment "A Compounding Rule refers to rules that take the base form of more than one lexical entry as input to generate the (canonical) form of the output lexical entry."@en ;
    rdfs:subClassOf morph:WordFormationRule .

morph:DerivationRule a owl:Class ;
    rdfs:label "Derivation Rule"@en ;
    rdfs:comment "Derivation Rule refers to rules that take the base form of one lexical entry as input and generate the (canonical) form of another lexical entry as output through the addition of one or more derivational affix(es)."@en ;
    rdfs:subClassOf morph:WordFormationRule .

morph:baseConstraint a owl:ObjectProperty ;
    rdfs:label "base constraint"@en ;
    rdfs:comment "Base constraint defines the grammatical characteristics of the stem or base that a derivational or inflectional morpheme can be combined with"@en ;
    rdfs:domain [ owl:unionOf ( ontolex:Morph morph:Rule ) ] ;
    rdfs:range morph:GrammaticalMeaning .

morph:baseForm a owl:ObjectProperty ;
    rdfs:label "base form"@en ;
    rdfs:comment "Base form is a subproperty of lexical form that indicates the form that is taken as base for the application of inflection or derivation rules to generate other forms."@en ;
    rdfs:domain ontolex:Word ;
    rdfs:range ontolex:Form ;
    rdfs:subPropertyOf ontolex:lexicalForm .

morph:baseType a owl:DatatypeProperty ;
    rdfs:label "base type"@en ;
    rdfs:comment "Base Type is used for coindexing a base form, a rule and the forms generated by the rule from the respective base in cases in which the inflectional paradigm of a single lexical entry involves different bases, e.g., stems."@en ;
    rdfs:domain [ owl:unionOf ( ontolex:Form morph:InflectionRule ) ] ;
    rdfs:range xsd:string .

morph:consistsOf a owl:ObjectProperty ;
    rdfs:label "consists of"@en ;
    rdfs:comment "Consists of states into which morph resources a form resource can be segmented."@en ;
    rdfs:domain ontolex:Form ;
    rdfs:range morph:Morph .

morph:example a owl:DatatypeProperty ;
    rdfs:label "example"@en ;
    rdfs:comment "An Example is a single form that demonstrates a class of forms that can be generated by a single rule with no allomorphy."@en ;
    rdfs:domain morph:Rule ;
    rdfs:range rdf:langString .

morph:generates a owl:ObjectProperty ;
    rdfs:label "generates"@en ;
    rdfs:comment "The generates property connects a rule to the form generated from it."@en ;
    rdfs:domain morph:WordFormationRule ;
    rdfs:range ontolex:Form .

morph:grammaticalMeaning a owl:ObjectProperty ;
    rdfs:label "grammatical meaning"@en ;
    rdfs:comment "The grammatical meaning property assigns a grammatical meaning to a morph, form, or rule"@en ;
    rdfs:domain [ owl:unionOf ( ontolex:Form morph:Morph morph:Rule ) ] ;
    rdfs:range morph:GrammaticalMeaning .

morph:inflectionClass a owl:ObjectProperty ;
    rdfs:label "inflection class"@en ;
    rdfs:comment "The inflection class property links an inflection rule to the inflection class it pertains to."@en ;
    rdfs:domain morph:InflectionRule ;
    rdfs:range morph:InflectionClass .

morph:inflectionSlot a owl:ObjectProperty ;
    rdfs:label "inflection slot"@en ;
    rdfs:comment "The inflection slot property links an inflection rule to the slot it pertains to"@en ;
    rdfs:domain morph:InflectionRule ;
    rdfs:range morph:InflectionSlot .

morph:involves a owl:ObjectProperty ;
    rdfs:label "involves"@en ;
    rdfs:comment "The involves property links a Rule to the Morph that is involved in the process."@en ;
    rdfs:domain morph:Rule ;
    rdfs:range morph:Morph .

morph:next a owl:ObjectProperty ;
    rdfs:label "next"@en ;
    rdfs:comment "Next links two consecutive inflection slots. Rules belonging to the object slot can be applied after the first rule has been applied."@en ;
    rdfs:domain morph:InflectionSlot ;
    rdfs:range morph:InflectionSlot .

morph:replacement a owl:DatatypeProperty ;
    rdfs:label "replacement"@en ;
    rdfs:comment "The replacement property states the replacement pattern that is involved in a morphological rule for the generation of a form."@en ;
    rdfs:domain morph:Rule ;
    rdfs:range morph:Replacement .

morph:source a owl:DatatypeProperty ;
    rdfs:label "source"@en ;
    rdfs:comment "A source is a string which is used as a basis for the substitution."@en ;
    rdfs:domain morph:RegexReplacement ;
    rdfs:range xsd:string .

morph:target a owl:DatatypeProperty ;
    rdfs:label "target"@en ;
    rdfs:comment "Target is a string template that denotes a target for the substitution."@en ;
    rdfs:domain morph:RegexReplacement ;
    rdfs:range xsd:string .

morph:wordFormationRule a owl:ObjectProperty ;
    rdfs:label "word formation rule"@en ;
    rdfs:comment "The word formation rule property relates a word formation relation to the word formation rule that is applied to the base form of the source lexical entry in order to obtain the (canonical) form of the target lexical entry."@en ;
    rdfs:domain morph:WordFormationRelation ;
    rdfs:range morph:WordFormationRule .

morph:CompoundRelation a owl:Class ;
    rdfs:label "Compound Relation"@en ;
    rdfs:comment "Compound Relation is a Word Formation Relation that connects a (lexical entry representing a) morphological constituent of a compound with the (lexical entry representing the) compound."@en ;
    rdfs:subClassOf morph:WordFormationRelation .

morph:InflectionClass a owl:Class ;
    rdfs:label "Inflection Class"@en ;
    rdfs:comment "Inflection Class represents the inflection class to which a lexical entry belongs/is assigned – e.g., the declension of a noun, or the conjugation of a verb."@en .

morph:GrammaticalMeaning a owl:Class ;
    rdfs:label "Grammatical Meaning"@en ;
    rdfs:comment "Grammatical meaning can be used to represent (bundles of) values of different morpho-syntactic or morpho-semantic features expressed by a form, morph or rule (e.g., value ‘nominative’ for feature ‘case’, value ‘singular’ for feature ‘number’, etc.; or the feature bundle composed by the latter two values, in a fusional language where they are expressed cumulatively, e.g. Latin)"@en .

morph:RegexReplacement a owl:Class ;
    rdfs:label "Regex Replacement"@en ;
    rdfs:comment "Regex replacement can be used to represent the regular expression-based substitution that produces an inflected or derived surface form."@en ;
    rdfs:subClassOf morph:Replacement .

morph:Replacement a owl:Class ;
    rdfs:label "Replacement"@en ;
    rdfs:comment "Replacement is a class that can be used to represent the morphological transformation that is applied to a base form to obtain another form (inflectionally or derivationally related to it)."@en .

morph:WordFormationRelation a owl:Class ;
    rdfs:label "Word Formation Relation"@en ;
    rdfs:comment "Word Formation Relation is a subclass of lexical relation that relates two lexical entries that are morphologically related, with the property target linking the relation to the resulting lexical entry, and the property source linking it to the morphological base (in derivation) or head and other constituents (in compounding)."@en ;
    rdfs:subClassOf vartrans:LexicalRelation .

morph:InflectionRule a owl:Class ;
    rdfs:label "Inflection Rule"@en ;
    rdfs:comment "Inflection rule represents the formal operation applied to a base form of a lexical entry to obtain another inflected form of that lexical entry."@en ;
    rdfs:subClassOf morph:Rule .

morph:InflectionSlot a owl:Class ;
    rdfs:label "Inflection Slot"@en ;
    rdfs:comment "Inflection slot represents a single slot that can be filled with a morph of a corresponding grammatical category. Since one rule can introduce only one morph, inflection slots are necessary when we need to represent forms that are generated by several independent morphological processes."@en .

morph:Morph a owl:Class ;
    rdfs:label "Morph"@en ;
    rdfs:comment "A Morph represents any element of morphological analysis below the word level."@en ;
    rdfs:subClassOf ontolex:LexicalEntry .

morph:WordFormationRule a owl:Class ;
    rdfs:label "Word Formation Rule"@en ;
    rdfs:comment "Word Formation Rule represents the formal operation applied to a base form of a source lexical entry to obtain the (canonical) form of another, target lexical entry ."@en ;
    rdfs:subClassOf morph:Rule .

morph:Rule a owl:Class ;
    rdfs:label "Rule"@en ;
    rdfs:comment "A rule represents the formal operation applied to a base form to obtain another form (inflectionally or derivationally related to it). It must contain either ‘example’ or ‘replacement’ (or both). “Tabular” value of a morpheme must be stored in a RDFS label (e.g. “-s”@en for usual PL in English). One rule applies exactly one morphological transformation, i.e. adds one morph."@en .

