Skip to main content
Engineering LibreTexts

11.2: Time and Temporal Ontologies

  • Page ID
  • \( \newcommand{\vecs}[1]{\overset { \scriptstyle \rightharpoonup} {\mathbf{#1}} } \)

    \( \newcommand{\vecd}[1]{\overset{-\!-\!\rightharpoonup}{\vphantom{a}\smash {#1}}} \)

    \( \newcommand{\id}{\mathrm{id}}\) \( \newcommand{\Span}{\mathrm{span}}\)

    ( \newcommand{\kernel}{\mathrm{null}\,}\) \( \newcommand{\range}{\mathrm{range}\,}\)

    \( \newcommand{\RealPart}{\mathrm{Re}}\) \( \newcommand{\ImaginaryPart}{\mathrm{Im}}\)

    \( \newcommand{\Argument}{\mathrm{Arg}}\) \( \newcommand{\norm}[1]{\| #1 \|}\)

    \( \newcommand{\inner}[2]{\langle #1, #2 \rangle}\)

    \( \newcommand{\Span}{\mathrm{span}}\)

    \( \newcommand{\id}{\mathrm{id}}\)

    \( \newcommand{\Span}{\mathrm{span}}\)

    \( \newcommand{\kernel}{\mathrm{null}\,}\)

    \( \newcommand{\range}{\mathrm{range}\,}\)

    \( \newcommand{\RealPart}{\mathrm{Re}}\)

    \( \newcommand{\ImaginaryPart}{\mathrm{Im}}\)

    \( \newcommand{\Argument}{\mathrm{Arg}}\)

    \( \newcommand{\norm}[1]{\| #1 \|}\)

    \( \newcommand{\inner}[2]{\langle #1, #2 \rangle}\)

    \( \newcommand{\Span}{\mathrm{span}}\) \( \newcommand{\AA}{\unicode[.8,0]{x212B}}\)

    \( \newcommand{\vectorA}[1]{\vec{#1}}      % arrow\)

    \( \newcommand{\vectorAt}[1]{\vec{\text{#1}}}      % arrow\)

    \( \newcommand{\vectorB}[1]{\overset { \scriptstyle \rightharpoonup} {\mathbf{#1}} } \)

    \( \newcommand{\vectorC}[1]{\textbf{#1}} \)

    \( \newcommand{\vectorD}[1]{\overrightarrow{#1}} \)

    \( \newcommand{\vectorDt}[1]{\overrightarrow{\text{#1}}} \)

    \( \newcommand{\vectE}[1]{\overset{-\!-\!\rightharpoonup}{\vphantom{a}\smash{\mathbf {#1}}}} \)

    \( \newcommand{\vecs}[1]{\overset { \scriptstyle \rightharpoonup} {\mathbf{#1}} } \)

    \( \newcommand{\vecd}[1]{\overset{-\!-\!\rightharpoonup}{\vphantom{a}\smash {#1}}} \)

    \(\newcommand{\avec}{\mathbf a}\) \(\newcommand{\bvec}{\mathbf b}\) \(\newcommand{\cvec}{\mathbf c}\) \(\newcommand{\dvec}{\mathbf d}\) \(\newcommand{\dtil}{\widetilde{\mathbf d}}\) \(\newcommand{\evec}{\mathbf e}\) \(\newcommand{\fvec}{\mathbf f}\) \(\newcommand{\nvec}{\mathbf n}\) \(\newcommand{\pvec}{\mathbf p}\) \(\newcommand{\qvec}{\mathbf q}\) \(\newcommand{\svec}{\mathbf s}\) \(\newcommand{\tvec}{\mathbf t}\) \(\newcommand{\uvec}{\mathbf u}\) \(\newcommand{\vvec}{\mathbf v}\) \(\newcommand{\wvec}{\mathbf w}\) \(\newcommand{\xvec}{\mathbf x}\) \(\newcommand{\yvec}{\mathbf y}\) \(\newcommand{\zvec}{\mathbf z}\) \(\newcommand{\rvec}{\mathbf r}\) \(\newcommand{\mvec}{\mathbf m}\) \(\newcommand{\zerovec}{\mathbf 0}\) \(\newcommand{\onevec}{\mathbf 1}\) \(\newcommand{\real}{\mathbb R}\) \(\newcommand{\twovec}[2]{\left[\begin{array}{r}#1 \\ #2 \end{array}\right]}\) \(\newcommand{\ctwovec}[2]{\left[\begin{array}{c}#1 \\ #2 \end{array}\right]}\) \(\newcommand{\threevec}[3]{\left[\begin{array}{r}#1 \\ #2 \\ #3 \end{array}\right]}\) \(\newcommand{\cthreevec}[3]{\left[\begin{array}{c}#1 \\ #2 \\ #3 \end{array}\right]}\) \(\newcommand{\fourvec}[4]{\left[\begin{array}{r}#1 \\ #2 \\ #3 \\ #4 \end{array}\right]}\) \(\newcommand{\cfourvec}[4]{\left[\begin{array}{c}#1 \\ #2 \\ #3 \\ #4 \end{array}\right]}\) \(\newcommand{\fivevec}[5]{\left[\begin{array}{r}#1 \\ #2 \\ #3 \\ #4 \\ #5 \\ \end{array}\right]}\) \(\newcommand{\cfivevec}[5]{\left[\begin{array}{c}#1 \\ #2 \\ #3 \\ #4 \\ #5 \\ \end{array}\right]}\) \(\newcommand{\mattwo}[4]{\left[\begin{array}{rr}#1 \amp #2 \\ #3 \amp #4 \\ \end{array}\right]}\) \(\newcommand{\laspan}[1]{\text{Span}\{#1\}}\) \(\newcommand{\bcal}{\cal B}\) \(\newcommand{\ccal}{\cal C}\) \(\newcommand{\scal}{\cal S}\) \(\newcommand{\wcal}{\cal W}\) \(\newcommand{\ecal}{\cal E}\) \(\newcommand{\coords}[2]{\left\{#1\right\}_{#2}}\) \(\newcommand{\gray}[1]{\color{gray}{#1}}\) \(\newcommand{\lgray}[1]{\color{lightgray}{#1}}\) \(\newcommand{\rank}{\operatorname{rank}}\) \(\newcommand{\row}{\text{Row}}\) \(\newcommand{\col}{\text{Col}}\) \(\renewcommand{\row}{\text{Row}}\) \(\newcommand{\nul}{\text{Nul}}\) \(\newcommand{\var}{\text{Var}}\) \(\newcommand{\corr}{\text{corr}}\) \(\newcommand{\len}[1]{\left|#1\right|}\) \(\newcommand{\bbar}{\overline{\bvec}}\) \(\newcommand{\bhat}{\widehat{\bvec}}\) \(\newcommand{\bperp}{\bvec^\perp}\) \(\newcommand{\xhat}{\widehat{\xvec}}\) \(\newcommand{\vhat}{\widehat{\vvec}}\) \(\newcommand{\uhat}{\widehat{\uvec}}\) \(\newcommand{\what}{\widehat{\wvec}}\) \(\newcommand{\Sighat}{\widehat{\Sigma}}\) \(\newcommand{\lt}{<}\) \(\newcommand{\gt}{>}\) \(\newcommand{\amp}{&}\) \(\definecolor{fillinmathshade}{gray}{0.9}\)

    There are multiple requests for including a temporal dimension in OWL. Some of those requirements are described in the ontology’s annotation fields (see the OWL files of BFO and DOLCE), or the labels of the object properties in the BFO v2.1 draft, where they mention temporality that cannot be represented formally in OWL: e.g., DOLCE has a temporally indexed parthood in the paper-based version but this could not be transferred into the OWL file. This is, perhaps, even more an issue for domain ontologies. For instance, SNOMED CT [SNO12] has concepts like “Biopsy, planned”, i.e., an event is expected to happen in the future, and “Concussion with loss of consciousness for less than one hour”, i.e., a specific interval and where the loss of consciousness can be before or after the concussion, the symptom HairLoss during the treatment Chemotherapy, and Butterfly is a transformation of Caterpillar. Other examples are a business rule alike ‘RentalCar must be returned before Deposit is reimbursed’. Adding an object property before in one’s OWL ontology is not going to ensure that in all possible models, some return event happened before a reimbursement event, however, because it does not know when what happened.

    There is no single computational solution to solve these examples all at once in another way beyond OWL. Thus far, it is a bit of a patchwork of various theories and some technologies, with, among many aspects, the Allen’s interval algebra [All83] with the core qualitative temporal relations (such as before and during), Linear Temporal Logics (LTL) and Computational Tree Logics (CTL, with branching time). There is also a Time Ontology6 that was recently standardized by the W3C (more explanation in [HP04]), but it is an ontology for annotations only—i.e., no temporal reasoning intended—and suffers from the class-as-instance modeling confusion7.

    In the remainder of this section, we will look at some motivations for temporal ontologies first, proceed to a very expressive temporal DL, \(\mathcal{DLR_{US}}\), and finally look at several modeling issues it helps solving. Although computationally, things do not look rosy at all, it is possible to squeeze out a bit here and there, which we shall touch upon at the end.

    Why Temporal Ontologies?

    There are two principal parts to answering this question: because of what we want to represent and what inferencing we want to do with it.

    The Things to Represent

    Quite common time aspects in conceptual data modelling for information systems are the requirements to record actual dates and intervals and calendar calculations. This is not particularly relevant for a domain ontology, but it would be useful to have an ontology about such things so that the applications use the same notions and, hence, will be interoperable in that regard.

    In Chapter 6 we have seen BFO and the RO, where it was the intention by its developers to add a precedes and an immediately precedes relation to the OBO Foundry ontologies, which could not be done other than for annotation purposes. There are more such established qualitative temporal relations, also known as the ‘Allen relations’ or ‘Allen’s interval algebra’, after the author who gave a first systematic and formal account of them [All83], which comprise relations such as before, after, during, while, and meet. Some might say they are all the temporal relations one will ever need, but one may wish to be more specific in specialized subject domains, such as a transformation_of a caterpillar into a butterfly, not just that a butterfly was a caterpillar ‘before’, and one thing developed_from another thing in developmental biology. Also, the latter two are persistent changes cf. permitting to go back to what it was before.

    Modelers want to do even more than that: temporalizing classes and relations. The former is well-known in databases as ‘object migration’; e.g., an active project evolves to a completed project, and each divorcee in the census database must have been married before. Relation migration follows the idea of temporal classes, but applies to \(n\)-ary tuples (with \(n\geq 2\)); e.g. ‘during \(x\)’s lifetime, it always has \(y\) as part’ and ‘every passenger that boards the plane must have checked in before departure of that flight’.

    More comprehensive and real examples, can be found in, among others, [AGK08, Kee09, KA10, SSBS09]. This is not to say that all ontologies have, or ought have, a temporal component to represent the subject domain as accurately as possible. It depends on the use case scenarios and CQs devised for the ontology.

    Temporal Reasoning Services

    As with a-temporal ontologies, one would want to have the same ones for temporal ontologies, such as satisfiable checking, subsumption reasoning, and classification. Logical implications are a bit more involved; e.g., given \(B\sqsubseteq A\), then it must be the case that objects ‘active’ (alive) in \(B\) must be active in \(A\) and, e.g., to come up for promotion to become a company’s manager (B), one must first exist as an employee (A) of that company. Also, an ontology should permit either a statement that ‘X must happen before Y’ or that ‘Y must happen before X’, but not both. That is, there are temporal constraints that are not permitted to be contradicted, and algorithms are needed to check for that.

    One also would want to be able to query temporal information. For instance, to retrieve the answer to “Who was the South African president after Nelson Mandela?” and “Which library books have not been borrowed in the past five years?”. This also suggests that the ‘plain’ OBDA may be extended to a temporal OBDA system; see [AKK+17] for a recent survey. There is a range of other examples that involve time in some way in information systems, and which have been solved and implemented already, such as querying with a calendar hierarchy and across calendars and finding a solution satisfying a set of constraints for scheduling the lecture hours of a study program; there uses are outside the scope.

    Open Issues

    There are many problems that are being investigated in temporal information and knowledge processing. On the one hand, there are the modeling issues in ontology development and figuring out what temporal features modelers actually require in a temporal logic cf. the logicians deciding which temporal features a modeler gets (typically only the computational well-behaved ones), the interaction between temporal logic and temporal databases (temporal OBDA), and further investigation into the interaction between temporal DLs with temporal conceptual data modeling. This, in turn, requires one to look into the computational properties of various fragments of expressive temporal logics. More fundamental issues have to do with making choices regarding linear time vs. branching time (LTL vs CTL), endurantism vs. perdurantism (‘4D-fluents’) as was noted in Chapter 6 as a choice for foundational ontologies, and dense time vs points in time.

    Temporal DLs

    If one assumes that recent advances in temporal DLs may have the highest chance of making it into a temporal OWL, then the following is ‘on offer’.

    • A very expressive (undecidable) DL language is \(\mathcal{DLR_{US}}\) (with the \(\mathcal{U}\)ntil and Since operators), which already has been used for temporal conceptual data modeling [APS07] and for representing essential and immutable parts and wholes [AGK08], which also solves the Boxer example of Section 6.2: Part-Whole Relations. It uses linear time and mostly qualitative temporal constraints.
    • An inexpressive language is TDL-Lite [AKL+07], which is a member of the DL-Lite family of DL languages (of which one is the basis for OWL 2 QL). It also uses linear time and mostly qualitative temporal constraints, but fewer of them (e.g., one can’t have temporal relations).
    • Metric temporal logic, which zooms in on quantitative temporal constraints; e.g. [BBK+17].
    • 4-D fluents/n-ary approach in OWL with SWRL rules [BPTA17], rather than a new language.

    It is already known that \(\mathcal{EL}++\) (the basis for OWL 2 EL) does not keep the nice computational properties when extended with LTL, and results with \(\mathcal{EL}++\) with CTL are not out yet. If you are really interested in the topic, you may want to have a look at a survey [LWZ08] or take a broader scope with any of the four chapters from the KR handbook [vHLP08] that cover temporal knowledge representation and reasoning, situation calculus, event calculus, and temporal action logics, or the Handbook of temporal reasoning in artificial intelligence [EM05]. To give a flavor of how temporal logics may look like and what one can do with it, we shall focus on \(\mathcal{DLR_{US}}\), which has been extended with temporal relations and attributes and is also used for temporal conceptual modeling (including a graphical notation in the new TREND notation [KB17]).

    The \(\mathcal{DLR_{US}}\) Temporal DL

    \(\mathcal{DLR_{US}}\) [AFWZ02] combines the propositional temporal logic with \(\mathcal{S}\)ince and \(\mathcal{U}\)ntil operators with the a-temporal DL \(\mathcal{DLR}\) [CDG03] and can be regarded as an expressive fragment of the first-order temporal logic \(L^{ \{since, until\}}\) [CT98, HWZ99, GKWZ03].

    As with other \(\mathcal{DLR}\)s, the basic syntactical types of \(\mathcal{DLR_{US}}\) are classes and \(n\)-ary relations \((n\geq 2)\). Starting from a set of atomic classes (denoted by \(CN\)), a set of atomic relations (denoted by \(RN\)), and a set of role symbols (denoted by \(U\)), we can define complex class and relationship expressions (see upper part of Figure 10.2.1), where the restriction that binary constructors (\(\sqcap,\sqcup,\mathcal{U},\mathcal{S}\)) are applied to relations of the same arity, \(i, j, k, n\) are natural numbers, \(i\leq ≤ n, j\) does not exceed the arity of \(R\). All the Boolean constructors are available for both class and relation expressions. The selection expression \(U_{i} /n : C\) denotes an \(n\)-ary relation whose \(i\)-th argument \((i\leq n)\), named \(U_{i}\) , is of type \(C\). (If it is clear from the context, we omit \(n\) and write \((U_{i} : C)\).) The projection expression \(\exists ≶^{k} [U_{j} ]R\) is a generalization with cardinalities of the projection operator over argument \(U_{j}\) of relation \(R\); the classical projection is \(\exists\geq^{1} [U_{j} ]R\).

    The model-theoretic semantics of \(\mathcal{DLR_{US}}\) assumes a flow of time \(\mathcal{T} =\langle\mathcal{T}_{p} <1\rangle\), where \(\mathcal{T}_{p}\) is a set of time points and \(<\) a binary precedence relation on \(\mathcal{T}_{p}\), assumed to be isomorphic to \(\langle\mathbb{Z}, <\rangle\). The language of \(\mathcal{DLR_{US}}\) is interpreted in temporal models over \(\mathcal{T}\) , which are triples of the form \(\mathcal{I}\doteq\langle\mathcal{T},\Delta^{\mathcal{I}},\cdot^{\mathcal{I}(t)}\rangle\), where \(\Delta^{\mathcal{I}}\) is nonempty set of objects (the domain of \(\mathcal{I}\)) and \(\cdot^{\mathcal{I}(t)}\) an interpretation function. Since the domain, \(\Delta^{\mathcal{I}}\) , is time independent, we assume here the so called constant domain assumption with rigid designator—i.e., an instance is always present in the interpretation domain and it identifies the same instance at different points in time. The interpretation function is such that, for every \(t\in\mathcal{T}\) (a shortcut for \(t\in\mathcal{T}_{p}\)), every class \(C\), and every \(n\)-ary relation \(R\), we have \(C^{\mathcal{I}(t)}\subseteq\Delta^{\mathcal{I}}\) and \(R^{\mathcal{I}(t)}\subseteq (\Delta^{\mathcal{I}})^{n} \). The semantics of class and relation expressions is defined in the lower part of Fig. 10.2.3, where \((u, v) = \{w\in\mathcal{T} | u < w < v\}\). For classes, the temporal operators \(\diamondsuit^{+}\) (some time in the future), \(\oplus\) (at the next moment), and their past counterparts can be defined via \(\:\mathcal{U}\) and \(\mathcal{S}\): \(\diamondsuit^{+} C\equiv \top\mathcal{U} C, \oplus C\equiv\bot\mathcal{U} C\), etc. The operators \(\Box^{+}\) (always in the future) and \(\Box^{−}\) (always in the past) are the duals of \(\diamondsuit^{+}\) (some time in the future) and \(\diamondsuit^{−}\) (some time in the past), respectively, i.e., \(\Box^{+} C\equiv\neg\diamondsuit^{+}\neg C\)

    Screenshot (120).png

    Figure 10.2.1: Syntax and semantics of \(\mathcal{DLR_{US}}\).

    and \(\Box^{−} C\equiv\neg\diamondsuit^{−}\neg C\), for both classes and relations. The operators \(\diamondsuit^{*}\) (at some moment) and its dual \(\Box^{*}\) (at all moments) can be defined for both classes and relations as \(\diamondsuit^{*} C\equiv C\sqcup\diamondsuit^{+}C\sqcup\diamondsuit^{−} C\) and \(\Box^{*} C\equiv C\sqcap\Box^{+} C\sqcap\Box^{−} C\), respectively.

    A \(\mathcal{DLR_{US}}\) knowledge base is a finite set \(\Sigma\) of \(\mathcal{DLR_{US}}\) axioms of the form \(C_{1}\sqsubseteq C_{2}\) and \(R_{1}\sqsubseteq R_{2}\), with \(R_{1}\) and \(R_{2}\) being relations of the same arity. An interpretation \(\mathcal{I}\) satisfies \(C_{1}\sqsubseteq C_{2} (R_{1}\sqsubseteq R_{2})\) if and only if the interpretation of \(C_{1} (R_{1})\) is included in the interpretation of \(C_{2} (R_{2})\) at all time, i.e., \(C^{\mathcal{I}(t)}_{1}\subseteq C^{\mathcal{I}(t)}_{2} (R^{\mathcal{I}(t)}_{1}\subseteq R^{\mathcal{I}(t)}_{2} )\), for all \(t\in\mathcal{T}\) . Thus, \(\mathcal{DLR_{US}}\) axioms have a global reading. To see examples on how a \(\mathcal{DLR_{US}}\) knowledge base looks like we refer to the following sections where examples are provided.


    Let us look at some examples, both in shorthand \(\mathcal{DLR_{US}}\) notation and in their semantics. The second line provides a verbalization of the axiom, using the CNL approach described in Section 9.2: Ontology Verbalization, but then tailored to verbalizing the temporal features.

    – \(\texttt{MScStudent}\sqsubseteq\diamondsuit^{*}\neg\:\texttt{MScStudent}\)

    Each MSc Student is not a(n) MSc Student for some time.

    – \(\texttt{marriedTo}\sqsubseteq\diamondsuit^{*}\neg\:\texttt{marriedTo}\)

    The objects participating in a fact in Person married to Person do not relate through married-to at some time; or: people who are married now aren’t married at another time.

    – \(o\in\ Academic ^{\mathcal{I}(t)} ∧ o\notin PhDStudent^{\mathcal{I}(t)} ∧ o\in PhDStudent^{\mathcal{I}(t−1)} ∧ o\notin Academic^{\mathcal{I}(t−1)}\)

    A(n) Academic may have been a(n) PhD Student before, but is not a(n) PhD Student now.

    – \(o\in Frog^{\mathcal{I}(t)} →\exists t^{'} < t.o\in DEV^{\mathcal{I}(t^{'})}_{Tadpole,Frog}\)

    Each Frog was a(n) Tadpole before, but is not a(n) Tadpole now.

    The aforementioned ‘planned’ biopsy can now also be represented as something that will hold in the future \(\diamondsuit^{+}\texttt{Biopsy}\) and the returning (of the car) before the reimbursement (of the deposit) as, e.g., \(\texttt{reimbursement}\sqsubseteq\diamondsuit^{−}\texttt{return}\), i.e., “if reimbursement, then sometime in the past there was a return”.

    With this machinery, one can also solve the “Assuming boxers must have their own hands and boxers are humans, is Hand part of Boxer in the same way as Brain is part of Human?” that we have encountered in Section 6.2: Part-Whole Relations. Recasting this problem into the temporal dimension, we can encode it in \(\mathcal{DLR_{US}}\) and prove the correctness of the intended behaviour [AGK08]. The hand being part of the boxer is an immutable parthood, whereas the brain being part of the human is an essential parthood. That is: the ‘essential’ parthood relation means, informally, that ‘that specific object must be part of the whole for entire lifetime of the whole object’, whereas ‘immutable’ means, informally, ‘for the time the objects are instance of that specific class (which is typically a role they play for some duration that is less that the lifetime of the object), it is essential’. The formal apparatus is quite lengthy, including recasting OntoClean’s rigidity (recall Section 5.2: Methods to Improve an Ontology’s Quality "Philosophy-Based Methods: OntoClean to Correct a Taxonomy") into the temporal modality, and is described in detail in [AGK08]. The short version showing the main axioms that represent that difference is as follows. First, for illustrative purpose, let’s introduce a part-whole relation to relate brain to human:


    \(\texttt{HumanBrainPW}\sqsubseteq\texttt{part : Brain}\sqcap\texttt{whole : Human}\)

    Subsequently, we add the ‘essential’ to it, which means it holds at all times, i.e., \(\Box^{*}\) , for both human (once a human always a human for the whole lifetime of the object—it is a rigid property) and the essential parthood (once a part, always a part):



    Then, the boxer’s hands. Also here, for illustrative purpose, we introduce the part-whole relation HumanHandPW to relate the hand to human:


    \(\texttt{HumanHandPW}\sqsubseteq\texttt{part : Hand}\sqcap\texttt{whole : Human}\)

    To state that a boxer is at some time not \((\diamondsuit^{*}\neg)\) a boxer (an anti-rigid property), and is a human, the following axioms suffice:



    The next step is the cardinality constraint that a boxer must have exactly two hands, if temporarily something is wrong with the boxer (e.g., the boxer has an injured hand for some time) he isn’t a boxer either (‘suspended’), and finally, that if that part-whole relation does not hold anymore (‘disabled’), then the boxer ceases to be a boxer:

    \(\texttt{Boxer}\sqsubseteq\exists^{=2}\texttt{ [whole]HumanHandPW}\)

    \(\texttt{Suspended-HumanHandPW}\sqsubseteq\texttt{whole : Suspended-Boxer}\)

    \(\texttt{Disabled-HumanHandPW}\sqsubseteq\texttt{whole : Disabled-Boxer}\)

    Note that ‘suspended’ and ‘disabled’ are names for so-called status relations that are defined formally in [AGK08] and do not exactly have their colloquial meaning. If the boxer has to be continuously active by some rule from, say, the boxing association, then the ‘suspended’ axiom has to replaced by the following one, i.e., the relation is not allowed to be ‘suspended’:


    Obviously, this can be defined for any essential or immutable relation, regardless whether it is a part-whole relation or not. The upside is that now we know how to represent it; the downside is that it uses both DL role hierarchies and temporal relations, which are computationally costly. What to do with this insight is something that a modeler has to decide.



    7e.g., DayOfWeek(Friday) and, in the one for the Gregorian calendar, MonthOfYear(January): Friday does have instances, such as Friday 6 July 2018 and Friday 13 July 2018, etc., and likewise for the other days and for the month instances.

    This page titled 11.2: Time and Temporal Ontologies is shared under a CC BY 4.0 license and was authored, remixed, and/or curated by Maria Keet via source content that was edited to the style and standards of the LibreTexts platform.