| David Warren 2005-08-31, 6:58 pm |
| "Dirk Mittler" <mdirk@sympatico.ca> writes:
> ....
> I also installed Cygwin on my computer some time ago, just so that I could
> install XSB Prolog. But unfortunately, I never used that, and so I also did
> not see the major differences just now. I did hear that XSB uses an
> incremental (=learning) database as its core. But in some way I lost sight
> of this knowledge when I posted here.
XSB extends standard Prolog with the idea of tables (or memoing or
cacheing.) It allows you to declare some predicates as "tabled" in
which case it will remember all calls (and answers) to that predicate
and if ever the same call is made in the future, will skip the call
and instead use the results computed by the earlier call and stored in
the table.
The interesting thing about this is that is terminates many loops that
Prolog would otherwise get into. For example, rules like:
p(X,Y) :- p(Y,X).
work finitely as one would like. As perhaps a more interesting
example, ALL DCG's work finitely (for parsing CFG languages), and in
polynomial time.
So XSB is indeed somewhat different from Prolog, but I wouldn't
exactly call it "learning".
Regards, -David
|