The Principle of Least Precision

Another day, another attempt to formalize something whose utility lies in its informality. Rigor and precision have their place: if someone asks, “What’s the semantics of slicing?” and the project lead said, “I don’t know, look at what the code does,” it’s time to join a different language development project. But UML and the Semantic Web and Loglan failed to catch on on for good reasons. Human beings aren’t analytic machines; we reason by analogy with what we’ve seen and done before and only resort to logic when we’ve painted ourselves into a corner and have no other option. Even in the purest of pure math, our “proofs” are little more than stepping stones across a river rather than an unimpeachable atomization of truth.

This is why I’m skeptical of anything with the word “ontology” in its title. The more precisely we define a term like “author” or “species”, the less accessible we make that term’s meaning. (Go ahead, read this and tell me if you feel enlightened.) Yes, a handful of people need precise definitions, but I think a primary goal for any system should be to make it unnecessary for users to think precisely, because as Cherubini et al found over a decade ago, they’re going to anyway.

The Soul of a New Machine has a quote from Tom West: “Not everything worth doing is worth doing well.” Inspired by the Principle of Least Astonishment, I’d like to propose a Principle of Least Precision, and measure the success of a system by how much people can accomplish without having to split hairs.

Updated: