next up previous
Next: Conclusions and Future Work Up: Document: pillow_www6 Previous: Automatic Code Downloading and

Related Work

Previous general purpose work on WWW programming using computational logic systems includes, to the best of our knowledge, the publicly available html.pl library [5] and manual, and the LogicWeb system [23] (the PiLLoW was described previously in [7]). The html.pl library was built by D. Cabeza and M. Hermenegildo, using input from L. Naish's forms code for NU-Prolog and M. Hermenegildo and F. Bueno's experiments building a WWW interface to the CHAT-80 [31] program. It was released as a publicly available WWW library for LP/CLP systems and announced, among other places, in the Internet comp.lang.prolog newsgroup [6]. The library has since been ported to a large number of systems and adapted by several Prolog vendors, as well as used by different programmers in various institutions. In particular, Ken Bowen has ported the library to ALS Prolog and extended it to provide group processing of forms and an alternative to our use of active modules [3]. The present work is essentially a significant extension of the html.pl library.

The main other previous body of work related to general-purpose interfacing of logic programming and the WWW that we have knowledge of is the LogicWeb [23] system, by S.W. Loke and A. Davison. The aim of LogicWeb is to use logic programming to extend the concept of WWW pages, incorporating in them programmable behaviour and state. In this, it shares goals with Java. It also offers rich primitives for accessing code in remote pages and module structuring. The aims of LogicWeb are different from those of html.pl/PiLLoW. LogicWeb is presented as a system itself, and its implementation is done through a tight integration with the Mosaic browser, making use of special features of this browser. In contrast, html.pl/PiLLoW is a general purpose library, meant to be used by a general computational logic systems and is browser-independent. html.pl/PiLLoW offers a wide range of functionalities, such as syntax conversion between HTML and logic terms, access predicates for WWW pages, predicates for handling forms, etc., which are generally at a somewhat lower level of abstraction than those of LogicWeb. We believe that using PiLLoW and the ideas sketched in this paper it is possible to add the quite interesting functionality offered by LogicWeb to standard LP and CLP systems. We have shown some examples including access to passive remote code (modules with an ftp or http address) from programs and automatic remote code access and querying using standard browsers and forms. In addition, we have discussed active remote code, where the functionality, rather than the code itself, is exported.

More recently, a larger body of work on the topic has been presented at the workshop held on the topic of Logic Programming and the Internet at the 1996 Joint International Conference and Symposium on Logic Programming (where also a previous version of this paper was presented). The work presented in [27] is based on LogicWeb, and aims to provide distributed lightweight databases on the WWW. As with the basic LogicWeb system, we believe that the PiLLoW library can be used to implement in other systems the interesting ideas proposed therein. As briefly mentioned before, the work in [28] proposes an architecture similar to that of our active modules in order to handle form requests. In this solution the handling multiple requests is performed by using or-parallelism. While we feel that and-parallelism is more natural for modeling concurrency, the ideas proposed are quite interesting. The ECLiPSe HTTP-library [25], aimed at implementing INTERNET agents, offers functionality that is in part similar to that of the CIAO html.pl/PiLLoW libraries, including facilities that are similar to our active modules. The approach is different, however, in several respects. The ECLiPSe library implements special HTTP servers and clients. In contrast, PiLLoW uses standard HTTP servers and interfaces. Using special purpose servers may be interesting because the approach possibly allows greater functionality. On the other hand this approach in general requires either the substitution of the standard server on a given machine or setting the special server at a different socket address from the standard one. The ECLiPSe library also contains functionality that is related to our active modules, although the interface provided is at a lower level. Finally, other papers describing very interesting WWW applications are being presented, which underline the suitability of computational logic systems for the task. We believe that the CIAO PiLLoW library can contribute to making it even easier to develop such applications in the future.

Additional work on the topic of Logic Programming and the Internet can be found in the proceedings of the workshop sponsored by the Compulog-Net research network. The reader is referred to the tutorials and papers presented in these two workshops for more information on a number of applications, other libraries, and topics such as interfacing and compilation from computational logic systems to Java. An example of a Prolog system interfaced with Java is BinProlog (see http://clement.info.umoncton.ca/BinProlog). Experimental Prolog to Java compilers have been built both in academia (see for example jProlog at http://www.cs.kuleuven.ac.be/ bmd/PrologInJava/) and Commercially (see for example the IF Prolog tools http://www.ifcomputer.com). This approach is quite attractive although the results cannot compete in performance with conventional Prolog compilers (it is open for research whether improvements in Java performance or improved Prolog-to-Java compilation technology can bridge the gap). Other commercial work on the topic of interfacing Prolog and the WWW (in addition to that done on the ALS system mentioned above) include the Amzi! Prolog WebLS System ( http://www.amzi.com/share.htm ) and the LPA PrologWeb System ( http://www.lpa.co.uk ).

A page with pointers to the proceedings of the previously mentioned workshops, as well as other information (including technical reports and tutorial) regarding the topic of Logic Programming, Constraint Programming, and the Internet is maintained at http://www.clip.dia.fi.upm.es/lpnet/index.html.


next up previous
Next: Conclusions and Future Work Up: Document: pillow_www6 Previous: Automatic Code Downloading and

<herme@fi.upm.es>-< webmaster@clip.dia.fi.upm.es>
Last updated on Mon Mar 31 18:18:15 MET DST 1997