@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/basicplandescription.owl> a owl:Ontology;
  owl:versionInfo "1.1 added rdfs:isDefinedBy for all named entities", "Created by Valentina Presutti";
  rdfs:comment "The basic plans description content ontology design pattern represents the conceptualization of a plan and the concepts that are included in such a conceptualization. This CP is the composition of other CPs: description, parameter, part of, and task role. Furthermore, it expands such CPs with ontology elements that are partial clones of elements from the DOCLE Ultra Lite and the Plans Lite ontologies."^^rdf:PlainLiteral;
  owl:imports <http://www.ontologydesignpatterns.org/cp/owl/description.owl>, <http://www.ontologydesignpatterns.org/cp/owl/parameter.owl>,
    <http://www.ontologydesignpatterns.org/cp/owl/partof.owl>, <http://www.ontologydesignpatterns.org/cp/owl/sequence.owl>,
    <http://www.ontologydesignpatterns.org/cp/owl/taskrole.owl>, <http://www.ontologydesignpatterns.org/schemas/cpannotationschema.owl> .

owl:versionInfo a owl:AnnotationProperty .

rdfs:isDefinedBy a owl:AnnotationProperty .

rdfs:label a owl:AnnotationProperty .

rdfs:comment a owl:AnnotationProperty .

<http://www.ontologydesignpatterns.org/cp/owl/basicplandescription.owl#definesRole>
  a owl:ObjectProperty;
  rdfs:label "defines role"@en, "definisce il ruolo"@it;
  rdfs:comment "A relation between a description and a role, e.g. the recipe for a cake defines the role 'ingredient'.";
  rdfs:isDefinedBy <http://www.ontologydesignpatterns.org/cp/owl/basicplandescription.owl>;
  owl:inverseOf <http://www.ontologydesignpatterns.org/cp/owl/basicplandescription.owl#isRoleDefinedIn>;
  rdfs:domain <http://www.ontologydesignpatterns.org/cp/owl/description.owl#Description>;
  rdfs:subPropertyOf <http://www.ontologydesignpatterns.org/cp/owl/description.owl#defines>,
    <http://www.ontologydesignpatterns.org/cp/owl/description.owl#usesConcept>;
  rdfs:range <http://www.ontologydesignpatterns.org/cp/owl/taskrole.owl#Role> .

<http://www.ontologydesignpatterns.org/cp/owl/basicplandescription.owl#definesTask>
  a owl:ObjectProperty;
  rdfs:label "defines task"@en, "definisce il task"@it;
  rdfs:comment "A relation between a description and a task, e.g. the recipe for a cake defines the task 'boil'.";
  rdfs:isDefinedBy <http://www.ontologydesignpatterns.org/cp/owl/basicplandescription.owl>;
  owl:inverseOf <http://www.ontologydesignpatterns.org/cp/owl/basicplandescription.owl#isTaskDefinedIn>;
  rdfs:domain <http://www.ontologydesignpatterns.org/cp/owl/description.owl#Description>;
  rdfs:subPropertyOf <http://www.ontologydesignpatterns.org/cp/owl/description.owl#defines>,
    <http://www.ontologydesignpatterns.org/cp/owl/description.owl#usesConcept>;
  rdfs:range <http://www.ontologydesignpatterns.org/cp/owl/taskrole.owl#Task> .

<http://www.ontologydesignpatterns.org/cp/owl/basicplandescription.owl#hasMainGoal>
  a owl:ObjectProperty;
  rdfs:isDefinedBy <http://www.ontologydesignpatterns.org/cp/owl/.owl>;
  rdfs:range <http://www.ontologydesignpatterns.org/cp/owl/basicplandescription.owl#Goal>;
  rdfs:domain <http://www.ontologydesignpatterns.org/cp/owl/basicplandescription.owl#Plan>;
  owl:inverseOf <http://www.ontologydesignpatterns.org/cp/owl/basicplandescription.owl#isMainGoalIn> .

<http://www.ontologydesignpatterns.org/cp/owl/basicplandescription.owl#isMainGoalIn>
  a owl:ObjectProperty;
  rdfs:comment "A main goal can be defined as a goal that is part of a plan but not of one of its subplans. The characteristic axiom cannot be formalized in OWL-DL (it requires coreference).";
  rdfs:isDefinedBy <http://www.ontologydesignpatterns.org/cp/owl/.owl>;
  rdfs:domain <http://www.ontologydesignpatterns.org/cp/owl/basicplandescription.owl#Goal>;
  rdfs:range <http://www.ontologydesignpatterns.org/cp/owl/basicplandescription.owl#Plan> .

<http://www.ontologydesignpatterns.org/cp/owl/basicplandescription.owl#isRoleDefinedIn>
  a owl:ObjectProperty;
  rdfs:label "is role defined in"@en, "è un ruolo definito in"@it;
  rdfs:comment "A relation between a description and a role, e.g. the role 'Ingredient' is defined in the recipe for a cake.";
  rdfs:isDefinedBy <http://www.ontologydesignpatterns.org/cp/owl/.owl>;
  rdfs:range <http://www.ontologydesignpatterns.org/cp/owl/description.owl#Description>;
  rdfs:subPropertyOf <http://www.ontologydesignpatterns.org/cp/owl/description.owl#isConceptUsedIn>,
    <http://www.ontologydesignpatterns.org/cp/owl/description.owl#isDefinedIn>;
  rdfs:domain <http://www.ontologydesignpatterns.org/cp/owl/taskrole.owl#Role> .

<http://www.ontologydesignpatterns.org/cp/owl/basicplandescription.owl#isTaskDefinedIn>
  a owl:ObjectProperty;
  rdfs:label "is task defined in"@en, "è un task definito in"@it;
  rdfs:comment "A relation between a description and a task, e.g. the task 'boil' is defined in a recipe for a cake.";
  rdfs:isDefinedBy <http://www.ontologydesignpatterns.org/cp/owl/.owl>;
  rdfs:range <http://www.ontologydesignpatterns.org/cp/owl/description.owl#Description>;
  rdfs:subPropertyOf <http://www.ontologydesignpatterns.org/cp/owl/description.owl#isConceptUsedIn>,
    <http://www.ontologydesignpatterns.org/cp/owl/description.owl#isDefinedIn>;
  rdfs:domain <http://www.ontologydesignpatterns.org/cp/owl/taskrole.owl#Task> .

<http://www.ontologydesignpatterns.org/cp/owl/description.owl#defines> a owl:ObjectProperty .

<http://www.ontologydesignpatterns.org/cp/owl/description.owl#isConceptUsedIn> a owl:ObjectProperty .

<http://www.ontologydesignpatterns.org/cp/owl/description.owl#isDefinedIn> a owl:ObjectProperty .

<http://www.ontologydesignpatterns.org/cp/owl/description.owl#usesConcept> a owl:ObjectProperty .

<http://www.ontologydesignpatterns.org/cp/owl/partof.owl#hasPart> a owl:ObjectProperty .

<http://www.ontologydesignpatterns.org/cp/owl/sequence.owl#follows> a owl:ObjectProperty .

<http://www.ontologydesignpatterns.org/cp/owl/sequence.owl#precedes> a owl:ObjectProperty .

<http://www.ontologydesignpatterns.org/cp/owl/basicplandescription.owl#Goal> a owl:Class;
  rdfs:label "Scopo"@it;
  rdfs:subClassOf <http://www.ontologydesignpatterns.org/cp/owl/description.owl#Description>;
  rdfs:comment "The Description of a Situation that is desired by an Agent, and usually associated to a Plan that describes how to actually achieve it";
  rdfs:isDefinedBy <http://www.ontologydesignpatterns.org/cp/owl/basicplandescription.owl> .

<http://www.ontologydesignpatterns.org/cp/owl/basicplandescription.owl#Plan> a owl:Class;
  rdfs:label "Piano"@it;
  rdfs:subClassOf <http://www.ontologydesignpatterns.org/cp/owl/description.owl#Description>,
    _:5090, _:50a0, _:50b0, _:50c0, _:50d0;
  rdfs:comment "A Description having an explicit Goal, to be achieved by executing the plan";
  rdfs:isDefinedBy <http://www.ontologydesignpatterns.org/cp/owl/basicplandescription.owl> .

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

_:50a0 a owl:Restriction;
  owl:onProperty <http://www.ontologydesignpatterns.org/cp/owl/partof.owl#hasPart>;
  owl:someValuesFrom <http://www.ontologydesignpatterns.org/cp/owl/basicplandescription.owl#Goal> .

_:50b0 a owl:Restriction;
  owl:onProperty <http://www.ontologydesignpatterns.org/cp/owl/basicplandescription.owl#hasMainGoal>;
  owl:maxCardinality "1"^^xsd:nonNegativeInteger .

_:50c0 a owl:Restriction;
  owl:onProperty <http://www.ontologydesignpatterns.org/cp/owl/basicplandescription.owl#definesTask>;
  owl:allValuesFrom <http://www.ontologydesignpatterns.org/cp/owl/taskrole.owl#Task> .

_:50d0 a owl:Restriction;
  owl:onProperty <http://www.ontologydesignpatterns.org/cp/owl/basicplandescription.owl#hasMainGoal>;
  owl:allValuesFrom <http://www.ontologydesignpatterns.org/cp/owl/basicplandescription.owl#Goal> .

<http://www.ontologydesignpatterns.org/cp/owl/description.owl#Concept> a owl:Class;
  owl:equivalentClass <http://www.ontologydesignpatterns.org/cp/owl/parameter.owl#Concept> .

<http://www.ontologydesignpatterns.org/cp/owl/description.owl#Description> a owl:Class .

<http://www.ontologydesignpatterns.org/cp/owl/parameter.owl#Concept> a owl:Class .

<http://www.ontologydesignpatterns.org/cp/owl/taskrole.owl#Role> a owl:Class;
  rdfs:subClassOf <http://www.ontologydesignpatterns.org/cp/owl/description.owl#Concept>,
    _:50e0 .

_:50e0 a owl:Restriction;
  owl:onProperty <http://www.ontologydesignpatterns.org/cp/owl/basicplandescription.owl#isRoleDefinedIn>;
  owl:allValuesFrom <http://www.ontologydesignpatterns.org/cp/owl/basicplandescription.owl#Plan> .

<http://www.ontologydesignpatterns.org/cp/owl/taskrole.owl#Task> a owl:Class;
  rdfs:subClassOf <http://www.ontologydesignpatterns.org/cp/owl/description.owl#Concept>,
    _:50f0, _:5100, _:5110 .

_:50f0 a owl:Restriction;
  owl:onProperty <http://www.ontologydesignpatterns.org/cp/owl/sequence.owl#precedes>;
  owl:allValuesFrom <http://www.ontologydesignpatterns.org/cp/owl/taskrole.owl#Task> .

_:5100 a owl:Restriction;
  owl:onProperty <http://www.ontologydesignpatterns.org/cp/owl/basicplandescription.owl#isTaskDefinedIn>;
  owl:allValuesFrom <http://www.ontologydesignpatterns.org/cp/owl/basicplandescription.owl#Plan> .

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

owl:Thing a owl:Class .
