Bob Dionne

Interests and Value

"In theory there is no difference between theory and practice, but in practice there is" - Yogi Bera

My major interest is programming languages, both theoretical aspects of type systems as well as databases, distributed systems, and problems with programming in the large. I also enjoy building companies and teams and solving practical problems for customers.

Programming is as much a craft as an engineering discipline. There is always a tension between top down rigorous design and description of programming artifacts versus the need for constant prototyping, refactoring and bottoms up incremental construction of systems. This tension is at the heart of almost all programming methodologies and recognizing that programming is a collaborative process is a critical success factor in building robust scalable systems.

I have enjoyed working on all types of machines and operating systems, developing software in many languages from PL/1, Fortran, and Lisp through C, C++, Java, Python, Ruby and Erlang. My belief is that one cannot have a deep understanding of programming theory without the benefit of practice.

My contributions have been largely in Description Logics, such as OWL, currently used in the Semantic Web. These are essentially extensions to object oriented languages that have a formal logical semantics. A chief contribution was the development of a class of algebras, Concept Algebras based on non-well founded set theory, motivated by the need to support cyclic definitions. I have also participated in the design and implementation of two major languages, K-REP and Ontylog that have been used as representation languages in various systems and products, both at IBM and at Apelon.

Many of the issues in description logics are instances of more general problems that occur elsewhere, for example object-relational mapping and problems involving storage of large graphs. Developing large terminologies using description logic also involves collaboration among domain experts and general problems of workflow, version control, and conflict resolution.


I am reasonably fluent in all aspects of programming, in many languages from imperative machine languages to high level functional and declarative languages. Particular strengths are databases and algorithms. I am less skilled in programming in the large (systems with over one milion lines of code).

The last 5 or 6 years I have worked almost exclusively in Erlang, C, some Javascript, Haskell, and Scheme, on OS X and Debian platforms. I am a committer on CouchDB, though not currently active.

I live in emacs.

[FSF Associate Member]

Date: 2013-07-25 Thu

Author: Bob Dionne

Email: dionne at dionne-associates dot com

Created: 2017-04-08 Sat 15:29