We present StreamPipes, a semantics-based approach aiming to provide a description and management layer to define and execute stream processing pipelines consisting of multiple, potentially heterogeneous runtime implementations. StreamPipes consists of i) an ontology-based model to describe requirements and capabilities of stream processing services, (ii) a software development kit to describe and publish existing event patterns according to the StreamPipes protocol, (iii) a matchmaking engine to compute matchings between streams, event processing agents and actuators and (iv) a web-based authoring tool to model pipelines in a drag-and-drop style. We implemented the solution to the 2015 DEBS Grand Challenge with StreamPipes using two underlying open source frameworks as runtime implementations. Our approach decouples event pattern descriptions from their specific implementations and therefore facilitates reuse of implemented stream processing elements in multiple pipelines without any further development effort.