UML did not have a categorical foundation in the way that, e.g. commutative diagrams, tensor networks or proof nets do, though. Categorical foundations help define some implied properties and allowed operations (e.g. "diagram chasing" as a diagrammatic representation of composition) that have no equivalent in ad-hoc modeling notations like UML.