Thursday, November 16, 2006

Computer Science Books

A revelation: in addition to philosophy, I studied computer science. There are a couple of entertaining introductions to some of the more theoretical aspects of computer science. (1) Douglas Hofstadter: Gödel, Escher, Bach: an Eternal Golden Braid. A bit high-flying in parts but the discussion of incompleteness (including someone who can tell if X is a melody or just a sequence of notes, and a record player that can play "any" record) is very instructive and funny. (2) Roger Penrose: The Emperor's New Mind. This is a bit more technical and spans from physics (Maxell equations) to computing. Contains a great description of Turing machines. Penrose presents an unoptimized but correct version of the Universal Turing Machine is this book and it has become a well-known text book example for scholars who want to write more optimized versions. (3) J. Haugeland, Artificial Intelligence - the very idea. A typographically appealing text book: a technically oriented reader can read all the grey boxes whereas someone who'd like a more general idea can skip them and read the whole thing in one day. Haugeland might have introduced the acronym GOFAI (good old-fashioned artificial intelligence) in this book. The book contains nice introductions to representation hyphothesis, syntax/semantics etc. (4) J. F. Sowa: Conceptual Structures. A bit more technical but equally interesting. The bulk of the book is about lattice like representations of concept hierarchies and a language (a system of Conceptual Graphs) that utilises the hierarchies but actually works like predicate logic.


Many colleagues that have read Sowa's book have asked what's the real benefit of using the Conceptual Graph notation instead of more standard predicate logic. I became a bit obsessed with the question -- especially since Sowa uses game theoretical semantics (instead of the more standard model theory) as the semantic background of his graphs. My idea was to map (slightly limited) Conceptual Graphs into (again slightly limited) predicate logic with standard model theoretical semantics. After that one could see what happens if one increases the expressive power of the Conceptual Graphs languages as Sowa does in his book. This was a bit of a boring exercise, but it can be found in Chapter 3 of Conceptual Modelling Languages.

What did we actually learn? Based on that limited analysis, there is no real benefit in using conceptual as such. In many cases, however, a Conceptual Graph form of a statement is more illustrative and compact than the corresponding logic formula, just as Sowa says.

No comments: