@base <http://www.w3.org/2006/time-entry> .
@prefix rdf: <../1999/02/22-rdf-syntax-ns#> .
@prefix : <#> .
@prefix tzont: <timezone#> .
@prefix owl: <../2002/07/owl#> .
@prefix rdfs: <../2000/01/rdf-schema#> .
@prefix xsd: <../2001/XMLSchema#> .

<>
    a owl:Ontology ;
    rdfs:comment """
      An entry sub-ontology of time (OWL-Time).
    """ ;
    rdfs:seeAlso <../TR/owl-time> .

:CalendarClockDescription
    a owl:Class ;
    rdfs:subClassOf [
        a owl:Restriction ;
        owl:cardinality "1"^^xsd:nonNegativeInteger ;
        owl:onProperty :unitType
    ], [
        a owl:Restriction ;
        owl:maxCardinality "1"^^xsd:nonNegativeInteger ;
        owl:onProperty :year
    ], [
        a owl:Restriction ;
        owl:maxCardinality "1"^^xsd:nonNegativeInteger ;
        owl:onProperty :month
    ], [
        a owl:Restriction ;
        owl:maxCardinality "1"^^xsd:nonNegativeInteger ;
        owl:onProperty :week
    ], [
        a owl:Restriction ;
        owl:maxCardinality "1"^^xsd:nonNegativeInteger ;
        owl:onProperty :day
    ], [
        a owl:Restriction ;
        owl:maxCardinality "1"^^xsd:nonNegativeInteger ;
        owl:onProperty :dayOfWeekField
    ], [
        a owl:Restriction ;
        owl:maxCardinality "1"^^xsd:nonNegativeInteger ;
        owl:onProperty :dayOfYearField
    ], [
        a owl:Restriction ;
        owl:maxCardinality "1"^^xsd:nonNegativeInteger ;
        owl:onProperty :hour
    ], [
        a owl:Restriction ;
        owl:maxCardinality "1"^^xsd:nonNegativeInteger ;
        owl:onProperty :minute
    ], [
        a owl:Restriction ;
        owl:maxCardinality "1"^^xsd:nonNegativeInteger ;
        owl:onProperty :second
    ], [
        a owl:Restriction ;
        owl:maxCardinality "1"^^xsd:nonNegativeInteger ;
        owl:onProperty :timeZone
    ] .

:CalendarClockInterval
    a owl:Class ;
    rdfs:subClassOf :ProperInterval .

:DurationDescription
    a owl:Class ;
    rdfs:subClassOf [
        a owl:Restriction ;
        owl:maxCardinality "1"^^xsd:nonNegativeInteger ;
        owl:onProperty :years
    ], [
        a owl:Restriction ;
        owl:maxCardinality "1"^^xsd:nonNegativeInteger ;
        owl:onProperty :months
    ], [
        a owl:Restriction ;
        owl:maxCardinality "1"^^xsd:nonNegativeInteger ;
        owl:onProperty :weeks
    ], [
        a owl:Restriction ;
        owl:maxCardinality "1"^^xsd:nonNegativeInteger ;
        owl:onProperty :days
    ], [
        a owl:Restriction ;
        owl:maxCardinality "1"^^xsd:nonNegativeInteger ;
        owl:onProperty :hours
    ], [
        a owl:Restriction ;
        owl:maxCardinality "1"^^xsd:nonNegativeInteger ;
        owl:onProperty :minutes
    ], [
        a owl:Restriction ;
        owl:maxCardinality "1"^^xsd:nonNegativeInteger ;
        owl:onProperty :seconds
    ] .

:Event
    a owl:Class ;
    rdfs:subClassOf :TemporalThing ;
    owl:unionOf (:InstantEvent
        :IntervalEvent
    ) .

:Instant
    a owl:Class ;
    rdfs:subClassOf :InstantThing, :TemporalEntity .

:InstantEvent
    a owl:Class ;
    rdfs:subClassOf :Event, :InstantThing .

:InstantThing
    a owl:Class ;
    rdfs:subClassOf :TemporalThing ;
    owl:unionOf (:Instant
        :InstantEvent
    ) .

:InstantThingPair
    a owl:Class ;
    rdfs:subClassOf [
        a owl:Restriction ;
        owl:maxCardinality "1"^^xsd:nonNegativeInteger ;
        owl:onProperty :firstInstantThing
    ], [
        a owl:Restriction ;
        owl:maxCardinality "1"^^xsd:nonNegativeInteger ;
        owl:onProperty :secondInstantThing
    ] .

:Interval
    a owl:Class ;
    rdfs:subClassOf :IntervalThing, :TemporalEntity .

:IntervalEvent
    a owl:Class ;
    rdfs:subClassOf :Event, :IntervalThing .

:IntervalThing
    a owl:Class ;
    rdfs:subClassOf :TemporalThing ;
    owl:unionOf (:Interval
        :IntervalEvent
    ) .

:ProperInterval
    a owl:Class ;
    rdfs:subClassOf :Interval, :ProperIntervalThing ;
    owl:disjointWith :Instant .

:ProperIntervalThing
    a owl:Class ;
    rdfs:subClassOf :IntervalThing ;
    owl:disjointWith :InstantThing .

:TemporalEntity
    a owl:Class ;
    rdfs:subClassOf :TemporalThing ;
    owl:unionOf (:Instant
        :Interval
    ) .

:TemporalThing
    a owl:Class ;
    owl:unionOf (:InstantThing
        :IntervalThing
    ) .

:TemporalUnit
    a owl:Class ;
    owl:oneOf (:unitSecond
        :unitMinute
        :unitHour
        :unitDay
        :unitWeek
        :unitMonth
        :unitYear
    ) .

:after
    a owl:ObjectProperty ;
    owl:inverseOf :before .

:before
    a owl:ObjectProperty, owl:TransitiveProperty ;
    rdfs:domain :TemporalThing ;
    rdfs:range :TemporalThing .

:begins
    a owl:FunctionalProperty, owl:ObjectProperty ;
    rdfs:domain :TemporalThing ;
    rdfs:range :InstantThing .

:calendarClockDescriptionDataType
    a owl:DatatypeProperty ;
    rdfs:domain :CalendarClockInterval ;
    rdfs:range xsd:dateTime .

:calendarClockDescriptionOf
    a owl:ObjectProperty ;
    rdfs:domain :CalendarClockInterval ;
    rdfs:range :CalendarClockDescription .

:day
    a owl:DatatypeProperty ;
    rdfs:domain :CalendarClockDescription ;
    rdfs:range xsd:gDay .

:dayOfWeekField
    a owl:DatatypeProperty ;
    rdfs:domain :CalendarClockDescription ;
    rdfs:range xsd:nonNegativeInteger .

:dayOfYearField
    a owl:DatatypeProperty ;
    rdfs:domain :CalendarClockDescription ;
    rdfs:range xsd:nonNegativeInteger .

:days
    a owl:DatatypeProperty ;
    rdfs:domain :DurationDescription ;
    rdfs:range xsd:decimal .

:durationDescriptionDataType
    a owl:DatatypeProperty ;
    rdfs:domain :TemporalThing ;
    rdfs:range xsd:duration .

:durationDescriptionOf
    a owl:ObjectProperty ;
    rdfs:domain :TemporalThing ;
    rdfs:range :DurationDescription .

:ends
    a owl:FunctionalProperty, owl:ObjectProperty ;
    rdfs:domain :TemporalThing ;
    rdfs:range :InstantThing .

:firstInstantThing
    a owl:ObjectProperty ;
    rdfs:domain :InstantThingPair ;
    rdfs:range :InstantThing .

:hour
    a owl:DatatypeProperty ;
    rdfs:domain :CalendarClockDescription ;
    rdfs:range xsd:nonNegativeInteger .

:hours
    a owl:DatatypeProperty ;
    rdfs:domain :DurationDescription ;
    rdfs:range xsd:decimal .

:inCalendarClock
    a owl:ObjectProperty ;
    rdfs:domain :InstantThing ;
    rdfs:range :CalendarClockDescription .

:inCalendarClockDataType
    a owl:DatatypeProperty ;
    rdfs:domain :InstantThing ;
    rdfs:range xsd:dateTime .

:inside
    a owl:ObjectProperty ;
    rdfs:domain :IntervalThing ;
    rdfs:range :InstantThing .

:instantPairDurationDescriptionDataType
    a owl:DatatypeProperty ;
    rdfs:domain :InstantThingPair ;
    rdfs:range xsd:duration .

:instantPairDurationDescriptionOf
    a owl:ObjectProperty ;
    rdfs:domain :InstantThingPair ;
    rdfs:range :DurationDescription .

:intAfter
    a owl:ObjectProperty ;
    rdfs:subPropertyOf :nonoverlap ;
    owl:inverseOf :intBefore .

:intBefore
    a owl:ObjectProperty ;
    rdfs:domain :ProperIntervalThing ;
    rdfs:range :ProperIntervalThing ;
    rdfs:subPropertyOf :before, :nonoverlap .

:intContains
    a owl:ObjectProperty ;
    owl:inverseOf :intDuring .

:intDuring
    a owl:ObjectProperty ;
    rdfs:domain :ProperIntervalThing ;
    rdfs:range :ProperIntervalThing ;
    rdfs:subPropertyOf :startsOrDuring .

:intEquals
    a owl:ObjectProperty ;
    rdfs:domain :ProperIntervalThing ;
    rdfs:range :ProperIntervalThing .

:intFinishedBy
    a owl:ObjectProperty ;
    owl:inverseOf :intFinishes .

:intFinishes
    a owl:ObjectProperty ;
    rdfs:domain :ProperIntervalThing ;
    rdfs:range :ProperIntervalThing .

:intMeets
    a owl:ObjectProperty ;
    rdfs:domain :ProperIntervalThing ;
    rdfs:range :ProperIntervalThing ;
    rdfs:subPropertyOf :nonoverlap .

:intMetBy
    a owl:ObjectProperty ;
    rdfs:subPropertyOf :nonoverlap ;
    owl:inverseOf :intMeets .

:intOverlappedBy
    a owl:ObjectProperty ;
    owl:inverseOf :intOverlaps .

:intOverlaps
    a owl:ObjectProperty ;
    rdfs:domain :ProperIntervalThing ;
    rdfs:range :ProperIntervalThing .

:intStartedBy
    a owl:ObjectProperty ;
    owl:inverseOf :intStarts .

:intStarts
    a owl:ObjectProperty ;
    rdfs:domain :ProperIntervalThing ;
    rdfs:range :ProperIntervalThing ;
    rdfs:subPropertyOf :startsOrDuring .

:minute
    a owl:DatatypeProperty ;
    rdfs:domain :CalendarClockDescription ;
    rdfs:range xsd:nonNegativeInteger .

:minutes
    a owl:DatatypeProperty ;
    rdfs:domain :DurationDescription ;
    rdfs:range xsd:decimal .

:month
    a owl:DatatypeProperty ;
    rdfs:domain :CalendarClockDescription ;
    rdfs:range xsd:gMonth .

:months
    a owl:DatatypeProperty ;
    rdfs:domain :DurationDescription ;
    rdfs:range xsd:decimal .

:nonoverlap
    a owl:ObjectProperty ;
    rdfs:domain :ProperIntervalThing ;
    rdfs:range :ProperIntervalThing .

:second
    a owl:DatatypeProperty ;
    rdfs:domain :CalendarClockDescription ;
    rdfs:range xsd:decimal .

:secondInstantThing
    a owl:ObjectProperty ;
    rdfs:domain :InstantThingPair ;
    rdfs:range :InstantThing .

:seconds
    a owl:DatatypeProperty ;
    rdfs:domain :DurationDescription ;
    rdfs:range xsd:decimal .

:startsOrDuring
    a owl:ObjectProperty ;
    rdfs:domain :ProperIntervalThing ;
    rdfs:range :ProperIntervalThing .

:timeZone
    a owl:ObjectProperty ;
    rdfs:domain :CalendarClockDescription ;
    rdfs:range tzont:TimeZone .

:unitDay
    a :TemporalUnit .

:unitHour
    a :TemporalUnit .

:unitMinute
    a :TemporalUnit .

:unitMonth
    a :TemporalUnit .

:unitSecond
    a :TemporalUnit .

:unitType
    a owl:ObjectProperty ;
    rdfs:domain :CalendarClockDescription ;
    rdfs:range :TemporalUnit .

:unitWeek
    a :TemporalUnit .

:unitYear
    a :TemporalUnit .

:week
    a owl:DatatypeProperty ;
    rdfs:domain :CalendarClockDescription ;
    rdfs:range xsd:nonNegativeInteger .

:weeks
    a owl:DatatypeProperty ;
    rdfs:domain :DurationDescription ;
    rdfs:range xsd:decimal .

:year
    a owl:DatatypeProperty ;
    rdfs:domain :CalendarClockDescription ;
    rdfs:range xsd:gYear .

:years
    a owl:DatatypeProperty ;
    rdfs:domain :DurationDescription ;
    rdfs:range xsd:decimal .

tzont:TimeZone
    a owl:Class .

