[comp.lang.prolog] Segmenting a Prolog Data Base to Speed Up Search

gillam@aero.ARPA (April Gillam) (11/18/87)

We are developing a quasi expert system to make a conceptual design
of a spacecraft. This involves a lot of data and rules at the
spacecraft mission level and at the subsystem(acs,power,comm,etc.)
level. We will also be keeping track of 'historical' info on spacecraft
that have already been launched. 

The system is being written in Quintus Prolog, which is relatively new to
me. Is there some way to segment the data bases so that there are fewer
facts for the 'matcher' to plough through till it finds the appropriate
data?  I have been considering separating the data into different files
and only loading in what is needed to do the inferencing & calculations,
& then deleting it -- if I can figure out when to do that & hope the
overhead is less than the search time when all that info is in the
database at once.

I've implemented Sterling & Shapiro's symbolic equation solver with some
enhancements, but it is fairly slow on the substitution part. (By the way,
I recommend The Art of Prolog. It's been very useful.) I'm assuming that
is because there's so much data associated with each spacecraft, and for
simplicities sake I'm using the same format for most of the data. This
allows many routines to be used in many different situations, but there is
all that data!

Thanks for any help on this.

		April Gillam
		gillam@aerospace.ARPA
		Aerospace Corp.