# PEngine docs update?

**URL:** https://swi-prolog.discourse.group/t/pengine-docs-update/680
**Category:** SWI-Prolog web site and services
**Created:** [May 20, 2019, 9:10pm UTC](https://swi-prolog.discourse.group/t/pengine-docs-update/680 "2019-05-20T21:10:24Z")
**Posts on this page:** 7
**Page:** 1

<div class="post-metadata">

### Author: ![prodog](https://avatars.discourse-cdn.com/v4/letter/p/57b2e6/32.png) [@prodog](https://swi-prolog.discourse.group/u/prodog)
#### Post date: [May 20, 2019, 9:10pm UTC](https://swi-prolog.discourse.group/t/pengine-docs-update/680/1 "2019-05-20T21:10:24Z")

</div>

The web page below does indicate that the initialization files for an application may change:

[http://www.swi-prolog.org/pengines/Genealogist.html](http://www.swi-prolog.org/pengines/Genealogist.html)

That page has the following text:

```prolog
But we are not done yet. We must also insert the following declarations in the file ./load.pl:

:- pengine_application(genealogist).
:- use_module(genealogist:'/apps/genealogist/genealogist.pl').

```

But it appears that the file name for the file that executes those instructions has changed from `load.pl` to `app.pl` and now has this content:

```prolog
:- module(app_genealogist, []).
:- use_module(library(pengines)).

:- pengine_application(genealogist).
:- use_module(genealogist:genealogist).

```

Perhaps a doc update is in order here?

---

<div class="post-metadata">

### Author: ![Ian](https://yyz2.discourse-cdn.com/free1/user_avatar/swi-prolog.discourse.group/ian/32/1026_2.png) [@Ian](https://swi-prolog.discourse.group/u/Ian)
#### Post date: [May 20, 2019, 10:10pm UTC](https://swi-prolog.discourse.group/t/pengine-docs-update/680/2 "2019-05-20T22:10:01Z")

</div>

Granted the documents are partially wrong, but load.pl hasn’t been renamed to app.pl. if you look at the file-layout shown in the page

```prolog
apps/
   genealogist/
      genealogist.pl
   swish\
   scratchpad\

```

the root directory is the pengine root directory. So ./load.pl refers to ./load.pl in the pengines root directory, which needs to have a reference to Genealogist to expose it. However instead of referencing it directly via `:- use_module(genealogist:'/apps/genealogist/genealogist.pl')`, it indirectly does it by referencing the app.pl module file instead.

```prolog
% access at /apps/genealogist/index.html
:- if(exists_source(apps(genealogist/app))).
:- use_module(apps(genealogist/app)).
:- endif.

```

---

<div class="post-metadata">

### Author: ![prodog](https://avatars.discourse-cdn.com/v4/letter/p/57b2e6/32.png) [@prodog](https://swi-prolog.discourse.group/u/prodog)
#### Post date: [May 20, 2019, 10:18pm UTC](https://swi-prolog.discourse.group/t/pengine-docs-update/680/3 "2019-05-20T22:18:19Z")

</div>

Thanks for clarifying that Ian. Is there a quick way to completely reload a Pengines instance without exiting the interpreter? Currently I launch Pengines by double-clicking on `run.pl`. If I make any salient changes I exit and redo that step. I’m wondering if there is something I can execute from interpreter to effect the same reload.

---

<div class="post-metadata">

### Author: ![jan](https://yyz2.discourse-cdn.com/free1/user_avatar/swi-prolog.discourse.group/jan/32/4_2.png) [@jan](https://swi-prolog.discourse.group/u/jan)
#### Post date: [May 21, 2019, 6:45am UTC](https://swi-prolog.discourse.group/t/pengine-docs-update/680/4 "2019-05-21T06:45:04Z")

</div>

Usually, edit away and run `?- make.`

That said, not that the pengine package is rather poorly maintained. Maintenance is in SWISH, which can do almost anything the original Pengines package can do. Originally swish was a minor demo app inside pengines.

---

<div class="post-metadata">

### Author: ![prodog](https://avatars.discourse-cdn.com/v4/letter/p/57b2e6/32.png) [@prodog](https://swi-prolog.discourse.group/u/prodog)
#### Post date: [May 21, 2019, 9:52am UTC](https://swi-prolog.discourse.group/t/pengine-docs-update/680/5 "2019-05-21T09:52:12Z")

</div>

Thanks @Jan. Swish runs fine for me, but I’m not sure how I would use that as a replacement for Pengines if that’s what you are suggesting? I mean, it’s still the Pengines main code that serves up the HTTP server, provides the Admin interface, etc for Swish. right?

---

<div class="post-metadata">

### Author: ![jan](https://yyz2.discourse-cdn.com/free1/user_avatar/swi-prolog.discourse.group/jan/32/4_2.png) [@jan](https://swi-prolog.discourse.group/u/jan)
#### Post date: [May 21, 2019, 11:07am UTC](https://swi-prolog.discourse.group/t/pengine-docs-update/680/6 "2019-05-21T11:07:21Z")

</div>

[SWISH](https://github.com/SWI-Prolog/swish) is a completely stand alone package with its own admin stuff. That is a little harder to setup as it has configuration for lots of different scenarios ranging from local use to obligatory login to anonymous use. Most of that is achieved using config files from `config-available`.

[Pengines](https://github.com/SWI-Prolog/pengines) (adding links so we know which one we are talking about) is the original web frontend for the Prolog [pengines](https://github.com/SWI-Prolog/packages-pengines) library. A predecessor of SWISH was part of the original pengines web frontend. Gradually SWISH became a system on its own that provides most/all of the functionality that the original pengines provides, though shaped a little different. Pengines is more on server side development, while SWISH is more about interactive usage as well as development. Using notebooks and HTML cells you can do practically the same thing as Pengines does.

---

<div class="post-metadata">

### Author: ![prodog](https://avatars.discourse-cdn.com/v4/letter/p/57b2e6/32.png) [@prodog](https://swi-prolog.discourse.group/u/prodog)
#### Post date: [May 21, 2019, 11:08am UTC](https://swi-prolog.discourse.group/t/pengine-docs-update/680/7 "2019-05-21T11:08:07Z")

</div>

Thanks @Jan!
