A Petri net is a directed bipartite graph, in which the nodes represent transitions (i.e. events that may occur, represented by bars) and places (i.e. conditions, represented by circles). The directed arcs describe which places are pre- and/or postconditions for which transitions (signified by arrows).
*Wikipedia is wrong about this
A Petri net is a tuple 〈P,T〉where:
A Petri net is actually a way of presenting a symmetric monoidal category: one that is freely generated by some set S of objects and some set T of morphisms!*
*Emphasis in the original source. Not all of us are that excited about morphisms
A Petri net is a way of drawing a finite set S of species, a finite set T of transitions, and maps s,t : T → N S saying how many times each species appears in the source (input) and target (output) of each transition: