A new structure of application programs is suggested, which separates the algorithmic parts from factual information (data and rules). The latter is to be stored in a repository that can be shared among multiple applications. It is argued that rules stating pure relations are better suited for sharing among different applications than procedural or functional rules because these latter rules always determine inputs and outputs. To support such a repository, an extended relational algebra is explored. This algebra serves as the semantic model for a proposed rules language and is the basis for a seamless integration of data and rules. The paper focuses on equational rules. A number of potentially useful algebraic laws are stated. Examples will demonstrate the use of these algebraic laws in query evaluation and optimization. The paper elaborates the Rules/Database system from a programming language point of view. There are two language aspects: the rules language and the application programming interface. The concepts of data types and modules are incorporated into the rules language. The implementation is envisioned as a subsystem with an application programming interface. The interface is outlined. The relation of this approach to PROLOG and expert systems technology (production rules) is discussed. © 1989.