  String diagrams are a powerful tool for reasoning about physical processes,
logic circuits, tensor networks, and many other compositional structures. The
distinguishing feature of these diagrams is that edges need not be connected to
vertices at both ends, and these unconnected ends can be interpreted as the
inputs and outputs of a diagram. In this paper, we give a concrete construction
for string diagrams using a special kind of typed graph called an open-graph.
While the category of open-graphs is not itself adhesive, we introduce the
notion of a selective adhesive functor, and show that such a functor embeds the
category of open-graphs into the ambient adhesive category of typed graphs.
Using this functor, the category of open-graphs inherits "enough adhesivity"
from the category of typed graphs to perform double-pushout (DPO) graph
rewriting. A salient feature of our theory is that it ensures rewrite systems
are "type-safe" in the sense that rewriting respects the inputs and outputs.
This formalism lets us safely encode the interesting structure of a
computational model, such as evaluation dynamics, with succinct, explicit
rewrite rules, while the graphical representation absorbs many of the tedious
details. Although topological formalisms exist for string diagrams, our
construction is discreet, finitary, and enjoys decidable algorithms for
composition and rewriting. We also show how open-graphs can be parametrised by
graphical signatures, similar to the monoidal signatures of Joyal and Street,
which define types for vertices in the diagrammatic language and constraints on
how they can be connected. Using typed open-graphs, we can construct free
symmetric monoidal categories, PROPs, and more general monoidal theories. Thus
open-graphs give us a handle for mechanised reasoning in monoidal categories.
