Re: large databases
- From: Jan Wielemaker <jan@xxxxxxxxxxxxxxxxxxx>
- Date: 21 May 2008 12:03:45 GMT
On 2008-05-21, Simon Strobl <Simon.Strobl@xxxxxxxxx> wrote:
Hello,
I am trying to work with large databases. Most Prologs seem to be
unable to load databases whose size surpasses a certain limit. An
example: I had both Swi and Yap load a 3.1G database. Swi ran several
days until I stopped the experiment. Yap produced a segmentation fault
after a few minutes.
Are there any tricks for loading such databases?
The Prolog system should of course be able to handle it, but most
importantly, make sure most of your database predicates are properly
indexed. Non-indexed calls to predicates with millions of clauses is no
fun. This may imply building additional indexes, but as long as you have
the memory to hold the extra tables that will pay off.
YAP does a lot more on dynamic indexing, so there is less work for you
to consider. SWI only does first argument indexing, but surely on 64-bit
hardware you can use a lot of memory.
Cheers --- Jan
Note that splitting a database up is not always a solution. Sometimes.
one wants to be able to easily compare all facts with all other facts.
Simon
- Follow-Ups:
- Re: large databases
- From: Simon Strobl
- Re: large databases
- References:
- large databases
- From: Simon Strobl
- large databases
- Prev by Date: Re: call, ..= operator, records (newbie)
- Next by Date: Re: In which cases/problems is Prolog faster than Java?
- Previous by thread: large databases
- Next by thread: Re: large databases
- Index(es):