Reorganising conjunctions

Hi,

I'm working on performance enhancements to the SWI-Prolog rdf_db module
(http://www.swi-prolog.org/packages/semweb.html). Many queries can be
expressed as a conjunction of rdf/3 calls. Typically these things run
very fast _if you write the conjuction in the right order_.

Moving to declarative query languages and even handcrafting the queries
by hand but without sufficient knowledge of the actual graph asks for
runtime reordering of conjunctions. The idea is to exploit SWI-Prolog
5.3.x coroutining facilities and delay rdf/3 calls that cannot be solved
quickly and do proper planning on the collected delayed calls ones we
really need concrete results.

This can't be totally new, but sofar I failed to find good literature on
this. In the end this is a database query optimalisation problem but I
hope (and think) the Prolog and especially RDF context allow for a good
and not very complicated solution.

Does anyone know some good pointers?

	Thanks --- Jan

Received on Monday, 30 August 2004 10:39:44 UTC