Isn't this ontology?
https://en.wikipedia.org/wiki/Ontology
> ontology often deals with questions concerning what entities exist or may be said to exist and how such entities may be grouped, related within a hierarchy, and subdivided according to similarities and differences.
I've always thought of software as a reflection of its author's understanding of reality. The more the we learn, the better we can express that reality in the form of software.