Hostname: page-component-7c8c6479df-nwzlb Total loading time: 0 Render date: 2024-03-29T06:12:59.271Z Has data issue: false hasContentIssue false

Distributed WWW programming using (Ciao-)Prolog and the PiLLoW library

Published online by Cambridge University Press:  15 June 2001

DANIEL CABEZA
Affiliation:
CLIP Group
http://www.clip.dia.fi.upm.es -- http://www.cliplab.org
Facultad de Informática, Universidad Politécnica de Madrid (UPM), 28660-Boadilla del Monte, Madrid, Spain (e-mail: dcabeza@fi.upm.es, herme@fi.upm.es)
MANUEL HERMENEGILDO
Affiliation:
CLIP Group
http://www.clip.dia.fi.upm.es -- http://www.cliplab.org
Facultad de Informática, Universidad Politécnica de Madrid (UPM), 28660-Boadilla del Monte, Madrid, Spain (e-mail: dcabeza@fi.upm.es, herme@fi.upm.es)

Abstract

We discuss from a practical point of view a number of issues involved in writing distributed Internet and WWW applications using LP/CLP systems. We describe PiLLoW, a public-domain Internet and WWW programming library for LP/CLP systems that we have designed to simplify the process of writing such applications. PiLLoW provides facilities for accessing documents and code on the WWW; parsing, manipulating and generating HTML and XML structured documents and data; producing HTML forms; writing form handlers and CGI-scripts; and processing HTML/XML templates. An important contribution of PiLLoW is to model HTML/XML code (and, thus, the content of WWW pages) as terms. The PiLLoW library has been developed in the context of the Ciao Prolog system, but it has been adapted to a number of popular LP/CLP systems, supporting most of its functionality. We also describe the use of concurrency and a high-level model of client-server interaction, Ciao Prolog's active modules, in the context of WWW programming. We propose a solution for client-side downloading and execution of Prolog code, using generic browsers. Finally, we also provide an overview of related work on the topic.

Type
Regular Paper
Copyright
© 2001 Cambridge University Press

Access options

Get access to the full version of this content by using one of the access options below. (Log in options will check for institutional or personal access. Content may require purchase if you do not have access.)