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

PROLOG-REQUEST@SUSHI.STANFORD.EDU (Chuck Restivo, The Moderator) (07/28/87)

PROLOG Digest            Tuesday, 28 Jul 1987      Volume 5 : Issue 49

Today's Topics:
                       Query - Representation,
                   Implementation - CProlog Parser,
                     LP Library - WARPLAN Update
----------------------------------------------------------------------
Date: Mon, 20 Jul 87 16:58:51 MET
From: norbert%germany.csnet@RELAY.CS.NET
Subject: Feature (!) in C-Prolog parser

The 'bug' mentioned in the latest issue of the Prolog Digest is one of
the numerous undocumented features of C-Prolog:

If the parser encounters a sequence of a token ',' and a token
'..' in a place where the list separator '|' might be useful,
the sequence is interpreted as that separator. I suppose this was
intended to help people with non-american keyboards, that can't enter
'|' or will see another character instead of it (e.g. in German
'ASCII' the same code is used for an 'o', decorated with two dots). In
fact, it does not help, because nobody knows about it.

-- Norbert Lindenberg
   Universitaet Karlsruhe, West Germany

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

Date: 15 Jul 87 20:09:05 GMT
From: uunet!mnetor!yetti!asst-jos@seismo.css.gov  
Subject: Request for help with C-prolog program

I have a Prolog question that I'm hoping someone might be able to help
me with. I am using C-Prolog version 1.5 on a Vax/VMS 8600. C-Prolog
assigns a unique system name (or internal representation) to a
variable that is composed of the underscore, followed by a sequence of
digits. To illustrate this I include a sample session with the Prolog
interpreter using a Vax/VMS 8600).

$ prolog
C-Prolog version 1.5
| ?- [user].
| go(A,B):-read(A), read(B).
| Exit
user consulted 104 bytes 2.000041e-03 sec.
yes
| ?- go(LIST1,LIST2).
|: [A, B, C].
|: A=32, B=45.
LIST1 = [_6,_7,_8]
_15=32,19=45
yes
| ?-  Exit
[ Prolog execution halted ]

Note that the internal representation of variable A in LIST1, (_6), is
different from the internal representation of variable A in LIST2,
(_15), and that the internal representation of variable B in LIST1,
(_7), is different from the internal representation of variable B in
LIST2, (_19), because they were read separately.

My problem is that I would like to read the same variables from two
different files, and would like to know if it is possible to assure
that they are read as the same variable. To explain this better, I'll
give an example of what I would like to achieve.

     FILE-1 contains:
         [A, B, C].

     FILE-2 contains:
         A = 3, B = C + A

I would like assert the following predicate:

sample_predicate:-  see('FILE-1'), read(VECTOR), seen,
                    see('FILE-2'), read(TEST),seen,
                    assert(( is_true(VECTOR):-TEST )).

The goal is to be able to assign values to the variables in VECTOR,
and then execute 'is_true', so that it will return a value of 'true'
iff TEST is true.

The problem is that the variable 'A' read from FILE-1 is a different
variable from the variable 'A' read from FILE-2, as seen in the sample
prolog code above. How can I make the A read from FILE-1 be the same A
read from FILE-2?

-- Jeff Klein
   York University.

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

Date: Sun 26 Jul 87 15:22:40-PDT
From: Chuck Restivo  <Restivo@Sushi.Stanford.EDU>
Subject: WARPLAN

Prof. D.H.Warren posted a copy of WARPLAN and sample STRIPS world.
Unlike the last version, this one works properly.

See SUSHI.STANFORD.EDU:PS:<Prolog>WARPLAN.PL .  Anonymous FTP should
work, if you cannot FTP, post a note to PROLOG-REQUEST at this site.

-- Chuck

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