For a specific project, we collect data for a number of events and collect variables about these events at the same time. After collecting the data, we perform a user-customizable data analysis to determine what exactly the user is interested in.
Data is collected in a form similar to this:
Timestamp event
0 x = 0
0 y = 1
3 Event A occurred
3 x = 1
4 Event A occurred
4 x = 2
9 Event B occurred
9 y = 2
9 x = 0
To understand the whole state at any time, the easiest approach is to go through the entire data set. For example, if I start with time 0 and “analyze” to timestamp 5, I know that at this point x = 2, y = 1, and event A happened twice. This is a really simple example. The user can (and often) be interested in the time between events, say from A to B, and they can indicate the first occurrence of A, then B or the last occurrence of A, then B (respectively 9-3 = 6 or 9-4 = 5). As I said, it’s easy to analyze when you go all over the set.
Now we need to adapt the model to analyze an arbitrary time window. If we look at 0-N, this is a simple case. But if I look at 1-5, for example, I have no concept of y, unless I start with 0 and know that y was originally 1 and did not change in window 1-5.
, . " x, A, → 3", A, , 3. 4, , x 1 t = 4.
" ", , ( ) . " x A", - 1-5, " x, A, >= 1 <= 5", , 6-10, .
: ? , , , , , . , , , Google. - ? , , , , , .