SWI-Prolog custom work ideas:

  • Allow in place disk editing of the disk files (like from SWISH source pane)Swish
  • Expand Html Pretty Printer (allow it to be use as a renderer) that creates expandable contractible terms
  • Web based XREF Brower that Includes Dynamically Asserted Predicates into that XREF space
  • http://2.bp.blogspot.com/-Nv5GpJPYOB0/TuHlEPcanWI/AAAAAAAAAYs/xBzJr76nFBM/s1600/OpenCycBrowser.png
  • Integrate the XREF Browser to be usable from SWISH (in some semi-non-obnoxious way)

I have prototyped buggy versions of the above .. but like the disk browser it used php things that would be better off written in Prolog.


TODO Make a statement of work from ... https://swi-prolog.discourse.group/t/swish-cabal/3771

I am maintaining a swish fork that does many new things but I find it a struggle every month keeping up with all the other forks that also do additional wonderful things.

Here are list of some authors whose forks I am consuming: Jan Wielemaker(SWISH!), Miguel Calejo (LPS), Fabrizio Riguzzi 1 (CPLINT, Trill-on-swish-On-Cliopatria), Riccardo Zese (Trill-on-swish)… (I have been combining at least three of Fabrizio 1’s different forks)

Functionality I have Completed:

  • Shared editable Folders/Files that are accessible by users:
    :- use_module(shared(dmiles/project1/mod')).
  • Mapping of user’s Google Docs/Drives onto SWISH’s available files
    (also works for Dropbox) … The idea here is the user can mix the server shared folders with local files by using the cloud services.
    :- use_module(shared(dmiles/gdrive/localcomputer1/project2/modA)).

File browser


1287×733 163 KB

  • SWISH Ability to edit any filetype CodeMirror allows
    (Opens in the same place programs/notebooks open)

Also allows files to be saved after edits.


1174×851 120 KB

  • …. Lots to list here …. (Still doing so)
  • :- use_rendering(html). to allow direct term-ified HTML writing

Inherited/Merged functionality from Forks not maintained yet in SWI:

(The authors of these modules will hopefully have their own wishlist… listed below are just things i copy/used from existing forks)

…. Lots to list here …. (Still doing so)

My further wishlist:

That we have an “Official Fork” that may contain all the projects examples

And wild features combined! into a “Franken-SWISH”
(We can still have the small/tight SWISH that is official one we have now)

  • Ideas: Buttons to Include/Disclude Franken-SWISH content/adornments ? TODO
  • Ability to inspect/browse PACK_INFO 1 (currently only a PLWEB feature) TODO
  • Ability to create Editor pages (tabbed.js) with <iframe>s TODO
  • “Submenus” from ‘swish(examples)’ disk layouts TODO
  • Separate Cliopatria’s aliases of “config-available” and “config-enabled” from SWISH’s (Rename one of them?) NEEDS REDESIGN
  • (My TODO) Making sure that I don’t need to change SWISHes code when I swap out for a different file system browser lib. For example I want to replace elFinder’s Javascript system with Thelia’s Javascript directory browser. How it works now is pretty much I use javascript to communicate to swish what filesystem content is being used/updated … sometimes prolog will actually pull the source text from the URL that is supposedly mapped to the disk… etc TODO
  • The ability to set a long running process and destroy it later in a “Process/Thread manager” TODO
Copywrite © 2020 LOGICMOO (Unless otherwise credited in page)