Skip to content

Commit

Permalink
Merge pull request #150 from casework/existence_intervals
Browse files Browse the repository at this point in the history
Add BFO section of page for intervals of existence
  • Loading branch information
ajnelson-nist authored Jul 22, 2024
2 parents c5cb7ef + b986c47 commit 84eeed2
Show file tree
Hide file tree
Showing 7 changed files with 331 additions and 0 deletions.
52 changes: 52 additions & 0 deletions examples/illustrations/existence_intervals/README.md
Original file line number Diff line number Diff line change
Expand Up @@ -216,4 +216,56 @@ _Aside_: A side-by-side view of the gUFO and OWL-Time coverage show that an onto
| --- | --- |
| ![Abstraction - OWL-Time Temporal Entity](figures/abstraction_time.svg) | ![Abstraction - gUFO Concrete Individual](figures/abstraction_gufo.svg) |


## BFO

(BFO version: [2020](https://github.com/BFO-ontology/BFO-2020).)

BFO's topmost class that describes an object that exists in a period of time is "Entity" (`obo:BFO_0000001`). The direct subclasses "Continuant" and "Occurrent", which correspond with "Endurant" and "Perdurant" respectively, do not specialize the restrictions on the existence property "exists at".

For reference, these are the class and property labels used in the illustration:

| Structural type | IRI | Label | Notes |
| --- | --- | --- | --- |
| `owl:Class` | `obo:BFO_0000001` | (BFO 1) entity | |
| `owl:Class` | `obo:BFO_0000002` | (BFO 2) continuant | |
| `owl:Class` | `obo:BFO_0000003` | (BFO 3) occurrent | |
| `owl:Class` | `obo:BFO_0000008` | (BFO 8) temporal region | |
| `owl:Class` | `obo:BFO_0000038` | (BFO 38) one-dimensional temporal region | Not necessarily continuous (can have gaps). |
| `owl:Class` | `obo:BFO_0000148` | (BFO 148) zero-dimensional temporal region | "...a temporal region that is a whole consisting of one or more separated temporal instants as parts." |
| `owl:Class` | `obo:BFO_0000202` | (BFO 202) temporal interval | Subclass of BFO 38; continous (no gaps or breaks). |
| `owl:Class` | `obo:BFO_0000203` | (BFO 203) temporal instant | Subclass of BFO 148; has no proper temporal parts. |
| `owl:ObjectProperty` | `obo:BFO_0000108` | exists at | Range is BFO 8. |
| `owl:ObjectProperty` | `obo:BFO_0000222` | has first instant | Range is constrained to BFO 203, not 148 (instant, not 0-d region). |
| `owl:ObjectProperty` | `obo:BFO_0000224` | has last instant | (As with BFO 222.) |

_Restrictions_:

* Usage of the BFO properties 222 and 224 (first and last instant) restrict the alignment of `ex:Instant` to `obo:BFO_0000203` (temporal instant), which is more restrictive than `obo:BFO_0000148` (zero-dimensional temporal region).
* If existence intervals are required by a BFO-adopting ontology ontology to be continuous, the adopting ontology must use `obo:BFO_0000202` (temporal interval) rather than `obo:BFO_0000038` (one-dimensional temporal region).

The referenced version of BFO does not define any `owl:DatatypeProperty`s.

![Abstraction - BFO Entity](figures/abstraction_bfo.svg)

The mapping for BFO's `entity` (BFO-1) would be as follows:

| Example class or triple | Corresponding class or triple |
| --- | --- |
| `ex:TimeBoundedThing` | `obo:BFO_0000001` |
| `ex:ExistenceInterval` | `obo:BFO_0000038` |
| `ex:Instant` | `obo:BFO_0000203` |
| `kb:T ex:hasExistenceInterval kb:E` | `kb:T obo:BFO_0000108 kb:E` |
| `kb:T ex:existsAtAndSince kb:T0` | N/A |
| `kb:T ex:existsUntil kb:T1` | N/A |
| `kb:T ex:hasCreationTimestamp "2020-..."^^xsd:dateTime` | N/A |
| `kb:T ex:hasTerminationTimestamp "2021-..."^^xsd:dateTime` | N/A |
| `kb:E ex:hasStart kb:T0` | `kb:E obo:BFO_0000222 kb:T0` |
| `kb:E ex:hasEnd kb:T1` | `kb:E obo:BFO_0000224 kb:T1` |
| `kb:E ex:hasBeginningTimestamp "2020-..."^^xsd:dateTime` | N/A |
| `kb:E ex:hasEndingTimestamp "2021-..."^^xsd:dateTime` | N/A |
| `kb:T0 ex:hasTimestamp "2020-..."^^xsd:dateTime` | N/A |
| `kb:T1 ex:hasTimestamp "2021-..."^^xsd:dateTime` | N/A |


[^1]: gUFO represents instantations that are not always true with `gufo:TemporaryInstantiationSituation`. In the case where a person is temporarily a student, "student" is taken to be some subclass of "person" - e.g., `ex:Student rdfs:subClassOf ex:Person`. For some time, it holds that `kb:person-3393... a ex:Student`, but this is not always true. To hold this situationally-true statement in a knowledge graph, a `gufo:TemporaryInstantiationSituation` is included to note the conditions when `kb:person-3393...` is a `ex:Student`, instead of encoding the unqualified triple `kb:person-3393... a ex:Student`. See `kb:TemporaryInstantiationSituation-da1aa582-1358-49bb-b058-4c33990fb9e8` in [`existence_intervals.json`](existence_intervals.json) for a demonstration of this representation.
Original file line number Diff line number Diff line change
Expand Up @@ -96,6 +96,14 @@
"@id": "ex:Person"
}
},
{
"@id": "kb:Entity-52d479e6-4b3e-4a21-a60a-29b08397a315",
"@type": "obo:BFO_0000001",
"obo:BFO_0000108": {
"@id": "kb:OneDimensionalTemporalRegion-95fc3589-849b-406b-85c4-3b2119121f1e"
},
"rdfs:label": "T"
},
{
"@id": "kb:ExistenceInterval-27802c47-1c75-43fa-ab4b-fc01aa6c2c92",
"@type": "time:Interval",
Expand Down Expand Up @@ -142,6 +150,17 @@
"rdfs:comment": "A thing with a time-bounded existence.",
"rdfs:label": "T"
},
{
"@id": "kb:OneDimensionalTemporalRegion-95fc3589-849b-406b-85c4-3b2119121f1e",
"@type": "obo:BFO_0000038",
"obo:BFO_0000222": {
"@id": "kb:TemporalInstant-19f182b4-6bc8-4ad8-a456-56fa15aec976"
},
"obo:BFO_0000224": {
"@id": "kb:TemporalInstant-3299e3a8-8d3e-43c7-a142-14bb41638669"
},
"rdfs:label": "E"
},
{
"@id": "kb:Person-3393dfc0-c765-4710-86db-8182c34de806",
"@type": "ex:Person",
Expand All @@ -150,6 +169,16 @@
},
"rdfs:label": "J. Doe"
},
{
"@id": "kb:TemporalInstant-19f182b4-6bc8-4ad8-a456-56fa15aec976",
"@type": "obo:BFO_0000203",
"rdfs:label": "T0"
},
{
"@id": "kb:TemporalInstant-3299e3a8-8d3e-43c7-a142-14bb41638669",
"@type": "obo:BFO_0000203",
"rdfs:label": "T1"
},
{
"@id": "kb:TemporaryInstantiationSituation-da1aa582-1358-49bb-b058-4c33990fb9e8",
"@type": "gufo:TemporaryInstantiationSituation",
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -20,6 +20,7 @@ top_srcdir := $(shell cd ../../../.. ; pwd)

all: \
abstraction_all.svg \
abstraction_bfo.svg \
abstraction_gufo.svg \
abstraction_time.svg \
abstraction_uco_1_3_0_action.svg \
Expand Down
Original file line number Diff line number Diff line change
@@ -0,0 +1,25 @@
digraph "abstraction" {
n_t [label="T (object):\nA obo:BFO_0000001 (Entity)." color=blue fontcolor=blue] ;

n_e [label="E (object):\nThe existence interval of T.\nobo:BFO_0000038 (one-dimensional\ntemporal region)" color=blue fontcolor=blue] ;

n_t0 [label="T0 (object):\nThe instant that is the beginning of E.\nobo:BFO_0000203 (temporal instant)" color=blue fontcolor=blue];
n_t1 [label="T1 (object):\nThe instant that is the end of E.\nobo:BFO_0000203 (temporal instant)" color=blue fontcolor=blue];

l_ts0 [label="ts0 (literal):\n2020-01-02T03:04:05.6789Z" shape="box" color=silver fontcolor=silver];
l_ts1 [label="ts1 (literal):\n2021-02-03T04:05:06.7890Z" shape="box" color=silver fontcolor=silver];

n_t -> n_e [label="T hasExistenceInterval E\nobo:BFO_0000108 (exists at)" color=blue fontcolor=blue] ;
n_t -> n_t0 [label="T existsAtAndSince T0" color=silver fontcolor=silver] ;
n_t -> n_t1 [label="T existsUntil T1" color=silver fontcolor=silver] ;
n_t -> l_ts0 [label="T hasCreationTimestamp ts0" color=silver fontcolor=silver];
n_t -> l_ts1 [label="T hasTerminationTimestamp ts1" color=silver fontcolor=silver];

n_e -> n_t0 [label="E hasStart T0\nobo:BFO_0000222\n(has first instant)" color=blue fontcolor=blue];
n_e -> n_t1 [label="E hasEnd T1\nobo:BFO_0000224\n(has last instant)" color=blue fontcolor=blue];
n_e -> l_ts0 [label="E hasBeginningTimestamp ts0" color=silver fontcolor=silver] ;
n_e -> l_ts1 [label="E hasEndingTimestamp ts1" color=silver fontcolor=silver] ;

n_t0 -> l_ts0 [label="T0 hasTimestamp ts0" color=silver fontcolor=silver];
n_t1 -> l_ts1 [label="T1 hasTimestamp ts1" color=silver fontcolor=silver];
}
141 changes: 141 additions & 0 deletions examples/illustrations/existence_intervals/figures/abstraction_bfo.svg
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Loading

0 comments on commit 84eeed2

Please sign in to comment.