Author: Kees van Deemter
Publisher: OUP Oxford, 2010
Aimed at: General reader
Pros: Readable style
Cons: Limited topic and one that many practically-oriented readers will dismiss
Reviewed by: Mike James
It was difficult to work out what section to put this book review in. It could just as well have gone in general interest or theory - or even philosophy if we had a philosophy section. It is about vagueness in all its forms but especially the way vagueness is difficult for linguistic theory and for logic.
Your reaction to this book is going to depend a lot on your ability not to sweep the whole problem way with an application of practicality. For example, one of the key topics in the early part of the book is the sorites paradox and if you see the point in examining then you probably will find the entire book fascinating. If on the other hand you struggle to see what the problem let alone paradox is then you probably will dismiss the book as useless philosophy.
So what is the paradox? The idea is that small changes can be so small that you cannot really detect them but at some point they do amount to a noticeable change. For example, if you take sand grains away from a pile of sand then each grain you take doesn't change its status as a pile but when you reach a single grain left you clearly no longer have a pile - when did the change occur?
The book gives lots of versions of the paradox. For example, does one stone make a stone heap? Clearly adding one stone does not convert it into a stone heap and by extension if n stones is not a heap then of n+1 stones is not heap. You can see that this is some sort of proof by induction, but in this case it's a paradox by induction.
Now you either say "yes this is paradox" and decide to use this to try to explore the meaning of the vague concept "heap" or you don't see the problem. You can easily brush aside the paradox by saying that the reasoning is faulty and what we need is an operational definition of "heap". It it behaves like a heap then it is a heap. You can indeed avoid many of the problems raised by vagueness in philosophy and logic by taking a programmer's "duck typing" approach to vague words - if it behaves like a heap then it's a heap - but you wont get much out of this book if you take such a pragmatic approach.
The book starts off with a look at vagueness in different contexts - the ides of species, gradual change and vagueness in numbers. It is in this section that the practically-minded programmer, or indeed physical scientist, will probably want to object most often to the way the concepts involved are arrived at. Often you can't help but think that if you really want to define things in that way then you deserve any paradox or difficulties you create.
The second part of the book deals with theories of vagueness and here you might find some more practical ideas. These range from the Chomsky versus Montague grammar debate - is language computable - through variations and extensions of classical logic designed to cope with vague concepts.
The final part of the book is about AI and this is a little slow getting started if you already know some of the ideas.
This book is clearly modeled in the style of Douglas Hofstatder's Gödel, Escher, Bach: An Eternal Golden Braid which was, and is, a ground-breaking book. Kees van Deemter writes in an erudite but non-technical style with lots of references to a wider culture using contrived dialogs designed to illustrate the points he trying to make. His approach doesn't work as well as Hofstadter's, but this is mainly because the topic it focuses on isn't as deep (and you would need to read both books to understand what "deep" means) as the idea of self reference and strange loops. Also because the ideas of vagueness aren't as extensive there is a lot or repetition.
This is a book that you will either like a lot or dismiss as impractical and repetitive.