This paper describes the specification and implementation of the middle layer in a new three-layer time-aware agent architecture.
This architecture is designed for applications and environments where societies of humans and agents play equally active roles,
but interact and operate in completely different time frames. The middle layer, called the Time-Aware Layer, uses services
of the underlying real-time layer to co-ordinate the heterogeneous interactions present in composite humanagent systems. Interactions
are unified by abstracting away from their temporal representation, temporal scale and class of parties they involve (be they
humans or agents). To achieve this, this paper firstly introduces Availability Functions as the primary mechanism of reasoning
about temporal constraints placed on interactions. It subsequently describes their stylised analytic representation and develops
a Selective Sampling Algorithm which allows searching through them in bounded time. The resultant implementation allows more
effective engineering of the topmost application layer firstly by providing an abstract, unified view of interactions and
secondly by predicting and guaranteeing their initiation and completion times.