@prefix rdf: <http://www.w3.org/1999/02/22-rdf-syntax-ns#> .
@prefix owl: <http://www.w3.org/2002/07/owl#> .
@prefix rdfs: <http://www.w3.org/2000/01/rdf-schema#> .
@prefix xml: <http://www.w3.org/XML/1998/namespace> .
@prefix xsd: <http://www.w3.org/2001/XMLSchema#> .

<http://www.ontologydesignpatterns.org/cp/owl/taskrole.owl> a owl:Ontology;
  rdfs:label "role task"^^rdf:PlainLiteral, "task role"^^rdf:PlainLiteral;
  owl:versionInfo "1.1 added rdfs:isDefinedBy for all named entities", "Created by Valentina Presutti";
  rdfs:comment """The task role pattern. 
This pattern is extracted from DOLCE-UltraLite by partial clone of elements."""^^rdf:PlainLiteral;
  <http://www.ontologydesignpatterns.org/schemas/cpannotationschema.owl#relatedCPs>
    "This CP is typically composed with the http://www.ontologydesignpatterns.org/cp/owl/agentrole.owl CP, or http://www.ontologydesignpatterns.org/cp/owl/timeindexedpersonrole.owl CP. It is a component of the http://www.ontologydesignpatterns.org/cp/owl/basicplandescription.owl CP"^^rdf:PlainLiteral;
  <http://www.ontologydesignpatterns.org/schemas/cpannotationschema.owl#hasConsequences>
    "This pattern allows to put roles in the domain of discourse. It does not allow to model time indexed task assignement."^^rdf:PlainLiteral;
  <http://www.ontologydesignpatterns.org/schemas/cpannotationschema.owl#hasIntent> "To represent the assignment of tasks to roles"^^rdf:PlainLiteral;
  <http://www.ontologydesignpatterns.org/schemas/cpannotationschema.owl#coversRequirements>
    "What roles are this task of?, What tasks do have this role?"^^rdf:PlainLiteral;
  <http://www.ontologydesignpatterns.org/schemas/cpannotationschema.owl#extractedFrom>
    "http://www.ontologydesignpatterns.org/ont/dul/DUL.owl"^^rdf:PlainLiteral;
  <http://www.ontologydesignpatterns.org/schemas/cpannotationschema.owl#scenarios> "students have the duty of giving exams"^^rdf:PlainLiteral;
  owl:imports <http://www.ontologydesignpatterns.org/schemas/cpannotationschema.owl> .

owl:versionInfo a owl:AnnotationProperty .

<http://www.ontologydesignpatterns.org/schemas/cpannotationschema.owl#hasConsequences>
  a owl:AnnotationProperty .

<http://www.ontologydesignpatterns.org/schemas/cpannotationschema.owl#scenarios> a
    owl:AnnotationProperty .

<http://www.ontologydesignpatterns.org/schemas/cpannotationschema.owl#extractedFrom>
  a owl:AnnotationProperty .

rdfs:isDefinedBy a owl:AnnotationProperty .

<http://www.ontologydesignpatterns.org/schemas/cpannotationschema.owl#coversRequirements>
  a owl:AnnotationProperty .

<http://www.ontologydesignpatterns.org/schemas/cpannotationschema.owl#hasIntent> a
    owl:AnnotationProperty .

rdfs:label a owl:AnnotationProperty .

rdfs:comment a owl:AnnotationProperty .

<http://www.ontologydesignpatterns.org/schemas/cpannotationschema.owl#relatedCPs>
  a owl:AnnotationProperty .

<http://www.ontologydesignpatterns.org/cp/owl/taskrole.owl#hasTask> a owl:ObjectProperty;
  rdfs:label "has target"@en, "ha come obiettivo"@it;
  rdfs:comment "A relation between roles and tasks, e.g. 'students have the duty of giving exams' (i.e. the Role 'student' hasTask the Task 'giving exams').";
  rdfs:isDefinedBy <http://www.ontologydesignpatterns.org/cp/owl/taskrole.owl>;
  rdfs:domain <http://www.ontologydesignpatterns.org/cp/owl/taskrole.owl#Role>;
  rdfs:range <http://www.ontologydesignpatterns.org/cp/owl/taskrole.owl#Task> .

<http://www.ontologydesignpatterns.org/cp/owl/taskrole.owl#isTaskOf> a owl:ObjectProperty;
  rdfs:label "is a target for"@en, "è un obiettivo per"@it;
  rdfs:comment "A relation between roles and tasks, e.g. 'students have the duty of giving exams' (i.e. the Role 'student' hasTask the Task 'giving exams').";
  rdfs:isDefinedBy <http://www.ontologydesignpatterns.org/cp/owl/taskrole.owl>;
  rdfs:range <http://www.ontologydesignpatterns.org/cp/owl/taskrole.owl#Role>;
  rdfs:domain <http://www.ontologydesignpatterns.org/cp/owl/taskrole.owl#Task>;
  owl:inverseOf <http://www.ontologydesignpatterns.org/cp/owl/taskrole.owl#hasTask> .

<http://www.ontologydesignpatterns.org/cp/owl/taskrole.owl#Role> a owl:Class;
  rdfs:label "Role"@en, "Ruolo"@it;
  rdfs:subClassOf _:46569;
  owl:disjointWith <http://www.ontologydesignpatterns.org/cp/owl/taskrole.owl#Task>;
  rdfs:comment "A concept that classifies an object. For example, the role developer classifies a person, the role server classifies a computer machine.  A hasTask only Tasks.";
  rdfs:isDefinedBy <http://www.ontologydesignpatterns.org/cp/owl/taskrole.owl> .

_:46569 a owl:Restriction;
  owl:onProperty <http://www.ontologydesignpatterns.org/cp/owl/taskrole.owl#hasTask>;
  owl:allValuesFrom <http://www.ontologydesignpatterns.org/cp/owl/taskrole.owl#Task> .

<http://www.ontologydesignpatterns.org/cp/owl/taskrole.owl#Task> a owl:Class;
  rdfs:label "Task"@en, "Task"@it;
  rdfs:subClassOf _:46579;
  rdfs:comment "A piece of work to be done or undertaken. A Task is assigned to only Roles through the property isTaskOf.";
  rdfs:isDefinedBy <http://www.ontologydesignpatterns.org/cp/owl/taskrole.owl> .

_:46579 a owl:Restriction;
  owl:onProperty <http://www.ontologydesignpatterns.org/cp/owl/taskrole.owl#isTaskOf>;
  owl:allValuesFrom <http://www.ontologydesignpatterns.org/cp/owl/taskrole.owl#Role> .
