[comp.lang.prolog] PROLOG Digest V5 #14

PROLOG-REQUEST@SUSHI.STANFORD.EDU.UUCP (03/12/87)

PROLOG Digest           Thursday, 12 Mar 1987      Volume 5 : Issue 14

Today's Topics:
                   Query -  Search Reorganization,
            Implementation - Clarification & Turbo Opinion
                  Announcement - Colloquium (UPenn)
----------------------------------------------------------------------

Date: 11 Mar 87 06:07:11 GMT
From: Peter Wu <pics!wup@seismo.css.gov>  
Subject: Search re-organization in Compilation

I am looking for references of work done on Prolog implementations
concerning Database search strategies.  We often want to search the
database with partially instantiated keys.  How much work was done
on organizing the strategy for search?  I heard of dramatic improve-
ments on performance when search strategy is done right.  I believe
this is related - or even actually - same as query optimization for
relational database management system.  I may organize the references
and post them, if it deems appropriate.  Thank you. 

-- Peter Y.F. Wu

------------------------------

Date: Wed, 11 Mar 87 09:37:03 PST
From: Fernando Pereira <pereira@sri-candide.ARPA> 
Subject: My noncontribution to Turbo-Prolog

Rick Innis (Prolog Digest vol. 3 Issue 13)  misunderstands Mike Newton's
parenthetical remark ``thanks to Fernando Pereira'' in Mike's discussion
of the (lack of) logical variable in Turbo-Prolog. The thanks are for
pointing out that lack to Mike, not for being responsible for it! I wish
Rick Innis had checked with Mike or me on his reading of Mike's review
before coming out all over the net with a conterfactual paragraph based
on his misreading. He might not be aware of this, but conterfactual
attributions have a way of losing their conterfactual marking when
reproduced: "If Fernando did X then he is a bozo" turns into
"Fernando did X and so he is a bozo" in no time at all...

------------------------------

Date: 10 Mar 87 22:27:23 GMT
From: Mike Newton <newton@csvax.caltech.edu>  
Subject: How do you like Turbo-Prolog?

>>> Also, and most seriously (thanks to Fernando Pereira) there  are 
>>> two more *MAJOR* problems:  the logical variable doesn't really
>>> exist: it is a runtime error to do variable-to-variable unifications

By "thanks to Fernando Pereira" I meant "thanks to him for pointing
this out to me".  I believe he was as upset as I was about the changes.

- Mike Newton

------------------------------

Date: Wed 11 Mar 87 14:26:33-PST
From: Steven Hardy <SHARDY@TEKNOWLEDGE.ARPA>
SUBJECT: TURBO PROLOG

Mike Newton says that Turbo-Prolog does not have 'real' logical
variables and that the following causes a run-time error:

        p(X, X).

        ?- p(X, Y), p(X, a).

I tried this and it worked fine for me.

-- Steve Hardy

------------------------------

Date: 11 Mar 87 16:17:24 GMT
From: Ray Trent <trent@csvax.caltech.edu>  
Subject: What Prolog is good?

In article <473@thumper.UUCP> steve@thumper.UUCP writes:
>Earlier I asked the group what they thought of Turbo Prolog.  Most
>of you don't seem to like it.  I'd like to buy the least expensive
>Prolog that is a Real Prolog for my IBM PC (boy, is that a fuzzy
>set, or what?).  Suggestions would be very useful.

Has anyone out there heard of/used a thing called "Wisdom Prolog".
(it's mentioned in the back of "The Art of Prolog" by Sterling &
Shapiro. It's put out by MIT Press, or so I gather)

It is a low cost product intended for the IBM/Mac/Amiga. They also
mention VMS and Unix versions.

Any comments would be appreciated.

------------------------------

Date: 9 Mar 87 15:56:08 GMT
From: Randy Gordon <tektronix!reed!iscuva!randyg@ucbvax.Berkeley.EDU>  
Subject: What Prolog is good?

I have used both Turbo and Arity Prolog, and frankly, I prefer Arity.

Type checking really isn't a problem. Since true orthogonal
polymorphism isn't present in EITHER implementation, you have to do it
anyways. Turbo requires it at compiletime, whereas you have to use a
separate Alint program to detect type mismatches in Arity. This is
handy if you are trying to debug a program that may have bugs in areas
you DON'T want to fix immediately(Turbo always stops at each error for
confirmation).

The true usefulness of Arity is due to its 1 Gigabyte virtual memory,
and built in b-tree, hashing and linked list predicates. Even if you
don't need the power of a full Edinburgh Prolog.

Turbo is good if you are doing small stuff, and don't have any need for meta-
circular programming( which almost always means non AI work ), but if you
have never experienced the freedom and creativity of a true Edinburgh Prolog,
you are missing one of the great joys in life. Turbo is a dull, difficult
slogging language by comparison. 

-- Randy Gordon

------------------------------

Date: Wed, 11 Mar 87 11:14:21 EST
From: Tim Finin <tim@linc.cis.upenn.edu> 
Subject: Colloquium


                              Colloquium
                   Computer and Information Science
                      University of Pennsylvania

              A NEW PARALLEL EXECUTION MODEL FOR PROLOG

                            Barry S. Fagin
                      Computer Science Division
                  University of California, Berkeley

Logic programming, or programming with mathematical logic, has been
around since the early 1970's, but has only recently attracted major
interest.  This is largely due to the adoption of Prolog as the kernel
language of the Japanese "5th Generation" research effort.
Researchers have expended considerable effort studying Prolog, and it
seems safe to say that the implementation issues of sequential Prolog
are well understood.  The next step, then, is to investigate how
Prolog might best be executed on a multiprocessor.

Unfortunately, current attempts to answer this question have been
woefully inadequate, due to the differing approaches of the
theoretician and the computer architect.  Theoreticians repeatedly
propose schemes for parallel Prolog that utilize a broad spectrum of
concurrency, but ignore costs associated with process creation and
interprocess communication.  Computer architects, on the other hand,
propose models that can be easily mapped onto existing
multiprocessors, but miss potential concurrency.

This talk will present an execution model for Prolog that combines
these two approaches.  I will discuss the theoretical significance of
the model, and present a multiprocessor architecture for it.  I will
present the most extensive simulation results of a parallel logic
programming system to date, and discuss what I believe the
results indicate.

This talk is entirely self-contained; no familiarity with Prolog
or logic programming is assumed.

------------------------------

End of PROLOG Digest
********************