@prefix rdf: <http://www.w3.org/1999/02/22-rdf-syntax-ns#> .
@prefix : <https://w3id.org/todo/tododfa> .
@prefix ns: <http://creativecommons.org/ns#> .
@prefix vs: <http://www.w3.org/2003/06/sw-vocab-status/ns#> .
@prefix owl: <http://www.w3.org/2002/07/owl#> .
@prefix xml: <http://www.w3.org/XML/1998/namespace> .
@prefix xsd: <http://www.w3.org/2001/XMLSchema#> .
@prefix prov: <http://www.w3.org/ns/prov#> .
@prefix rdfs: <http://www.w3.org/2000/01/rdf-schema#> .
@prefix skos: <http://www.w3.org/2004/02/skos/core#> .
@prefix vann: <http://purl.org/vocab/vann/> .
@prefix pmofn: <http://premon.fbk.eu/ontology/fn#> .
@prefix terms: <http://purl.org/dc/terms/> .
@prefix ontolex: <http://www.w3.org/ns/lemon/ontolex#> .

ns:license
    a owl:AnnotationProperty .

terms:bibliographicCitation
    a owl:AnnotationProperty .

terms:contributor
    a owl:AnnotationProperty .

terms:created
    a owl:AnnotationProperty .

terms:creator
    a owl:AnnotationProperty .

terms:description
    a owl:AnnotationProperty .

terms:issued
    a owl:AnnotationProperty .

terms:modified
    a owl:AnnotationProperty .

terms:title
    a owl:AnnotationProperty .

vann:preferredNamespacePrefix
    a owl:AnnotationProperty .

vann:preferredNamespaceUri
    a owl:AnnotationProperty .

owl:versionIRI
    a owl:AnnotationProperty .

vs:term_status
    a owl:AnnotationProperty .

skos:example
    a owl:AnnotationProperty .

<https://w3id.org/todo/tododfa>
    ns:license "http://purl.org/NET/rdflicense/cc-by4.0" ;
    terms:contributor "Izaskun Fernández (Tekniker) <mailto:izaskun.fernandez@tekniker.es>"^^xsd:string ;
    terms:created "2020-04-21T00:00:00" ;
    terms:creator "Cristina Aceta (Tekniker) <mailto:cristina.aceta@tekniker.es>"^^xsd:string ;
    terms:description "Module for Action (and Frame) modelling inside domain."^^xsd:string ;
    terms:issued "" ;
    terms:modified "2021-09-23T10:00:00" ;
    terms:title "TODODFA: Frame-Action Module for Task-Oriented Dialogue management Ontology (TODO)"^^xsd:string ;
    vann:preferredNamespacePrefix "tododfa"^^xsd:string ;
    vann:preferredNamespaceUri "https://w3id.org/todo/tododfa" ;
    a owl:Ontology ;
    owl:priorVersion "" ;
    owl:versionInfo 2.1 .

<https://w3id.org/todo/tododfa#Action>
    a owl:Class ;
    rdfs:comment "Element that makes reference to the functionalities of the target system." ;
    rdfs:isDefinedBy "https://w3id.org/todo/tododfa#" ;
    rdfs:label "Action"@en ;
    rdfs:subClassOf [
        a owl:Restriction ;
        owl:onProperty <https://w3id.org/todo/tododfa#belongsToIntent> ;
        owl:someValuesFrom <https://w3id.org/todo/tododfa#Intent>
    ], [
        a owl:Restriction ;
        owl:onProperty <https://w3id.org/todo/tododfa#hasArgument> ;
        owl:someValuesFrom <https://w3id.org/todo/tododfa#Argument>
    ], [
        a owl:Restriction ;
        owl:onProperty <https://w3id.org/todo/tododfa#hasArgumentSet> ;
        owl:someValuesFrom <https://w3id.org/todo/tododfa#ArgumentSet>
    ], [
        a owl:Restriction ;
        owl:onProperty <https://w3id.org/todo/tododfa#actionTag> ;
        owl:someValuesFrom xsd:string
    ] ;
    vs:term_status "stable"^^xsd:string ;
    skos:example "(For a multipurpose robot) Guide, provide_information, pick, place" .

<https://w3id.org/todo/tododfa#Argument>
    a owl:Class ;
    rdfs:comment "Participant that is involved in the event described by the Frame. It can be Core (its presence is compulsory to convey the event) or Optional (its presence is not compulsory, but it adds additional information)." ;
    rdfs:isDefinedBy "https://w3id.org/todo/tododfa#" ;
    rdfs:label "Argument"@en ;
    rdfs:subClassOf [
        a owl:Restriction ;
        owl:onProperty <https://w3id.org/todo/tododfa#isArgumentOf> ;
        owl:someValuesFrom <https://w3id.org/todo/tododfa#Action>
    ], [
        a owl:Restriction ;
        owl:onProperty <https://w3id.org/todo/tododfa#argumentTag> ;
        owl:someValuesFrom xsd:string
    ] ;
    vs:term_status "stable"^^xsd:string ;
    skos:example """Frame: Losing

ArgumentSet:
* Owner [Core]
* Possession [Core]
* Place [Optional]
* Time [Optional]
...

For the sentence \"My mother lost her watch at home\":
\"[My mother - owner(C)] LOST [her watch - possession(C)] (at home - place (O))\""""@en .

<https://w3id.org/todo/tododfa#ArgumentSet>
    a owl:Class ;
    rdfs:comment "The group of Arguments that belong to a Frame."@en ;
    rdfs:isDefinedBy "https://w3id.org/todo/tododfa#" ;
    rdfs:label "ArgumentSet"@en ;
    rdfs:subClassOf [
        a owl:Restriction ;
        owl:onProperty <https://w3id.org/todo/tododfa#isArgumentSetOf> ;
        owl:someValuesFrom <https://w3id.org/todo/tododfa#Action>
    ] ;
    vs:term_status "stable"^^xsd:string ;
    skos:example """Frame: Losing

ArgumentSet:
* Owner [Core]
* Possession [Core]
* Place [Optional]
* Time [Optional]
...

For the sentence \"My mother lost her watch at home\":
\"[My mother - owner(C)] LOST [her watch - possession(C)] (at home - place (O))\""""@en .

<https://w3id.org/todo/tododfa#FomaGrammar>
    a owl:Class ;
    rdfs:comment "Grammar to be used by Foma to perform Key Element Extraction."@en ;
    rdfs:isDefinedBy "https://w3id.org/todo/tododfa#" ;
    rdfs:label "FomaGrammar"@en ;
    rdfs:subClassOf [
        a owl:Restriction ;
        owl:onProperty <https://w3id.org/todo/tododfa#isFomaGrammarOf> ;
        owl:someValuesFrom <https://w3id.org/todo/tododfa#Skill>
    ] ;
    vs:term_status "stable"^^xsd:string .

<https://w3id.org/todo/tododfa#Frame>
    a owl:Class ;
    rdfs:comment "A specific event or situation evoked by a specific word (FrameHead), along with its participants (Arguments)."@en ;
    rdfs:isDefinedBy "https://w3id.org/todo/tododfa#" ;
    rdfs:label "Frame"@en ;
    rdfs:subClassOf [
        a owl:Restriction ;
        owl:onProperty <https://w3id.org/todo/tododfa#isFrameOf> ;
        owl:someValuesFrom <https://w3id.org/todo/tododfa#Intent>
    ], [
        a owl:Restriction ;
        owl:onProperty <https://w3id.org/todo/tododfa#hasFrameHead> ;
        owl:someValuesFrom <https://w3id.org/todo/tododfa#FrameHead>
    ] ;
    vs:term_status "stable"^^xsd:string ;
    skos:example """Frame: Losing

FrameHead: lose (LexicalUnit: lose.v)

ArgumentSet:
* Owner [Core]
* Possession [Core]
* Place [Optional]
* Time [Optional]
...

For the sentence \"My mother lost her watch at home\":
\"[My mother - owner(C)] LOST [her watch - possession(C)] (at home - place (O))\""""@en .

<https://w3id.org/todo/tododfa#FrameHead>
    a owl:Class ;
    rdfs:comment "Word (or more than one) that evokes a specific situation or event, with its specific participants; that is, a frame. It is represented by one or more LexicalUnits."@en ;
    rdfs:isDefinedBy "https://w3id.org/todo/tododfa#" ;
    rdfs:label "FrameHead"@en ;
    rdfs:subClassOf [
        a owl:Restriction ;
        owl:onProperty <https://w3id.org/todo/tododfa#isFrameHeadOf> ;
        owl:someValuesFrom <https://w3id.org/todo/tododfa#Frame>
    ] ;
    vs:term_status "stable"^^xsd:string ;
    skos:example """Frame: Losing

FrameHead: lose (LexicalUnit: lose.v)

ArgumentSet:
* Owner [Core]
* Possession [Core]
* Place [Optional]
* Time [Optional]
...

For the sentence \"My mother lost her watch at home\":
\"[My mother - owner(C)] LOST [her watch - possession(C)] (at home - place (O))\""""@en .

<https://w3id.org/todo/tododfa#Intent>
    a owl:Class ;
    rdfs:comment "User intention when formulating a request."@en ;
    rdfs:isDefinedBy "https://w3id.org/todo/tododfa#" ;
    rdfs:label "Intent"@en ;
    rdfs:subClassOf [
        a owl:Restriction ;
        owl:onProperty <https://w3id.org/todo/tododfa#belongsToAction> ;
        owl:someValuesFrom <https://w3id.org/todo/tododfa#Action>
    ], [
        a owl:Restriction ;
        owl:onProperty <https://w3id.org/todo/tododfa#hasFrame> ;
        owl:someValuesFrom <https://w3id.org/todo/tododfa#Frame>
    ], [
        a owl:Restriction ;
        owl:onProperty <https://w3id.org/todo/tododfa#isIntentOf> ;
        owl:someValuesFrom <https://w3id.org/todo/tododfa#Skill>
    ] ;
    vs:term_status "stable"^^xsd:string ;
    skos:example """User request: \"I want information about Mona Lisa\"

Intent: receive_information"""@en .

<https://w3id.org/todo/tododfa#Skill>
    a owl:Class ;
    rdfs:comment "Element that makes reference to the capabilities of the target system." ;
    rdfs:isDefinedBy "https://w3id.org/todo/tododfa#" ;
    rdfs:label "Skill"@en ;
    rdfs:subClassOf [
        a owl:Restriction ;
        owl:onProperty <https://w3id.org/todo/tododfa#hasIntent> ;
        owl:someValuesFrom <https://w3id.org/todo/tododfa#Intent>
    ], [
        a owl:Restriction ;
        owl:onClass <https://w3id.org/todo/tododfa#FomaGrammar> ;
        owl:onProperty <https://w3id.org/todo/tododfa#hasFomaGrammar> ;
        owl:qualifiedCardinality "1"^^xsd:nonNegativeInteger
    ] ;
    vs:term_status "stable"^^xsd:string ;
    skos:example "(For a multipurpose robot) GuideRobot, RoboticArm" .

<https://w3id.org/todo/tododfa#actionTag>
    a owl:DatatypeProperty ;
    rdfs:comment "String that identifies the Action when invoked in a SystemRequest/Response (DomainONT)." ;
    rdfs:isDefinedBy "https://w3id.org/todo/tododfa" ;
    rdfs:label "actionTag" ;
    vs:term_status "stable" ;
    skos:example """System request: \"Do you need me to {argumentTag}?\"

Action: take_guideRobot
actionTag: \"take you somewhere\"

Resulting SysRequest: \"Do you need me to {take you somewhere}?\""""@en, """System request: \"Necesitas que {argumentTag}?\"

Action: take_guideRobot
actionTag: \"te lleve a algún lugar\"

Resulting SysRequest: \"Necesitas que {te lleve}?\""""@es .

<https://w3id.org/todo/tododfa#argumentConnector>
    a owl:DatatypeProperty ;
    rdfs:comment "String that defines the word that acts as a connector between the Argument and the rest of elements in a SystemRequest/Response." ;
    rdfs:isDefinedBy "https://w3id.org/todo/tododfa" ;
    rdfs:label "argumentConnector" ;
    vs:term_status "stable" ;
    skos:example """SystemRequest: Do you want me {actionTag}{argumentConnector}{WorldElement}?

Action: take_guideRobot
argumentConnector: \"to\"

\"Do you want me {to take you}{to}{the restroom}?\""""@en, """SystemRequest: ¿Necesitas que {actionTag}{argumentConnector}{WorldElement}?

Action: take_guideRobot
argumentConnector: \"a\"

\"¿Necesitas que {te lleve}{a}{la sala}?\""""@es .

<https://w3id.org/todo/tododfa#argumentTag>
    a owl:DatatypeProperty ;
    rdfs:comment "String that identifies the Argument when invoked in a SystemRequest/Response (DomainONT)" ;
    rdfs:isDefinedBy "https://w3id.org/todo/tododfa#" ;
    rdfs:label "argumentTag" ;
    vs:term_status "stable" ;
    skos:example """System request: \"I need to know {argumentTag}\"

Argument: destination_guideRobot
argumentTag: \"where do you want to go\"

Resulting SysRequest: \"I need to know {where do you want to go}\""""@en, """System request: \"Necesito saber {argumentTag}\"

Argument: destination_guideRobot
argumentTag: \"adónde quieres ir\"

Resulting SysRequest: \"Necesito saber {adónde quieres ir}\""""@es .

<https://w3id.org/todo/tododfa#belongsToAction>
    a owl:ObjectProperty ;
    rdfs:comment "Establishes the relation between an Intent and the Action it belongs to." ;
    rdfs:isDefinedBy "https://w3id.org/todo/tododfa#" ;
    rdfs:label "belongsToAction" ;
    owl:inverseOf <https://w3id.org/todo/tododfa#belongsToIntent> ;
    vs:term_status "stable" .

<https://w3id.org/todo/tododfa#belongsToIntent>
    a owl:ObjectProperty ;
    rdfs:comment "Establishes the relation between an Action and the Intent it belongs to." ;
    rdfs:isDefinedBy "https://w3id.org/todo/tododfa#" ;
    rdfs:label "belongsToIntent" ;
    vs:term_status "stable" .

<https://w3id.org/todo/tododfa#hasArgument>
    a owl:ObjectProperty ;
    rdfs:comment "Establishes a relation between an Action and its Argument(s)." ;
    rdfs:isDefinedBy "https://w3id.org/todo/tododfa#" ;
    rdfs:label "hasArgument" ;
    owl:inverseOf <https://w3id.org/todo/tododfa#isArgumentOf> ;
    vs:term_status "stable" .

<https://w3id.org/todo/tododfa#hasArgumentSet>
    a owl:FunctionalProperty, owl:ObjectProperty ;
    rdfs:comment "Establishes a relation between an Action and the set composed of its Argument(s)." ;
    rdfs:isDefinedBy "https://w3id.org/todo/tododfa#" ;
    rdfs:label "hasArgumentSet" ;
    owl:inverseOf <https://w3id.org/todo/tododfa#isArgumentSetOf> ;
    vs:term_status "stable" .

<https://w3id.org/todo/tododfa#hasCoreArgument>
    a owl:ObjectProperty ;
    rdfs:comment "Establishes a relation between an Action and its CoreArguments (i.e. the arguments that are compulsory in order to perform the Action)." ;
    rdfs:isDefinedBy "https://w3id.org/todo/tododfa#" ;
    rdfs:label "hasCoreArgument" ;
    rdfs:subPropertyOf <https://w3id.org/todo/tododfa#hasArgument> ;
    owl:inverseOf <https://w3id.org/todo/tododfa#isCoreArgumentOf> ;
    vs:term_status "stable" .

<https://w3id.org/todo/tododfa#hasFomaGrammar>
    a owl:FunctionalProperty, owl:ObjectProperty ;
    rdfs:comment "Establishes a relation between a Skill and the FomaGrammar to use to perform Key Element Extraction." ;
    rdfs:isDefinedBy "https://w3id.org/todo/tododfa#" ;
    rdfs:label "hasFomaGrammar" ;
    owl:inverseOf <https://w3id.org/todo/tododfa#isFomaGrammarOf> ;
    vs:term_status "stable" .

<https://w3id.org/todo/tododfa#hasFrame>
    a owl:ObjectProperty ;
    rdfs:comment "Establishes a relation between an Intent and its corresponding Frame." ;
    rdfs:isDefinedBy "https://w3id.org/todo/tododfa#" ;
    rdfs:label "hasFrame" ;
    owl:inverseOf <https://w3id.org/todo/tododfa#isFrameOf> ;
    vs:term_status "stable" .

<https://w3id.org/todo/tododfa#hasFrameHead>
    a owl:InverseFunctionalProperty, owl:ObjectProperty ;
    rdfs:comment "Establishes a relation between a Frame and its FrameHead." ;
    rdfs:isDefinedBy "https://w3id.org/todo/tododfa#" ;
    rdfs:label "hasFrameHead" ;
    owl:inverseOf <https://w3id.org/todo/tododfa#isFrameHeadOf> ;
    vs:term_status "stable" .

<https://w3id.org/todo/tododfa#hasIntent>
    a owl:ObjectProperty ;
    rdfs:comment "Establishes a relation between a Skill and its corresponding Intent(s)." ;
    rdfs:isDefinedBy "https://w3id.org/todo/tododfa#" ;
    rdfs:label "hasIntent" ;
    owl:inverseOf <https://w3id.org/todo/tododfa#isIntentOf> ;
    vs:term_status "stable" .

<https://w3id.org/todo/tododfa#hasOptionalArgument>
    a owl:ObjectProperty ;
    rdfs:comment "Establishes a relation between an Action and its OptionalArguments (i.e. the arguments that are not compulsory in order to perform the Action)." ;
    rdfs:isDefinedBy "https://w3id.org/todo/tododfa#" ;
    rdfs:label "hasOptionalArgument" ;
    rdfs:subPropertyOf <https://w3id.org/todo/tododfa#hasArgument> ;
    owl:inverseOf <https://w3id.org/todo/tododfa#isOptionalArgumentOf> ;
    vs:term_status "stable" .

<https://w3id.org/todo/tododfa#isArgumentOf>
    a owl:ObjectProperty ;
    rdfs:comment "Establishes a relation between an Argument and its corresponding Action." ;
    rdfs:isDefinedBy "https://w3id.org/todo/tododfa#" ;
    rdfs:label "isArgumentOf" ;
    vs:term_status "stable" .

<https://w3id.org/todo/tododfa#isArgumentSetOf>
    a owl:InverseFunctionalProperty, owl:ObjectProperty ;
    rdfs:comment "Establishes a relation between an ArgumentSet and the Action it corresponds to." ;
    rdfs:isDefinedBy "https://w3id.org/todo/tododfa#" ;
    rdfs:label "isArgumentSetOf" ;
    vs:term_status "stable" .

<https://w3id.org/todo/tododfa#isCoreArgumentOf>
    a owl:ObjectProperty ;
    rdfs:comment "Establishes a relation between a CoreArgument (i.e. the arguments that are compulsory in order to perform the Action) and its corresponding Action.", "https://w3id.org/todo/tododfa#" ;
    rdfs:label "isCoreArgumentOf" ;
    rdfs:subPropertyOf <https://w3id.org/todo/tododfa#isArgumentOf> ;
    vs:term_status "stable" .

<https://w3id.org/todo/tododfa#isFomaGrammarOf>
    a owl:InverseFunctionalProperty, owl:ObjectProperty ;
    rdfs:comment "Establishes a relation between the FomaGrammar to use to perform Key Element Extraction and a Skill.", "https://w3id.org/todo/tododfa#" ;
    rdfs:label "isFomaGrammarOf" ;
    vs:term_status "stable" .

<https://w3id.org/todo/tododfa#isFrameHeadOf>
    a owl:FunctionalProperty, owl:ObjectProperty ;
    rdfs:comment "Establishes a relation between a FrameHead and the Frame it applies to.", "https://w3id.org/todo/tododfa#" ;
    rdfs:label "isFrameHeadOf" ;
    vs:term_status "stable" .

<https://w3id.org/todo/tododfa#isFrameOf>
    a owl:ObjectProperty ;
    rdfs:comment "Establishes a relation between a Frame and the Intent it corresponds to.", "https://w3id.org/todo/tododfa#" ;
    rdfs:label "isFrameOf" ;
    vs:term_status "stable" .

<https://w3id.org/todo/tododfa#isIntentOf>
    a owl:ObjectProperty ;
    rdfs:comment "Establishes a relation between an Intent and its corresponding Skill." ;
    rdfs:isDefinedBy "https://w3id.org/todo/tododfa#" ;
    rdfs:label "isIntentOf" ;
    vs:term_status "stable" .

<https://w3id.org/todo/tododfa#isOptionalArgumentOf>
    a owl:ObjectProperty ;
    rdfs:comment "Establishes a relation between an Optional Argument (i.e. the arguments that are not compulsory in order to perform the Action) and its corresponding Action." ;
    rdfs:isDefinedBy "https://w3id.org/todo/tododfa#" ;
    rdfs:label "isOptionalArgumentOf" ;
    rdfs:subPropertyOf <https://w3id.org/todo/tododfa#isArgumentOf> ;
    vs:term_status "stable" .

[]
    a owl:AllDisjointClasses ;
    owl:members (<https://w3id.org/todo/tododfa#Action>
        <https://w3id.org/todo/tododfa#Argument>
        <https://w3id.org/todo/tododfa#ArgumentSet>
        <https://w3id.org/todo/tododfa#FomaGrammar>
        <https://w3id.org/todo/tododfa#Frame>
        <https://w3id.org/todo/tododfa#FrameHead>
        <https://w3id.org/todo/tododfa#Intent>
        <https://w3id.org/todo/tododfa#Skill>
    ) .

