Not the author, but I know about ontologies generally. Non-overlapping is great, but rarely possible because whatever you&#x27;re trying to organize might not divide up that way. Next best is eigenvectors. You would find the &quot;pure types&quot; of programer such that each real programer would a linear composition of the pure types. This is really handy for doing statistics. But you might run in to trouble if programmers don&#x27;t have interaction free types. Beyond that you can use more elaborate interaction models, but those are more of an art then a science. They require a lot of domain expertise to design.<p>Hope that helps.