-
Notifications
You must be signed in to change notification settings - Fork 59
Expand file tree
/
Copy pathMoments.kerml
More file actions
39 lines (32 loc) · 1.51 KB
/
Moments.kerml
File metadata and controls
39 lines (32 loc) · 1.51 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
package Moments {
private import Occurrences::Life;
private import Occurrences::Occurrence;
class Eternity specializes Life {
// Nothing before/after or outside.
// Could be many of these, see universal below.
redefines predecessors [0];
redefines successors [0];
redefines outsideOfOccurrences [0];
}
class UniversalEternity [1] specializes Eternity {
redefines timeSlices: Period; //Includes life.
redefines snapshots : Moment;
}
feature universalEternity : UniversalEternity [1];
class Period { //Includes life and snapshots.
//↓↓ With UE redef, exactly UE timeslices.
redefines timeSliceOf : UniversalEternity [1];
}
class all InstantOccurrence specializes Occurrence {
// Probly useful elsewhere, eg, to type snapshots.
redefines snapshots [1]; // Or startShot subsets endShot;
} // Or middleTimeslice [0];
class Moment specializes Period, InstantOccurrence {
//↓↓ With UE redef, exactly UE snapshots.
redefines snapshotOf : UniversalEternity [1]; }
private import Occurrence::spaceTimeCoincidentOccurrences;
//UE portion "corresponding" to an occurrence.
feature coincidentUEPortion : Occurrence [1] subsets spaceTimeCoincidentOccurrences,
universalEternity.portions
featured by Occurrence;
}