  Applied process calculi include advanced programming constructs such as type
systems, communication with pattern matching, encryption primitives, concurrent
constraints, nondeterminism, process creation, and dynamic connection
topologies. Several such formalisms, e.g. the applied pi calculus, are
extensions of the the pi-calculus; a growing number is geared towards
particular applications or computational paradigms. Our goal is a unified
framework to represent different process calculi and notions of computation. To
this end, we extend our previous work on psi-calculi with novel abstract
patterns and pattern matching, and add sorts to the data term language, giving
sufficient criteria for subject reduction to hold. Our framework can directly
represent several existing process calculi; the resulting transition systems
are isomorphic to the originals up to strong bisimulation. We also demonstrate
different notions of computation on data terms, including cryptographic
primitives and a lambda-calculus with erratic choice. Finally, we prove
standard congruence and structural properties of bisimulation; the proof has
been machine-checked using Nominal Isabelle in the case of a single name sort.
