“It is not about replacing algorithms. It is about complementing algorithms with sound semantic/pragmatic analysis.” — this was my main confusion with the article”
Well, it’s the main point of the article, too: the modeling (either in science or in software), or ontologies, or semantics essentially are insufficiently expressive. In all three articles, I tried to go into details, but to boil it down to a few coarse statements (there are other ways to formulate and arrange those statements):
(1) Any software system or artefact makes sense only if it can be used. Its meaning is in how it is used (it is true for any tool, not just software).
(2) Thus, usage is central to the software design.
(3) Usage is very poorly, if at all, can be expressed through modeling, ontologies, or semantics. It is because modeling, ontologies, or semantics are symbolic systems and thus lacking the performative side. On the other hand, semiotic analysis naturally complements this deficiency:
E.g. simply, don’t start with a data model — start with user stories; don’t start writing your command-line utility with algoritm implementation — start it with writing — help; etc.
Following your example, you need to do something about cars. Would you start with designing or picking an ontology that defines wheels, engines, etc? Almost certainly, not: you will try to work out what is it that you are trying to do about cars; what is the usage of your software system. You would have an entity called ‘car’ in a traffic optimisation software, it would be immaterial for you whether cars have wheels, or sits — so your ontology of wheeled vehicle will be a burden.
Once again, I am not againt ontologies. I am just saying there are very strong limitations of how they could be used in design. If overused (modeling bias), it’s inevitably would lead to bulky over-engineered design.