  Organizations can benefit from the use of practices, techniques, and tools
from the area of business process management. Through the focus on processes,
they create process models that require management, including support for
versioning, refactoring and querying. Querying thus far has primarily focused
on structural properties of models rather than on exploiting behavioral
properties capturing aspects of model execution. While the latter is more
challenging, it is also more effective, especially when models are used for
auditing or process automation. The focus of this paper is to overcome the
challenges associated with behavioral querying of process models in order to
unlock its benefits. The first challenge concerns determining decidability of
the building blocks of the query language, which are the possible behavioral
relations between process tasks. The second challenge concerns achieving
acceptable performance of query evaluation. The evaluation of a query may
require expensive checks in all process models, of which there may be
thousands. In light of these challenges, this paper proposes a special-purpose
programming language, namely Process Query Language (PQL) for behavioral
querying of process model collections. The language relies on a set of
behavioral predicates between process tasks, whose usefulness has been
empirically evaluated with a pool of process model stakeholders. This study
resulted in a selection of the predicates to be implemented in PQL, whose
decidability has also been formally proven. The computational performance of
the language has been extensively evaluated through a set of experiments
against two large process model collections.
