CoLan: A Functional Constraint Language and its Implementation


N. Bassiliades and P.M.D. Gray


Abstract: This paper is about the definition of CoLan, a high-level declarative Constraint Descrip-tion Language, for use with an Object-Oriented Database (OODB). CoLan has features of both first-order logic and functional programming and is based on Daplex. CoLan expres-sions are tran-slated into Prolog code that implements the operational semantics of the con-straint. Pieces of generated code are cached inside the class descriptor of the "host" class attached to appropriate slots. The pieces of code are retrieved along an inheritance path when an update on the data-ba-se is attempted. If the update violates any of the re-trieved constraints then it is re-jected with an info-rmative message. Thus constraints are ex-pressed declaratively and they can even be retracted individually. However, they are im-plemented efficiently as code-gene-rated methods, triggered selectively by an update. The implementation is described for the ADAM OODB, which uses meta-classes of the CoLan system to generate class descriptions.

Keywords: Semantic Integrity Constraints, Object-Oriented Databases, Functional Data Model, Constraint Compilation, Incremental Constraint Checking, Numerical Quantifiers

Appeared in: Data & Knowledge Engineering, Vol. 14, No. 3 (1995) pp. 203-249

Available: Hardcopy on request from the authors.

Relevant Links: Home page of the CoLan system.




Department of Informatics Home Page

LPIS Group Home Page


For any comments regarding this page contact Nick Bassiliades.