- From: Alex Nelson via GitHub <sysbot+gh@w3.org>
- Date: Tue, 13 May 2025 19:13:27 +0000
- To: public-sdwig@w3.org
ajnelson-nist has just created a new issue for https://github.com/w3c/sdw:
== The domain of `time:inside` ==
This is a question of how to interpret two parts of the implementation of [`time:inside`](https://www.w3.org/TR/2022/CRD-owl-time-20221115/#time:inside) (link is to today's definition). The short summary is: I think the definition of `time:inside` should be changed to include the word "proper" near the end.
Related-Issue check: I did a scan for `time:inside` on the issue tracker, and only saw it noted on #1126 , and on no PRs. That discussion was helpful for introducing `:equals`, but I don't think its scope matches what I'm covering below.
The domain of `time:inside` is:
```turtle
time:inside rdfs:domain time:Interval .
```
The definition reads as follows, with emphasis added:
> An instant that falls inside the interval. **It is not intended to include beginnings and ends of intervals.**
How firmly should "not intended" be read there? If the beginning and end of an interval are not included, then the length of the interval is non-0, and thus the interval is a `time:ProperInterval`.
Why, then, would the domain be the 0-duration-permitted `time:Interval`? Wouldn't it always be `time:ProperInterval`?
I think this example graph suggests a reconciliation:
```turtle
ex:Instant-1
a time:Instant ;
.
ex:Interval-1
a time:Interval ;
time:hasBeginning ex:Instant-1 ;
time:inside ex:Instant-1 ;
time:hasEnd ex:Instant-1 ;
.
```
A benefit to the domain being as it is, just `time:Interval`, is this graph is consistent with the OWL implementation if `ex:Interval-1 a time:Instant` would be inferred or entailed. Changing the domain to `time:ProperInterval` would raise OWL inconsistency errors if `time:Instant` were inferred or entailed.
However, this graph is inconsistent with the noted intention in the definition (`rdfs:comment`), as the beginning _and_ end are included. If the definition (comment) were changed to read as follows, this graph would then be consistent, because a proper interval isn't involved:
> An instant that falls inside the interval. It is not intended to include beginnings and ends of **proper** intervals.
## An aside on encoding the intention
It also might be clarifying to encode the "not intended" with property-disjoint statements; but, in OWL, IIRC, this can only be done globally at the property level, and can't be scoped to just `time:ProperInterval` while excusing `time:Interval`:
```turtle
time:inside
owl:propertyDisjointWith
time:hasBeginning ,
time:hasEnd
;
.
```
I'm aware of SHACL being able to provide a class-specific shape that encodes this, but I also appreciate OWL-Time doesn't currently provide SHACL shapes. For reference, [`sh:disjoint`](https://www.w3.org/TR/2017/REC-shacl-20170720/#DisjointConstraintComponent) would be the mechanism:
```turtle
ex:ExampleShape
sh:targetClass time:ProperInterval ;
sh:property [
sh:path time:hasBeginning ;
sh:disjoint time:inside ;
sh:message "The set of instants inside a proper interval is not intended to include the beginning of the interval."@en ;
] ;
sh:property [
sh:path time:hasEnd ;
sh:disjoint time:inside ;
sh:message "The set of instants inside a proper interval is not intended to include the end of the interval."@en ;
] ;
.
```
Please view or discuss this issue at https://github.com/w3c/sdw/issues/1448 using your GitHub account
--
Sent via github-notify-ml as configured in https://github.com/w3c/github-notify-ml-config
Received on Tuesday, 13 May 2025 19:13:28 UTC