@prefix dc:    <http://purl.org/dc/elements/1.1/> .
@prefix :      <http://premon.fbk.eu/ontology/all#> .
@prefix nif:   <http://persistence.uni-leipzig.org/nlp2rdf/ontologies/nif-core#> .
@prefix void:  <http://rdfs.org/ns/void#> .
@prefix vann:  <http://purl.org/vocab/vann/> .
@prefix lime:  <http://www.w3.org/ns/lemon/lime#> .
@prefix xml:   <http://www.w3.org/XML/1998/namespace> .
@prefix pmovn: <http://premon.fbk.eu/ontology/vn#> .
@prefix pmo:   <http://premon.fbk.eu/ontology/core#> .
@prefix dcterms: <http://purl.org/dc/terms/> .
@prefix rdfs:  <http://www.w3.org/2000/01/rdf-schema#> .
@prefix pmopb: <http://premon.fbk.eu/ontology/pb#> .
@prefix pmofn: <http://premon.fbk.eu/ontology/fn#> .
@prefix ontolex: <http://www.w3.org/ns/lemon/ontolex#> .
@prefix xsd:   <http://www.w3.org/2001/XMLSchema#> .
@prefix owl:   <http://www.w3.org/2002/07/owl#> .
@prefix rdf:   <http://www.w3.org/1999/02/22-rdf-syntax-ns#> .
@prefix pmonb: <http://premon.fbk.eu/ontology/nb#> .
@prefix skos:  <http://www.w3.org/2004/02/skos/core#> .

pmopb:arg3  a   pmopb:NumberedArgument , owl:NamedIndividual .

pmopb:argm-cxn  a  pmopb:Modifier , owl:NamedIndividual .

pmopb:argm-pnc  a  pmopb:Modifier , owl:NamedIndividual .

pmopb:argm-rec  a  pmopb:Modifier , owl:NamedIndividual .

pmopb:third  a  pmopb:Person , owl:NamedIndividual .

pmopb:argm-prd  a  pmopb:Modifier , owl:NamedIndividual .

pmopb:argm-tmp  a  pmopb:Modifier , owl:NamedIndividual .

pmopb:SemanticRole  a    owl:Class ;
        rdfs:label       "Semantic Role (PB)"@en ;
        rdfs:subClassOf  pmo:SemanticRole ;
        rdfs:subClassOf  [ a                  owl:Restriction ;
                           owl:allValuesFrom  pmopb:Roleset ;
                           owl:onProperty     [ owl:inverseOf  pmo:semRole ]
                         ] ;
        rdfs:subClassOf  [ a                   owl:Restriction ;
                           owl:onProperty      pmopb:argument ;
                           owl:someValuesFrom  pmopb:Argument
                         ] .

pmopb:argm-dir  a  pmopb:Modifier , owl:NamedIndividual .

pmopb:Person  a          owl:Class ;
        rdfs:label       "Person"@en ;
        rdfs:subClassOf  [ a          owl:Class ;
                           owl:oneOf  ( pmopb:other pmopb:third )
                         ] .

pmopb:tag-ppt  a  pmopb:Tag , owl:NamedIndividual .

pmopb:passive  a  pmopb:Voice , owl:NamedIndividual .

pmopb:arg2  a   pmopb:NumberedArgument , owl:NamedIndividual .

pmopb:tag-pag  a  pmopb:Tag , owl:NamedIndividual .

pmopb:argm-cau  a  pmopb:Modifier , owl:NamedIndividual .

pmopb:progressive  a  pmopb:Aspect , owl:NamedIndividual .

pmopb:tag-vsp  a  pmopb:Tag , owl:NamedIndividual .

pmopb:Argument  a            owl:Class ;
        rdfs:label           "Argument (PB)"@en ;
        rdfs:subClassOf      skos:Concept ;
        owl:equivalentClass  [ a            owl:Class ;
                               owl:unionOf  ( pmopb:Modifier pmopb:NumberedArgument pmopb:SecondaryAgent )
                             ] .

pmopb:SecondaryAgent  a  owl:Class ;
        rdfs:label       "Secondary Agent"@en ;
        rdfs:subClassOf  pmopb:Argument .

pmopb:argument  a    owl:ObjectProperty , owl:FunctionalProperty ;
        rdfs:domain  pmopb:SemanticRole ;
        rdfs:label   "argument"@en ;
        rdfs:range   pmopb:Argument .

pmopb:argm-vsp  a  pmopb:Modifier , owl:NamedIndividual .

pmopb:Tense  a           owl:Class ;
        rdfs:label       "Tense"@en ;
        rdfs:subClassOf  [ a          owl:Class ;
                           owl:oneOf  ( pmopb:future pmopb:past pmopb:present )
                         ] .

pmopb:other  a  pmopb:Person , owl:NamedIndividual .

pmopb:argm-prn  a  pmopb:Modifier , owl:NamedIndividual .

pmopb:argm-com  a  pmopb:Modifier , owl:NamedIndividual .

pmopb:Roleset  a         owl:Class ;
        rdfs:label       "Roleset (PB)"@en ;
        rdfs:subClassOf  pmo:SemanticClass ;
        rdfs:subClassOf  [ a                  owl:Restriction ;
                           owl:allValuesFrom  pmopb:SemanticRole ;
                           owl:onProperty     pmo:semRole
                         ] .

pmopb:full  a   pmopb:Form , owl:NamedIndividual .

pmopb:NumberedArgument
        a                 owl:Class ;
        rdfs:label        "Numbered Argument (PB)"@en ;
        rdfs:subClassOf   pmopb:Argument ;
        rdfs:subClassOf   [ a          owl:Class ;
                            owl:oneOf  ( pmopb:arg4 pmopb:arg3 pmopb:arg2 pmopb:arg1 pmopb:arg0 pmopb:arg5 pmopb:arg6 )
                          ] ;
        owl:disjointWith  pmopb:SecondaryAgent .

pmopb:argm-gol  a  pmopb:Modifier , owl:NamedIndividual .

pmopb:past  a   pmopb:Tense , owl:NamedIndividual .

pmopb:arg1  a   pmopb:NumberedArgument , owl:NamedIndividual .

pmopb:argm-rcl  a  pmopb:Modifier , owl:NamedIndividual .

pmopb:core  a         owl:DatatypeProperty , owl:FunctionalProperty ;
        rdfs:comment  "Set to true if the semantic role explicitly occurs in a frame file"@en ;
        rdfs:domain   pmo:SemanticRole ;
        rdfs:label    "core"@en ;
        rdfs:range    xsd:boolean .

pmopb:person  a      owl:ObjectProperty , owl:FunctionalProperty ;
        rdfs:domain  pmopb:Inflection ;
        rdfs:label   "person"@en ;
        rdfs:range   pmopb:Person .

pmopb:argm-neg  a  pmopb:Modifier , owl:NamedIndividual .

pmopb:arg6  a   pmopb:NumberedArgument , owl:NamedIndividual .

pmopb:infinitive  a  pmopb:Form , owl:NamedIndividual .

pmopb:argm-mnr  a  pmopb:Modifier , owl:NamedIndividual .

pmopb:argm-mod  a  pmopb:Modifier , owl:NamedIndividual .

pmopb:aspect  a      owl:ObjectProperty ;
        rdfs:domain  pmopb:Inflection ;
        rdfs:label   "aspect"@en ;
        rdfs:range   pmopb:Aspect .

pmopb:arg0  a   pmopb:NumberedArgument , owl:NamedIndividual .

pmopb:inflection  a  owl:ObjectProperty , owl:FunctionalProperty ;
        rdfs:domain  pmo:Example ;
        rdfs:label   "inflection"@en ;
        rdfs:range   pmopb:Inflection .

pmopb:tense  a       owl:ObjectProperty , owl:FunctionalProperty ;
        rdfs:domain  pmopb:Inflection ;
        rdfs:label   "tense"@en ;
        rdfs:range   pmopb:Tense .

pmopb:present  a  pmopb:Tense , owl:NamedIndividual .

pmopb:form  a        owl:ObjectProperty , owl:FunctionalProperty ;
        rdfs:domain  pmopb:Inflection ;
        rdfs:label   "form"@en ;
        rdfs:range   pmopb:Form .

pmopb:arg5  a   pmopb:NumberedArgument , owl:NamedIndividual .

pmopb:Form  a            owl:Class ;
        rdfs:label       "Form"@en ;
        rdfs:subClassOf  [ a          owl:Class ;
                           owl:oneOf  ( pmopb:gerund pmopb:full pmopb:participle pmopb:infinitive )
                         ] .

<http://premon.fbk.eu/ontology/pb>
        a                              owl:Ontology ;
        rdfs:comment                   "The PropBank module of the PreMOn ontology extends the core module for representing concepts specific to PropBank. The modelling is based on the [PropBank guidelines] (http://clear.colorado.edu/compsem/documents/propbank_guidelines.pdf)."@en ;
        rdfs:isDefinedBy               <http://premon.fbk.eu/ontology/pb.ttl> ;
        dcterms:creator                "Francesco Corcoglioniti" , "Marco Rospocher <https://dkm.fbk.eu/rospocher>" ;
        dcterms:description            "We define classes [pmopb:Roleset](http://premon.fbk.eu/ontology/pb#Roleset) and [pmopb:SemanticRole](http://premon.fbk.eu/ontology/pb#SemanticRole) as subclasses of [pmo:SemanticClass](http://premon.fbk.eu/ontology/core#SemanticClass) and [pmo:SemanticRole](http://premon.fbk.eu/ontology/core#SemanticRole), respectively.\n\nEach [pmopb:SemanticRole](http://premon.fbk.eu/ontology/pb#SemanticRole) instance is related (via property [pmopb:argument](http://premon.fbk.eu/ontology/pb#argument)) to exactly one [pmopb:Argument](http://premon.fbk.eu/ontology/pb#Argument), which is defined as the disjoint union of three subclasses: \n\n* [pmopb:NumberedArgument](http://premon.fbk.eu/ontology/pb#NumberedArgument), containing the individuals corresponding to numbered arguments (e.g., *Arg0*, *Arg1*); \n* [pmopb:Modifier](http://premon.fbk.eu/ontology/pb#Modifier), containing the\nindividuals corresponding to modifiers (e.g., *ArgM-LOC*, *ArgM-TMP*). While PB annotation guidelines define a single modifier (*ArgM*) with multiple function tags (e.g., *LOC*, *TMP*), we opt to specialize the modifier for each function tag, similarly to the way these arguments are actually annotated by state-of-the-art SRL tools; and, \n* [pmopb:SecondaryAgent](http://premon.fbk.eu/ontology/pb#SecondaryAgent), containing the single individual annotating secondary agents (*ArgA*). \n\nProperty [pmopb:tag](http://premon.fbk.eu/ontology/pb#tag) enables associating possible tags, either a [pmopb:Modifier](http://premon.fbk.eu/ontology/pb#Modifier) or some additional tag defined in class [pmopb:Tag](http://premon.fbk.eu/ontology/pb#Tag), to [pmopb:SemanticRole](http://premon.fbk.eu/ontology/pb#SemanticRole)s, or [nif:Annotation](http://persistence.uni-leipzig.org/nlp2rdf/ontologies/nif-core#Annotation)s of semantic roles in examples.\n\nAdditional classes (and related properties) are defined to represent inflectional information about examples: [pmopb:Inflection](http://premon.fbk.eu/ontology/pb#Inflection), [pmopb:Person](http://premon.fbk.eu/ontology/pb#Person), [pmopb:Tense](http://premon.fbk.eu/ontology/pb#Tense), [pmopb:Aspect](http://premon.fbk.eu/ontology/pb#Aspect), [pmopb:Voice](http://premon.fbk.eu/ontology/pb#Voice), and [pmopb:Form](http://premon.fbk.eu/ontology/pb#Form)."@en ;
        dcterms:description            <http://premon.fbk.eu/images/pb.svg> ;
        dcterms:issued                 "2015-10-28"^^xsd:date ;
        dcterms:license                <http://creativecommons.org/licenses/by-sa/4.0/> ;
        dcterms:modified               "2017-05-01"^^xsd:date ;
        dcterms:publisher              "DKM, Fondazione Bruno Kessler <http://dkm.fbk.eu/>" ;
        dcterms:rights                 "This ontology is licensed under CC-BY-SA <http://creativecommons.org/licenses/by-sa/4.0/>"@en ;
        dcterms:title                  "Predicate Model for Ontologies (PreMOn) - PropBank ontology module"@en ;
        vann:preferredNamespacePrefix  "pmopb" ;
        vann:preferredNamespaceUri     "http://premon.fbk.eu/ontology/pb#" ;
        owl:imports                    <http://premon.fbk.eu/ontology/core> , <http://www.w3.org/ns/lemon/ontolex> ;
        owl:versionInfo                "2017a" .

pmopb:argm-loc  a  pmopb:Modifier , owl:NamedIndividual .

pmopb:argm-lvb  a  pmopb:Modifier , owl:NamedIndividual .

pmopb:argm-adv  a  pmopb:Modifier , owl:NamedIndividual .

pmopb:Voice  a           owl:Class ;
        rdfs:label       "Voice"@en ;
        rdfs:subClassOf  [ a          owl:Class ;
                           owl:oneOf  ( pmopb:passive pmopb:active )
                         ] .

pmopb:voice  a       owl:ObjectProperty , owl:FunctionalProperty ;
        rdfs:domain  pmopb:Inflection ;
        rdfs:label   "voice"@en ;
        rdfs:range   pmopb:Voice .

pmopb:future  a  pmopb:Tense , owl:NamedIndividual .

pmopb:tag  a        owl:ObjectProperty , owl:FunctionalProperty ;
        rdfs:label  "tag"@en ;
        rdfs:range  [ a            owl:Class ;
                      owl:unionOf  ( pmopb:Modifier pmopb:Tag ontolex:LexicalEntry )
                    ] .

pmopb:arg4  a   pmopb:NumberedArgument , owl:NamedIndividual .

pmopb:Modifier  a         owl:Class ;
        rdfs:label        "Modifier (PB)"@en ;
        rdfs:subClassOf   pmopb:Argument ;
        rdfs:subClassOf   [ a          owl:Class ;
                            owl:oneOf  ( pmopb:argm-lvb pmopb:argm-cau pmopb:argm-tmp pmopb:argm-rcl pmopb:argm-loc pmopb:argm-gol pmopb:argm-mod pmopb:argm-prd pmopb:argm-com pmopb:argm-dsp pmopb:argm-ext pmopb:argm-adj pmopb:argm-pnc pmopb:argm-slc pmopb:argm-neg pmopb:argm-rec pmopb:argm-dis pmopb:argm-prp pmopb:argm-dir pmopb:argm-adv pmopb:argm-mnr pmopb:argm-prn pmopb:argm-cxn pmopb:argm-vsp )
                          ] ;
        owl:disjointWith  pmopb:SecondaryAgent , pmopb:NumberedArgument .

pmopb:argm-slc  a  pmopb:Modifier , owl:NamedIndividual .

pmopb:participle  a  pmopb:Form , owl:NamedIndividual .

pmopb:argm-adj  a  pmopb:Modifier , owl:NamedIndividual .

pmopb:Inflection  a  owl:Class ;
        rdfs:label  "Inflection"@en .

pmopb:argm-dis  a  pmopb:Modifier , owl:NamedIndividual .

pmopb:argm-ext  a  pmopb:Modifier , owl:NamedIndividual .

pmopb:argm-dsp  a  pmopb:Modifier , owl:NamedIndividual .

pmopb:arga  a   pmopb:SecondaryAgent , owl:NamedIndividual .

pmopb:perfect  a  pmopb:Aspect , owl:NamedIndividual .

pmopb:argm-prp  a  pmopb:Modifier , owl:NamedIndividual .

pmopb:gerund  a  pmopb:Form , owl:NamedIndividual .

pmopb:Tag  a        owl:Class ;
        rdfs:label  "Tag"@en .

pmopb:active  a  pmopb:Voice , owl:NamedIndividual .

pmopb:Aspect  a          owl:Class ;
        rdfs:label       "Aspect"@en ;
        rdfs:subClassOf  [ a          owl:Class ;
                           owl:oneOf  ( pmopb:perfect pmopb:progressive )
                         ] .
