PREFIX datesandtimes: <https://www.omg.org/spec/Commons/DatesAndTimes/>
PREFIX rdf: <http://www.w3.org/1999/02/22-rdf-syntax-ns#>
PREFIX rdfs: <http://www.w3.org/2000/01/rdf-schema#>
PREFIX xsd: <http://www.w3.org/2001/XMLSchema#>

datesandtimes:Duration a rdfs:Class ;
  rdfs:label "duration" ;
  rdfs:comment "interval of time of some specific length" ;
  rdfs:subClassOf datesandtimes:TimeInterval .

datesandtimes:hasDurationValue a rdf:Property ;
  rdfs:label "has duration value" ;
  rdfs:comment "specifies a literal (explicit) duration (amount of time) captured in the format specified for xsd:duration (i.e., ISO 8601 format); the semantics are identical to those of xsd:duration" ;
  rdfs:domain datesandtimes:Duration ;
  rdfs:range xsd:string .

datesandtimes:DatePeriod a rdfs:Class ;
  rdfs:label "date period" ;
  rdfs:comment "time span over one or more calendar days" ;
  rdfs:subClassOf datesandtimes:TimeInterval .

datesandtimes:hasDuration a rdf:Property ;
  rdfs:label "has duration" ;
  rdfs:comment "specifies the time during which something continues" ;
  rdfs:range datesandtimes:Duration .

datesandtimes:hasStartDate a rdf:Property ;
  rdfs:label "has start date" ;
  rdfs:comment "indicates the initial date of something" ;
  rdfs:range datesandtimes:Date ;
  rdfs:subPropertyOf datesandtimes:hasDate .

datesandtimes:hasEndDate a rdf:Property ;
  rdfs:label "has end date" ;
  rdfs:comment "indicates the ending date of some date period" ;
  rdfs:range datesandtimes:Date ;
  rdfs:subPropertyOf datesandtimes:hasDate .

datesandtimes:ExplicitDatePeriod a rdfs:Class ;
  rdfs:label "explicit date period" ;
  rdfs:comment "date period for which the start date, end date, and/or duration are required" ;
  rdfs:subClassOf datesandtimes:DatePeriod , datesandtimes:ProperInterval .

datesandtimes:TimeOfDay a rdfs:Class ;
  rdfs:label "time of day" ;
  rdfs:comment "explicit time, according to a clock" ;
  rdfs:subClassOf datesandtimes:TimeInstant .

datesandtimes:hasTimeValue a rdf:Property ;
  rdfs:label "has time value" ;
  rdfs:comment "specifies an explicit time, captured in the format specified for xsd:time (i.e., ISO 8601 format), WITHOUT the date or timezone information" ;
  rdfs:range xsd:string .

datesandtimes:TimeInterval a rdfs:Class ;
  rdfs:label "time interval" ;
  rdfs:comment "segment of the time axis, a location in time, with an extent or duration" ;
  rdfs:subClassOf datesandtimes:TemporalEntity .

datesandtimes:DateTimeStamp a rdfs:Class ;
  rdfs:label "date time stamp" ;
  rdfs:comment "time point including a date and a time that requires a time zone offset" ;
  rdfs:subClassOf datesandtimes:TimeInstant .

datesandtimes:hasDateTimeStampValue a rdf:Property ;
  rdfs:label "has date time stamp value" ;
  rdfs:comment "specifies an actual literal (explicit) date and time, including the time zone" ;
  rdfs:range xsd:dateTimeStamp .

datesandtimes:Date a rdfs:Class ;
  rdfs:label "date" ;
  rdfs:comment "calendar day on some calendar" ;
  rdfs:subClassOf datesandtimes:TimeInstant .

datesandtimes:hasDateValue a rdf:Property ;
  rdfs:label "has date value" ;
  rdfs:comment "specifies an actual literal (explicit) date captured in the format specified for xsd:date (i.e., ISO 8601 format), WITHOUT the time or timezone information; the semantics are identical to those of xsd:date" ;
  rdfs:range xsd:string .

datesandtimes:ProperInterval a rdfs:Class ;
  rdfs:label "proper interval" ;
  rdfs:comment "time interval with a non-zero extent or duration" ;
  rdfs:subClassOf datesandtimes:TimeInterval .

datesandtimes:TemporalEntity a rdfs:Class ;
  rdfs:label "temporal entity" ;
  rdfs:comment "time interval or instant" ;
  rdfs:seeAlso <http://www.w3.org/2006/time#TemporalEntity> .

datesandtimes:ExplicitDate a rdfs:Class ;
  rdfs:label "explicit date" ;
  rdfs:comment "date in which the 'has date value' property is required" ;
  rdfs:subClassOf datesandtimes:Date .

datesandtimes:ExplicitDuration a rdfs:Class ;
  rdfs:label "explicit duration" ;
  rdfs:comment "duration for which the 'has duration value' property must have a value" ;
  rdfs:subClassOf datesandtimes:Duration , datesandtimes:ProperInterval .

<https://w3id.org/linkml/Any> a rdfs:Class ;
  rdfs:comment "An unconstrained type or object" .

datesandtimes:DateTime a rdfs:Class ;
  rdfs:label "date time" ;
  rdfs:comment "time point including a date and a time, optionally including a time zone offset" ;
  rdfs:subClassOf datesandtimes:TimeInstant .

datesandtimes:hasDateTimeValue a rdf:Property ;
  rdfs:label "has date time value" ;
  rdfs:comment "specifies an actual literal (explicit) date and time" ;
  rdfs:range xsd:dateTime .

datesandtimes:TimeInstant a rdfs:Class ;
  rdfs:label "time instant" ;
  rdfs:comment "temporal entity that is a member of a time scale, with no extent or duration" ;
  rdfs:subClassOf datesandtimes:TemporalEntity .

datesandtimes:hasDate a rdf:Property ;
  rdfs:label "has date" ;
  rdfs:comment "identifies a calendar day, month and year" ;
  rdfs:range datesandtimes:Date .

datesandtimes:hasDatePeriod a rdf:Property ;
  rdfs:label "has date period" ;
  rdfs:comment "identifies a specific window of time, including a start date, end date and/or duration" ;
  rdfs:range datesandtimes:DatePeriod .

datesandtimes:hasDateTime a rdf:Property ;
  rdfs:label "has date time" ;
  rdfs:comment "identifies a specific date and time of day, possibly excluding the time zone" ;
  rdfs:range datesandtimes:DateTime .

datesandtimes:hasDateTimeStamp a rdf:Property ;
  rdfs:label "has date time stamp" ;
  rdfs:comment "identifies a specific date and time of day, explicitly including the time zone" ;
  rdfs:range datesandtimes:DateTimeStamp .

datesandtimes:hasExplicitDate a rdf:Property ;
  rdfs:label "has explicit date" ;
  rdfs:comment "indicates a stated date, as opposed to a calculated or unknown date, associated with something" ;
  rdfs:range datesandtimes:ExplicitDate ;
  rdfs:subPropertyOf datesandtimes:hasDate .

datesandtimes:hasObservedDateTime a rdf:Property ;
  rdfs:label "has observed date and time" ;
  rdfs:comment "indicates a date and time associated with an event, measurement, record, or observation" ;
  rdfs:range datesandtimes:CombinedDateTime .

datesandtimes:precedes a rdf:Property ;
  rdfs:label "precedes" ;
  rdfs:comment "associates based on prior spatial or temporal proximity; occurs before in a logical order or sequence" ;
  rdfs:range <https://w3id.org/linkml/Any> .

datesandtimes:succeeds a rdf:Property ;
  rdfs:label "succeeds" ;
  rdfs:comment "associates based on subsequent spatial or temporal proximity; follows in a logical order or sequence" ;
  rdfs:range <https://w3id.org/linkml/Any> .

datesandtimes:CombinedDateTime a rdfs:Datatype ;
  rdfs:label "combined date time" ;
  rdfs:comment "datatype that maps to several base types for dates and times" .
