ok@edai.UUCP (Richard O'Keefe) (03/05/84)
Do you know the word "chutzpah"? The standard example is a man who
has murdered both his parents, and in Court asks for mercy on the
grounds that he is an orphan. Here's another example.
I have under my left hand at this moment ... (now I've taken my
hand off it) some promotional literature for IF-Prolog, which is
produced by an outfit called InterFace Computer GmbH in Germany. On the
front cover (which carries in large letters "Prolog made in Germany")
they have a quotation from Alain Colmerauer, from D. Bjoerner, and from
me. The quotation from me is repeated on the last of the 15 sheets.
Obviously it's good one. The quotation is in fact in praise of their
debugger.
I have no desire to withdraw my praise of that debugger, but you
ought to know the context in which it was written. InterFace Computer
were the first commercial outfit to get a licence for EdCAAD's C-Prolog.
The British Technology Group, who administer products that come out of
UGC-funded research in the UK, were dragging their feet, and hadn't got
a proper commercial agreement worked out. So as a favour (and as a
lever to try to get the BTG de-leaded) InterFace Computer were given an
ACADEMIC licence for C-Prolog. InterFace Computer have never had a
commercial licence for C-Prolog, and have rejected in the strongest
terms the suggestion that they should have one. Well, there's no harm
in that. But it came to EdCAAD's notice that InterFace Computer were
about to distribute their Prolog system through Springer Verlag, and
EdCAAD said to Springer, "Can you assure us that this isn't OUR Prolog
they're trying to sell you?". To cut a long story short, Springer
finally arranged that someone who knew something about C-Prolog would go
to Munich and look at the sources of IF Prolog. Fernando Pereira
couldn't leave the USA without going through an inordinately complex
process to get back in, so it was agreed that I would go.
Well, I went. Springer paid my air fare, and InterFace Computer
paid for my hotel accomodation and food. The date had been arranged
with Springer so that a Springer representative could be there. He
wasn't. (Or she, or it.) The InterFace people were all very nice to me.
I had gone expecting to find that IF Prolog was completely new. After
all, I thought, if they knew their product was a ripoff, surely they'd
back down rather than let anyone KNOW. I still hadn't learned about
chutzpah. While I found that the structure of the interpreter was
original (it is neater than C-Prolog, but C-Prolog is a mess so that you
can save the current state), and that the debugger was entirely novel
and quite pleasant to use, NEVERTHELESS
[1] the program was nowhere near finished. I found several bugs, which
were fixed while I was there, but what I really have in mind was the
way the interpreter carefully distinguished between local and global
variables (like Dec-10 and C-Prolog) and then proceeded to treat
them exactly alike. Because of the length of time involved, I was
left with some doubt as to whether this was the program InterFace
had intended selling in the first place, or whether perhaps it had
been written after EdCAAD's letter to Springer. Preben Folkjaer
seemed to me to be too competent to have taken so long on such an
unfinished program.
[2] Some of the claims made in the promotional literature InterFace had
been handing out at IJCAI 83 were false (there was no IBM PC
version, for example), and others were true only if you
re-interpreted them. What I have in mind here is the claimed
garbage collection (no, only 'trimcore', IF Prolog *when I saw it*
did not garbage collect the stacks) and tail recursion optimisation
(when I saw it this only applied to predicates with no arguments!
and there was another restriction I've forgotten).
[3] This is the real point:
A blind baby couldn't have missed the fact that about 30 pages
(I haven't the report by me, but it was no less than that) was
essentially verbatim C-Prolog, with only minor editing.
The part of C-Prolog which had been incorported into IF Prolog was
I/O. There could have been some doubt about output, as there aren't all
that many ways of coding "write", but fortunately they had preserved all
the bugs intact. I have seen the following Prolog readers: Dec-10
Prolog, PDP-11 Prolog, C-Prolog, York Prolog, UNSW Prolog, Prolog-X,
PopLog, Leuven Prolog, and MU-Prolog. Of these, only MU-Prolog's reader
at all resembles C-Prolog's, the others are radically different. And
MU-Prolog's author had the honesty to include the C-Prolog copyright
notice in his program.
I did not have the opportunity to benchmark IF Prolog, I was there
long enough to read the sources and write my report and that was it. It
is a tagged system, and the way it is done suggests to me that it may be
inherently slower than C-Prolog. And C-Prolog in turn is slower than
the current versions of Prolog-X and Poplog. A serious lack in IF
Prolog is that they didn't support term comparison (and from the
promotional literature ... my left hand is on it again ... they still
don't) so they haven't got setof or bagof. (By the way, PopLog hasn't
got term comparison either, but it HAS got setof.) They do have
findall, but anyone with the Clocksin & Mellish book.
Well, given that an independent judge (I have had a very great deal
to do with C-Prolog, but I don't get a penny on its sales) had ruled
that there was enough of C-Prolog in IF Prolog for them to be in
violation of the terms of the academic licence, but that there was a lot
that was original, and given that said independent judge said he thought
they ought to come to terms with EdCAAD, who were principally after
recognition and weren't intending to demand much in the way of
royalities, you'd think that they would either try to discredit my
report or else that they'd start talking to EdCAAD.
Unfortunately, EdCAAD had been unwise enough to include a copy of a
commerical licence form in their letter to Springer. So InterFace are
suing EdCAAD for "unfair competition"! And they're using an
unauthorised extract from a report which politely pointed out what
wasn't ripped off and what WAS in their sales material!
THAT'S CHUTZPAH!
Richard A. O'Keefe.andrewt@basser.SUN (Andrew Taylor) (03/08/84)
Proprietory reasons aside I think copying the code of C-Prolog is very unwise. C-Prolog design is good but the implementation is very crook. Andrew Taylor ...!decvax!mulga!andrewt:basservax
shee@aloha1.UUCP (shee) (10/24/86)
We have if/prolog version 3.0 on unix operating system on HP-9000 machine. We are looking for ways to increase the memory capacity of if/prolog so that there is no stack overflow for our knowledge_based ai programs.