{"status":"ok","message-type":"work","message-version":"1.0.0","message":{"indexed":{"date-parts":[[2026,2,5]],"date-time":"2026-02-05T07:52:50Z","timestamp":1770277970884,"version":"3.49.0"},"reference-count":23,"publisher":"Cambridge University Press (CUP)","issue":"3","license":[{"start":{"date-parts":[[2008,5,1]],"date-time":"2008-05-01T00:00:00Z","timestamp":1209600000000},"content-version":"unspecified","delay-in-days":0,"URL":"https:\/\/www.cambridge.org\/core\/terms"}],"content-domain":{"domain":[],"crossmark-restriction":false},"short-container-title":["Theory and Practice of Logic Programming"],"published-print":{"date-parts":[[2008,5]]},"abstract":"<jats:title>Abstract<\/jats:title><jats:p>Prolog is an excellent tool for representing and manipulating data written in formal languages as well as natural language. Its safe semantics and automatic memory management make it a prime candidate for programming robust Web services. Although Prolog is commonly seen as a component in a Web application that is either embedded or communicates using a proprietary protocol, we propose an architecture where Prolog communicates to other components in a Web application using the standard HTTP protocol. By avoiding embedding in external Web servers, development and deployment become much easier. To support this architecture, in addition to the transfer protocol, we must also support parsing, representing and generating the key Web document types such as HTML, XML and RDF. This article motivates the design decisions in the libraries and extensions to Prolog for handling Web documents and protocols. The design has been guided by the requirement to handle large documents efficiently. The described libraries support a wide range of Web applications ranging from HTML and XML documents to Semantic Web RDF processing. The benefits of using Prolog for Web-related tasks are illustrated using three case studies.<\/jats:p>","DOI":"10.1017\/s1471068407003237","type":"journal-article","created":{"date-parts":[[2008,3,20]],"date-time":"2008-03-20T05:11:20Z","timestamp":1205989880000},"page":"363-392","source":"Crossref","is-referenced-by-count":46,"title":["SWI-Prolog and the web"],"prefix":"10.1017","volume":"8","author":[{"given":"JAN","family":"WIELEMAKER","sequence":"first","affiliation":[]},{"given":"ZHISHENG","family":"HUANG","sequence":"additional","affiliation":[]},{"given":"LOURENS","family":"VAN DER MEIJ","sequence":"additional","affiliation":[]}],"member":"56","published-online":{"date-parts":[[2008,5,1]]},"reference":[{"key":"S1471068407003237_ref22","first-page":"128","volume-title":"ICLP 2005","author":"Wielemaker","year":"2005"},{"key":"S1471068407003237_ref20","doi-asserted-by":"crossref","unstructured":"van Gendt M. , Isaac A. , van der Meij L. and Schlobach S. 2006. Semantic web techniques for multiple views on heterogeneous collections: A case study. In Research and Advanced Technology for Digital Libraries. Lecture Notes in Computer Science, vol. 4172. Springer, Berlin, 426\u2013437.","DOI":"10.1007\/11863878_36"},{"key":"S1471068407003237_ref10","unstructured":"Huang Z. and Stuckenschmidt H. 2005. Reasoning with multiversion ontologies: A temporal logic approach. In International Semantic Web Conference, Gil Y. , Motta E. , Benjamins V. R. , and Musen M. A. , Eds. Lecture Notes in Computer Science, vol. 3729. Springer, 398\u2013412."},{"key":"S1471068407003237_ref13","unstructured":"Leth L. , Bonnet P. , Bressan S. and Thomsen B. 1996. Towards ECLiPSe agents on the internet. In Proceedings of the 1st Workshop on Logic Programming Tools for INTERNET Applications, Bonn, Germany."},{"key":"S1471068407003237_ref8","doi-asserted-by":"publisher","DOI":"10.1145\/567498.567525"},{"key":"S1471068407003237_ref1","unstructured":"Bechhofer S. , M\u00f6ller R. and Crowther P. 2003. The DIG description logic interface. In International Workshop on Description Logics (DL2003), Rome, vol. 81 (electronic)."},{"key":"S1471068407003237_ref3","unstructured":"Cabeza D. and Hermenegildo M. V. 2003. Distributed WWW programming using (ciao-) prolog and the piLLoW library. CoRR cs.DC\/0312031."},{"key":"S1471068407003237_ref11","first-page":"454","volume-title":"Proceedings of the International Joint Conference on Artificial Intelligence \u2013 IJCAI'05","author":"Huang","year":"2005"},{"key":"S1471068407003237_ref18","unstructured":"Schlobach S. and Huang Z. 2005. Inconsistent Ontology Diagnosis: Framework and Prototype. Deliverable D3.6.1. SEKT. URL:http:\/\/www.cs.vu.nl\/~huang\/sekt\/sekt361.pdf"},{"key":"S1471068407003237_ref4","unstructured":"Demoen B. 2002. Dynamic Attributes, Their hProlog Implementation, and a First Evaluation. Report CW 350. Department of Computer Science, K.U. Leuven, Leuven, Belgium. URL:http:\/\/www.cs.kuleuven.ac.be\/publicaties\/rapporten\/cw\/CW350.abs.html."},{"key":"S1471068407003237_ref21","first-page":"331","volume-title":"Practical Aspects of Declarative Languages","author":"Wielemaker","year":"2003"},{"key":"S1471068407003237_ref7","unstructured":"Haarslev V. and M\u00f6ller R. 2001. Description of the racer system and its applications. In Proceedings of the International Workshop on Description Logics (DL-2001), Stanford University, CA, 132\u2013141."},{"key":"S1471068407003237_ref2","unstructured":"Broekstra J. , Kampman A. and van Harmelen F. 2002. Sesame: An architecture for storing and querying RDF and RDF schema. In Proc. First International Semantic Web Conference ISWC 2002, Sardinia, Italy. Lecture notes on computer science, vol. 2342. Springer-Verlag, Berlin, 54\u201368."},{"key":"S1471068407003237_ref19","unstructured":"Szeredi P. , Moln\u00e1r K. and Scott R. 1996. Serving multiple HTML clients from a Prolog application. In Proceedings of the 1st Workshop on Logic Programming Tools for INTERNET Applications, JICSLP'96, Bonn. URL:http:\/\/clement.info.umoncton.ca\/~lpnet\/lpnet9.html"},{"key":"S1471068407003237_ref5","doi-asserted-by":"publisher","DOI":"10.1007\/978-3-642-61411-8"},{"key":"S1471068407003237_ref6","doi-asserted-by":"crossref","first-page":"251","DOI":"10.1017\/S147106840100117X","article-title":"Distributed WWW programming using (ciao-) prolog and the piLLoW library","volume":"1","author":"Gras","year":"2001","journal-title":"Theory and Practice of Logic Programming"},{"key":"S1471068407003237_ref16","unstructured":"Philips L. 2000. The double metaphone search algorithm. C\/C++ Users Journal 18, 6 (June), 38\u201343."},{"key":"S1471068407003237_ref9","unstructured":"Horrocks I. 1999. Fact and ifact. In Proceedings of the International Workshop on Description Logics (DL'99), Sweden, 133\u2013135."},{"key":"S1471068407003237_ref12","unstructured":"Huang Z. and Visser C. 2004. Extended DIG Description Logic Interface Support for PROLOG. Deliverable D3.4.1.2. SEKT."},{"key":"S1471068407003237_ref23","first-page":"644","volume-title":"The Semantic Web \u2013 Proceedings ISWC'03, Sanibel Island, Florida","author":"Wielemaker","year":"2003"},{"key":"S1471068407003237_ref14","first-page":"797","volume-title":"International Semantic Web Conference","author":"M\u00e4kel\u00e4","year":"2004"},{"key":"S1471068407003237_ref15","doi-asserted-by":"publisher","DOI":"10.1145\/219717.219748"},{"key":"S1471068407003237_ref17","first-page":"697","volume-title":"Proceedings of the 12th International Conference on Logic Programming","author":"Ramakrishnan","year":"1995"}],"container-title":["Theory and Practice of Logic Programming"],"original-title":[],"language":"en","link":[{"URL":"https:\/\/www.cambridge.org\/core\/services\/aop-cambridge-core\/content\/view\/S1471068407003237","content-type":"unspecified","content-version":"vor","intended-application":"similarity-checking"}],"deposited":{"date-parts":[[2019,3,30]],"date-time":"2019-03-30T14:57:54Z","timestamp":1553957874000},"score":1,"resource":{"primary":{"URL":"https:\/\/www.cambridge.org\/core\/product\/identifier\/S1471068407003237\/type\/journal_article"}},"subtitle":[],"short-title":[],"issued":{"date-parts":[[2008,5]]},"references-count":23,"journal-issue":{"issue":"3","published-print":{"date-parts":[[2008,5]]}},"alternative-id":["S1471068407003237"],"URL":"https:\/\/doi.org\/10.1017\/s1471068407003237","relation":{},"ISSN":["1471-0684","1475-3081"],"issn-type":[{"value":"1471-0684","type":"print"},{"value":"1475-3081","type":"electronic"}],"subject":[],"published":{"date-parts":[[2008,5]]}}}