From: Hamish Harvey
Subject: Lisp (and Prolog, and a bit of KR) job, University of Newcastle upon Tyne, UK
Date: 
Message-ID: <dalov5$kmp$1@ucsnew1.ncl.ac.uk>
I imagine that, regardless of the resurgent status of Lisp, jobs are still
thin enough on the ground for job notices to be welcomed here!

The School: http://www.ceg.ncl.ac.uk/
The University: http://www.ncl.ac.uk/
The job: http://www.ncl.ac.uk/vacancies/vacancy.phtml?ref=D528R

The Earth Systems Engineering group in the School of Civil Engineering and
Geosciences at the University of Newcastle upon Tyne, UK, are developing
software to support flood risk management. The core of this software is a
computation engine capable of taking definitions of rather complex,
multi-dimensional calculations and enacting them. The computation engine
will implement a domain specific language (DSL) designed to support the
expression of these computations in a declarative way. This language and
computation engine are being designed to provide the core of a wide range
of decision support systems from tools to support interactive analysis of
ill-specified problems to flood forecasting systems which depend on the
continuous, unattended assimilation of incoming data. 

The calculations involved in flood risk management involve embedding
numerical simulation of (parts of) the flooding system within layers of
higher level calculations to derive measures of flood risk (e.g. in
expected annual damage), or change in flood risk resulting from particular
interventions, or the sensitivity of particular outputs to uncertainty,
or .... The goal, in general, is to maximise the value of investment in
measures to address flood risk. Aspirations in the flood risk management
community far exceed what is feasible using current technology. To the
extent that such calculations are currently possible, they are achieved
using combinations of software packages and a great deal of munging of data
files. This approach is tedious and error-prone. It almost completely
obscures the structure and meaning of the underlying calcualtions, imposing
huge cognitive load on those undertaking them. It will not scale much
beyond the complexity of problem currently being tackled. 

The DSL under development by contrast allows these calculations, in their
full multi-dimensional glory, to be expressed succinctly in a form which is
amenable to human understanding but which can be compiled into an
executable form. Humans are more involved in defining calculations than
doing them. The language is declarative, based around a formalisation of
the concept of a "reference frame", which allows the structure of a
calculation (and of data sets) to be expressed explicitly (in imperative
implementations this structure is implicit in the control structure of the
code). 

The design of the semantics of the language is well progressed, but subject
to refinement as implementation proceeds. A limited prototype computation
engine exists which implements basic aspects of this language. The position
available is for a software developer to join me in working on this
prototype, which is written in Common Lisp (making extensive use of Lisp's
code-which-writes-code-which-writes-code capabilities). The work will
involve significant creative input at the abstract, conceptual level as
well as in translating from this abstract level into working code. It will
also involve applying the developing prototype to realistic flood risk
analysis case studies.

Initial prototyping is using an ad hoc, s-expression-based concrete syntax
for the language. A further thread of development is to express the
language in a full knowledge representation language (which may dictate
changes to the abstract syntax). Part of the purpose of developing the
language is to support the expression of complex calculations succinctly in
a knowledge representation language. This language will then provide a
point of integration of a wide range of tools which operate in terms of the
structure of the calculation definitions, of which the computation engine
is but one. 

A draft report on the software is available. This has been written for an
audience of flood risk management professionals, not computer scientists or
software developers. It still needs a great deal of polishing, but
nonetheless sets out the breadth of the vision behind this project. The
draft is temporarily available at

http://www.floodrisknet.org.uk/Members/hamish/draft-framework-report.pdf

Funding is initially available for two years, and the appointment is fixed
term. The intention is to obtain additional funds to continue this work for
some time, though this is subject to the vagaries of academic funding. My
own position is also dependent on obtaining this funding, so I am highly
motivated in this regard!

The software will be released under an open source license in due course. 

Please feel free to ask questions (about the job or the software). I will be
away for the first half of next week, so a failure to respond immediately
should not be taken as a lack of interest!

Cheers,
Hamish

-- 
Hamish Harvey
Research Associate, School of Civil Engineering and Geosciences,
University of Newcastle upon Tyne
Network Coordinator, FloodRiskNet (http://www.floodrisknet.org.uk/)
http://weblog.hamishharvey.com/