Examples of expressing temporal instant and interval values

  1. OntoCommons project started on Wednesday, 1 September 2021 and ended on Saturday, 9 November 2024. It ran for 1165 days from the start date to the end date, but not including the end date or 3 years, 2 months, 8 days excluding the end date.

  • Model: The interval of OntoCommons project can be expressed in four different ways (as per “4.4.1 Means of specifying time intervals” in ISO8601). Although the screenshots below show the complete KG, in practice, the interval oc-period can be expressed:

    • by a start and an end: oc-period has only oc-start and oc-end.

    • by a duration and context information: oc-period has only oc-duration-exp-ymd.

    • by start and duration: oc-period has only oc-start and oc-duration-exp-ymd .

    • by end and duration: oc-period has only oc-end and oc-duration-exp-ymd.

Note: oc-period is expressed in two different ways, in years, months and days and in days by oc-duration-exp-ymd and oc-duration-exp-d respectively.

 

  • Expressing the duration in years, months, and days.

  • Expressing the duration in days only

  • Expressing the start instant

  • Expressing the end instant

  1. OntoCommons project ran from 2020 to 2023.

The start instant and end instant of the period can be expressed in any granularity. In the following, the oc-start and oc-end are expressed in year.

Source:

Querying the interval value:

  1. Query the duration of the OntoCommons project in by duration and context information as specified in “4.4.4.2.1 Format with designators” of ISO8601. In the following query the expression using type time:TimeDuration with unit type time:unitDay is used for the duration value expression.

PREFIX bfo: <http://purl.obolibrary.org/obo/> PREFIX dt: <http://www.semanticweb.org/arkop/ontologies/2023/7/untitled-ontology-307#> PREFIX iof: <https://spec.industrialontologies.org/ontology/core/Core/> PREFIX time: <http://www.w3.org/2006/time#> select ?duration where { BIND(dt:ontocommons-project as ?p) ?p bfo:BFO_0000199 ?int. ?int iof:hasValueExpressionAtAllTimes ?iex. ?iex a time:Duration; time:numericDuration ?v; time:unitType ?u. BIND(IF(?u = time:unitDay, CONCAT("P", STR(?v), "D"), IF(?u = time:unitMonth, CONCAT("P", STR(?v), "Y"), IF(?u = time:unitYear, CONCAT("P", STR(?v), "D"), "FORMAT NOT HANDLED"))) as ?duration) }
  1. Query the duration of the OntoCommons project by start and duration as specified in “4.4.4.3 Representations of time interval identified by start and duration” of ISO8601. In the following query the expression using type time:DurationDescription is used for the duration value expression.

PREFIX bfo: <http://purl.obolibrary.org/obo/> PREFIX dt: <http://www.semanticweb.org/arkop/ontologies/2023/7/untitled-ontology-307#> PREFIX iof: <https://spec.industrialontologies.org/ontology/core/Core/> PREFIX time: <http://www.w3.org/2006/time#> select ?start_duration where { BIND(dt:ontocommons-project as ?p) ?p bfo:BFO_0000199 ?int. ?int bfo:BFO_0000222 ?si; bfo:BFO_0000224 ?ei. ?si iof:hasValueExpressionAtAllTimes ?six. ?six a iof:TemporalInstantValueExpression; iof:hasDateTimeValue ?siv. ?int iof:hasValueExpressionAtAllTimes ?iex. ?iex a time:Duration; time:numericDuration ?v; time:unitType ?u. BIND(IF(?u = time:unitDay, CONCAT("P", STR(?v), "D"), IF(?u = time:unitMonth, CONCAT("P", STR(?v), "Y"), IF(?u = time:unitYear, CONCAT("P", STR(?v), "D"), "FORMAT NOT HANDLED"))) as ?duration) BIND(CONCAT(STR(?siv),"/", ?duration) as ?start_duration) }

 

  1. Query the duration of the OntoCommons project by duration and end as specified in “4.4.4.4 Representations of time interval identified by duration and end” of ISO8601. In the following query the expression using type time:DurationDescription is used for the duration value expression.

PREFIX bfo: <http://purl.obolibrary.org/obo/> PREFIX dt: <http://www.semanticweb.org/arkop/ontologies/2023/7/untitled-ontology-307#> PREFIX iof: <https://spec.industrialontologies.org/ontology/core/Core/> PREFIX time: <http://www.w3.org/2006/time#> select ?end_duration where { BIND(dt:ontocommons-project as ?p) ?p bfo:BFO_0000199 ?int. ?int bfo:BFO_0000222 ?si; bfo:BFO_0000224 ?ei. ?ei iof:hasValueExpressionAtAllTimes ?eix. ?eix a iof:TemporalInstantValueExpression; iof:hasDateTimeValue ?eiv. ?int iof:hasValueExpressionAtAllTimes ?iex. ?iex a time:Duration; time:numericDuration ?v; time:unitType ?u. BIND(IF(?u = time:unitDay, CONCAT("P", STR(?v), "D"), IF(?u = time:unitMonth, CONCAT("P", STR(?v), "Y"), IF(?u = time:unitYear, CONCAT("P", STR(?v), "D"), "FORMAT NOT HANDLED"))) as ?duration) BIND(CONCAT(?duration,"/",STR(?eiv)) as ?end_duration) }
  1. Query the duration of the OntoCommons project by start and end as specified in “4.4.4.1 Representations of time intervals identified by start and end” of ISO8601.