Not hanging around medieval philosophy for too long, but Genus differentia is fascinating in that
a) “Genus + differentia = definition”
b) Genus we now call “is a”
Differentia we now call “has a”
c) Hypostatic abstraction is a formal definition of how to translate between the two.
d) this is a common issue programmers and database makers face.