Situations are contexts in which attributes assume particular values. Constraints describe invariant relationships among the values of attributes. PSL specifications document sets of properties and constraints without claiming that these fully describe a system, or ruling out the existence of unmentioned components, situations, or events. These omissions make way for the kinds of refinement and extensibility necessary in the development of open systems. As a basis for specification, PSL relies on any framework for declaring interfaces, operations, and pure value types such as integers, records, etc.
Predicates are boolean expressions.
Within expressions, commas may be used as low-precedence and separators. A role may have finite temporal existence. However, the lifetime of a role need not be coextensive with that of any given implementation object. Instead, lifetime properties are described with respect to the liveness of handles used to access instances. In PSL, each distinct instance of a role is ascribed a unique handle.