@prefix dce: . @prefix math: . @prefix event: . <> dce:title """Event time rules"""@en; dce:creator """Hans Cools"""@en; dce:contributor """Jos De Roo"""@en; dce:publisher """Agfa Healthcare/Belgium"""@en; dce:description """Rules to describe how 2 events relate in time."""@en; dce:language """English"""@en. # BEFORE/AFTER { ?event1 event:begins ?begin1; event:ends ?end1. ?begin1 math:lessThan ?end1. ?event2 event:begins ?begin2; event:ends ?end2. ?begin2 math:lessThan ?end2. ?end1 math:notGreaterThan ?begin2. } => {?event1 event:before ?event2. ?event2 event:after ?event1.}. # STARTS BEFORE/STARTS AFTER { ?event1 event:begins ?begin1; event:ends ?end1. ?begin1 math:lessThan ?end1. ?event2 event:begins ?begin2; event:ends ?end2. ?begin2 math:lessThan ?end2. ?begin1 math:lessThan ?begin2. } => {?event1 event:startsBefore ?event2. ?event2 event:startsAfter ?event1.}. # ENDS BEFORE/ENDS AFTER { ?event1 event:begins ?begin1; event:ends ?end1. ?begin1 math:lessThan ?end1. ?event2 event:begins ?begin2; event:ends ?end2. ?begin2 math:lessThan ?end2. ?end1 math:lessThan ?end2. } => {?event1 event:endsBefore ?event2. ?event2 event:endsAfter ?event1.}. # DURING/INCLUDES { ?event1 event:begins ?begin1; event:ends ?end1. ?begin1 math:lessThan ?end1. ?event2 event:begins ?begin2; event:ends ?end2. ?begin2 math:lessThan ?end2. ?begin2 math:greaterThan ?begin1. ?end2 math:notGreaterThan ?end1. } => {?event2 event:during ?event1. ?event1 event:includes ?event2.}. # OVERLAPS { ?event1 event:begins ?begin1; event:ends ?end1. ?begin1 math:lessThan ?end1. ?event2 event:begins ?begin2; event:ends ?end2. ?begin2 math:lessThan ?end2. ?begin2 math:lessThan ?end1. ?begin1 math:lessThan ?begin2. ?end1 math:lessThan ?end2. } => {?event1 event:overlaps ?event2.}. # {?X a event:Event; event:begins ?XBT; event:ends ?XET. ?Y a event:Event; event:begins ?YBT; event:ends ?YET. ?XBT math:lessThan ?XET. ?YBT math:lessThan ?YET. ?XBT math:equalTo ?YBT.} => {?X event:sameStart ?Y.}. # {?X a event:Event; event:begins ?XBT; event:ends ?XET. ?Y a event:Event; event:begins ?YBT; event:ends ?YET. ?XBT math:lessThan ?XET. ?YBT math:lessThan ?YET. ?XET math:equalTo ?YET.} => {?X event:sameEnd ?Y.}. # {?X event:sameStart ?Y. ?X event:sameEnd ?Y.} => {?X event:sameTime ?Y.}. # Due to rounding offs math:equalTo is not usable in these rules. # To do: event:sameTime, event:sameStart, event:sameEnd to be declared using a date time and duration as accuracy setting, using e.g. event:sameDay, sameYear. # Somehow the 'past broadening time scope' can be taken into account: the longer ago something happened, the broader the time description. E.g. a disease of 20 years ago will not be referred to as of a specific day or even in a month, but in the year X.