patterns of ontological design