Automated Reasoning for Situational Awareness


This is a PhD level project.

I general terms, situational awareness is the problem of comprehending a current situation from a given set of observations and assessing its consequences in the near future.

Building a software system for situational awareness is difficult for a variety of reasons. In the real world we rarely have complete and/or correct observations. Sensor input like that from GPS data is inherently noisy, object recognition from video/photos is unreliable, databases are incomplete or inconsistent, and status reports from human actors can be entirely missing or be late, etc. Another major obstacle comes from theoretical and practical limitations regarding domain modeling and reasoning with such models and imperfect data.

This is why existing information systems are useful but not as "smart" as they should be. One should expect such a system to be able to fill in unobserved events, auto-correct erroneous data, retro-fit late observations to explain to re-adjust earlier conclusions, and much more. For example, given a GPS trace of a truck, a map, and background knowledge of, say, warehouses, boom gates, traffic congestions etc, one should be able to answer a question like "Why has the truck stopped?" (It could be at a warehouse, e.g.). Current systems don't do that.

This is where our approach based on logic and automated reasoning come in. Generally speaking, our idea is to exploit research from relevant AI areas like diagnosis, planning, temporal logic, automated reasoning (first-order, ontologies) and probabilistic inference in an implemented system and making its features available through a re-usable modeling language.


Our system has been developed originally for factory floor monitoring and is currently being extended and validated for supply chain monitoring. But it is far from finished and we always seek to extend it for new functionality and applications.


You should have a good background in maths and theoretical computer science, as the project will be based on logic. You should enjoy programming and be familiar with a modern high-level programming language. We use Scala, which you can learn on the fly. We might be able to define a project that is leaning towards your interest (theoretical or practical).

Background Literature

See the 2018/2019/2020  publications on this page: .

They should give you an idea of our work.


Learn and advance methods for analyzing state-based systems and get a PhD out of that.


Automated Reasoning, Temporal Logic, Probabilistic Reasoning, Ontologies, Scala

Updated:  1 June 2019/Responsible Officer:  Dean, CECS/Page Contact:  CECS Marketing