On Jun 26, 2009, at 1:29 AM, Jan Wielemaker wrote:
> Hi all,
>
> Torbjörn sent a little program to communicate with Prolog using a
> browser. This problem has some interesting aspects that have been
> discussed here several times:
>
> * Deal with state in Prolog web-servers, where the state is
> maintained on the Prolog stacks (stack, choicepoints, variables).
>
> * Deal with interactive web-applications (AJAX)
>
> * Deal with safely calling Prolog code
I'd like to see safe/1 separated out into its own library, and made
hookable, such that I can set up a server and allow access to
predicates from my modules
(I maintain my own safe-checker module but I'd like to stop doing this)
>
> * Deal with handling multiple `theories'
>
> Turning this into a nicely working demo can serve several purposes
>
> * Provide online demos to attract people to your nice library/etc.
> Think of CHR, CLP(FD), etc. Ulrich: online GUPU?
Also: to expose a deductive database via prolog queries
> * Provide a nice skeleton that can help making Prolog
> more inspiring for students. It shows cooperation with modern
> web technology and allows them to write something that is nice
> to show to friends.
nice!
> * Provide a design pattern and libraries to deal with the four
> issues mentioned above.
* A means of allowing other languages to access prolog libraries via
web services.
* Cloud prolog :-)
> Please find below some of the discussion. I've put the current code
> in a new GIT repository on www.swi-prolog.org. See
>
>
http://www.swi-prolog.org/git/web-prolog.git> or git clone git://www.swi-prolog.org/home/pl/git/web-prolog.git
>
> Who is interested in helping?
>
> Cheers --- Jan
>
> On Thursday 25 June 2009 05:47:05 pm Torbjörn Lager wrote:
>> Jan,
>>
>> That looks great! I also got myself a valuable lesson, not only for
>> how deal with threads in SWI, but also how to debug, etc. Please go
>> ahead and make that announcement on the list. I suppose an N-queens
>> demo or something would work, and if no one else steps forward, I'm
>> sure I could build one myself.
>>
>> I was also thinking about creating a small javascript library to
>> accompany
>> the code - something that encapsulates the first-next-stop protocol.
>> But in order to avoid a dependency on any particular Javscript
>> library, maybe it's better to have the server return errors if things
>> show up in the wrong order? (I commented out the button selection
>> code
>> and I as was the able to break the server...).
>>
>> What would be the proper way to handle (secure, perhaps also with
>> restrictions on size) uploads? To load them into a module created
>> with
>> the name of the session?
>>
>> Shouldn't we rather put safe/1 in a module of its own? Seems somewhat
>> orthogoal to the rest of the prolog_server module...
>>
>> I think spending time on this library is well worth the effort - so
>> many interesting apps one could build on top of it!!
>>
>> BTW, did you check out my chat-demo? Simple, but still something that
>> people might want to do.
>>
>> Thanks!
>>
>> Best,
>> Torbjörn
>>
>> 2009/6/25 Jan Wielemaker <
J.Wielemaker@...>:
>>> Torbjörn,
>>>
>>> I used your file as a source of inspiration. See the modified
>>> version
>>> attached. There where some issues in your thread handling. Notably,
>>> there is little reason to spawn the server threads, but there is
>>> reason
>>> to manage the solving threads. Also, /prolog/next *can* arrive on a
>>> different thread!
>>>
>>> Would be nice to modularise this a bit further and add support for
>>> upoading a program. If we can get all this working we might be
>>> able to
>>> create a nice tool for the community and a nice demo for handling
>>> state
>>> through Prolog web-servers. One of the issues in safe compilation.
>>>
>>> Now, I just send the files to you privately. Shall we (you? I?)
>>> make a
>>> query on the list to see if there are people willing to turn this
>>> into
>>> a nice example and Prolog-demo?
>>>
>>> Cheers --- Jan
>
> _______________________________________________
> SWI-Prolog mailing list
>
SWI-Prolog@...
>
https://mailbox.iai.uni-bonn.de/mailman/listinfo.cgi/swi-prolog>
_______________________________________________
SWI-Prolog mailing list
SWI-Prolog@...
https://mailbox.iai.uni-bonn.de/mailman/listinfo.cgi/swi-prolog