Automatically determining the situation of an ad-hoc group of people and devices within a smart environment is a significant challenge in pervasive computing systems. Situation identification provides essential context information used by applications to adapt their behaviours.Current approaches to situation determination can be broadly categorised as either specification based or learning based. For specification-based approaches, typically an expert of the local environment is required to specify the correlation of the available sensor data with the situations that occur, often in an ad-hoc manner. As the amount of available sensor data and number of situations increases, it becomes increasingly difficult for an expert to decipher and specify correlations. With learning-based approaches, a training period must be conducted, during which several examples of each situation are collected and analysed, before the system can be used. These factors impede swift adaptation to the evolving set of situations that will occur in an environment over time.Situations are commonly recognised at a coarse level of granularity, which limits the scope of situation-aware applications. For example, only a general 'meeting' situation may be recognised, which prevents applications from tailoring their behaviour to the many different types of meeting that a user may attend.Furthermore, at this level of granularity we are limited to determining whether or not a person or device is involved in a situation. This prevents applications from tailoring their behaviour to the role a person or device is playing within a situation, such as whether a user is a speaker or an audience member in a presentation.We present a novel approach to situation determination that attempts to overcome these issues by providing a reusable library of general situation specifications. These already support various levels of granularity, can be extended easily to create new environment-specific situations, and can be deployed immediately without the need of an environment expert.A proposed architecture of an accompanying situation determination middleware is provided, as well as an analysis of a prototype implementation.