Está en la página 1de 2

[Prolog en la Web | La web como Base de Conocimiento | .

] Tisocco Pertus, Leandro Joaqun 0- Resumen Prolog es un excelente lenguaje de programacin para la representacin y manipulacin de datos escritos en un lenguaje formal como el lenguaje natural o humano. Estas caractersticas lo hacen un excelente candidato para la manipulacin del contenido en la Web. La motivacin de este trabajo es mostrar las librerias que posee Prolog para el manejo de los protocolos de Internet y [if(manejo)=|tratamiento] de documentos Webs, como pueden ser documentos HTML o XML, para lo cul se han desarrollado una serie de ejemplos donde se ve el funcionamiento de estas extenciones del lenguaje manipulando documentos HTML. Keywords: Prolog, HTTP, HTML, XML, DOM? 1- Introduccin Hablar un poco de: la representacion de conocimiento la web e informacin en ella los documentos web como [formas] representacion de conocimiento 2- Parseo y Representacin de documentos Web La manipulacin de los diferentes formatos estandares de la Web (como son XML, HTML, SGML) es similar debido a que todos son aplicaciones SGML. Dado esto nos concentraremos en detallar el parsing y representacin de documentos HTML sabiendo que los dems estandares se trabajan de forma similar. HTML representa docuementos de forma jerarquica usando un conjunto de elementos (tags), donde en el DTD (Document Type Declaration) se detallan de forma formal las restricciones de anidamiento. Cada nodo o elemento de esta jerarquia tendra un nombre (element-name), una serie de par de elementos del tipo nombre-valor (element-atributtes) y una secuencia de sub-elementos y datos (element-content). La ltima implementacin del parser SGML esta contruida como una librera de C que fue desarrollada para ser un parser lightweight. Este parser provee dos interfaces. La ms comn es load_structure(+Src, -DOM, +Options), mientras que sgml_parse/2 es la menos utilizada a pesar que provee un parser basado en eventos que puede realizar llamadas hacia atrs en Prolog por eventos SGML. Nosotros utilizaremos, para este documento la primera interfaz, debido a su [amplio|mayor] uso. 3-Soporte para HTTP HTTP o Protocolo de Transferencia de Hipertexto, es el protocolo estndar de la W3C para el intercambio de documentos Webs. Todos los navegadores y servidores web lo implementan. La version inicial del protocolo era simple. La peticin del cliente consista en una linea simple de formato {action}{path}, el servidor respondia con el documento correspondiente y cerraba la conexin. La version 1,1 del protocolo es ms complicada, porque provee pares adicional del tipo {name}{value} tanto en la peticin como en la respuesta, aadio tambin caracteristicas de status como el tiempo de modificacin, transferencia parcial del documento, etc. Solo se considerar el soporte de HTTP para prolog del lado cliente. 3,1 Libreria HTTP Client En esta seccin se vern las dos librerias ms conocidas que brindan soporte a HTTP del lado cliente. La primera que es una extencion lightweight que solo provee soporte al metodo HTTP GET mediante http_open(+URL, -Stream, +Options). En Options podemos establecer ciertos

parametros como timeout, proxy, o tambin darle informacin adicional como el tamao del documento. El predicado http_open/3 internamente maneja HTTP 3xx (redirect replies). La respuestas Non-ok son mapeadas como excepciones de Prolog. Despus que se lee el documento debe cerrar la comunicacin usando el predicado close/1. Este predicado hace accesible cualquier documento Web como si se tratase de un [archivo|documento] local. La segunda librera, llamada http_client.pl, provee soporte para el mtodo HTTP POST y trae una serie de plugins adicionales como son http_mime_plugin.pl para el manejo de los mensajes multipartes MIME y http_sgml_plugin.pl para un automatico parsing de documentos HTML, XML y SGML. El siguiente cuadro muestra el cdigo para buscar una url y parsear su resultado dentro de un trmino de Prolog. ?- use_module(library('http/http_client')). ?- use_module(library('http/http_sgml_plugin')). ?- http_get('http://www.swi-prolog.org/', DOM, []). DOM = [element (html, [version='-//W3C//DTD HTML 4,0 Transitional//EN'], [element (head, [], [element (title. [], ['SWI-Prolog\s Home'])....

4- Libreria Desarrollada asdasd 5- Limitaciones asdasd 6- Consultar Ranking de una pelcula [algunas corridas] 7- Buscar una pelcula y consultar su ranking [algunas corridas] 8- Buscar el director de una pelcula [algunas corridas] 9- Conclusiones asas 10- Bibliografia * SWI-Prolog and the Web. 2003. Wielemaker, Jan. Universidad de Amsterdam.

También podría gustarte