  A mathematical theory is presented for the representation of knowledge in the
form of a directed acyclic hierarchy of objects in a category where all paths
between any given pair of objects are required to be equal. The conditions
under which knowledge update, in the form of the sesqui-pushout rewriting of an
object in a hierarchy, can be propagated to the rest of the hierarchy, in order
to maintain all required path equalities, are analysed: some rewrites must be
propagated forwards, in the direction of the arrows, while others must be
propagated backwards, against the direction of the arrows, and, depending on
the precise form of the hierarchy, certain composability conditions may also be
necessary. The implementation of this theory, in the ReGraph Python library for
(simple) directed graphs with attributes on nodes and edges, is then discussed
in the context of two significant use cases.
