Database Reference
In-Depth Information
as a filter condition within the SECONDO
filter
operator. Here it receives a
tuple with the schema:
tuple
[
Id
:
int
,
Position
:
mpoint
,
Altitude
:
mreal
,
Destination
:
point
,
AltitudeDerivative
:
mreal
],
where
Position
represents the (lon, lat) of the aircraft and the
Altitude
is separately represented. This is because SECONDO does not contain types for
3D moving points. The
Destination
is precomputed as the final (lon, lat)
of the trajectory, and
AltitudeDerivative
is precomputed as the derivative
of
Altitude
. The three predicates constituting
P
have the aliases
Close
,
Down
,and
Up
.The
Close
predicate asserts that the aircraft is close (within 5
km) to its destination airport. Note that this is a
time-dependent predicate
,also
called
lifted predicate
. That is, the result of such a predicate is a time-dependent
boolean
mbool
. It is false whenever the aircraft is far from its destination, and
true whenever the aircraft is close to destination. Similarly,
Down
and
Up
are
time-dependent predicates. Actually, this is how the
stpattern
operator is
able to check the temporal constraints on the predicate fulfillment, because an
mbool
contains information about when the predicate was fulfilled. The STP
predicate expects that
P
be a set of time-dependent predicates, each of which is
a mapping
tuple
→
mbool
. The aliases of the time-dependent predicates make
it possible to refer to them in the temporal constraints.
The set of temporal constraints
C
in this example consists of the three tem-
poral constraints denoted as
stconstraint
. Each of them asserts a temporal
relation between two predicates forming a pair in
P
. The temporal relation is
expressed by the
vec
operator. Each of the terms inside the
vec
operator speci-
fies a relation between two time intervals. The start and the end points of the first
interval are denoted
aa
, and those of the second interval are denoted
bb
.The
order of the symbols describes the temporal order of the four end points. The dot
symbol denotes the equality. For example, the relation
aa.bb
between the inter-
vals
i
1
,i
2
denotes the order: ((
i
1
.t
1
<i
1
.t
2
)
∧
(
i
1
.t
2
=
i
2
.t
1
)
∧
(
i
2
.t
1
<i
2
.t
2
)).
The temporal relation expressed by the
vec
operator is the disjunction of its
components. A temporal constraint between two predicates
p
i
,p
j
is fulfilled iff
there exists an interval on which
p
i
is fulfilled, and another interval on which
p
j
is fulfilled, and the two intervals fulfill any of the interval relations in the
constraint. For the STP predicate to be fulfilled, all the temporal constraints in
C
must be fulfilled.
Formally, given
P
={
p
1
,...,p
m
}
a set of time-dependent predicates,
C
=
{
c
1
,...,c
n
}
a set of constraints, and a tuple
u
,let
p
i
(
u
) denote the evaluation of
p
i
for the tuple
u
(i.e.,
p
i
(
u
)isoftype
mbool
). Let [
p
i
(
u
)]
j
denote the
j
th
time
interval onwhich
p
i
(
u
) is true. The evaluation of the STP predicate
P,C
for the
tuple
u
is true iff:
j
1
..j
m
such that the set of time intervals [
p
1
(
u
)]
j
1
..
[
p
m
(
u
)]
j
m
fulfills all the temporal constraints
c
∃
∈
C
, and we call [
p
1
(
u
)]
j
1
..
[
p
m
(
u
)]
j
m
a