Re: attributed variables in GNU Prolog

Adam Russell <[email protected]> Thu, 7 Aug 2025 15:31:59 +0000
Newsgroups gmane.comp.gnu.prolog.general
Message-ID <MN2PR07MB71664F98618330CE055C0684D42CA@MN2PR07MB7166.namprd07.prod.outlook.com>
--_000_MN2PR07MB71664F98618330CE055C0684D42CAMN2PR07MB7166namp_
Content-Type: text/plain; charset="Windows-1252"
Content-Transfer-Encoding: quoted-printable

That would be a great addition to GNU Prolog. Hopefully there being some in=
terest in this is helpful to motivate including it in the future. I underst=
and the reluctance to not include things which are not part of is the ISO s=
tandard, but then again DCGs weren't part of ISO-Prolog until just this pas=
t June!
________________________________
From: Fran=E7ois Fages <[email protected]>
Sent: Thursday, May 15, 2025 2:48 AM
To: [email protected] <[email protected]>
Cc: Adam Russell <[email protected]>
Subject: Re: attributed variables in GNU Prolog

Hello

This fork done by R=E9mi Haemmerl=E9, a former PhD student of mine, dates b=
ack to 20 years ago and was not integrated in GNU-Prolog.
There is currently a discussion about normalizing adding attributed variabl=
es and adding them as an extension of the ISO-Prolog norm.
So perhaps Daniel would be interested in that question.
I would be happy to discuss the matter with him.

Fran=E7ois


On 14 May 2025, at 19:21, Adam Russell <[email protected]> wrote:

I recently came across the work documented here https://pauillac.inria.fr/~=
haemmerl/gprolog-rh/

Similarly I saw the code for that project which seems to be a fork of the m=
ain Gnu Prolog sources. I understand that project is quite old at this poin=
t, but I am curious as to why the main GNU Prolog lacks these features whic=
h were previously developed. I am interested in attributed variables, and m=
ainly use GNU Prolog for my work. Is there any way to get access to these t=
hings from a more current version of GNU Prolog?


Francois Fages <[email protected]<mailto:[email protected]>>
Research Director Inria,
Prof. Ecole Polytechnique
http://lifeware.inria.fr/~fages
Inria Saclay - Team Lifeware - Building A. Turing
1 rue Honor=E9 d'Estienne d=92Orves - 91120 Palaiseau
Tel: +33 (0)1 74854241 Mob: +33 (0)6 82822937
https://inria.webex.com/meet/francois.fages




















--_000_MN2PR07MB71664F98618330CE055C0684D42CAMN2PR07MB7166namp_
Content-Type: text/html; charset="Windows-1252"
Content-Transfer-Encoding: quoted-printable

<html>
<head>
<meta http-equiv=3D"Content-Type" content=3D"text/html; charset=3DWindows-1=
252">
<style type=3D"text/css" style=3D"display:none;"> P {margin-top:0;margin-bo=
ttom:0;} </style>
</head>
<body dir=3D"ltr">
<div style=3D"font-family: Calibri, Helvetica, sans-serif; font-size: 11pt;=
 color: rgb(0, 0, 0);" class=3D"elementToProof">
That would be a great addition to GNU Prolog. Hopefully there being some in=
terest in this is helpful to motivate including it in the future. I underst=
and the reluctance to not include things which are not part of is the ISO s=
tandard, but then again DCGs weren't
 part of ISO-Prolog until just this past June!</div>
<div id=3D"appendonsend"></div>
<hr style=3D"display:inline-block;width:98%" tabindex=3D"-1">
<div id=3D"divRplyFwdMsg" dir=3D"ltr"><font face=3D"Calibri, sans-serif" st=
yle=3D"font-size:11pt" color=3D"#000000"><b>From:</b> Fran=E7ois Fages &lt;=
[email protected]&gt;<br>
<b>Sent:</b> Thursday, May 15, 2025 2:48 AM<br>
<b>To:</b> [email protected] &lt;[email protected]&gt;<br>
<b>Cc:</b> Adam Russell &lt;[email protected]&gt;<br>
<b>Subject:</b> Re: attributed variables in GNU Prolog</font>
<div>&nbsp;</div>
</div>
<div style=3D"line-break:after-white-space">Hello
<div><br>
</div>
<div>This fork done by R=E9mi Haemmerl=E9, a former PhD student of mine, da=
tes back to 20 years ago and was not integrated in GNU-Prolog.</div>
<div>There is currently a discussion about normalizing adding attributed va=
riables and adding them as an extension of the ISO-Prolog norm.</div>
<div>So perhaps Daniel would be interested in that question.</div>
<div>I would be happy to discuss the matter with him.</div>
<div><br>
</div>
<div>Fran=E7ois</div>
<div><br>
</div>
<div>
<div><br>
<blockquote type=3D"cite">
<div>On 14 May 2025, at 19:21, Adam Russell &lt;[email protected]&gt; wro=
te:</div>
<br class=3D"x_Apple-interchange-newline">
<div>
<div class=3D"x_elementToProof" style=3D"font-style:normal; font-variant-ca=
ps:normal; font-weight:400; letter-spacing:normal; text-align:start; text-i=
ndent:0px; text-transform:none; white-space:normal; word-spacing:0px; text-=
decoration:none; font-family:Calibri,Helvetica,sans-serif; font-size:11pt">
I recently came across the work documented here<span class=3D"x_Apple-conve=
rted-space">&nbsp;</span><a href=3D"https://pauillac.inria.fr/~haemmerl/gpr=
olog-rh/" id=3D"LPlnk215695">https://pauillac.inria.fr/~haemmerl/gprolog-rh=
/</a>&nbsp;</div>
<div class=3D"x_elementToProof" style=3D"font-style:normal; font-variant-ca=
ps:normal; font-weight:400; letter-spacing:normal; text-align:start; text-i=
ndent:0px; text-transform:none; white-space:normal; word-spacing:0px; text-=
decoration:none; font-family:Calibri,Helvetica,sans-serif; font-size:11pt">
<br>
</div>
<div class=3D"x_elementToProof" style=3D"font-style:normal; font-variant-ca=
ps:normal; font-weight:400; letter-spacing:normal; text-align:start; text-i=
ndent:0px; text-transform:none; white-space:normal; word-spacing:0px; text-=
decoration:none; font-family:Calibri,Helvetica,sans-serif; font-size:11pt">
Similarly I saw the code for that project which seems to be a fork of the m=
ain Gnu Prolog sources. I understand that project is quite old at this poin=
t, but I am curious as to why the main GNU Prolog lacks these features whic=
h were previously developed. I am
 interested in attributed variables, and mainly use GNU Prolog for my work.=
 Is there any way to get access to these things from a more current version=
 of GNU Prolog?</div>
</div>
</blockquote>
</div>
<br>
<div>
<div dir=3D"auto" style=3D"font-family:Helvetica; font-size:12px; font-styl=
e:normal; font-variant-caps:normal; font-weight:400; letter-spacing:normal;=
 text-align:start; text-indent:0px; text-transform:none; white-space:normal=
; word-spacing:0px; text-decoration:none; color:rgb(0,0,0); line-break:afte=
r-white-space">
<div dir=3D"auto" style=3D"color:rgb(0,0,0); letter-spacing:normal; text-al=
ign:start; text-indent:0px; text-transform:none; white-space:normal; word-s=
pacing:0px; text-decoration:none; line-break:after-white-space">
<div dir=3D"auto" style=3D"color:rgb(0,0,0); letter-spacing:normal; text-al=
ign:start; text-indent:0px; text-transform:none; white-space:normal; word-s=
pacing:0px; text-decoration:none; line-break:after-white-space">
<div style=3D"color:rgb(0,0,0); letter-spacing:normal; text-align:start; te=
xt-indent:0px; text-transform:none; white-space:normal; word-spacing:0px; l=
ine-break:after-white-space">
<div style=3D"color:rgb(0,0,0); letter-spacing:normal; text-align:start; te=
xt-indent:0px; text-transform:none; white-space:normal; word-spacing:0px; l=
ine-break:after-white-space">
<div style=3D"color:rgb(0,0,0); letter-spacing:normal; text-align:start; te=
xt-indent:0px; text-transform:none; white-space:normal; word-spacing:0px; l=
ine-break:after-white-space">
<div style=3D"color:rgb(0,0,0); letter-spacing:normal; text-align:start; te=
xt-indent:0px; text-transform:none; white-space:normal; word-spacing:0px; l=
ine-break:after-white-space">
<div style=3D"color:rgb(0,0,0); letter-spacing:normal; text-align:start; te=
xt-indent:0px; text-transform:none; white-space:normal; word-spacing:0px; l=
ine-break:after-white-space">
<div style=3D"color:rgb(0,0,0); letter-spacing:normal; text-align:start; te=
xt-indent:0px; text-transform:none; white-space:normal; word-spacing:0px; l=
ine-break:after-white-space">
<div style=3D"color:rgb(0,0,0); letter-spacing:normal; text-align:start; te=
xt-indent:0px; text-transform:none; white-space:normal; word-spacing:0px; l=
ine-break:after-white-space">
<div style=3D"color:rgb(0,0,0); letter-spacing:normal; text-align:start; te=
xt-indent:0px; text-transform:none; white-space:normal; word-spacing:0px; l=
ine-break:after-white-space">
<div style=3D"color:rgb(0,0,0); letter-spacing:normal; text-align:start; te=
xt-indent:0px; text-transform:none; white-space:normal; word-spacing:0px; l=
ine-break:after-white-space">
<div style=3D"color:rgb(0,0,0); letter-spacing:normal; text-align:start; te=
xt-indent:0px; text-transform:none; white-space:normal; word-spacing:0px; l=
ine-break:after-white-space">
<div style=3D"color:rgb(0,0,0); letter-spacing:normal; text-align:start; te=
xt-indent:0px; text-transform:none; white-space:normal; word-spacing:0px; l=
ine-break:after-white-space">
<div>
<div>
<div><br class=3D"x_Apple-interchange-newline">
Francois Fages &lt;<a href=3D"mailto:[email protected]">Francois.Fage=
[email protected]</a>&gt;&nbsp;</div>
<div>Research Director Inria,&nbsp;</div>
<div>Prof. Ecole Polytechnique</div>
<div><a href=3D"http://lifeware.inria.fr/~fages">http://lifeware.inria.fr/~=
fages</a>&nbsp;</div>
<div>Inria Saclay - Team Lifeware - Building A. Turing&nbsp;</div>
<div>1 rue Honor=E9 d'Estienne d=92Orves - 91120 Palaiseau&nbsp;</div>
<div>Tel: +33 (0)1 74854241 Mob: +33 (0)6 82822937</div>
</div>
<div><span style=3D"color:rgba(0,0,0,0.95); font-family:ciscosansttregular,=
&quot;Helvetica Neue&quot;,Helvetica,Arial,sans-serif,&quot;Times New Roman=
&quot;; font-size:14px; font-variant-ligatures:normal; orphans:2; widows:2;=
 background-color:rgb(255,255,255); text-decoration-style:initial; text-dec=
oration-color:initial"><a href=3D"https://inria.webex.com/meet/francois.fag=
es">https://inria.webex.com/meet/francois.fages</a></span></div>
<div><span style=3D"color:rgba(0,0,0,0.95); font-family:ciscosansttregular,=
&quot;Helvetica Neue&quot;,Helvetica,Arial,sans-serif,&quot;Times New Roman=
&quot;; font-size:14px; font-variant-ligatures:normal; orphans:2; widows:2;=
 background-color:rgb(255,255,255); text-decoration-style:initial; text-dec=
oration-color:initial"><br>
</span></div>
<div>&nbsp;</div>
</div>
<div><br>
</div>
</div>
<br class=3D"x_Apple-interchange-newline">
</div>
<br class=3D"x_Apple-interchange-newline">
</div>
<br class=3D"x_Apple-interchange-newline">
</div>
<br class=3D"x_Apple-interchange-newline">
</div>
<br class=3D"x_Apple-interchange-newline">
</div>
<br class=3D"x_Apple-interchange-newline">
</div>
<br class=3D"x_Apple-interchange-newline">
</div>
<br class=3D"x_Apple-interchange-newline">
</div>
<br class=3D"x_Apple-interchange-newline">
</div>
<br class=3D"x_Apple-interchange-newline">
</div>
<br class=3D"x_Apple-interchange-newline">
</div>
<br class=3D"x_Apple-interchange-newline">
</div>
<br class=3D"x_Apple-interchange-newline">
</div>
<br class=3D"x_Apple-interchange-newline" style=3D"color:rgb(0,0,0); font-f=
amily:Helvetica; font-size:12px; font-style:normal; font-variant-caps:norma=
l; font-weight:400; letter-spacing:normal; text-align:start; text-indent:0p=
x; text-transform:none; white-space:normal; word-spacing:0px; text-decorati=
on:none">
<br class=3D"x_Apple-interchange-newline">
</div>
<br>
</div>
</div>
</body>
</html>

--_000_MN2PR07MB71664F98618330CE055C0684D42CAMN2PR07MB7166namp_--