Solution

The main proposed improvement to RDMBS is adding capabilities to store and process intensional knowledge, along with the extensional one. The Prolog inference engine is coupled with the database, and available through standard SQL queries [29,28]. This approach addresses the major disadvantages of current RDBMS and it allows to solve problems from classes: C1 and C2, because they are solvable in Prolog.

Prolog also provides some procedural extensions (see Section 6.4). They allow to control the inference process more strictly and provide procedural programming where it is needed. Choosing Prolog as the inference engine addresses requirements: 1, 2, 3.

By default, Prolog offers backward-chaining [4]. But as it is proven in [4,17], it may be used as a forward-chaining inference engine, as well. Some rules may serve as a modification of the existing backward-chaining engine, providing forward-chaining functionality, while other rules are a meta-program for the forward-chaining inference engine.

Prolog is based on predicate logic, so it is very closely related to the foundation of the relational model. Using Prolog, there is no need for thinking in a non-relational way. If one is familiar with the relational model, he or she is familiar with the logic behind it. Then he or she is also familiar with Prolog, with some minor adjustment concerning the syntax, at most. It addresses requirement 4.

The database can be extended in the following way then:

As a result, RDBMS has its functionality extended toward those of deductive databases (see Chapter 5).

Igor Wojnicki 2005-11-07