Database Reference
In-Depth Information
complex patterns and efficiently match them on large moving objects databases.
This algebra defines the STP predicate, which is the main tool we are going to
illustrate in the section. To get the most out of this section, please first read the
chapter about moving object database systems (Chapter 3 ), especially the part
explaining the SECONDO query languages.
12.6.1 The Spatio-Temporal Pattern Predicate
A traditional select-from-where query is formulated based on a single predicate
given in the where clause. Such a query scheme is not sufficient when dealing
with moving objects. A moving object has a lifetime and it fulfills several
predicates during it. In many applications it is required to find the objects that
fulfill a set of predicates in a certain temporal order. In ATC, for instance, it is
required to detect landing procedures such as go-around , missed approach ,and
touch-and-go . Each of these procedures consists of a set of well-defined steps
that have to be implemented by the pilot in a certain temporal order. Extracting
these situations from the aircraft trajectories requires a query tool that accepts
such descriptions and matches them against the trajectories. Here comes the
spatio-temporal pattern predicate to extend the traditional select-from-where
scheme, and let the user formulate such queries.
Essentially the STP predicate is a pair
, where P is a set of predicates
and C is a set of temporal order constraints on their fulfillment. Given a tuple u ,
for example, representing one flight trajectory, the STP predicate yields true iff u
fulfills all the predicates in P in the temporal order asserted by all the constraints
in C . Consider for example the missed approach procedure. It can be described
by three predicates: aircraft comes close to destination, aircraft descends to a
height of less than 1,000 m, and aircraft climbs. Temporally, the third predicate
must be fulfilled after the second predicate, and both of them must be fulfilled
during the fulfillment time of the first predicate. Let's have a quick illustration
of how this missed approach query is expressed using the SECONDO executable
language:
P,C
... stpattern[
Close: distance(.Position, .Destination) < 5000.0,
Down: ((.AltitudeDerivative < 0.0) and (.Altitude < 1000.0)),
Up: .AltitudeDerivative > 0.0;
stconstraint("Close", "Down", vec("abba","a.bba","baba")),
stconstraint("Close", "Up", vec("abba","aba.b","abab")),
stconstraint("Down", "Up", vec("aabb","aa.bb"))] ...
where stpattern is the SECONDO operator denoting the STP predicate. For
simplicity, we omit the query parts before and after the stpattern operator
and denote them by three dots. The stpattern predicate is placed in the query
Search WWH ::




Custom Search