[net.lang.prolog] ifprolog.

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.