Vision systems are now delivering real-time tracked and classified data from which behaviours can be inferred. Behavioural specifications of observable entities are viewed as attribute grammars with general constraints on the values of the attributes. The characteristics features of realistic input data to a behavioural recogniser are missing, inserted and noisy values. Behaviour recognition is defined in terms of a simple language which is used to express behaviour specifications. The meaning of a specification is given by a mapping to the set of observable value sequences which exhibit the specified behaviour. A computational mechanism for behaviour recognition, which is consistent with the meaning of behaviour specifications, is given using a simple functional programming language which has been enriched with non-deterministic features. The non-determinism is controlled using a simple belief mechanism.