[18] 解説:
TM_Order
[1]
TM_Order
は、
TM_Primitive
が利用するインターフェイスです。
>>2
[3]
TM_Order
は唯一操作 relativePosition
を定義しています。 >>2 5.2.3.4
[4]
relativePosition
は、当該オブジェクト A と引数で与えられたオブジェクト
B の
2つの TM_Primitive
について、 TM_RelativePosition
を返すものです。
>>2 5.2,3,4
[5]
TM_RelativePosition
は、 Allen (1983) >>16
の13種類の時間関係の分類に基づく列挙データ型です。
>>2 5.2.3.5
[6] 返す値は次のように決定しなければなりません。
TM_Instant
の場合、
次の条件を満たす値を返します。
>>2 5.2.3.5条件 | 値 |
---|---|
A の position < B の position | Before |
A の position = B の position | Equals |
A の position > B の position | After |
TM_Period
で B が TM_Instant
の場合、
次の条件を満たす値を返します。
>>2 5.2.3.5条件 | 値 |
---|---|
A の end の position < B の position | Before |
A の end の position = B の position | EndedBy |
A の begin の position < B の position かつ A の end の position > B の position | Contains |
A の begin の position = B の position | BegunBy |
A の begin の position > B の position | After |
TM_Instant
で B が TM_Period
の場合、
次の条件を満たす値を返します。
>>2 5.2.3.5条件 | 値 |
---|---|
A の position < B の begin の position | Before |
A の position = B の begin の position | Begins |
A の position > B の begin の position かつ A の position < B の end の position | During |
A の position = B の end の position | BegunBy |
A の position > B の end の position | After |
TM_Period
の場合、
次の条件を満たす値を返します。
>>2 5.2.3.5TM_TopologicalPrimitive
の場合、
>>2 5.2.4.7TM_TopologicalComplex
に含まれない場合、
例外を投げてここで停止します。条件 | 値 |
---|---|
A は B より前にあって、 Initiation も Termination もない | Before |
A と B はどちらも TM_Edge で、 TM_Node C があって C の previousEdge が A、 nextEdge が B | Meets |
A は TM_Node 、B は TM_Edge で、 A の nextEdge が B | Begins |
A は TM_Edge 、B は TM_Node で、 A の start が B | BegunBy |
A と B は同一 | Equals |
A は TM_Node 、B は TM_Edge で、 A の previousEdge が B | Ends |
A は TM_Edge 、B は TM_Node で、 A の end が B | EndedBy |
A と B はどちらも TM_Edge で、 TM_Node C があって C の nextEdge が A、 previousEdge が B | MetBy |
A は B より後にあって、 Initiation も Termination もない | After |
[11] ただし、いずれかの TM_Position
が不定の場合、
例外を投げなければなりません。
>>2 5.2.3.5
[15]
TM_TopologicalComplex
が線形であるなど適切な順序で定められていないと適当な比較結果が得られません。
[22] OWL-Time の語彙は Allen の理論を基礎にした >>21 とされています。
[25] :TemporalEntity
の特性として
:before
,
:after
があります。 >>24
[27] :Interval
の特性で値が :Instant
の
:inside
があります。
>>26
[29]
:ProperInterval
の特性に
:intervalAfter
,
:intervalBefore
,
:intervalContains
,
:intervalDuring
,
:intervalEquals
,
:intervalFinishedBy
,
:intervalFinishes
,
:intervalMeets
,
:intervalMetBy
,
:intervalOverlappedBy
,
:intervalOverlaps
,
:intervalStartedBy
,
:intervalStarts
があります。
During, Starts, Finishes の和集合にあたる
:intervalIn
、
Before, After の和集合にあたる
:intervalDisjoint
が追加されています。
>>28
[30] HuTime Web API - Calendar Calculation, http://ap.hutime.org/cal/#chapter3-5