@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/timeindexedsituation.owl> a owl:Ontology;
  owl:versionInfo """1.0
- Revised, and added annotations for ODP publishing
0.1
- Created by Aldo Gangemi""",
    "1.1 added rdfs:isDefinedBy for all named entities";
  rdfs:comment "A generic pattern usable for all situations that require a temporal indexing."^^rdf:PlainLiteral;
  <http://www.ontologydesignpatterns.org/schemas/cpannotationschema.owl#hasAuthor> "Aldo Gangemi"^^rdf:PlainLiteral;
  <http://www.ontologydesignpatterns.org/schemas/cpannotationschema.owl#coversRequirements>
    "At what time did a certain situation occur?,What situations occurred at a certain time?"^^rdf:PlainLiteral;
  <http://www.ontologydesignpatterns.org/schemas/cpannotationschema.owl#scenarios> "Mustafa's address in 2005 was in Brussels"^^rdf:PlainLiteral;
  <http://www.ontologydesignpatterns.org/schemas/cpannotationschema.owl#hasUnitTest>
    """SELECT ?x ?e ?t
WHERE {
?x :forEntity ?e .
?x :atTime ?t }"""^^rdf:PlainLiteral;
  <http://www.ontologydesignpatterns.org/schemas/cpannotationschema.owl#isSpecializationOf>
    "Situation"^^rdf:PlainLiteral;
  <http://www.ontologydesignpatterns.org/schemas/cpannotationschema.owl#relatedCPs>
    "Time indexed participation,TimeIndexedClassification"^^rdf:PlainLiteral;
  <http://www.ontologydesignpatterns.org/schemas/cpannotationschema.owl#hasComponent>
    "TimeInterval"^^rdf:PlainLiteral;
  <http://www.ontologydesignpatterns.org/schemas/cpannotationschema.owl#hasIntent> "To represent time indexed situations."^^rdf:PlainLiteral;
  <http://www.ontologydesignpatterns.org/schemas/cpannotationschema.owl#hasConsequences>
    """We can represent situations that have an explicit time parameter.
In principle, this can be done already with the Situation pattern, but this provides a handy composition with the TimeInterval pattern."""^^rdf:PlainLiteral;
  owl:imports <http://www.ontologydesignpatterns.org/cp/owl/situation.owl>, <http://www.ontologydesignpatterns.org/cp/owl/timeinterval.owl>,
    <http://www.ontologydesignpatterns.org/schemas/cpannotationschema.owl> .

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

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

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

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

<http://www.ontologydesignpatterns.org/schemas/cpannotationschema.owl#hasComponent>
  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 .

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

rdfs:label a owl:AnnotationProperty .

rdfs:comment a owl:AnnotationProperty .

owl:versionInfo a owl:AnnotationProperty .

rdfs:isDefinedBy a owl:AnnotationProperty .

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

<http://www.ontologydesignpatterns.org/cp/owl/situation.owl#hasSetting> a owl:ObjectProperty .

<http://www.ontologydesignpatterns.org/cp/owl/situation.owl#isSettingFor> a owl:ObjectProperty .

<http://www.ontologydesignpatterns.org/cp/owl/timeindexedsituation.owl#atTime> a owl:ObjectProperty;
  rdfs:label "at time"@en;
  rdfs:isDefinedBy <http://www.ontologydesignpatterns.org/cp/owl/timeindexedsituation.owl>;
  rdfs:subPropertyOf <http://www.ontologydesignpatterns.org/cp/owl/situation.owl#isSettingFor>;
  rdfs:domain <http://www.ontologydesignpatterns.org/cp/owl/timeindexedsituation.owl#TimeIndexedSituation>;
  rdfs:range <http://www.ontologydesignpatterns.org/cp/owl/timeinterval.owl#TimeInterval> .

<http://www.ontologydesignpatterns.org/cp/owl/timeindexedsituation.owl#forEntity>
  a owl:ObjectProperty;
  rdfs:label "for entity"@en;
  rdfs:isDefinedBy <http://www.ontologydesignpatterns.org/cp/owl/timeindexedsituation.owl>;
  rdfs:subPropertyOf <http://www.ontologydesignpatterns.org/cp/owl/situation.owl#isSettingFor>;
  rdfs:domain <http://www.ontologydesignpatterns.org/cp/owl/timeindexedsituation.owl#TimeIndexedSituation>;
  rdfs:range owl:Thing .

<http://www.ontologydesignpatterns.org/cp/owl/timeindexedsituation.owl#hasTimeIndexedSetting>
  a owl:ObjectProperty;
  rdfs:label "has time indexed setting"@en;
  rdfs:isDefinedBy <http://www.ontologydesignpatterns.org/cp/owl/timeindexedsituation.owl>;
  rdfs:subPropertyOf <http://www.ontologydesignpatterns.org/cp/owl/situation.owl#hasSetting>;
  rdfs:range <http://www.ontologydesignpatterns.org/cp/owl/timeindexedsituation.owl#TimeIndexedSituation>;
  owl:inverseOf <http://www.ontologydesignpatterns.org/cp/owl/timeindexedsituation.owl#forEntity>;
  rdfs:domain owl:Thing .

<http://www.ontologydesignpatterns.org/cp/owl/timeindexedsituation.owl#isTimeIndexFor>
  a owl:ObjectProperty;
  rdfs:label "is time index for"@en;
  rdfs:isDefinedBy <http://www.ontologydesignpatterns.org/cp/owl/timeindexedsituation.owl>;
  rdfs:subPropertyOf <http://www.ontologydesignpatterns.org/cp/owl/situation.owl#hasSetting>;
  rdfs:range <http://www.ontologydesignpatterns.org/cp/owl/timeindexedsituation.owl#TimeIndexedSituation>;
  owl:inverseOf <http://www.ontologydesignpatterns.org/cp/owl/timeindexedsituation.owl#atTime>;
  rdfs:domain <http://www.ontologydesignpatterns.org/cp/owl/timeinterval.owl#TimeInterval> .

<http://www.ontologydesignpatterns.org/cp/owl/situation.owl#Situation> a owl:Class .

<http://www.ontologydesignpatterns.org/cp/owl/timeindexedsituation.owl#TimeIndexedSituation>
  a owl:Class;
  rdfs:label "Time indexed situation"@en;
  rdfs:subClassOf <http://www.ontologydesignpatterns.org/cp/owl/situation.owl#Situation>,
    _:a3bc, _:a3cc;
  rdfs:comment "A Situation that is explicitly indexed at some time for at least one entity.";
  rdfs:isDefinedBy <http://www.ontologydesignpatterns.org/cp/owl/timeindexedsituation.owl> .

_:a3bc a owl:Restriction;
  owl:onProperty <http://www.ontologydesignpatterns.org/cp/owl/timeindexedsituation.owl#atTime>;
  owl:minCardinality "1"^^xsd:nonNegativeInteger .

_:a3cc a owl:Restriction;
  owl:onProperty <http://www.ontologydesignpatterns.org/cp/owl/timeindexedsituation.owl#forEntity>;
  owl:minCardinality "1"^^xsd:nonNegativeInteger .

<http://www.ontologydesignpatterns.org/cp/owl/timeinterval.owl#TimeInterval> a owl:Class .

owl:Thing a owl:Class .
