I was born in Winnipeg and educated at Penticton High School, at the University of BC (BA in Mathematics) and at the University of California, Berkeley (PhD in Mathematics). As a grad student at Berkeley I discovered and explored what are now known as the “Wadge degrees”.

My first academic job was in Computer Science at the University of Waterloo, where I met the late Ed Ashcroft, with whom I invented the dataflow language Lucid. Ed and I continued collaborating after I moved to the University of Warwick in the UK. In 1985 Academic Press published our book “Lucid, the Dataflow Programming Language” which sold out two editions (but is now out of print).

About this time I moved again, to the University of Victoria in Victoria, BC, Canada. I continued to collaborate on Lucid with Ed and with a number of our graduate students until about 2000. Our dataflow model ran into trouble handling multiple and dynamically generated dimensions.

In the early 90’s John Plaice and I discovered a multidimensional approach to versioning using an algebraic versioning space with an inheritance partial order. This approach makes possible supporting a large number of versions with a relatively small number of components. The original application was for software distributions but we soon realized that the same technique would work for Web pages and digital documents in general. Right now I have some a good implementation of version tools (thanks largely to our student (now Dr) Paul Swoboda) and am looking for a killer application.

Another ongoing project is what I call *infinitesimal logic*. The idea is to extend the ordinary (two valued) Boolean space with an infinite number of lesser values which are either less true than ordinary truth, or less false than ordinary falsity. Dr Panos Rondogiannis and I discovered that this logic gives a purely model theoretic semantics for negation as failure (with the truth values getting weaker as more an more levels of failure are required). Infinitesimal logic also can be used to make preferences precise, e.g. in database queries.

Surprisingly many people are working on “Wadge Degrees” and have proved results and discovered applications that I never dreamed of. To help this work I have converted my PhD to latex and have signed a contract to publish it (and some related contributions by others) as a book. I’ll let you know when it appears.

For my last Study Leave (2010-2011) I worked mainly on French language educational software (in collaboration with my wife Christine, who taught in the UVic French Department). In particular, I developed (1) software to translate marked-up French text into interactive online exercises; and (2) a French sentence generator that takes a student’s vocabulary choices and produces a grammatically correct French sentence. The first project uses the *Markup Macro Processor* I developed with Paul Swoboda, and the second uses as well the multidimensional versioning mentioned above.

My PhD student Omar Alaqeeli’s dissertation was on the Monadic Calculus, a simple system based on modal logic S5 that has the same power as the monadic predicate calculus but, like natural language, does not use bound variables. We’ve also been looking at the Hybrid Predicate Calculus (HPC). The HPC is an extension of the Universal Calculus that (I conjecture) has the same power as the standard Predicate Calculus but still avoids bound variables. I’ve studied its pragmatics but its meta-theory is an open problem.

I just retired (July 2015) (from teaching and committees) and should have more time for my blog and the research topics I’ve mentioned.

More recently (May 2022) my 17th and last PhD student, Monem Shennat, produced and successfully defended a dissertation on the dimensional analysis of Lucid programs. His results unblock the obstacles to the development of Lucid mentioned above.

To keep this biography short I’ve left out a number of other ideas I’ve been working on, and the names of the many students and others I have collaborated with. I’ll be correcting these omissions gradually as I produce more blog entries.