@prefix :      <https://w3id.org/todo#> .
@prefix ns:    <http://creativecommons.org/ns#> .
@prefix owl:   <http://www.w3.org/2002/07/owl#> .
@prefix rdf:   <http://www.w3.org/1999/02/22-rdf-syntax-ns#> .
@prefix terms: <http://purl.org/dc/terms/> .
@prefix xsd:   <http://www.w3.org/2001/XMLSchema#> .
@prefix skos:  <http://www.w3.org/2004/02/skos/core#> .
@prefix rdfs:  <http://www.w3.org/2000/01/rdf-schema#> .
@prefix vann:  <http://purl.org/vocab/vann/> .
@prefix vs:    <http://www.w3.org/2003/06/sw-vocab-status/ns#> .

<https://w3id.org/todo>
        a                              owl:Ontology ;
        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              "With the aim of enhancing natural communication between workers in industrial environments and the systems to be used by them, TODO (Task-Oriented Dialogue management Ontology) has been developed to be the core of task-oriented dialogue systems. TODO is a core ontology that provides task-oriented dialogue systems with the necessary means to be capable of naturally interacting with workers (both at understanding and at ommunication levels) and that can be easily adapted to different industrial scenarios, reducing adaptation time and costs. Moreover, it allows to store and reproduce the dialogue process to be able to learn from new interactions."^^xsd:string ;
        terms:issued                   "" ;
        terms:modified                 "2021-09-23T10:00:00" ;
        terms:title                    "TODO: Task-Oriented Dialogue management Ontology"^^xsd:string ;
        vann:preferredNamespacePrefix  "todo" ;
        vann:preferredNamespaceUri     "https://w3id.org/todo"^^xsd:string ;
        owl:imports                    <https://w3id.org/todo/tododom> , <https://w3id.org/todo/tododial> ;
        owl:versionInfo                2.1 .

:hasActionTrace  a        owl:FunctionalProperty , owl:ObjectProperty ;
        rdfs:comment      "Establishes the relationship between an Action and its Trace" ;
        rdfs:isDefinedBy  "https://w3id.org/todo#" ;
        rdfs:label        "hasActionTrace" ;
        owl:inverseOf     :isActionTraceOf ;
        vs:term_status    "stable" .

:hasObtained  a           owl:InverseFunctionalProperty , owl:ObjectProperty ;
        rdfs:comment      "Establishes a relation between a SecondaryDialogue and the information (ActionTrace/ArgumentTrace/WorldElementTrace) that has been obtained thanks to it." ;
        rdfs:isDefinedBy  "https://w3id.org/todo#" ;
        rdfs:label        "hasObtained" ;
        owl:inverseOf     :obtainedThrough ;
        vs:term_status    "stable" .

<https://w3id.org/todo/tododom#WorldElementTrace>
        rdfs:subClassOf  [ a                   owl:Restriction ;
                           owl:onProperty      :obtainedThrough ;
                           owl:someValuesFrom  <https://w3id.org/todo/tododt#SecondaryDialogueTrace>
                         ] .

<https://w3id.org/todo/tododom#ActionTrace>
        a                owl:Class ;
        rdfs:subClassOf  [ a                   owl:Restriction ;
                           owl:onProperty      :obtainedThrough ;
                           owl:someValuesFrom  <https://w3id.org/todo/tododt#SecondaryDialogueTrace>
                         ] .

<https://w3id.org/todo/tododom#ArgumentTrace>
        rdfs:subClassOf  [ a                   owl:Restriction ;
                           owl:onProperty      :obtainedThrough ;
                           owl:someValuesFrom  <https://w3id.org/todo/tododt#SecondaryDialogueTrace>
                         ] .

:obtainedThrough  a       owl:FunctionalProperty , owl:ObjectProperty ;
        rdfs:comment      "Establishes a relation between a Trace (ActionTrace/ArgumentTrace/WorldElementTrace) and the SecondaryDialogue performed to obtain said Trace." ;
        rdfs:isDefinedBy  "https://w3id.org/todo#" ;
        rdfs:label        "obtainedThrough" ;
        vs:term_status    "stable" .

<https://w3id.org/todo/tododt#SecondaryDialogueTrace>
        rdfs:subClassOf  [ a                   owl:Restriction ;
                           owl:onProperty      :hasObtained ;
                           owl:someValuesFrom  <https://w3id.org/todo/tododom#WorldElementTrace>
                         ] ;
        rdfs:subClassOf  [ a                   owl:Restriction ;
                           owl:onProperty      :hasObtained ;
                           owl:someValuesFrom  <https://w3id.org/todo/tododom#ArgumentTrace>
                         ] ;
        rdfs:subClassOf  [ a                   owl:Restriction ;
                           owl:onProperty      :hasObtained ;
                           owl:someValuesFrom  <https://w3id.org/todo/tododom#ActionTrace>
                         ] .

:isActionTraceOf  a       owl:InverseFunctionalProperty , owl:ObjectProperty ;
        rdfs:comment      "Establishes the relationship between an ActionTrace and the Action it refers to." ;
        rdfs:isDefinedBy  "https://w3id.org/todo/todo" ;
        rdfs:label        "isActionTraceOf" ;
        vs:term_status    "stable" .

<https://w3id.org/todo/tododial#UserRequestTrace>
        a                owl:Class ;
        rdfs:subClassOf  [ a                   owl:Restriction ;
                           owl:onProperty      <https://w3id.org/todo/tododom#hasKeyElement> ;
                           owl:someValuesFrom  <https://w3id.org/todo/tododom#KeyElementTrace>
                         ] ;
        rdfs:subClassOf  [ a                   owl:Restriction ;
                           owl:onProperty      :hasActionTrace ;
                           owl:someValuesFrom  <https://w3id.org/todo/tododom#ActionTrace>
                         ] .
