The data flow diagram of a prototype system is given in Figure 10.5. It is based on loose coupling.
There is an assumption that the user connects to the database using ODBC. Then the database is configured as an ODBC data source, and there is an appropriate driver for it. Having an ODBC driver for ReDaReS, the ODBC data source can be changed. The user will connect to ReDaReS instead of RDBMS.
ReDaReS should use the former data source as the database it supposed to connect to. The change is transparent to the user. The ReDaReS data source is not different than the database data source.
The main component of the system is the Manager. It controls all other modules. If there is an incoming query it is received by the ODBC Server. Then it is sent to the Manager for further processing. The Manager consults the database concerning registered Jelly Views and sends the query to the SQL Parser along with this data. The SQL Parser processes the query as it was explained before (see Section 10.5). The query is rewritten and information of all the Jelly Views in the query is returned to the Manager. If the query does not contain any references to Jelly Views, then it is sent to the ODBC Client, which connects to the database and executes the query. The results are returned to the Manager and forwarded to the user through the ODBC Server.
If the SQL Parser notifies that there are some references to Jelly Views, then the course of action is a bit different. The Manager downloads information about the External Matching, Internal Matching and the Program concerning each Jelly View, and starts the Prolog Generator. The Prolog Generator uses the Matchings and the Program to assemble a Complete Program, which is capable of satisfying the goals defined by the External Matching.
Next, the Prolog Interface is launched. It uses the Prolog inference engine to satisfy the goals and it is capable of downloading extensional knowledge from the database. The Prolog Interface provides Prolog Reply which is the inferred data. Then, the SQL Generator takes over. It feeds, using the External Matching, the database with the Jelly Views states. More precisely, these are states of the relations which are replacing references to the Jelly Views, in the rewritten query - the Jelly Relations. As a result the database possesses the inferred data. Finally, the Manager forwards the rewritten query to the database through the ODBC Client. The database sends back a reply, which is forwarded to the user through the ODBC Server.
Igor Wojnicki 2005-11-07