Greg O'Keefe

I was born in Hobart and lived there till I was about 20, when I started moving around a bit. Now I live in Boorowa NSW, and am studying for my PhD in computer science at the Australian National University (ANU) in Canberra. I am 43 years old, with a wife and 4 children. They are are boys of 15, 13, and 11, and a girl who is 9.

Employment

I worked for twelve years in the Department of Social Security (now Centrelink), mostly in the Systems Division. I worked, in chronological order, as a clerical assistant, output handler, computer operator, scheduler, shift-manager, testing co-ordinator, team manager and IT project manager. I also gave technical training courses within the Department. It was during this time that I developed a strong interest in computing and logic. I began my studies part time whilst still at work in 1996. I enjoyed the academic world so much that when an opportunity for voluntary redundancy presented itself, I decided to become a full-time student.

For the last 7 years, I have worked casually as a tutor and lecturer. In 2001 and 2002 I tutored logic in the Philosophy Department at the University of Tasmania. In 2003, 2004 and 2005 I tutored modelling using the "Executable UML" technique at the Department of Computer Science at the ANU. Also in this department in 2005, I tutored the Formal Methods course, which includes propositional and predicate logic and Hoares' logic of programs. I was course convenor for "Introduction to Formal Logic" in the Philosophy Department of Macquarie University Sydney, for Summer semesters 2006 and 2007 and part of second semester 2006. In second semester 2007 and 2008, I was convener of the relational databases course at the ANU. Since January 2008, I have worked as a part-time motorcycle postal delivery officer with Australia Post.

Education

I have a BSc with first class honours and double major in Mathematics, from the University of Tasmania. I also took a fair bit of philosophy there. My results include 19 high distinctions, 2 distinctions and 2 credits. I won the Alfred Houston Philosophy prize twice (once shared), was placed on the dean's roll of honour twice, and received two scholarships to travel to the ANU and study there during summer breaks.  I was awarded an ANU "Endowment for Excellence" PhD scholarship and started studying for my PhD in computer science in September 2002. My thesis is now complete and will be submitted in September 2008.

Research

I am interested in using formal language to express and work with ideas. Thus much of my work has been in philosophical and mathematical logic, and in the formalisation of mathematics. An important practical application of this work is in software development. Symbolic logic formulae are not easy to understand, so non-logicians who want to work precisely with ideas do not find them useful. UML has become the standard language for high level ideas in software development. Unfortunately, development productivity is compromised by the lack of clarity in this language. Developers typically waste a lot of time discussing the language, its meaning and use rather than the subject matter of the system. Agreements based on UML models can collapse after much has been invested in them, because different stakeholders understand the models differently. My work aims to define UML clearly, precisely and understandably.

In 2006 I presented papers at ECMDA-FA, Bilbao Spain and MoDELS, Genova Italy. Between these conferences I visited the INRIA/IRISA Project Triskell in Rennes France. As a result of all this networking, I now have a good feel for the state of the art in model driven development research, especially in Europe.

Future Research

Having just completed my thesis, I'm having a big think about where to go next with my work. Here are the main ideas. Conceptual modelling, model driven software development and logic have a lot in common, but different priorities. They all offer ways of working with ideas through fixed systems of "metaconcepts", or "ontological assumptions". One of the most interesting problems is, when you have pieces of knowledge represented in different systems, how do you use those pieces together for a single purpose? Psychologically, we want to know what systems of representation are most understandable, perhaps to different kinds of people. Computationally, we want to understand the expressiveness and complexity of these systems. When we translate, abstract or approximate, we seem to be "reconceptualising". When and how are such reconceptualisations sound or justifiable?

I'm seeking potential collaborators in Information Systems, Philosophy, Logic, Computer Science, Software Development and Psychology. If you are interested in something related to the above, get in touch!

Publications

  1. Improving the Definition of UML
  2. Proceedings of the ACM/IEEE 9th International Conference on Model Driven Engineering Languages and Systems (MoDELS) 2006, Springer LNCS 4199, Pages 42-56
  3. Dynamic Logic for UML Consistency
  4. Proceedings of the European Conference on Model Driven Engineering (ECMDA-FA) 2006, Springer LNCS 4066, Pages 113-127.
  5. Towards a Readable Formalisation of Category Theory
  6. Proceedings of Computing: The Australasian Theory Symposium (CATS) 2004, pp 212-228, Vol. 91 Electronic Notes in Theoretical Computer Science, Elsevier
  7. Category Theory to Yoneda's Lemma, Archive of Formal Proofs, 2005
  8. Book review of The Unknowable by Gregory Chaitin, Springer 1999 in Studia Logica, Vol. 20 no. 2, 2002, pp 299-302
  9. From Power Up to Bash Prompt, Linux Documentation Project

Interests

I make disturbing noises with my steel-stringed acoustic guitar that somewhat resemble a melange of John Lee Hooker (stompin' boogie blues) and Hawkwind (heavy hippies in space).

Now my thesis is done, I'm finally spending some time on learning French.

Although I'm not actively doing philosophy or serious mathematics lately, I enjoy quizzing philosopher friends about their work, and reading a little topology and category theory.

I like birds and trains and butterflies, but who doesn't?


last updated 5 July 2008