1992tools D. Szafron, SPECTalk: An Object-Oriented Data Specification Language, TOOLS USA 92, August 1992, pp. 123-137. abstract or pdf.

This paper describes SPECTalk, an object-oriented language for specifying data. SPECTalk uses (hierarchical) object encapsulation, instantiation, inheritance and constraints to specify both the definitions of data formats and the representation of data instances. In addition, because SPECTalk is an executable specification language, specifications can be executed to check their validity. In addition to its object-oriented features, SPECTalk also provides full support for the specification of relational databases. The SPECTalk language rests on top of Smalltalk. In turn, SPECTalk is intended as a base layer for more specialized data specification languages. For example, SPECTalk serves as the base layer for SAIF, a specification language for geographic information systems that is being used by the government of British Columbia.