Filter Before Processing
This is an architectural pattern.
Summary
When
combining large models to derive
information from selected elements of
the models, pre-filter one or both to
reduce their size by selecting only the
elements that are relevant for the
combination.
Application conditions
This can be applied to
transformations which combine
separate source models to derive selected
information in a target model. It can
also be applied to transformations
operating on a single model, to
filter out elements of the model that
are irrelevant to the transformation.
The pattern is appropriate
if significant size reductions
in input models can be achieved by
discarding irrelevant data.
Solution
Introduce a
filter transformation which produces
a smaller input model by using
implicit information about what data
is relevant to the combination
transformation: other data is filtered out.
For transformations tau with a single
input model, m, elements of m
which cannot match or be navigated by
a rule of tau can be removed
by pre-filtering to
produce a smaller input model m1.
Benefits
The source model
size can be decreased substantially,
as can the processing cost of the main
transformation.
Disadvantages
A new model and transformation need
to be introduced; the filter transformation
depends upon the second input model
or upon the main transformation.
The filter may involve fixed-point
iteration because of cascaded deletion
effects.
Applications and examples
An example could be searching for
N-sized groups of actors/actresses who
perform together in three or more
movies (Horn, 2014): the
input model m1
can be filtered to remove
films with less than N cast members, and
to remove actors who perform in less
than 3 films.
Related patterns
Construction and Cleanup is a dual
to this pattern: a cleanup transformation
post-filters an output model after the
main transformation processing.
(Horn, 2014) T. Horn, C. Krause,
M. Tichy, The TTC 2014 Movie Database Case, TTC 2014.