CoLan: A Functional Constraint Language and its Implementation
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.