The goal of the Situated Adaptive Software Project at Oxford, sponsored by MITI (the Japanese Ministry for Trade and Industry) is to make software more flexible and adaptable by developing a new software paradigm that pays more attention to semantics (e.g., documentation), modularisation, and especially context. This new paradigm will combine the object and logic paradigms, with the intent of taking account of the realities of very large software systems, including the situatedness of software components in relation to technical factors, such as the internal organisation of the software into objects, agents, processes and modules, as well as to their total systems context, including dynamic social, psychological, legal, and commercial factors. Progress towards this long term goal will be made by investigating the foundations of this new paradigm with regard to the semantics and modular specifications of systems of concurrent objects, and techniques for documenting and verifying properties of such systems.
A key research strategy of this project is to use algebra as much as possible, and particularly to use its logic, equational logic, which is the logic of substituting equals for equals. One important reason for this is that many problems are decidable or semi-decidable in equational logic that are not in more complex logics. Hence there are many algorithms and theories to support equational reasoning, and these have efficient implementations in various tools.
The object paradigm has many practical advantages, including its support for code reuse through inheritance, its intuitive appeal, and its affinity for data abstraction and for concurrency. However, it has not been integrated with the complementary advantages of the logic (or perhaps more accurately, relational) and functional paradigms.
A key technical goal in achieving this integration is to introduce so-called ``logical variables'' with values that range over objects. This will support a novel programming style, in which framing a query can activate methods that change the world so that a solution object actually comes to exist. For example, consider a query about a holiday package, with constraints on cost, flight times, hotels, and so on; a solution to this query would be an actual holiday package, with tickets, reservations, etc., satisfying the constraints. One can easily imagine many other application areas, where answering active queries over a domain specific objectbase actually creates new objects that satisfy the given constraints, e.g., in Computer Aided Design.