Rocksolid Light

Welcome to RetroBBS

mail  files  register  newsreader  groups  login

Message-ID:  

21 May, 2024: Computers section is temporarily disabled for maintenance. It will take several days before it's back.


devel / comp.lang.prolog / Hewitt's Planner

SubjectAuthor
* Hewitt's PlannerMark Tarver
`* Re: Hewitt's PlannerMostowski Collapse
 `* Re: Hewitt's PlannerMostowski Collapse
  `* Re: Hewitt's PlannerMostowski Collapse
   `* Re: Hewitt's PlannerMostowski Collapse
    `- Re: Hewitt's PlannerMostowski Collapse

1
Hewitt's Planner

<169b66a2-aa5b-49fb-a38d-e7867c16e87an@googlegroups.com>

  copy mid

https://www.rocksolidbbs.com/devel/article-flat.php?id=947&group=comp.lang.prolog#947

  copy link   Newsgroups: comp.lang.prolog
X-Received: by 2002:a05:622a:356:: with SMTP id r22mr11529844qtw.377.1633085664144;
Fri, 01 Oct 2021 03:54:24 -0700 (PDT)
X-Received: by 2002:a25:bb0b:: with SMTP id z11mr5479783ybg.108.1633085663934;
Fri, 01 Oct 2021 03:54:23 -0700 (PDT)
Path: i2pn2.org!i2pn.org!weretis.net!feeder6.news.weretis.net!news.misty.com!border2.nntp.dca1.giganews.com!nntp.giganews.com!news-out.google.com!nntp.google.com!postnews.google.com!google-groups.googlegroups.com!not-for-mail
Newsgroups: comp.lang.prolog
Date: Fri, 1 Oct 2021 03:54:23 -0700 (PDT)
Injection-Info: google-groups.googlegroups.com; posting-host=86.28.97.229; posting-account=kJbRXgoAAADVvCa8xCOuqxtZ-KSaXUAS
NNTP-Posting-Host: 86.28.97.229
User-Agent: G2/1.0
MIME-Version: 1.0
Message-ID: <169b66a2-aa5b-49fb-a38d-e7867c16e87an@googlegroups.com>
Subject: Hewitt's Planner
From: dr.mtarver@ukonline.co.uk (Mark Tarver)
Injection-Date: Fri, 01 Oct 2021 10:54:24 +0000
Content-Type: text/plain; charset="UTF-8"
Lines: 6
 by: Mark Tarver - Fri, 1 Oct 2021 10:54 UTC

There's an interesting article on Hewitt's Planner.

https://en.wikipedia.org/wiki/Planner_(programming_language)

Did Planner or MicroPlanner have unification?

Mark

Re: Hewitt's Planner

<e6d7ea13-0b98-4bf9-9435-15a424f8f549n@googlegroups.com>

  copy mid

https://www.rocksolidbbs.com/devel/article-flat.php?id=949&group=comp.lang.prolog#949

  copy link   Newsgroups: comp.lang.prolog
X-Received: by 2002:ad4:4807:: with SMTP id g7mr4025630qvy.19.1633170340770;
Sat, 02 Oct 2021 03:25:40 -0700 (PDT)
X-Received: by 2002:a25:378e:: with SMTP id e136mr3209070yba.26.1633170340613;
Sat, 02 Oct 2021 03:25:40 -0700 (PDT)
Path: i2pn2.org!i2pn.org!weretis.net!feeder6.news.weretis.net!news.misty.com!border2.nntp.dca1.giganews.com!nntp.giganews.com!news-out.google.com!nntp.google.com!postnews.google.com!google-groups.googlegroups.com!not-for-mail
Newsgroups: comp.lang.prolog
Date: Sat, 2 Oct 2021 03:25:40 -0700 (PDT)
In-Reply-To: <169b66a2-aa5b-49fb-a38d-e7867c16e87an@googlegroups.com>
Injection-Info: google-groups.googlegroups.com; posting-host=77.57.53.70; posting-account=UjEXBwoAAAAOk5fiB8WdHvZddFg9nJ9r
NNTP-Posting-Host: 77.57.53.70
References: <169b66a2-aa5b-49fb-a38d-e7867c16e87an@googlegroups.com>
User-Agent: G2/1.0
MIME-Version: 1.0
Message-ID: <e6d7ea13-0b98-4bf9-9435-15a424f8f549n@googlegroups.com>
Subject: Re: Hewitt's Planner
From: bursejan@gmail.com (Mostowski Collapse)
Injection-Date: Sat, 02 Oct 2021 10:25:40 +0000
Content-Type: text/plain; charset="UTF-8"
Lines: 16
 by: Mostowski Collapse - Sat, 2 Oct 2021 10:25 UTC

Maybe PLANNER had unification , maybe it didn't have
unification , is there some computer museum code?

If it didn't have unification , this would somehow
justify that PLANNER built on top of MATCHLESS.

The version with unification would then be based
on MATCHMORE.

Mark Tarver schrieb am Freitag, 1. Oktober 2021 um 12:54:24 UTC+2:
> There's an interesting article on Hewitt's Planner.
>
> https://en.wikipedia.org/wiki/Planner_(programming_language)
>
> Did Planner or MicroPlanner have unification?
>
> Mark

Re: Hewitt's Planner

<01d03b94-b0f5-492b-bc53-e09ca363a84en@googlegroups.com>

  copy mid

https://www.rocksolidbbs.com/devel/article-flat.php?id=950&group=comp.lang.prolog#950

  copy link   Newsgroups: comp.lang.prolog
X-Received: by 2002:ae9:efc9:: with SMTP id d192mr1927025qkg.366.1633171172189;
Sat, 02 Oct 2021 03:39:32 -0700 (PDT)
X-Received: by 2002:a25:cb03:: with SMTP id b3mr3153971ybg.138.1633171170832;
Sat, 02 Oct 2021 03:39:30 -0700 (PDT)
Path: i2pn2.org!i2pn.org!weretis.net!feeder6.news.weretis.net!news.misty.com!border2.nntp.dca1.giganews.com!nntp.giganews.com!news-out.google.com!nntp.google.com!postnews.google.com!google-groups.googlegroups.com!not-for-mail
Newsgroups: comp.lang.prolog
Date: Sat, 2 Oct 2021 03:39:30 -0700 (PDT)
In-Reply-To: <e6d7ea13-0b98-4bf9-9435-15a424f8f549n@googlegroups.com>
Injection-Info: google-groups.googlegroups.com; posting-host=77.57.53.70; posting-account=UjEXBwoAAAAOk5fiB8WdHvZddFg9nJ9r
NNTP-Posting-Host: 77.57.53.70
References: <169b66a2-aa5b-49fb-a38d-e7867c16e87an@googlegroups.com> <e6d7ea13-0b98-4bf9-9435-15a424f8f549n@googlegroups.com>
User-Agent: G2/1.0
MIME-Version: 1.0
Message-ID: <01d03b94-b0f5-492b-bc53-e09ca363a84en@googlegroups.com>
Subject: Re: Hewitt's Planner
From: bursejan@gmail.com (Mostowski Collapse)
Injection-Date: Sat, 02 Oct 2021 10:39:32 +0000
Content-Type: text/plain; charset="UTF-8"
Lines: 43
 by: Mostowski Collapse - Sat, 2 Oct 2021 10:39 UTC

You can look at, both rather say that Planner had single
sided unification but not unification:

Hewitt, Carl (1969). "PLANNER: A Language for Proving Theorems in Robots". IJCAI.
https://stacks.stanford.edu/file/druid:cm792pj8606/cm792pj8606.pdf

Hewitt, Carl (1971). "Procedural embedding of knowledge in planner". IJCAI.
https://www.ijcai.org/Proceedings/71/Papers/014%20A.pdf

May own interpretation why unification did not find
a place in planner: I was based on LISP which is a functional
language, so you would return values.

Whereas unification in Prolog comes handy to build
and return values. Take append, in mode (+,+,-):

append([], X, X).
append([X|Y], Z, [X|T]) :- append(Y, Z, T).

In the first clause unification can return in the third
argument the first argument. In the second clause
unification does even more, it builds a partial result

in the third argument which is later completed when
the body of the goal succeeds. This is not some LISP
thinking, this is rather very subtle and Prologish.

Mostowski Collapse schrieb am Samstag, 2. Oktober 2021 um 12:25:41 UTC+2:
> Maybe PLANNER had unification , maybe it didn't have
> unification , is there some computer museum code?
>
> If it didn't have unification , this would somehow
> justify that PLANNER built on top of MATCHLESS.
>
> The version with unification would then be based
> on MATCHMORE.
> Mark Tarver schrieb am Freitag, 1. Oktober 2021 um 12:54:24 UTC+2:
> > There's an interesting article on Hewitt's Planner.
> >
> > https://en.wikipedia.org/wiki/Planner_(programming_language)
> >
> > Did Planner or MicroPlanner have unification?
> >
> > Mark

Re: Hewitt's Planner

<64bba92a-7bcd-4b4d-9e44-414a6c94d052n@googlegroups.com>

  copy mid

https://www.rocksolidbbs.com/devel/article-flat.php?id=951&group=comp.lang.prolog#951

  copy link   Newsgroups: comp.lang.prolog
X-Received: by 2002:ac8:435e:: with SMTP id a30mr2832979qtn.227.1633172046471;
Sat, 02 Oct 2021 03:54:06 -0700 (PDT)
X-Received: by 2002:a25:378e:: with SMTP id e136mr3317803yba.26.1633172046273;
Sat, 02 Oct 2021 03:54:06 -0700 (PDT)
Path: i2pn2.org!i2pn.org!weretis.net!feeder6.news.weretis.net!news.misty.com!border2.nntp.dca1.giganews.com!nntp.giganews.com!news-out.google.com!nntp.google.com!postnews.google.com!google-groups.googlegroups.com!not-for-mail
Newsgroups: comp.lang.prolog
Date: Sat, 2 Oct 2021 03:54:06 -0700 (PDT)
In-Reply-To: <01d03b94-b0f5-492b-bc53-e09ca363a84en@googlegroups.com>
Injection-Info: google-groups.googlegroups.com; posting-host=77.57.53.70; posting-account=UjEXBwoAAAAOk5fiB8WdHvZddFg9nJ9r
NNTP-Posting-Host: 77.57.53.70
References: <169b66a2-aa5b-49fb-a38d-e7867c16e87an@googlegroups.com>
<e6d7ea13-0b98-4bf9-9435-15a424f8f549n@googlegroups.com> <01d03b94-b0f5-492b-bc53-e09ca363a84en@googlegroups.com>
User-Agent: G2/1.0
MIME-Version: 1.0
Message-ID: <64bba92a-7bcd-4b4d-9e44-414a6c94d052n@googlegroups.com>
Subject: Re: Hewitt's Planner
From: bursejan@gmail.com (Mostowski Collapse)
Injection-Date: Sat, 02 Oct 2021 10:54:06 +0000
Content-Type: text/plain; charset="UTF-8"
Lines: 87
 by: Mostowski Collapse - Sat, 2 Oct 2021 10:54 UTC

Hewitt mentions in his 1969 MATCHLESS. In his 1971 he has
a section where he advertises his pattern matching as being
able doing both deconstruction and construction of terms.

But this still doesn't capture unification not completely.
In append, in the second clause and in mode (+,+,-), the
first argument [X|Y] indeed works as a deconstructor, but

the third argument [X|T] is not really a constructor, because
T is not yet known. It is even extremly contraproductive in Prolog
to follow the constructor idea, like if you would do:

/* Functional Style Variant */
append([], X, X).
append([X|Y], Z, H) :- append(Y, Z, T), H = [X|T].

There are the following drawbacks:

- append is not anymore the last goal, last goal
optimization becomes difficult

- T is still a fresh variable, like before, you would
need some optimization to have it not allocated,
like add a mode (+,+,-) based notion of return value
to the notion of predicate

- H is an additional variable, without optimizations it
would be also viewed as a fresh variable, but fortunately
we can just take what is passed as an argument,
and spare a variable allocation (Works now in Dogelog
Runtime, didn't work in Jekejeke Prolog)

On the other hand in the 1971 I find some first sketches
of a trail and so on. So there are nevertheless similarities
probably of the PLANNER system with a Prolog systems.

This similarities have possibly more to do with similarlities
between pattern matching and single sided unification (SSU),
althouth the later has different Prolog incarnations (ECLiPSe,

SWI and Jekejeke do it differently). Also the MATCHLESS
pattern matching had boolean combination of patterns and
spreading patterns, things that are not in the Prolog core.

Mostowski Collapse schrieb am Samstag, 2. Oktober 2021 um 12:39:32 UTC+2:
> You can look at, both rather say that Planner had single
> sided unification but not unification:
>
> Hewitt, Carl (1969). "PLANNER: A Language for Proving Theorems in Robots". IJCAI.
> https://stacks.stanford.edu/file/druid:cm792pj8606/cm792pj8606.pdf
>
> Hewitt, Carl (1971). "Procedural embedding of knowledge in planner". IJCAI.
> https://www.ijcai.org/Proceedings/71/Papers/014%20A.pdf
>
> May own interpretation why unification did not find
> a place in planner: I was based on LISP which is a functional
> language, so you would return values.
>
> Whereas unification in Prolog comes handy to build
> and return values. Take append, in mode (+,+,-):
>
> append([], X, X).
> append([X|Y], Z, [X|T]) :- append(Y, Z, T).
>
> In the first clause unification can return in the third
> argument the first argument. In the second clause
> unification does even more, it builds a partial result
>
> in the third argument which is later completed when
> the body of the goal succeeds. This is not some LISP
> thinking, this is rather very subtle and Prologish.
> Mostowski Collapse schrieb am Samstag, 2. Oktober 2021 um 12:25:41 UTC+2:
> > Maybe PLANNER had unification , maybe it didn't have
> > unification , is there some computer museum code?
> >
> > If it didn't have unification , this would somehow
> > justify that PLANNER built on top of MATCHLESS.
> >
> > The version with unification would then be based
> > on MATCHMORE.
> > Mark Tarver schrieb am Freitag, 1. Oktober 2021 um 12:54:24 UTC+2:
> > > There's an interesting article on Hewitt's Planner.
> > >
> > > https://en.wikipedia.org/wiki/Planner_(programming_language)
> > >
> > > Did Planner or MicroPlanner have unification?
> > >
> > > Mark

Re: Hewitt's Planner

<19c4d85a-e2e5-463a-80b9-c855958db540n@googlegroups.com>

  copy mid

https://www.rocksolidbbs.com/devel/article-flat.php?id=952&group=comp.lang.prolog#952

  copy link   Newsgroups: comp.lang.prolog
X-Received: by 2002:a37:9d82:: with SMTP id g124mr2043160qke.237.1633172478856;
Sat, 02 Oct 2021 04:01:18 -0700 (PDT)
X-Received: by 2002:a25:4251:: with SMTP id p78mr2969733yba.47.1633172478407;
Sat, 02 Oct 2021 04:01:18 -0700 (PDT)
Path: i2pn2.org!i2pn.org!weretis.net!feeder6.news.weretis.net!news.misty.com!border2.nntp.dca1.giganews.com!nntp.giganews.com!news-out.google.com!nntp.google.com!postnews.google.com!google-groups.googlegroups.com!not-for-mail
Newsgroups: comp.lang.prolog
Date: Sat, 2 Oct 2021 04:01:18 -0700 (PDT)
In-Reply-To: <64bba92a-7bcd-4b4d-9e44-414a6c94d052n@googlegroups.com>
Injection-Info: google-groups.googlegroups.com; posting-host=77.57.53.70; posting-account=UjEXBwoAAAAOk5fiB8WdHvZddFg9nJ9r
NNTP-Posting-Host: 77.57.53.70
References: <169b66a2-aa5b-49fb-a38d-e7867c16e87an@googlegroups.com>
<e6d7ea13-0b98-4bf9-9435-15a424f8f549n@googlegroups.com> <01d03b94-b0f5-492b-bc53-e09ca363a84en@googlegroups.com>
<64bba92a-7bcd-4b4d-9e44-414a6c94d052n@googlegroups.com>
User-Agent: G2/1.0
MIME-Version: 1.0
Message-ID: <19c4d85a-e2e5-463a-80b9-c855958db540n@googlegroups.com>
Subject: Re: Hewitt's Planner
From: bursejan@gmail.com (Mostowski Collapse)
Injection-Date: Sat, 02 Oct 2021 11:01:18 +0000
Content-Type: text/plain; charset="UTF-8"
Lines: 112
 by: Mostowski Collapse - Sat, 2 Oct 2021 11:01 UTC

Sometimes I wish for spreading pattens in Prolog so as to realize
varargs predicates. Recently I noticed that JavaScript and Python
have spreaders. The syntax is:

- JavaScript
Spreaders are denoted by 3 dots `...`

- Python:
List spreaders are denoted by 1 star `*`,
there is also a dict spreaders by 2 stars `**`

Here is what spreading patterns could do in Prolog, for example
we could define call/n via spreading, working for any arity, lets
say '&' would denote spreading in Prolog:

call(X,&Y) :- apply(X,Y).

But the above is only tail spreading, in LPA Prolog one
could attempt the following:

call(X | Y) :- apply(X,Y).

The '|' works like in a list when used inside an argument
list of a compound.

Mostowski Collapse schrieb am Samstag, 2. Oktober 2021 um 12:54:07 UTC+2:
> Hewitt mentions in his 1969 MATCHLESS. In his 1971 he has
> a section where he advertises his pattern matching as being
> able doing both deconstruction and construction of terms.
>
> But this still doesn't capture unification not completely.
> In append, in the second clause and in mode (+,+,-), the
> first argument [X|Y] indeed works as a deconstructor, but
>
> the third argument [X|T] is not really a constructor, because
> T is not yet known. It is even extremly contraproductive in Prolog
> to follow the constructor idea, like if you would do:
>
> /* Functional Style Variant */
> append([], X, X).
> append([X|Y], Z, H) :- append(Y, Z, T), H = [X|T].
>
> There are the following drawbacks:
>
> - append is not anymore the last goal, last goal
> optimization becomes difficult
>
> - T is still a fresh variable, like before, you would
> need some optimization to have it not allocated,
> like add a mode (+,+,-) based notion of return value
> to the notion of predicate
>
> - H is an additional variable, without optimizations it
> would be also viewed as a fresh variable, but fortunately
> we can just take what is passed as an argument,
> and spare a variable allocation (Works now in Dogelog
> Runtime, didn't work in Jekejeke Prolog)
>
> On the other hand in the 1971 I find some first sketches
> of a trail and so on. So there are nevertheless similarities
> probably of the PLANNER system with a Prolog systems.
>
> This similarities have possibly more to do with similarlities
> between pattern matching and single sided unification (SSU),
> althouth the later has different Prolog incarnations (ECLiPSe,
>
> SWI and Jekejeke do it differently). Also the MATCHLESS
> pattern matching had boolean combination of patterns and
> spreading patterns, things that are not in the Prolog core.
> Mostowski Collapse schrieb am Samstag, 2. Oktober 2021 um 12:39:32 UTC+2:
> > You can look at, both rather say that Planner had single
> > sided unification but not unification:
> >
> > Hewitt, Carl (1969). "PLANNER: A Language for Proving Theorems in Robots". IJCAI.
> > https://stacks.stanford.edu/file/druid:cm792pj8606/cm792pj8606.pdf
> >
> > Hewitt, Carl (1971). "Procedural embedding of knowledge in planner". IJCAI.
> > https://www.ijcai.org/Proceedings/71/Papers/014%20A.pdf
> >
> > May own interpretation why unification did not find
> > a place in planner: I was based on LISP which is a functional
> > language, so you would return values.
> >
> > Whereas unification in Prolog comes handy to build
> > and return values. Take append, in mode (+,+,-):
> >
> > append([], X, X).
> > append([X|Y], Z, [X|T]) :- append(Y, Z, T).
> >
> > In the first clause unification can return in the third
> > argument the first argument. In the second clause
> > unification does even more, it builds a partial result
> >
> > in the third argument which is later completed when
> > the body of the goal succeeds. This is not some LISP
> > thinking, this is rather very subtle and Prologish.
> > Mostowski Collapse schrieb am Samstag, 2. Oktober 2021 um 12:25:41 UTC+2:
> > > Maybe PLANNER had unification , maybe it didn't have
> > > unification , is there some computer museum code?
> > >
> > > If it didn't have unification , this would somehow
> > > justify that PLANNER built on top of MATCHLESS.
> > >
> > > The version with unification would then be based
> > > on MATCHMORE.
> > > Mark Tarver schrieb am Freitag, 1. Oktober 2021 um 12:54:24 UTC+2:
> > > > There's an interesting article on Hewitt's Planner.
> > > >
> > > > https://en.wikipedia.org/wiki/Planner_(programming_language)
> > > >
> > > > Did Planner or MicroPlanner have unification?
> > > >
> > > > Mark

Re: Hewitt's Planner

<5af01205-b8b7-4a8f-9e99-3fb83ccc173dn@googlegroups.com>

  copy mid

https://www.rocksolidbbs.com/devel/article-flat.php?id=953&group=comp.lang.prolog#953

  copy link   Newsgroups: comp.lang.prolog
X-Received: by 2002:a37:9586:: with SMTP id x128mr2082163qkd.49.1633172887461;
Sat, 02 Oct 2021 04:08:07 -0700 (PDT)
X-Received: by 2002:a25:8711:: with SMTP id a17mr2841931ybl.358.1633172887229;
Sat, 02 Oct 2021 04:08:07 -0700 (PDT)
Path: i2pn2.org!i2pn.org!weretis.net!feeder6.news.weretis.net!news.misty.com!border2.nntp.dca1.giganews.com!nntp.giganews.com!news-out.google.com!nntp.google.com!postnews.google.com!google-groups.googlegroups.com!not-for-mail
Newsgroups: comp.lang.prolog
Date: Sat, 2 Oct 2021 04:08:07 -0700 (PDT)
In-Reply-To: <19c4d85a-e2e5-463a-80b9-c855958db540n@googlegroups.com>
Injection-Info: google-groups.googlegroups.com; posting-host=77.57.53.70; posting-account=UjEXBwoAAAAOk5fiB8WdHvZddFg9nJ9r
NNTP-Posting-Host: 77.57.53.70
References: <169b66a2-aa5b-49fb-a38d-e7867c16e87an@googlegroups.com>
<e6d7ea13-0b98-4bf9-9435-15a424f8f549n@googlegroups.com> <01d03b94-b0f5-492b-bc53-e09ca363a84en@googlegroups.com>
<64bba92a-7bcd-4b4d-9e44-414a6c94d052n@googlegroups.com> <19c4d85a-e2e5-463a-80b9-c855958db540n@googlegroups.com>
User-Agent: G2/1.0
MIME-Version: 1.0
Message-ID: <5af01205-b8b7-4a8f-9e99-3fb83ccc173dn@googlegroups.com>
Subject: Re: Hewitt's Planner
From: bursejan@gmail.com (Mostowski Collapse)
Injection-Date: Sat, 02 Oct 2021 11:08:07 +0000
Content-Type: text/plain; charset="UTF-8"
Lines: 136
 by: Mostowski Collapse - Sat, 2 Oct 2021 11:08 UTC

The JavaScript and Python spreaders are especially useful,
since they solve some problem of invoking varargs functions.
These problems are for example not so well solved in Java,

in Java there is a messy type system dependence, whereas
JavaScript and Python do not have types per se, so they have
a syntactic solution. Take the SWI-Prolog format predicate:

?- format('~w ~46t ~w~72|~n', [Title, Page]).

With spreaders definition of format you could do, spares
some annoying [ ] typing:

?- format('~w ~46t ~w~72|~n', Title, Page).

Or in case you want to pass an argument list, using
my suggestion of & as a spreader:

?- List = [Title, Page], format('~w ~46t ~w~72|~n', &List).

or then with LPA Syntax, since its tail again:

?- List = [Title, Page], format('~w ~46t ~w~72|~n' | List).

Mostowski Collapse schrieb am Samstag, 2. Oktober 2021 um 13:01:19 UTC+2:
> Sometimes I wish for spreading pattens in Prolog so as to realize
> varargs predicates. Recently I noticed that JavaScript and Python
> have spreaders. The syntax is:
>
> - JavaScript
> Spreaders are denoted by 3 dots `...`
>
> - Python:
> List spreaders are denoted by 1 star `*`,
> there is also a dict spreaders by 2 stars `**`
>
> Here is what spreading patterns could do in Prolog, for example
> we could define call/n via spreading, working for any arity, lets
> say '&' would denote spreading in Prolog:
>
> call(X,&Y) :- apply(X,Y).
>
> But the above is only tail spreading, in LPA Prolog one
> could attempt the following:
>
> call(X | Y) :- apply(X,Y).
>
> The '|' works like in a list when used inside an argument
> list of a compound.
> Mostowski Collapse schrieb am Samstag, 2. Oktober 2021 um 12:54:07 UTC+2:
> > Hewitt mentions in his 1969 MATCHLESS. In his 1971 he has
> > a section where he advertises his pattern matching as being
> > able doing both deconstruction and construction of terms.
> >
> > But this still doesn't capture unification not completely.
> > In append, in the second clause and in mode (+,+,-), the
> > first argument [X|Y] indeed works as a deconstructor, but
> >
> > the third argument [X|T] is not really a constructor, because
> > T is not yet known. It is even extremly contraproductive in Prolog
> > to follow the constructor idea, like if you would do:
> >
> > /* Functional Style Variant */
> > append([], X, X).
> > append([X|Y], Z, H) :- append(Y, Z, T), H = [X|T].
> >
> > There are the following drawbacks:
> >
> > - append is not anymore the last goal, last goal
> > optimization becomes difficult
> >
> > - T is still a fresh variable, like before, you would
> > need some optimization to have it not allocated,
> > like add a mode (+,+,-) based notion of return value
> > to the notion of predicate
> >
> > - H is an additional variable, without optimizations it
> > would be also viewed as a fresh variable, but fortunately
> > we can just take what is passed as an argument,
> > and spare a variable allocation (Works now in Dogelog
> > Runtime, didn't work in Jekejeke Prolog)
> >
> > On the other hand in the 1971 I find some first sketches
> > of a trail and so on. So there are nevertheless similarities
> > probably of the PLANNER system with a Prolog systems.
> >
> > This similarities have possibly more to do with similarlities
> > between pattern matching and single sided unification (SSU),
> > althouth the later has different Prolog incarnations (ECLiPSe,
> >
> > SWI and Jekejeke do it differently). Also the MATCHLESS
> > pattern matching had boolean combination of patterns and
> > spreading patterns, things that are not in the Prolog core.
> > Mostowski Collapse schrieb am Samstag, 2. Oktober 2021 um 12:39:32 UTC+2:
> > > You can look at, both rather say that Planner had single
> > > sided unification but not unification:
> > >
> > > Hewitt, Carl (1969). "PLANNER: A Language for Proving Theorems in Robots". IJCAI.
> > > https://stacks.stanford.edu/file/druid:cm792pj8606/cm792pj8606.pdf
> > >
> > > Hewitt, Carl (1971). "Procedural embedding of knowledge in planner". IJCAI.
> > > https://www.ijcai.org/Proceedings/71/Papers/014%20A.pdf
> > >
> > > May own interpretation why unification did not find
> > > a place in planner: I was based on LISP which is a functional
> > > language, so you would return values.
> > >
> > > Whereas unification in Prolog comes handy to build
> > > and return values. Take append, in mode (+,+,-):
> > >
> > > append([], X, X).
> > > append([X|Y], Z, [X|T]) :- append(Y, Z, T).
> > >
> > > In the first clause unification can return in the third
> > > argument the first argument. In the second clause
> > > unification does even more, it builds a partial result
> > >
> > > in the third argument which is later completed when
> > > the body of the goal succeeds. This is not some LISP
> > > thinking, this is rather very subtle and Prologish.
> > > Mostowski Collapse schrieb am Samstag, 2. Oktober 2021 um 12:25:41 UTC+2:
> > > > Maybe PLANNER had unification , maybe it didn't have
> > > > unification , is there some computer museum code?
> > > >
> > > > If it didn't have unification , this would somehow
> > > > justify that PLANNER built on top of MATCHLESS.
> > > >
> > > > The version with unification would then be based
> > > > on MATCHMORE.
> > > > Mark Tarver schrieb am Freitag, 1. Oktober 2021 um 12:54:24 UTC+2:
> > > > > There's an interesting article on Hewitt's Planner.
> > > > >
> > > > > https://en.wikipedia.org/wiki/Planner_(programming_language)
> > > > >
> > > > > Did Planner or MicroPlanner have unification?
> > > > >
> > > > > Mark


devel / comp.lang.prolog / Hewitt's Planner

1
server_pubkey.txt

rocksolid light 0.9.81
clearnet tor