<?xml version='1.0' encoding='UTF-8'?><?xml-stylesheet href="http://www.blogger.com/styles/atom.css" type="text/css"?><feed xmlns='http://www.w3.org/2005/Atom' xmlns:openSearch='http://a9.com/-/spec/opensearchrss/1.0/' xmlns:georss='http://www.georss.org/georss' xmlns:gd='http://schemas.google.com/g/2005' xmlns:thr='http://purl.org/syndication/thread/1.0'><id>tag:blogger.com,1999:blog-5454882</id><updated>2011-08-09T07:44:49.521+02:00</updated><title type='text'>Programación Lógica y Recuperación de Información</title><subtitle type='html'>Espacio dedicado a la programaci&amp;oacute;n l&amp;oacute;gica y la recuperaci&amp;oacute;n de informaci&amp;oacute;n, con una atenci&amp;oacute;n especial al lenguaje Prolog y otros lenguajes afines, pertenecientes al paradigma l&amp;oacute;gico y declarativo. Tambi&amp;eacute;n se tratar&amp;aacute; de hablar de estos temas desde la perspectiva de la Biblioteconom&amp;iacute;a y la Documentaci&amp;oacute;n.</subtitle><link rel='http://schemas.google.com/g/2005#feed' type='application/atom+xml' href='http://programacionlogica.blogspot.com/feeds/posts/default'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5454882/posts/default?max-results=100'/><link rel='alternate' type='text/html' href='http://programacionlogica.blogspot.com/'/><link rel='hub' href='http://pubsubhubbub.appspot.com/'/><author><name>etxe</name><uri>http://www.blogger.com/profile/10987668917577281087</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><generator version='7.00' uri='http://www.blogger.com'>Blogger</generator><openSearch:totalResults>50</openSearch:totalResults><openSearch:startIndex>1</openSearch:startIndex><openSearch:itemsPerPage>100</openSearch:itemsPerPage><entry><id>tag:blogger.com,1999:blog-5454882.post-114166675583218469</id><published>2006-03-06T18:37:00.000+01:00</published><updated>2006-03-20T17:46:39.213+01:00</updated><title type='text'>DCG: notación de reglas gramaticales en Prolog</title><content type='html'>&lt;p&gt;La notaci&amp;oacute;n de reglas gramaticales DCG (Definite Clause Grammar,
en castellano &lt;em&gt;gram&amp;aacute;tica de cl&amp;aacute;usulas definidas&lt;/em&gt;) es
una variante o extensi&amp;oacute;n sint&amp;aacute;ctica de la sintaxis ordinaria
del lenguaje Prolog, cuyo objeto es implementar gram&amp;aacute;ticas formales
de forma abreviada, y en consecuencia simplificar y hacer m&amp;aacute;s legibles
los analizadores sint&amp;aacute;cticos escritos en este lenguaje, ya que permite
manejar informaci&amp;oacute;n (enti&amp;eacute;ndase por &amp;eacute;sta "variables")
impl&amp;iacute;cita. Su expresi&amp;oacute;n es una notaci&amp;oacute;n abreviada
de la sintaxis del lenguaje Prolog, recogida por la pr&amp;aacute;ctica totalidad
de los &lt;em&gt;parsers&lt;/em&gt; e int&amp;eacute;rpretes actuales para este lenguaje, que la
transforman autom&amp;aacute;ticamente y de forma interna en cl&amp;aacute;usulas
normales. En la notaci&amp;oacute;n &lt;acronym title="Definite Clause Grammar" lang="en"&gt;DCG&lt;/acronym&gt;
el operador infijo ":-" es sustituido por el operador del mismo car&amp;aacute;cter
"--&gt;", y se puede establecer, a modo de ejemplo, la siguiente correspondencia
entre notaciones, siendo la primera la cl&amp;aacute;usula Prolog en sintaxis ordinaria, y la segunda
la notaci&amp;oacute;n &lt;acronym title="Definite Clause Grammar" lang="en"&gt;DCG&lt;/acronym&gt;
equivalente:&lt;/p&gt;

&lt;p class="codigo"&gt;oracion(S0,S) :- sintagma_nominal(S0,S1), sintagma_verbal(S1,S).&lt;br /&gt;
oracion --&gt; sintagma_nominal, sintagma_verbal.&lt;/p&gt;

&lt;p&gt;La anterior cl&amp;aacute;usula Prolog se expresa en palabras como sigue:&lt;/p&gt;

&lt;blockquote&gt;"Existe una oraci&amp;oacute;n entre S0 y S si existe un sintagma nominal
entre S0 y S1, y existe un sintagma verbal entre S1 y S"&lt;/blockquote&gt;

&lt;p&gt;La notaci&amp;oacute;n &lt;acronym title="Definite Clause Grammar" lang="en"&gt;DCG&lt;/acronym&gt;
se basa en la utilizada para las &lt;a href="http://es.wikipedia.org/wiki/Gram%C3%A1tica_libre_de_contexto"&gt;gram&amp;aacute;ticas libres de contexto&lt;/a&gt; (&lt;em&gt;context-free
grammars&lt;/em&gt; o CFGs, &lt;a href="http://es.wikipedia.org/wiki/Gram%C3%A1tica_transformacional"&gt;N. Chomsky&lt;/a&gt;), estructura jer&amp;aacute;rquica que indica
las relaciones de las construcciones del lenguaje, descritas mediante notaci&amp;oacute;n
BNF (&lt;em&gt;Backus Normal Form&lt;/em&gt; &amp;oacute;
&lt;em&gt;Backus-Naur form&lt;/em&gt;), creada
originalmente para definir la estructura sint&amp;aacute;ctica del lenguaje
ALGOL60 (1960, John Backus), y muy utilizada tanto para definir la estructura
sint&amp;aacute;ctica de los lenguajes de programaci&amp;oacute;n, como para definir
estructuras sint&amp;aacute;cticas de los lenguajes en general. Por tanto, mediante notaci&amp;oacute;n &lt;acronym title="Definite Clause Grammar" lang="en"&gt;DCG&lt;/acronym&gt;,
es posible manejar directamente en lenguaje Prolog gram&amp;aacute;ticas libres de contexto. Las gram&amp;aacute;ticas
libres de contexto vienen a ser una simplificaci&amp;oacute;n de la gram&amp;aacute;tica
ordinaria, que, por ejemplo, y referida al idioma castellano, podr&amp;iacute;a
adoptar la siguiente expresi&amp;oacute;n en notaci&amp;oacute;n &lt;acronym title="Definite Clause Grammar" lang="en"&gt;DCG&lt;/acronym&gt;:&lt;/p&gt;

&lt;div class="codigo"&gt;
&lt;p&gt;oracion --&gt; sintagma_nominal, sintagma_verbal.&lt;/p&gt;
&lt;p&gt;sintagma_nominal --&gt; determinante, nombre.&lt;/p&gt;
&lt;p&gt;sintagma_verbal --&gt; verbo, sintagma_nominal.
&lt;br /&gt;sintagma_verbal --&gt; verbo.&lt;/p&gt;
&lt;p&gt;determinante --&gt; [el].
&lt;br /&gt;determinante --&gt; [la].&lt;/p&gt;
&lt;p&gt;nombre --&gt; [hombre].
&lt;br /&gt;nombre --&gt; [manzana].&lt;/p&gt;
&lt;p&gt;verbo --&gt; [come].
&lt;br /&gt;verbo --&gt; [canta].&lt;/p&gt;
&lt;/div&gt;

&lt;p&gt;Que el sistema Prolog (en este caso &lt;a href="http://www.swi-prolog.org/" lang="en"&gt;SWI-Prolog&lt;/a&gt;)
traduce autom&amp;aacute;ticamente al siguiente conjunto de cl&amp;aacute;usulas:&lt;/p&gt;

&lt;div class="codigo"&gt;
&lt;p&gt;oracion(A,B):- sintagma_nominal(A,C),
&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;
sintagma_verbal(C,B).&lt;/p&gt;
&lt;p&gt;sintagma_nominal(A,B):- determinante(A,C),
&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;
nombre(C,B).&lt;/p&gt;
&lt;p&gt;sintagma_verbal(A,B):- verbo(A,C),
&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;
sintagma_nominal(C,B).
&lt;br /&gt;sintagma_verbal(A,B):- verbo(A,B).&lt;/p&gt;
&lt;p&gt;determinante([el|A],A).
&lt;br /&gt;determinante([la|A],A).&lt;/p&gt;
&lt;p&gt;nombre([hombre|A],A).
&lt;br /&gt;nombre([manzana|A],A).&lt;/p&gt;
&lt;p&gt;verbo([come|A],A).
&lt;br /&gt;verbo([canta|A],A).&lt;/p&gt;
&lt;/div&gt;

&lt;p&gt;Como es f&amp;aacute;cilmente deducible, el programa basado en esta peque&amp;ntilde;a
y muy limitada gram&amp;aacute;tica, solo aceptar&amp;aacute; como oraciones gramaticalmente
correctas "el hombre come la manzana", "el hombre canta", y combinaciones
similares, incluso por ejemplo frases a todas luces gramaticalmente incorrectas
como "la manzana canta", "la hombre come", etc., devolvi&amp;eacute;ndonos
una lista vac&amp;iacute;a, pero no aceptar&amp;aacute; por ejemplo "el hombre
baila" (el verbo "baila" no se halla dentro de la base de hechos o conocimiento
del programa). Se entiende por tanto que una gram&amp;aacute;tica completa,
que abarque todas las posibles estructuras, relaciones y combinaciones de
las partes constitutivas de una lengua, requiere un programa muy complejo
y dif&amp;iacute;cil de implementar. En el ejemplo expuesto, se pueden obtener
todas las oraciones aceptadas como gramaticalmente correctas por la gram&amp;aacute;tica
del programa, lanzando en el int&amp;eacute;rprete el siguiente objetivo:&lt;/p&gt;

&lt;p class="codigo"&gt;?- oracion(X,[]).&lt;/p&gt;

&lt;p&gt;Por su parte, un ejemplo muy sencillo de gram&amp;aacute;tica para el idioma
ingl&amp;eacute;s, escrita mediante notaci&amp;oacute;n &lt;acronym title="Definite Clause Grammar" lang="en"&gt;DCG&lt;/acronym&gt;,
adopta la siguiente expresi&amp;oacute;n:&lt;/p&gt;

&lt;div class="codigo"&gt;
&lt;p&gt;sentence --&gt; noun_phrase, verb_phrase.&lt;/p&gt;
&lt;p&gt;noun_phrase --&gt; noun.
&lt;br /&gt;noun_phrase --&gt; determiner, noun, rel_clause.&lt;/p&gt;
&lt;p&gt;verb_phrase --&gt; verb.
&lt;br /&gt;verb_phrase --&gt; verb, noun_phrase.&lt;/p&gt;
&lt;p&gt;rel_clause --&gt; [].
&lt;br /&gt;rel_clause --&gt; [that], verb_phrase.&lt;/p&gt;
&lt;p&gt;determiner --&gt; [the].
&lt;br /&gt;determiner --&gt; [a].&lt;/p&gt;
&lt;p&gt;noun --&gt; [john].
&lt;br /&gt;noun --&gt; [annie].
&lt;br /&gt;noun --&gt; [man].
&lt;br /&gt;noun --&gt; [men].
&lt;br /&gt;noun --&gt; [woman].
&lt;br /&gt;noun --&gt; [women].
&lt;br /&gt;...&lt;/p&gt;
&lt;p&gt;verb --&gt; [like].
&lt;br /&gt;verb --&gt; [likes].
&lt;br /&gt;...&lt;/p&gt;
&lt;/div&gt;

&lt;p&gt;En la notaci&amp;oacute;n &lt;acronym title="Definite Clause Grammar" lang="en"&gt;DCG&lt;/acronym&gt;
se suprimen dos par&amp;aacute;metros, una lista de entrada, y una lista de
salida. La primera puede estar representada, por ejemplo, por la oraci&amp;oacute;n
[el,perro,muerde] y la segunda por una lista vac&amp;iacute;a [] que es el
resultado de comprobar la estructura sint&amp;aacute;ctica de dicha oraci&amp;oacute;n
en funci&amp;oacute;n del &lt;em&gt;parser&lt;/em&gt; utilizado. Adicionalmente, es posible
agregar variables a las gram&amp;aacute;ticas representadas mediante notaci&amp;oacute;n &lt;acronym title="Definite Clause Grammar" lang="en"&gt;DCG&lt;/acronym&gt;, por ejemplo para especificar el g&amp;eacute;nero y el n&amp;uacute;mero.&lt;/p&gt;

&lt;p&gt;Como se ha dicho anteriormente, la notaci&amp;oacute;n &lt;acronym title="Definite Clause Grammar" lang="en"&gt;DCG&lt;/acronym&gt;
permite a&amp;ntilde;adir argumentos adicionales, y tambi&amp;eacute;n incorporar objetivos Prolog
en el cuerpo de las reglas, estos &amp;uacute;ltimos encerrados entre llaves
{}. Los argumentos adicionales nos permitir&amp;iacute;an por ejemplo introducir
las reglas gramaticales correctas en funci&amp;oacute;n de las convenciones
adoptadas por la lengua objeto de representaci&amp;oacute;n, y as&amp;iacute; evitar incorrecciones en la concordancia g&amp;eacute;nero / n&amp;uacute;mero,
etc. Tambi&amp;eacute;n, mediante notaci&amp;oacute;n &lt;acronym title="Definite Clause Grammar" lang="en"&gt;DCG&lt;/acronym&gt;
tambi&amp;eacute;n es posible construir programas capaces de representar &amp;aacute;rboles
de an&amp;aacute;lisis de una oraci&amp;oacute;n (que representan las categor&amp;iacute;as
gramaticales implicadas en la descomposici&amp;oacute;n de sus partes), y &lt;a href="http://www.nyu.edu/pages/linguistics/ling.html#tree" lang="en"&gt;&amp;aacute;rboles
sint&amp;aacute;cticos&lt;/a&gt; (&lt;em&gt;parse trees&lt;/em&gt;) que de una forma gr&amp;aacute;fica
muestran la estructura en forma de &amp;aacute;rbol descendente de determinada
construcci&amp;oacute;n gramatical. Como explicamos en la anterior anotaci&amp;oacute;n,
los analizadores sint&amp;aacute;cticos o &lt;em&gt;parsers&lt;/em&gt; se encargan de la
construcci&amp;oacute;n de &amp;aacute;rboles de an&amp;aacute;lisis de las oraciones
de una lengua, capaces de representar la estructura sintagm&amp;aacute;tica
de las mismas. Siguiendo con el ejemplo de la sencilla gram&amp;aacute;tica
en castellano, expuesto m&amp;aacute;s arriba, la representaci&amp;oacute;n gr&amp;aacute;fica
del &amp;aacute;rbol de an&amp;aacute;lisis de la oraci&amp;oacute;n "el hombre come
la manzana" presenta el siguiente aspecto, haciendo uso para ello &lt;a href="http://www.sdsc.edu/~ludaesch/CSE232b-02/draw.swi"&gt;de
este programa&lt;/a&gt;:&lt;/p&gt;

&lt;div class="codigo"&gt;
&lt;p&gt;?- draw(o(sn(d(el),n(hombre)),sv(v(come),sn(d(la),n(manzana))))).&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;
o
&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;
|
&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; +--------------------+
&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; sn&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;
sv
&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; |&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;
|
&lt;br /&gt;&amp;nbsp;&amp;nbsp; +-------+&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; +------------+
&lt;br /&gt;&amp;nbsp;&amp;nbsp; d&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; n&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;
v&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; sn
&lt;br /&gt;&amp;nbsp;&amp;nbsp; |&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; |&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;
|&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; |
&lt;br /&gt;&amp;nbsp;&amp;nbsp; |&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; |&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;
|&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; +--------+
&lt;br /&gt;&amp;nbsp;&amp;nbsp; |&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; |&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;
|&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; d&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;
n
&lt;br /&gt;&amp;nbsp;&amp;nbsp; |&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; |&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;
|&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; |&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;
|
&lt;br /&gt;&amp;nbsp;&amp;nbsp; |&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; |&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;
|&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; |&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;
|
&lt;br /&gt;&amp;nbsp;&amp;nbsp; el&amp;nbsp;&amp;nbsp;&amp;nbsp; hombre&amp;nbsp;&amp;nbsp;&amp;nbsp; come&amp;nbsp;&amp;nbsp;&amp;nbsp;
la&amp;nbsp;&amp;nbsp;&amp;nbsp; manzana&lt;/p&gt;
&lt;/div&gt;

&lt;p&gt;Donde "o" = oraci&amp;oacute;n, "sn" = Sintagma Nominal, "d" = Determinante,
"n" = Nombre, "sv" = Sintagma Verbal, y "v" = Verbo. Hay que advertir que
este programa no realiza el &amp;aacute;rbol de an&amp;aacute;lisis propiamente
dicho, que es:&lt;/p&gt;

&lt;p class="codigo"&gt;o(sn(d(el),n(hombre)),sv(v(come),sn(d(la),n(manzana))))&lt;/p&gt;

&lt;p&gt;Simplemente lleva a cabo su representaci&amp;oacute;n gr&amp;aacute;fica en
forma de diagrama de caracteres &lt;acronym title="American Standard Code for Information Interchange" lang="en"&gt;ASCII&lt;/acronym&gt;.
El c&amp;oacute;digo fuente del programa en cuesti&amp;oacute;n, que originalmente
se llama &lt;a href="http://www.sdsc.edu/~ludaesch/CSE232b-02/draw.swi"&gt;draw.swi&lt;/a&gt;,
ha sido copiado a un editor de texto plano, y salvado con la extensi&amp;oacute;n
".pl" para poder ser ejecutado por el int&amp;eacute;rprete &lt;a href="http://www.swi-prolog.org/" lang="en"&gt;SWI-Prolog&lt;/a&gt;,
aunque otra opci&amp;oacute;n es asociar los archivos con extensi&amp;oacute;n
".swi" con el ejecutable de dicho int&amp;eacute;rprete. Su autor es &lt;a href="http://users.sdsc.edu/~ludaesch/" lang="en"&gt;Bertram
Lud&amp;auml;scher&lt;/a&gt;, de la "University of California Davis".&lt;/p&gt;

&lt;p&gt;Los ejemplos de notaci&amp;oacute;n &lt;acronym title="Definite Clause Grammar" lang="en"&gt;DCG&lt;/acronym&gt;
y Prolog en castellano se han tomado del cap&amp;iacute;tulo 9, "Uso de reglas
gramaticales en Prolog", apartado 9.1, "El problema del an&amp;aacute;lisis
sint&amp;aacute;ctico", de la obra de W.F. Clocksin y C.S. Mellish "Programaci&amp;oacute;n
en Prolog" (2&amp;ordf; ed.; Barcelona: Gustavo Gili, 1993; ISBN: 84-252-1339-8),
traducci&amp;oacute;n del original en ingl&amp;eacute;s "Programming in Prolog",
a la que me remito para obtener una explicaci&amp;oacute;n detallada sobre
reglas gramaticales, an&amp;aacute;lisis sint&amp;aacute;ctico, y notaci&amp;oacute;n &lt;acronym title="Definite Clause Grammar" lang="en"&gt;DCG&lt;/acronym&gt;
en Prolog, habida cuenta de que los autores rese&amp;ntilde;ados hacen una
exposici&amp;oacute;n clara y perfectamente comprensible sobre el particular,
perfectamente asequible para las personas no excesivamente versadas en
este lenguaje.&lt;/p&gt;

&lt;p&gt;Por su parte el ejemplo de gram&amp;aacute;tica en ingl&amp;eacute;s se ha obtenido
del cap&amp;iacute;tulo 17, "Languague Processing with Grammar Rules", de la
obra "Prolog - Programming for Artificial Intelligence" (Ivan Bratko, 2&amp;ordf;
ed.; Addison-Wesley, 1990; ISBN: 0-201-41606-9). Se trata de un libro muy
recomendable, de nivel m&amp;aacute;s avanzado y completo que el de Clocksin
y Mellish, claramente m&amp;aacute;s introductorio, y como su propio nombre
indica cubre por un lado las generalidades del lenguaje Prolog, y por otro
lado su aplicaci&amp;oacute;n a las principales t&amp;eacute;cnicas del campo de
la &lt;acronym title="Inteligencia Artificial"&gt;IA&lt;/acronym&gt; (b&amp;uacute;squeda
y clasificaci&amp;oacute;n, sistemas expertos y representaci&amp;oacute;n del conocimiento, &lt;acronym title="Procesamiento del Lenguaje Natural"&gt;PLN&lt;/acronym&gt;,
Machine Learning, etc.).&lt;/p&gt;

&lt;p&gt;Por &amp;uacute;ltimo, mencionar otro ejemplo de utilizaci&amp;oacute;n pr&amp;aacute;ctica
de la notaci&amp;oacute;n &lt;acronym title="Definite Clause Grammar" lang="en"&gt;DCG&lt;/acronym&gt; y el lenguaje de programaci&amp;oacute;n l&amp;oacute;gica Prolog, la librer&amp;iacute;a
Html-write [&lt;a href="http://gollem.science.uva.nl/twiki/pl/bin/view/Library/HtmlWrite" lang="en"&gt;1&lt;/a&gt;]
[&lt;a href="http://www.swi-prolog.org/packages/http.html#sec:3.8" lang="en"&gt;2&lt;/a&gt;]
[&lt;a href="http://www.mycgiserver.com/~gpiancastelli/archives.jsp?post=0050" lang="en"&gt;3&lt;/a&gt;]
del int&amp;eacute;rprete y entorno de desarrollo &lt;a href="http://www.swi-prolog.org/" lang="en"&gt;SWI-Prolog&lt;/a&gt;,
que traslada t&amp;eacute;rminos Prolog en &lt;acronym title="HyperText Markup Language" lang="en"&gt;HTML&lt;/acronym&gt;, generando salidas en este &amp;uacute;ltimo lenguaje, para lo cual hace uso precisamente de estructuras escritas en notaci&amp;oacute;n &lt;acronym title="Definite Clause Grammar" lang="en"&gt;DCG&lt;/acronym&gt;.&lt;/p&gt;

&lt;p&gt;M&amp;aacute;s informaci&amp;oacute;n (&lt;acronym title="Procesamiento del Lenguaje Natural"&gt;PLN&lt;/acronym&gt;
y &lt;acronym title="Definite Clause Grammar" lang="en"&gt;DCG&lt;/acronym&gt;s
en Prolog):&lt;/p&gt;

&lt;ul class="conmargeninf"&gt;
&lt;li&gt;
&lt;a href="http://www.amzi.com/AdventureInProlog/advfrtop.htm"&gt;Adventure
in Prolog&lt;/a&gt; - &lt;a href="http://www.amzi.com/AdventureInProlog/a15nlang.htm"&gt;15.
Natural Language&lt;/a&gt;.&lt;/li&gt;

&lt;li&gt;
En &lt;a href="http://www.coli.uni-saarland.de/~kris/learn-prolog-now/" lang="en"&gt;Learn
Prolog Now!&lt;/a&gt;: &lt;a href="http://www.coli.uni-saarland.de/~kris/learn-prolog-now/html/node54.html" lang="en"&gt;7.
Definite Clause Grammars&lt;/a&gt;, &lt;a href="http://www.coli.uni-saarland.de/~kris/learn-prolog-now/html/node64.html" lang="en"&gt;8.
More Definite Clause Grammars&lt;/a&gt; (&lt;a href="http://www.loria.fr/~blackbur/"&gt;P.
Blackburn&lt;/a&gt;, &lt;a href="http://www.cogsci.ed.ac.uk/~jbos/"&gt;J. Bos&lt;/a&gt;,
&lt;a href="http://www.coli.uni-sb.de/~kris/"&gt;K.
Striegnitz&lt;/a&gt;).&lt;/li&gt;

&lt;li&gt;
&lt;a href="http://www.ida.liu.se/~ulfni/lpp/"&gt;Logic, Programming and Prolog&lt;/a&gt;
- 10. Logic and Grammars (monograf&amp;iacute;a, en formato PDF; U. Nilsson,
J. Maluszynski).&lt;/li&gt;

&lt;li&gt;
&lt;a href="http://www.cogs.susx.ac.uk/lab/nlp/gazdar/nlp-in-prolog/"&gt;Natural
Language Processing in Prolog&lt;/a&gt; (&lt;a href="http://www.cogs.susx.ac.uk/lab/nlp/gazdar/"&gt;G.
Gazdar&lt;/a&gt;, C. Mellish; &lt;a href="http://www.cogs.susx.ac.uk/local/books/nlp-in-prolog/index.html"&gt;otra
ubicaci&amp;oacute;n&lt;/a&gt;).&lt;/li&gt;

&lt;li&gt;
&lt;a href="http://www.ucm.es/info/atg/COMP-COURSE/cl_parsing.html"&gt;Parsing
in Natural Language Processing&lt;/a&gt; (&lt;a href="http://www.ucm.es/info/atg/COMP-COURSE/cl.html"&gt;Julia
Lavid&lt;/a&gt;).&lt;/li&gt;

&lt;li&gt;
&lt;a href="http://www.cs.vu.nl/~dick/PTAPG.html"&gt;Parsing Techniques - A Practical
Guide&lt;/a&gt; (monograf&amp;iacute;a, varios formatos; D. Grune, Ceriel J.H. Jacobs).&lt;/li&gt;

&lt;li&gt;
&lt;a href="http://utenti.lycos.it/parsers/index.htm"&gt;Parsing techniques in
Prolog&lt;/a&gt; (monograf&amp;iacute;a, formato ".doc"; Klaus von Bremen).&lt;/li&gt;

&lt;li&gt;
&lt;a href="http://www.mtome.com/"&gt;Prolog and Natural-Language Analysis&lt;/a&gt;
(monograf&amp;iacute;a, formato PDF; F.C.N. Pereira, S.M. Shieber).&lt;/li&gt;

&lt;li&gt;
&lt;a href="http://www.csupomona.edu/~jrfisher/www/prolog_tutorial/contents.html"&gt;Prolog
Tutorial - 7. Introduction to Natural Language Processing&lt;/a&gt; (&lt;a href="http://www.csupomona.edu/~jrfisher/www/"&gt;J.R.
Fisher&lt;/a&gt;).&lt;/li&gt;

&lt;li&gt;
&lt;a href="http://cs.wwc.edu/~cs_dept/KU/PR/Prolog.html#dcg"&gt;Prolog Tutorial
- Definite Clause Grammars&lt;/a&gt; (A. Aaby; &lt;a href="http://cs.wwc.edu/KU/PR/Prolog.html#dcg" lang="en"&gt;otra
ubicaci&amp;oacute;n&lt;/a&gt;).&lt;/li&gt;

&lt;li&gt;
&lt;a href="http://cs.wwc.edu/~aabyan/LogicPgmg/naturalLanguage.html" lang="en"&gt;Natural
Language Processing&lt;/a&gt; (A. Aaby).&lt;/li&gt;

&lt;li&gt;
&lt;a href="http://cs.wwc.edu/~aabyan/LogicPgmg/CODE/DCG/doc/doc.html" lang="en"&gt;A
Natural Language Processor&lt;/a&gt; (A. Aaby).&lt;/li&gt;

&lt;li&gt;
&lt;a href="http://www.dai.ed.ac.uk/groups/ssp/bookpages/quickprolog/quickprolog.html"&gt;Quick
Prolog&lt;/a&gt; - &lt;a href="http://www.dai.ed.ac.uk/groups/ssp/bookpages/quickprolog/node27.html"&gt;Definite
Clause Grammars&lt;/a&gt; (D.S. Robertson).&lt;/li&gt;

&lt;li&gt;
&lt;a href="http://www.info.ucl.ac.be/people/PVR/edcg.html" lang="en"&gt;Extended
DCG's: Declarative Programming with State&lt;/a&gt; (&lt;a href="http://www.info.ucl.ac.be/people/cvvanroy.html"&gt;Peter
Van Roy&lt;/a&gt;).&lt;/li&gt;

&lt;li&gt;
&lt;a href="http://www.ai.uga.edu/mc/ProNTo/" lang="en"&gt;ProNTo - Prolog Natural
Language Tools&lt;/a&gt;.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Espec&amp;iacute;ficamente sobre &lt;acronym title="Definite Clause Grammar" lang="en"&gt;DCG&lt;/acronym&gt;:&lt;/p&gt;

&lt;ul class="conmargeninf"&gt;
&lt;li&gt;
&lt;a href="http://www.cs.sfu.ca/cs/people/Faculty/Cameron/Teaching/383/DCG.html" lang="en"&gt;Parsing
in Prolog&lt;/a&gt; (&lt;a href="http://www.cs.sfu.ca/~cameron/Teaching/384/99-3/DCG.html" lang="en"&gt;otra
ubicaci&amp;oacute;n&lt;/a&gt;).&lt;/li&gt;

&lt;li&gt;
&lt;a href="http://www.cs.sfu.ca/cs/people/Faculty/Cameron/Teaching/383/DCG2.html" lang="en"&gt;Definite
Clause Grammars&lt;/a&gt; (&lt;a href="http://www.cs.sfu.ca/~cameron/Teaching/384/99-3/DCG2.html" lang="en"&gt;otra
ubicaci&amp;oacute;n&lt;/a&gt;).&lt;/li&gt;

&lt;li&gt;
&lt;a href="http://www.cs.sfu.ca/cs/people/Faculty/Cameron/Teaching/383/regexp-plg.html" lang="en"&gt;Perl
Style Regular Expressions in Prolog&lt;/a&gt; (&lt;a href="http://www.cs.sfu.ca/~cameron/Teaching/384/99-3/regexp-plg.html" lang="en"&gt;otra
ubicaci&amp;oacute;n&lt;/a&gt;).&lt;/li&gt;

&lt;li&gt;
&lt;a href="http://www.ingenio.co.uk/prolog/dcgs.html" lang="en"&gt;Introduction
to Definite Clause Grammars&lt;/a&gt;.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;CFGs y BNF:&lt;/p&gt;

&lt;ul class="conmargeninf"&gt;
&lt;li&gt;
&lt;a href="http://www.cs.buap.mx/~jcom/lprog/gramaticas.html"&gt;Lenguajes de
Programaci&amp;oacute;n: Notaci&amp;oacute;n BNF y otras gram&amp;aacute;ticas&lt;/a&gt;.&lt;/li&gt;

&lt;li&gt;
&lt;a href="http://cui.unige.ch/db-research/Enseignement/analyseinfo/AboutBNF.html" lang="en"&gt;What
is BNF notation?&lt;/a&gt;&lt;/li&gt;

&lt;li&gt;
&lt;a href="http://foldoc.doc.ic.ac.uk/foldoc/foldoc.cgi?Backus-Naur+Form" lang="en"&gt;Backus-Naur
Form&lt;/a&gt; (en &lt;acronym title="Free On-Line Dictionary of Computing" lang="en"&gt;&lt;a href="http://foldoc.doc.ic.ac.uk/foldoc/index.html" lang="en"&gt;FOLDOC&lt;/acronym&gt;&lt;/a&gt;).&lt;/li&gt;

&lt;li&gt;
&lt;a href="http://en2.wikipedia.org/wiki/Context-free_grammar" lang="en"&gt;Context-free
grammar&lt;/a&gt; (en &lt;a href="http://en2.wikipedia.org/" lang="en"&gt;Wikipedia&lt;/a&gt;).&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Forman parte del mismo conjunto de &lt;a href="http://www.cs.sfu.ca/cs/people/Faculty/Cameron/Teaching/383/" lang="en"&gt;lecturas
de clase&lt;/a&gt;:&lt;/p&gt;

&lt;ul class="conmargeninf"&gt;
&lt;li&gt;
&lt;a href="http://www.cs.sfu.ca/cs/people/Faculty/Cameron/Teaching/383/syn-sem-prag-meta.html" lang="en"&gt;Four
Concepts in Programming Language Description: Syntax, Semantics, Pragmatics
and Metalanguage&lt;/a&gt;.&lt;/li&gt;

&lt;li&gt;
&lt;a href="http://www.cs.sfu.ca/cs/people/Faculty/Cameron/Teaching/383/BNF.html" lang="en"&gt;Grammatical
Description of Syntax: The BNF Metalanguage&lt;/a&gt;.&lt;/li&gt;

&lt;li&gt;
&lt;a href="http://www.cs.sfu.ca/cs/people/Faculty/Cameron/Teaching/383/deriv-ambig.html" lang="en"&gt;Derivations,
Ambiguity and Semantics&lt;/a&gt;.&lt;/li&gt;

&lt;li&gt;
&lt;a href="http://www.cs.sfu.ca/cs/people/Faculty/Cameron/Teaching/383/RegExpMetalanguage.html" lang="en"&gt;Nonrecursive
Syntax: The Regular Expression Metalanguage&lt;/a&gt;.&lt;/li&gt;

&lt;li&gt;
&lt;a href="http://www.cs.sfu.ca/cs/people/Faculty/Cameron/Teaching/383/syn-issues.html" lang="en"&gt;Between
Lexics and Syntax: Whitespace, Layout, Comment Conventions&lt;/a&gt;.&lt;/li&gt;
&lt;/ul&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5454882-114166675583218469?l=programacionlogica.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://programacionlogica.blogspot.com/feeds/114166675583218469/comments/default' title='Enviar comentarios'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=5454882&amp;postID=114166675583218469&amp;isPopup=true' title='7 comentarios'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5454882/posts/default/114166675583218469'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5454882/posts/default/114166675583218469'/><link rel='alternate' type='text/html' href='http://programacionlogica.blogspot.com/2006/03/dcg-notaci-de-reglas-gramaticales-en.html' title='DCG: notaci&amp;oacute;n de reglas gramaticales en Prolog'/><author><name>etxe</name><uri>http://www.blogger.com/profile/10987668917577281087</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>7</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5454882.post-114100178177171483</id><published>2006-02-27T01:55:00.000+01:00</published><updated>2006-02-28T11:16:09.893+01:00</updated><title type='text'>Analizadores sintácticos y tokenización</title><content type='html'>&lt;p&gt;Dentro del complejo y amplio &amp;aacute;mbito de dominio del Procesamiento
del Lenguaje Natural (PLN), una de las funciones esenciales de los analizadores sint&amp;aacute;cticos
o &lt;em&gt;parsers&lt;/em&gt; es el an&amp;aacute;lisis de cadenas de &lt;em&gt;tokens&lt;/em&gt; en busca
de posibles errores sint&amp;aacute;cticos (recordemos que la sintaxis, entendida en sentido amplio, es aquella parte
de la gram&amp;aacute;tica que se ocupa de las normas que rigen la formalizaci&amp;oacute;n
de las &lt;em&gt;palabras&lt;/em&gt; en estructuras mayores tales como las &lt;em&gt;oraciones&lt;/em&gt;,
as&amp;iacute; como de las relaciones que establecen entre si dichas palabras). Un &lt;em&gt;token&lt;/em&gt; se puede definir
como la unidad m&amp;iacute;nima de informaci&amp;oacute;n con significado propio
dentro de una secuencia de caracteres alfanum&amp;eacute;ricos. Estas cadenas
de unidades m&amp;iacute;nimas de informaci&amp;oacute;n o &lt;em&gt;unidades l&amp;eacute;xicas&lt;/em&gt;,
son generadas previamente por el m&amp;oacute;dulo lexicogr&amp;aacute;fico integrado
en el parser, encargado de identificarlas dentro de un texto o secuencia
ordenada de caracteres alfanum&amp;eacute;ricos. Por su parte, la &lt;em&gt;tokenizaci&amp;oacute;n&lt;/em&gt;
es un proceso consistente en la descomposici&amp;oacute;n, en forma de lista,
de esas cadenas de &lt;em&gt;tokens&lt;/em&gt; en sus unidades m&amp;iacute;nimas. As&amp;iacute;,
un programa de este tipo podr&amp;iacute;a generar la siguiente lista de &lt;em&gt;tokens&lt;/em&gt;
a partir de la frase "&amp;iexcl;Hola Mundo!":&lt;/p&gt;

&lt;p class="codigo"&gt;[161, 72, 111, 108, 97, 32, 77, 117, 110, 100, 111, 33]&lt;/p&gt;

&lt;p&gt;Donde cada uno de los n&amp;uacute;meros de la lista se corresponde con el
car&amp;aacute;cter ASCII (American Standard Code for Information Interchange) correspondiente a cada una de las unidades m&amp;iacute;nimas de significaci&amp;oacute;n
identificadas en la frase, en el mismo orden. Por supuesto es posible llevar
a cabo el proceso inverso, y a partir de esa lista generar las cadenas
de &lt;em&gt;tokens&lt;/em&gt; que forman la frase en cuesti&amp;oacute;n. La &lt;em&gt;tokenizaci&amp;oacute;n&lt;/em&gt;
es por tanto el proceso b&amp;aacute;sico que permite manejar el lenguaje natural
escrito para su posterior procesamiento, en base a su descomposici&amp;oacute;n
en unidades m&amp;iacute;nimas de informaci&amp;oacute;n con significado propio.&lt;/p&gt;

&lt;p&gt;La mayor parte de los lenguaje de programaci&amp;oacute;n contemplan instrucciones
espec&amp;iacute;ficas para llevar a cabo el proceso de &lt;em&gt;tokenizaci&amp;oacute;n&lt;/em&gt;
de cadenas ordenadas de caracteres alfanum&amp;eacute;ricos, si bien es posible
implementar alternativamente esta operaci&amp;oacute;n mediante otros procedimientos
proporcionados por esos lenguajes.&lt;/p&gt;

&lt;p&gt;As&amp;iacute;, un programa que pretenda "leer" un texto, deber&amp;aacute;
en primer lugar "tokenizarlo", generando una lista de los &lt;em&gt;tokens&lt;/em&gt;, o unidades
l&amp;eacute;xicas m&amp;iacute;nimas con significado propio, identificados en
ese texto. A continuaci&amp;oacute;n, proceder&amp;aacute; a identificar unidades
mayores de significado propio (contemplando por ejemplo la presencia, como
elemento separador, del car&amp;aacute;cter &lt;acronym title="American Standard Code for Information Interchange" lang="en"&gt;ASCII&lt;/acronym&gt; 36, que se corresponde con
el espacio en blanco), lo que podr&amp;iacute;amos asimilar como "palabras",
para, finalmente, acabar identificando otras unidades de significaci&amp;oacute;n
de orden superior, frases u oraciones. Diferenciadas las oraciones del
texto "le&amp;iacute;do", el parser procede a realizar el an&amp;aacute;lisis sint&amp;aacute;ctico
propiamente dicho, identificando para ello las partes constitutivas de
dichas oraciones que, a tal fin, son comparadas con patrones previamente
definidos de estructuras posibles, que depender&amp;aacute;n de la lengua de
escritura del texto, y del nivel de complejidad de an&amp;aacute;lisis que
se pretenda alcanzar, ya que contemplar todas las posibles estructuras
de una lengua y sus numerosas variaciones, y representarlas mediante una
serie de reglas, no es una tarea precisamente sencilla.&lt;/p&gt;

&lt;p&gt;La detecci&amp;oacute;n de las variaciones de posici&amp;oacute;n admitidas
en cada lengua, en relaci&amp;oacute;n con el orden de las palabras, o an&amp;aacute;lisis
de las transformaciones, se realiza mediante procesos de an&amp;aacute;lisis
estructural que tratan de identificar la estructura profunda de una oraci&amp;oacute;n
en relaci&amp;oacute;n con su estructura superficial. El an&amp;aacute;lisis estructural,
en base a la estructura superficial (2) de una oraci&amp;oacute;n y, cambiando
el orden de determinadas palabras, trata de determinar su posible transformaci&amp;oacute;n
a una estructura de tipo profundo (1):&lt;/p&gt;

&lt;blockquote&gt;(1) Estructura profunda: "Pedro come una manzana"&lt;br /&gt;
(2) Estructura superficial: "Come Pedro una manzana"&lt;/blockquote&gt;

&lt;p&gt;La implementaci&amp;oacute;n del proceso de &lt;em&gt;tokenizaci&amp;oacute;n&lt;/em&gt;, al
margen de la utilizaci&amp;oacute;n de instrucciones espec&amp;iacute;ficas que
transforman directamente una cadena de caracteres alfanum&amp;eacute;ricos
en una cadena de &lt;em&gt;tokens&lt;/em&gt;, implica la utilizaci&amp;oacute;n de otro tipo de
instrucciones cuya funci&amp;oacute;n es la "lectura" individual, uno a uno,
de los caracteres presentes en el canal o grupo activo de entrada de datos
(&lt;em&gt;input stream&lt;/em&gt;) que se halla especificado, que por lo general ser&amp;aacute;
bien el teclado del ordenador, que es el canal activo de entrada por defecto
(al igual que el canal de salida de datos, &lt;em&gt;output stream&lt;/em&gt;, por defecto
es el monitor del ordenador), o bien un fichero de texto ubicado en la
ruta que se indique.&lt;/p&gt;

&lt;p&gt;As&amp;iacute;, en el lenguaje Prolog existe el predicado predefinido &lt;strong&gt;name(?AtomOrInt,
?String)&lt;/strong&gt;. El argumento &lt;strong&gt;AtomOrInt&lt;/strong&gt; es la variable que representa
la cadena de caracteres alfanum&amp;eacute;ricos o "&amp;aacute;tomo" que se desea
&lt;em&gt;tokenizar&lt;/em&gt;, mientras que el argumento &lt;strong&gt;String&lt;/strong&gt; es la variable
que representa la lista resultante. El s&amp;iacute;mbolo "&lt;strong&gt;?&lt;/strong&gt;" indica
que ambos argumentos son reversibles, es decir, que pueden funcionar tanto
como variables de entrada de datos como variables de salida, si bien uno
de ellos ha de estar necesariamente instanciado. Su modo de funcionamiento
es el siguiente:&lt;/p&gt;

&lt;div class="codigo"&gt;
&lt;p&gt;?- name('&amp;iexcl;Hola Mundo!', X).&lt;/p&gt;
&lt;p&gt;X = [161, 72, 111, 108, 97, 32, 77, 117, 110|...] [write]&lt;/p&gt;
&lt;p&gt;X = [161, 72, 111, 108, 97, 32, 77, 117, 110, 100, 111, 33]&lt;/p&gt;
&lt;p&gt;Yes&lt;/p&gt;
&lt;/div&gt;

&lt;p&gt;La indicaci&amp;oacute;n &lt;strong&gt;[write]&lt;/strong&gt; simplemente expresa que, una vez que
el int&amp;eacute;rprete proporciona la lista de &lt;em&gt;tokens&lt;/em&gt;, incompleta como indica
la barra vertical seguida de puntos suspensivos "&lt;strong&gt;|...&lt;/strong&gt;", se ha tecleado
el operador &lt;strong&gt;w&lt;/strong&gt; para que &amp;eacute;sta se muestre en toda su extensi&amp;oacute;n,
ya que, en este caso &lt;a href="http://www.swi-prolog.org/" lang="en"&gt;SWI-Prolog&lt;/a&gt;,
muestra por defecto en pantalla una versi&amp;oacute;n abreviada de las listas,
cuando estas exceden determinada longitud (no obstante se pueden obtener
listas completas utilizando el comando "w", tal y como se explica &lt;a href="http://gollem.swi.psy.uva.nl/twiki/pl/bin/view/FAQ/AllOutput" title="I want the whole answer" lang="en"&gt;en
esta p&amp;aacute;gina&lt;/a&gt;).&lt;/p&gt;

&lt;p&gt;Por supuesto, existen m&amp;aacute;s predicados para la manipulaci&amp;oacute;n
de &amp;aacute;tomos, como se referencia en el apartado "&lt;a href="http://www.swi.psy.uva.nl/projects/SWI-Prolog/Manual/manipatom.html" lang="en"&gt;Analysing
and Constructing Atoms&lt;/a&gt;" del manual de &lt;a href="http://www.swi-prolog.org/" lang="en"&gt;SWI-Prolog&lt;/a&gt;.&lt;/p&gt;

&lt;p&gt;Otra forma de tokenizar &amp;aacute;tomos en Prolog es utilizar el predicado
&lt;strong&gt;get0/1&lt;/strong&gt;
y &lt;strong&gt;get0/2&lt;/strong&gt; y alg&amp;uacute;n tipo de algoritmo recursivo que vaya "recorriendo"
todo el texto del canal activo de entrada de datos (un archivo externo,
por ejemplo), y al tiempo introduzca los &lt;em&gt;tokens&lt;/em&gt; resultantes, incluyendo
los espacios en blanco (&lt;strong&gt;get/1&lt;/strong&gt; y &lt;strong&gt;get/2&lt;/strong&gt; no los leen), en una
lista acumuladora, en tanto no se alcance determinado marcador de parada,
definido previamente (para este fin suele aprovecharse el &amp;aacute;tomo
&lt;strong&gt;end_of_file&lt;/strong&gt;,
que se corresponde con el final de texto). Este predicado realmente lee
el byte correspondiente a cada car&amp;aacute;cter alfanum&amp;eacute;rico individual,
asoci&amp;aacute;ndolo con su correspondiente c&amp;oacute;digo ASCII.&lt;/p&gt;

&lt;p&gt;El analizador sint&amp;aacute;ctico, en base a los constituyentes de una
oraci&amp;oacute;n (v&amp;eacute;anse los principios de la &lt;a href="http://es.wikipedia.org/wiki/Generativismo"&gt;gram&amp;aacute;tica generativa&lt;/a&gt;
de Noam Chomsky), y mediante un n&amp;uacute;mero finito de reglas, trata de
determinar la gramaticalidad o no de un n&amp;uacute;mero infinito de construcciones.
Un analizador sint&amp;aacute;ctico trata de ver hasta que punto puede someterse
un grupo de palabras a una estructura de reglas. As&amp;iacute; por ejemplo,
si tenemos la oraci&amp;oacute;n:&lt;/p&gt;

&lt;blockquote&gt;Pedro come una manzana&lt;/blockquote&gt;

&lt;p&gt;en primer lugar, y mediante un proceso de &lt;em&gt;tokenizaci&amp;oacute;n&lt;/em&gt;, se
genera una lista de las palabras que contiene. De esta lista inicial de
palabras, se puede diferenciar una sublista que se corresponda con el Sintagma
Nominal (SN) de la oraci&amp;oacute;n, y si &amp;eacute;sta puede concatenarse
con otras sublistas que seg&amp;uacute;n determinadas
reglas se verifica como Sintagma Verbal (SV), la oraci&amp;oacute;n se concluye que
es gramatical. Lo que importa en los constituyentes es el orden de las
palabras de la oraci&amp;oacute;n.&lt;/p&gt;

&lt;p&gt;El analizador sint&amp;aacute;ctico realiza el an&amp;aacute;lisis secuencialmente,
palabra por palabra, partiendo de una lista inicial que, siguiendo con
el ejemplo de la oraci&amp;oacute;n expuesta, ser&amp;iacute;a:&lt;/p&gt;

&lt;p class="codigo"&gt;[pedro,come,una,manzana]&lt;/p&gt;

&lt;p&gt;El proceso de computaci&amp;oacute;n de las reglas del analizador sint&amp;aacute;ctico
debe dar como resultado otra lista, que ser&amp;aacute; una lista vac&amp;iacute;a
&lt;strong&gt;[]&lt;/strong&gt; si la oraci&amp;oacute;n inicial es gramatical (siempre en base a las reglas
que tenga definidas el analizador). En definitiva, partiendo de la lista
inicial de palabras, el analizador sint&amp;aacute;ctico comprueba si &amp;eacute;sta
se puede subdividir en dos sublistas, que se corresponden, respectivamente,
con el &lt;acronym title="Sintagma Nominal"&gt;SN&lt;/acronym&gt; y el &lt;acronym title="Sintagma Verbal"&gt;SV&lt;/acronym&gt; de la oraci&amp;oacute;n.&lt;/p&gt;

&lt;p&gt;M&amp;aacute;s informaci&amp;oacute;n: &lt;a href="http://elies.rediris.es/elies9/3-1-2.htm"&gt;El
an&amp;aacute;lisis sint&amp;aacute;ctico y el an&amp;aacute;lisis sem&amp;aacute;ntico&lt;/a&gt;.&lt;/p&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5454882-114100178177171483?l=programacionlogica.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://programacionlogica.blogspot.com/feeds/114100178177171483/comments/default' title='Enviar comentarios'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=5454882&amp;postID=114100178177171483&amp;isPopup=true' title='0 comentarios'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5454882/posts/default/114100178177171483'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5454882/posts/default/114100178177171483'/><link rel='alternate' type='text/html' href='http://programacionlogica.blogspot.com/2006/02/analizadores-sint-y-tokenizaci.html' title='Analizadores sint&amp;aacute;cticos y tokenizaci&amp;oacute;n'/><author><name>etxe</name><uri>http://www.blogger.com/profile/10987668917577281087</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5454882.post-114034737744050254</id><published>2006-02-19T12:08:00.000+01:00</published><updated>2006-03-02T17:01:04.806+01:00</updated><title type='text'>¿Ha llegado el fin de los tesauros documentales?</title><content type='html'>&lt;p&gt;Aunque no suele ser mi costumbre publicar integramente textos completos
en este sitio (para esos menesteres mantengo abierto &lt;a href="http://vistoyleido.blogspot.com/"&gt;Visto y Le&amp;iacute;do&lt;/a&gt;),
me permito hacerlo en esta ocasi&amp;oacute;n dado el indudable inter&amp;eacute;s
que tiene el que reproduzco a continuaci&amp;oacute;n, en funci&amp;oacute;n de
las ideas que plantea, las experiencias pr&amp;aacute;cticas puestas de manifiesto y compartidas por el autor, y el debate que todo ello pretende
suscitar. Se trata de un mensaje enviado
por &lt;a href="http://multidoc.rediris.es/joseramon/"&gt;Jos&amp;eacute; Ram&amp;oacute;n
P&amp;eacute;rez Ag&amp;uuml;era&lt;/a&gt; (Departamento de Sistemas Inform&amp;aacute;ticos
y Programaci&amp;oacute;n, Facultad de Inform&amp;aacute;tica, Universidad Complutense
de Madrid) a la lista de distribuci&amp;oacute;n &lt;a href="http://www.rediris.es/list/info/iwetel.es.html"&gt;IWETEL&lt;/a&gt;,
el pasado 13/02/2006 (para acceder al texto original, en el apartado de archivos, hace falta estar
suscrito a dicho foro de discusi&amp;oacute;n para profesionales del &amp;aacute;mbito de las bibliotecas y los centros de documentaci&amp;oacute;n).&lt;/p&gt;

&lt;p&gt;[Comienza el texto de P&amp;eacute;rez Ag&amp;uuml;era]&lt;/p&gt;

&lt;p&gt;"Aunque no me toca publicar nota en &lt;a href="http://www.thinkepi.net/"&gt;Thinkepi&lt;/a&gt;,
llevo unos meses (de hecho alg&amp;uacute;n a&amp;ntilde;o que otro) d&amp;aacute;ndole
vueltas a este asunto y me gustar&amp;iacute;a contar con la opini&amp;oacute;n
de la comunidad de documentalistas, m&amp;aacute;s all&amp;aacute; de mis propias
observaciones, con lo cual este correo no pretende ser una nota sino dar
pie a un debate en el que los documentalistas no est&amp;aacute;n teniendo
voz, al desarrollarse dentro del campo de la inform&amp;aacute;tica.&lt;/p&gt;

&lt;p&gt;Trabajo en generaci&amp;oacute;n autom&amp;aacute;tica de tesauros, lo cual
me ha llevado a realizar experimentos de indizaci&amp;oacute;n autom&amp;aacute;tica
y expansi&amp;oacute;n de consultas a partir de tesauros realizados a mano.
Concretamente he utilizado tres tesauros: ISOC-Econom&amp;iacute;a, EUROVOC
y SPINES, todos ellos conocidos de sobra. La colecci&amp;oacute;n sobre la
que he realizado las pruebas ha sido el sub-conjunto de noticias de econom&amp;iacute;a
y pol&amp;iacute;tica generadas por la Agencia EFE en 1994 (efe94 es una colecci&amp;oacute;n
t&amp;iacute;pica en experimentos de recuperaci&amp;oacute;n de informaci&amp;oacute;n
que consta de un total de 215.738 documentos. Yo he utilizado 23.390 en
mis experimentos para centrarme en el &amp;aacute;rea de pol&amp;iacute;tica y
econom&amp;iacute;a, las cuales son cubiertas en buena medida por los tesauros
anteriormente mencionados).&lt;/p&gt;

&lt;p&gt;A parte tambi&amp;eacute;n he contado con un conjunto 22 de consultas con
sus respectivos juicios de relevancia para el dominio mencionado de cara
a la realizaci&amp;oacute;n de los experimentos. Estas consultas las he obtenido
del congreso &lt;a href="http://www.clef-campaign.org/" lang="en"&gt;CLEF&lt;/a&gt;
[Cross-Language Evaluation Forum] que se celebra todo los a&amp;ntilde;os y
que se centra en temas de recuperaci&amp;oacute;n de informaci&amp;oacute;n mono
y multiling&amp;uuml;e.&lt;/p&gt;

&lt;p&gt;Como motor de b&amp;uacute;squeda he usado &lt;a href="http://lucene.apache.org/" lang="en"&gt;Lucene&lt;/a&gt;,
adaptado al espa&amp;ntilde;ol con &lt;em&gt;stemming&lt;/em&gt; sobre los t&amp;eacute;rminos
de indizaci&amp;oacute;n, el cual est&amp;aacute; basado en el &lt;a href="http://www.ub.es/bid/04figue2.htm#ModeloVectorial"&gt;modelo
tradicional de espacio vectorial&lt;/a&gt; de Salton (un cl&amp;aacute;sico, vamos).&lt;/p&gt;

&lt;p&gt;El objetivo de mis primeros experimentos ha sido el de comprobar de
que forma afectaba a la recuperaci&amp;oacute;n de informaci&amp;oacute;n automatizada
el uso de tesauros documentales como los que se usan todos los d&amp;iacute;as
en centros de documentaci&amp;oacute;n de todo el mundo. Y cual no ha sido
mi sorpresa al comprobar que tanto juntos como por separado, usando todos
o parte de los tipos de relaciones que existen en los tesauros, realizando
expansi&amp;oacute;n global directa o ponderada (la forma en que he ponderado
los tesauros es otra historia), en cada uno de los casos los tesauros mencionados,
no han mejorado pr&amp;aacute;cticamente nada la recuperaci&amp;oacute;n en la
colecci&amp;oacute;n, ni en precisi&amp;oacute;n, ni en recall (ni en otro cerro
de medidas que he ido aplicando basadas en el modelo propuesto por &lt;a href="http://trec.nist.gov/" lang="en"&gt;TREC&lt;/a&gt;
[Text REtrieval Conference], otro congreso de &lt;acronym title="Recuperaci&amp;oacute;n de Informaci&amp;oacute;n"&gt;RI&lt;/acronym&gt;
que tiene un programita bastante completillo llamado trec_eval para evaluar
la recuperaci&amp;oacute;n), es m&amp;aacute;s en algunos de los experimentos,
dependiendo de la longitud de la consulta el uso de tesauros documentales
hechos a mano empeoraba los resultados.&lt;/p&gt;

&lt;p&gt;El siguiente paso en mi investigaci&amp;oacute;n ha sido trabajar con tesauros
generados autom&amp;aacute;ticamente a partir de tres metodolog&amp;iacute;as b&amp;aacute;sicas:&lt;/p&gt;

&lt;ul class="conmargeninf"&gt;
&lt;li&gt;
Procesamiento ling&amp;uuml;&amp;iacute;stico de la colecci&amp;oacute;n (&lt;em&gt;POS-Tagging&lt;/em&gt;,
an&amp;aacute;lisis sint&amp;aacute;ctico, an&amp;aacute;lisis de &amp;aacute;rboles de
dependencia entre t&amp;eacute;rminos).&lt;/li&gt;

&lt;li&gt;
An&amp;aacute;lisis de co-ocurrencias para la generaci&amp;oacute;n de las relaciones
entre t&amp;eacute;rminos (&lt;em&gt;Latent Semantic analysis&lt;/em&gt;, Qui y Frei (y su
versi&amp;oacute;n espa&amp;ntilde;ola implementada por Zazo, Berrocal y Cia de
Salamanca), Jing y Croft, etc.).&lt;/li&gt;

&lt;li&gt;
Utilizaci&amp;oacute;n de otros recursos ling&amp;uuml;&amp;iacute;sticos (l&amp;eacute;ase
&lt;a href="http://www.illc.uva.nl/EuroWordNet/" lang="en"&gt;eurowordnet&lt;/a&gt;
en su versi&amp;oacute;n espa&amp;ntilde;ola, y diccio).&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Los tesauros generados autom&amp;aacute;ticamente a partir de estas metodolog&amp;iacute;as
s&amp;iacute; han proporcionado mejoras significativas en la recuperaci&amp;oacute;n.
No me quiero poner aqu&amp;iacute; m&amp;aacute;s pesado de la cuenta sobre los
detalles t&amp;eacute;cnicos y las cifras pero para el que las quiera se las
puedo pasar.&lt;/p&gt;

&lt;p&gt;El caso es que coment&amp;eacute; el hecho con Antonio Garc&amp;iacute;a Jim&amp;eacute;nez,
que de esto de tesauros documentales sabe un rato, y me coment&amp;oacute;
ciertas ideas muy valiosas que explicaban en parte los resultados, y que
se podr&amp;iacute;an resumir (Antonio, si andas por ah&amp;iacute;, corr&amp;iacute;geme
si me equivoco) en que los tesauros no se adaptaban perfectamente a la
colecci&amp;oacute;n sobre la que yo los aplicaba y que por tanto se necesitar&amp;iacute;a
un tesauro hecho a mano para la colecci&amp;oacute;n con la que yo trabajo
para obtener una mejora basada en el uso de tesauros documentales.&lt;/p&gt;

&lt;p&gt;Tras este comentario me quede rumiando y modifique la colecci&amp;oacute;n
para adaptarla terminol&amp;oacute;gicamente a los tesauros con los que yo
contaba, para hacer confluir ambos conjuntos de datos en lo posible y as&amp;iacute;
comprobar si mejoraba algo la capacidad de recuperaci&amp;oacute;n de los tesauros,
pero por desgracia los datos han seguido siendo bastante descorazonadores.&lt;/p&gt;

&lt;p&gt;Despu&amp;eacute;s de todas estas pruebas me surgi&amp;oacute; la siguiente
pregunta &amp;iquest;realmente tienen lugar los tesauros hechos a mano, y basados
en la metodolog&amp;iacute;a y normativas tradicionales en el panorama de recuperaci&amp;oacute;n
automatizada imperante hoy, ya sea dentro o fuera de Internet?&lt;/p&gt;

&lt;p&gt;Mi respuesta por el momento, y a falta de vuestros comentarios, es que
no tienen lugar y que es necesario plantearse con urgencia varios cambios
en la metodolog&amp;iacute;a de elaboraci&amp;oacute;n de tesauros que existe actualmente
y de la que las normas ISO, el libro de Gilchrist y Aitchison y el libro
de Blanca Gil, suponen las principales referencias.&lt;/p&gt;

&lt;p&gt;Los principales problemas del uso de tesauros documentales en Recuperaci&amp;oacute;n
de Informaci&amp;oacute;n Automatizada son:&lt;/p&gt;

&lt;ul class="conmargeninf"&gt;
&lt;li&gt;
Dispersi&amp;oacute;n de datos: Es decir en la colecci&amp;oacute;n aparecen constantemente
palabras que el tesauro no es capaz de normalizar (este problema no se
soluciona con una actualizaci&amp;oacute;n peri&amp;oacute;dica hecha a mano en
funci&amp;oacute;n del crecimiento de la colecci&amp;oacute;n).&lt;/li&gt;

&lt;li&gt;
Ambig&amp;uuml;edad Sem&amp;aacute;ntica excesiva a&amp;uacute;n en tesauros de dominio
espec&amp;iacute;fico como los mencionados.&lt;/li&gt;

&lt;li&gt;
Inconsistencias en la estructura de los tesauros.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Todos estos problemas son normales teniendo en cuenta que son tesauros
hechos y gestionados a mano sin ning&amp;uacute;n mecanismo m&amp;aacute;s o menos
autom&amp;aacute;tico de control de consistencia (de hecho la mera importaci&amp;oacute;n
de los tesauros a &lt;acronym title="Structured Query Language" lang="en"&gt;SQL&lt;/acronym&gt; a permitido la detecci&amp;oacute;n de estas inconsistencias
estructurales) m&amp;aacute;s all&amp;aacute; de programas tipo multites y dem&amp;aacute;s.&lt;/p&gt;

&lt;p&gt;A esto se suma que tal y como se hacen los tesauros hoy en d&amp;iacute;a,
y en contra de lo que muchos opinan, tampoco sirve para la transici&amp;oacute;n
a las ontolog&amp;iacute;as, debido a cuestiones b&amp;aacute;sicas de dise&amp;ntilde;o
(fundamentalmente el paradigma orientado a objetos) con las que los tesauros
documentales no cumplen ni de lejos y que provoca serios problemas de consistencia
cuando intentamos convertir un tesauro documental en una ontolog&amp;iacute;a.&lt;/p&gt;

&lt;p&gt;En vista a estos hechos y a que yo no doy m&amp;aacute;s de mi por el momento
en este asunto, me gustar&amp;iacute;a conocer vuestra opini&amp;oacute;n en este
tema (pues a muchos les va el pan en ello, pienso yo). Por concretar, las
preguntas iniciales, sin excluir otras posible que pod&amp;eacute;is ir haciendo
ser&amp;iacute;an:&lt;/p&gt;

&lt;ul class="conmargeninf"&gt;
&lt;li&gt;
&amp;iquest;Cual es el papel de los tesauros documentales en el contexto de
la recuperaci&amp;oacute;n de informaci&amp;oacute;n automatizada en centros de
documentaci&amp;oacute;n?&lt;/li&gt;

&lt;li&gt;
&amp;iquest;Cual es el papel de los tesauros documentales en la recuperaci&amp;oacute;n
de informaci&amp;oacute;n en Internet?&lt;/li&gt;

&lt;li&gt;
&amp;iquest;Es necesario modificar el paradigma de elaboraci&amp;oacute;n de tesauros
actualmente imperante? &amp;iquest;en que sentido?&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Yo, aunque no soy un experto tesaurista tengo mis opiniones que ir&amp;eacute;
poniendo aqu&amp;iacute; si el debate tiene &amp;eacute;xito, pero las que me interesan
son las vuestras.&lt;/p&gt;

&lt;p&gt;Espero haber sido claro, si ten&amp;eacute;is cualquier duda sobre lo que
he escrito o algo no se entiendo no dud&amp;eacute;is en preguntar, espero
que con suerte y entre todos le podamos dar un tiento a este problema tan
puramente documental."&lt;/p&gt;

&lt;p&gt;[Fin del texto de P&amp;eacute;rez Ag&amp;uuml;era]&lt;/p&gt;

&lt;p&gt;Pues ya saben, cualquier comentario, rectificaci&amp;oacute;n, aportaci&amp;oacute;n
etc., en relaci&amp;oacute;n con las cuestiones planteadas en el texto anterior,
pueden enviarlo a la referida lista IWETEL, y as&amp;iacute; enriquecer el
debate que sin duda merece el conjunto de asuntos planteados por P&amp;eacute;rez
Ag&amp;uuml;era en relaci&amp;oacute;n con la recuperaci&amp;oacute;n de informaci&amp;oacute;n,
la indizaci&amp;oacute;n automatizada, y el papel que los tesauros como instrumento
de descripci&amp;oacute;n normalizada juegan en todo ello...&lt;/p&gt;

&lt;p&gt;De P&amp;eacute;rez Ag&amp;uuml;era, y sobre los temas que aborda en su comunicaci&amp;oacute;n
a la lista IWETEL, ver tambi&amp;eacute;n: "&lt;a href="http://www.w3.org/2001/sw/Europe/events/200406-esp/trabajo-final-extratesauros/trabajo-final-extratesauros.html"&gt;Automatizaci&amp;oacute;n
de Tesauros y su utilizaci&amp;oacute;n en la Web Sem&amp;aacute;ntica&lt;/a&gt;" (&lt;a href="http://www.w3.org/2001/sw/Europe/" lang="en"&gt;SWAD-Europe&lt;/a&gt;,
taller &lt;em&gt;Introducci&amp;oacute;n al uso de la Web Sem&amp;aacute;ntica&lt;/em&gt;, 13 de junio 2004). V&amp;eacute;anse tambi&amp;eacute;n en general los &lt;a href="http://www.w3.org/2001/sw/Europe/reports/intro.html" lang="en"&gt;SWAD-Europe
Reports&lt;/a&gt; y &lt;a href="http://www.w3.org/2001/sw/Europe/showcase/presentations.html" lang="en"&gt;SWAD-Europe
Presentations&lt;/a&gt;. SWAD significa &lt;em&gt;Semantic Web Activity: Advanced Development&lt;/em&gt;. Tambi&amp;eacute;n me parece pertinente rese&amp;ntilde;ar, de la revista &lt;em&gt;&lt;a href="http://www.um.es/fccd/anales/"&gt;Anales
de Documentaci&amp;oacute;n&lt;/a&gt;&lt;/em&gt; (n&amp;ordm; 7, 2004, p&amp;aacute;gs. 79-95),
el art&amp;iacute;culo de Antonio Garc&amp;iacute;a Jim&amp;eacute;nez "&lt;a href="http://www.um.es/fccd/anales/ad07/ad0706.pdf"&gt;Instrumentos
de Representaci&amp;oacute;n del Conocimiento: Tesauros versus Ontolog&amp;iacute;as&lt;/a&gt;"
(en &lt;acronym title="Portable Document Format" lang="en"&gt;PDF&lt;/acronym&gt;).&lt;/p&gt;

&lt;p&gt;En otro orden de cosas, aprovecho la ocasi&amp;oacute;n para relacionar
a continuaci&amp;oacute;n una serie de enlaces, referencias y textos que han ido mereciendo
mi atenci&amp;oacute;n en los &amp;uacute;ltimos meses (los entrecomillados son citas textuales
tomadas de los sitios referenciados):&lt;/p&gt;

&lt;h3&gt;Art&amp;iacute;culos, introducciones, anotaciones de "blogs":&lt;/h3&gt;

&lt;ul class="conmargeninf"&gt;
&lt;li&gt;
&lt;a href="http://www.j-paine.org/why_prolog.html" lang="en"&gt;Why Use Prolog?&lt;/a&gt;
(&lt;a href="http://www.j-paine.org/" lang="en"&gt;Jocelyn Paine&lt;/a&gt;). Documento
en el que se exponen diez (buenas) razones para (en opini&amp;oacute;n del
autor) utilizar el lenguaje de programaci&amp;oacute;n l&amp;oacute;gica Prolog.&lt;/li&gt;

&lt;li&gt;
&lt;a href="http://www.cs.cornell.edu/home/llee/papers/cstb.pdf" lang="en"&gt;"I'm
sorry Dave, I'm afraid I can't do that": Linguistics, Statistics, and Natural
Language Processing circa 2001&lt;/a&gt; (en &lt;acronym title="Portable Document Format" lang="en"&gt;PDF&lt;/acronym&gt;;
Lillian Lee, Cornell University).&lt;/li&gt;

&lt;li&gt;
&lt;a href="http://www.monografias.com/trabajos16/curso-visual-prolog/curso-visual-prolog.shtml"&gt;Programaci&amp;oacute;n
utilizando Visual Prolog 6.0&lt;/a&gt; (R. Fuentes Covarrubias, Universidad de
Colima, Facultad de Ingenier&amp;iacute;a Mec&amp;aacute;nica y El&amp;eacute;ctrica,
M&amp;eacute;xico).&lt;/li&gt;

&lt;li&gt;
&lt;a href="http://www.maa.org/devlin/devlin_2_00.html" lang="en"&gt;The legacy
of the Reverend Bayes&lt;/a&gt; (en &lt;a href="http://www.maa.org/news/devangle.html" lang="en"&gt;Devlin's
Angle&lt;/a&gt;, febrero 2000).&lt;/li&gt;

&lt;li&gt;
Dos muy buenas introducciones b&amp;aacute;sicas al lenguaje Prolog: &lt;a href="http://www.bitwisemag.com/copy/programming/prolog/intro/firststeps.html" lang="en"&gt;First
Steps in Prolog: an easy introduction to this &lt;acronym title="Artificial Intelligence" lang="en"&gt;AI&lt;/acronym&gt;
language&lt;/a&gt; / &lt;a href="http://www.bitwisemag.com/copy/reviews/software/programming/prolog/free_prologs.html" lang="en"&gt;Free
Prologs: a guide to freely available Prolog systems&lt;/a&gt; (H. Collingbourne;
en &lt;a href="http://www.bitwisemag.com/" lang="en"&gt;Bitwise Magazine&lt;/a&gt;).&lt;/li&gt;

&lt;li&gt;
&lt;a href="http://thatlogicblog.blogspot.com/2006/02/linear-logic-naturally.html" lang="en"&gt;Linear
Logic - Naturally!&lt;/a&gt; (en &lt;a href="http://thatlogicblog.blogspot.com/" lang="en"&gt;That
Logic Blog&lt;/a&gt;): "Linear logic has enjoyed enormous popularity over the
last couple of decades or so. For those without some training in structural
proof theory, understanding the system can be quite intimidating, especially
because of the funny notation and weird jargon. In this post, I am going
to show you that, in fact, you could have invented linear logic! [...]".&lt;/li&gt;

&lt;li&gt;
&lt;a href="http://sevein.matap.uma.es/~aciego/TR/gaceta.pdf"&gt;L&amp;oacute;gica,
Matem&amp;aacute;tica, Deducci&amp;oacute;n Autom&amp;aacute;tica&lt;/a&gt; (Manuel Ojeda
Aciego, Dept. Matem&amp;aacute;tica Aplicada, Universidad de M&amp;aacute;laga;
en &lt;acronym title="Portable Document Format" lang="en"&gt;PDF&lt;/acronym&gt;):
"Presentamos una breve perspectiva hist&amp;oacute;rica del desarrollo en paralelo
y, a veces, entrelazado, de la L&amp;oacute;gica y las Matem&amp;aacute;ticas,
con el objetivo final de presentar la L&amp;oacute;gica Computacional y, en
particular, la Deducci&amp;oacute;n Autom&amp;aacute;tica, como un &amp;aacute;rea
de investigaci&amp;oacute;n matem&amp;aacute;tica de extraordinario potencial pr&amp;aacute;ctico,
no en balde distintos autores de conocido prestigio afirman que la L&amp;oacute;gica
es a la Computaci&amp;oacute;n como el C&amp;aacute;lculo Infinitesimal es a la
F&amp;iacute;sica.".&lt;/li&gt;
&lt;/ul&gt;

&lt;h3&gt;P&amp;aacute;ginas y sitios web:&lt;/h3&gt;

&lt;ul class="conmargeninf"&gt;
&lt;li&gt;
&lt;a href="http://diwww.epfl.ch/mantra/tutorial/english/" lang="en"&gt;Neural
Java: Neural Networks Tutorial with Java Applets&lt;/a&gt;. "Neural Java is a
series of exercises and demos. Each exercise consists of a short introduction,
a small demonstration program written in Java (Java Applet), and a series
of questions which are intended as an invitation to play with the programs
and explore the possibilities of different algorithms. [...]".&lt;/li&gt;

&lt;li&gt;
&lt;a href="http://euriskotwo.blogspot.com/" lang="en"&gt;My Artificial Intelligence
project&lt;/a&gt;.&lt;/li&gt;

&lt;li&gt;
&lt;a href="http://en.wikibooks.org/wiki/Programming:Prolog" lang="en"&gt;Wikibook
on Prolog&lt;/a&gt; ("[...] This book can serve as a textbook or tutorial for
anyone who wants to learn the prolog programming language. No prior programming
experience is required. Some basic knowledge of logic can come in handy.
[...]").&lt;/li&gt;

&lt;li&gt;
&lt;a href="http://yandes.sourceforge.net/" lang="en"&gt;Yandes&lt;/a&gt;. Conjunto
de m&amp;oacute;dulos concebidos para ayudar a los estudiantes de L&amp;oacute;gica,
implementados en lenguaje Prolog. Actualmente son los siguientes: TT: construcci&amp;oacute;n
de tablas de verdad para L&amp;oacute;gica proposicional. Incluye adem&amp;aacute;s
dos predicados para determinar una f&amp;oacute;rmula como v&amp;aacute;lida, satisfactible,
o insatisfactible, y un razonamiento como correcto o incorrecto; ND: construcci&amp;oacute;n
de demostraciones de deducci&amp;oacute;n natural; CNF: convierte f&amp;oacute;rmulas
en forma conjuntiva normal, o en forma clausal.&lt;/li&gt;

&lt;li&gt;
&lt;a href="http://triple.semanticweb.org/" lang="en"&gt;TRIPLE&lt;/a&gt; ("[...] an
RDF query, inference, and transformation language for the Semantic Web.
[...]").&lt;/li&gt;

&lt;li&gt;
&lt;a href="http://www.um.es/gtiweb/adrico/"&gt;Glosario de Recuperaci&amp;oacute;n
de Informaci&amp;oacute;n Web&lt;/a&gt; (Adriana Colino Tom&amp;eacute;; v&amp;iacute;a &lt;a href="http://irsweb.blogspot.com/"&gt;Recuperaci&amp;oacute;n
de Informaci&amp;oacute;n en la Web&lt;/a&gt;).&lt;/li&gt;
&lt;/ul&gt;

&lt;h3&gt;Conferencias, congresos:&lt;/h3&gt;

&lt;ul class="conmargeninf"&gt;
&lt;li&gt;
&lt;a href="http://www.mdai.info/mdai2006/" lang="en"&gt;Modeling Decisions for
Artificial Intelligence&lt;/a&gt; (Tarragona, 3-5 abril 2006): "Decision making
processes, and information fusion tools at large, are currently embedded
in most Artificial Intelligence applications. As a consequence, systems
based on decision making and fusion techniques are becoming pervasive.
They are currently in use in all kind of environments, from entertainment
gadgets to safety-critical or risk management software.".&lt;/li&gt;

&lt;li&gt;
&lt;a href="http://www.cs.uky.edu/iclp06/" lang="en"&gt;22nd International Conference
on Logic Programming&lt;/a&gt; (ICLP 2006, 17-20 agosto 2006).&lt;/li&gt;
&lt;/ul&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5454882-114034737744050254?l=programacionlogica.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://programacionlogica.blogspot.com/feeds/114034737744050254/comments/default' title='Enviar comentarios'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=5454882&amp;postID=114034737744050254&amp;isPopup=true' title='1 comentarios'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5454882/posts/default/114034737744050254'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5454882/posts/default/114034737744050254'/><link rel='alternate' type='text/html' href='http://programacionlogica.blogspot.com/2006/02/llegado-el-fin-de-los-tesauros.html' title='&amp;iquest;Ha llegado el fin de los tesauros documentales?'/><author><name>etxe</name><uri>http://www.blogger.com/profile/10987668917577281087</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5454882.post-113183908299834913</id><published>2005-11-13T00:43:00.000+01:00</published><updated>2005-11-21T14:20:05.346+01:00</updated><title type='text'>Algoritmo de aprendizaje ID3</title><content type='html'>&lt;p&gt;Una de las aplicaciones pr&amp;aacute;cticas de las Redes Neuronales Artificiales
(RNA), es la clasificaci&amp;oacute;n de datos, entendida &amp;eacute;sta como
un proceso de b&amp;uacute;squeda de propiedades comunes a una serie de objetos
de un dominio del conocimiento, en funci&amp;oacute;n de los valores de determinados
atributos. Dentro de la cuesti&amp;oacute;n de la clasificaci&amp;oacute;n autom&amp;aacute;tica,
en tanto que proceso subsidiario de procesos m&amp;aacute;s generales englobados
dentro de lo que se conoce como "machine learning", uno de los algoritmos
de aprendizaje autom&amp;aacute;tico m&amp;aacute;s conocidos, basado en "ejemplos",
es el denominado ID3, o "Iterative Dichotomizer (version) 3" (J.R. Quinlan, 1979). Trabaja con datos simb&amp;oacute;licos, en contraposici&amp;oacute;n
a los datos num&amp;eacute;ricos, y se basa en la obtenci&amp;oacute;n de un &amp;aacute;rbol
de decisi&amp;oacute;n &lt;a name="ref_arboles"&gt;&lt;/a&gt;(&lt;a href="#arboles"&gt;ver
anexo&lt;/a&gt;), a partir del cual se obtienen una serie de reglas de producci&amp;oacute;n,
capaces de representar un dominio o universo determinado, generando conocimiento
independiente de dicho dominio (el sistema de aprendizaje parte de un estado
inicial del dominio escogido en el que no existe conocimiento de partida,
extrayendo patrones comunes de entre los ejemplos utilizados, a partir
de los cuales genera una base de conocimientos de aplicaci&amp;oacute;n a dicho
dominio). El &amp;aacute;rbol de decisi&amp;oacute;n permite por tanto clasificar
los datos de entrada. Se pueden distinguir dos tipos de procesos de aprendizaje:&lt;/p&gt;

&lt;ul class="conmargeninf"&gt;
&lt;li&gt;
Supervisado: los ejemplos o "explicaciones" son proporcionados al sistema
por un sujeto externo. Pertenecen a esta categor&amp;iacute;a las clasificaciones
de datos basadas en &amp;aacute;rboles de decisi&amp;oacute;n en base a ejemplos,
como es el caso del algoritmo de aprendizaje &lt;acronym title="Iterative Dichotomizer (version) 3" lang="en"&gt;ID3&lt;/acronym&gt;.&lt;/li&gt;

&lt;li&gt;
No supervisado: los ejemplos u "observaciones" son creados por el propio
sistema. Pertenecen a esta categor&amp;iacute;a los procesos de agrupamiento
de datos o &lt;em&gt;data clustering&lt;/em&gt; (o simplemente &lt;em&gt;clustering&lt;/em&gt;).&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Atendiendo a un plano de abstracci&amp;oacute;n conceptual superior, en el
denominado "machine learning" o aprendizaje de m&amp;aacute;quina, es posible
diferenciar dos tipos de aprendizaje: &lt;em&gt;aprendizaje memor&amp;iacute;stico&lt;/em&gt; (o
aprendizaje de memoria) y &lt;em&gt;aprendizaje cognoscitivo&lt;/em&gt;. El primero hace referencia
a procesos de memorizaci&amp;oacute;n de a) hechos y b) secuencias o procedimientos
de acciones, siendo el tipo de aprendizaje m&amp;aacute;s f&amp;aacute;cil de implementar
en un sistema computacional "inteligente". El segundo tipo de aprendizaje,
el cognoscitivo, es el que hace uso de procedimientos de razonamiento a
partir de un conocimiento b&amp;aacute;sico, de forma que sea posible la obtenci&amp;oacute;n
de "descripciones de clase", generalizaciones que se obtienen de la observaci&amp;oacute;n
de ejemplos concretos. Es por tanto un tipo de aprendizaje basado en un
razonamiento de car&amp;aacute;cter inductivo, aquel que permite la formulaci&amp;oacute;n
de principios generales, a partir de casos espec&amp;iacute;ficos individuales,
a diferencia del razonamiento deductivo, que a partir de generalizaciones,
y por medio de la l&amp;oacute;gica (silogismos), infiere conclusiones de car&amp;aacute;cter
particular y concreto. En el razonamiento inductivo, es la acumulaci&amp;oacute;n
de observaciones lo que permite llegar a conclusiones de validez universal.&lt;/p&gt;

&lt;p&gt;No obstante, no es infrecuente, en los sistemas de aprendizaje autom&amp;aacute;tico,
encontrar ambos universos de razonamiento, ya que las generalizaciones
que se obtienen mediante el razonamiento inductivo, a partir de un grupo
relativamente reducido de "ejemplos" u observaciones (fase de entrenamiento
previo), servir&amp;aacute;n posteriormente para la obtenci&amp;oacute;n de conclusiones
particulares a trav&amp;eacute;s de un proceso de razonamiento deductivo.&lt;/p&gt;

&lt;p&gt;Los &amp;aacute;rboles de decisi&amp;oacute;n o clasificaci&amp;oacute;n consisten
en una t&amp;eacute;cnica de car&amp;aacute;cter inductivo muy utilizada en el
&amp;aacute;mbito del aprendizaje autom&amp;aacute;tico. Gr&amp;aacute;ficamente, est&amp;aacute;n
formados por nodos y ramas. Los primeros representan el identificador de
un atributo concreto. Los nodos terminales u hojas representan los valores
asociados a dicho atributo, mientras que las ramas. A cada uno de estos
valores, se accede a trav&amp;eacute;s de una rama que parte del nodo en cuesti&amp;oacute;n.
Los casos son dirigidos hacia una u otra rama en funci&amp;oacute;n de los
valores de sus atributos. Los &amp;aacute;rboles de clasificaci&amp;oacute;n son
un m&amp;eacute;todo de aprendizaje v&amp;aacute;lido en aquellas situaciones en
las cuales los ejemplos de partida se pueden representar mediante un conjunto
finito de atributos y valores. Los &amp;aacute;rboles de clasificaci&amp;oacute;n
tambi&amp;eacute;n se pueden concebir, desde un punto de vista algor&amp;iacute;tmico,
como un conjunto de reglas &lt;em&gt;if-then&lt;/em&gt;.&lt;/p&gt;

&lt;p&gt;El car&amp;aacute;cter de los &amp;aacute;rboles de decisi&amp;oacute;n es jer&amp;aacute;rquico,
por lo que solo son capaces de representar conocimiento jer&amp;aacute;rquico,
la mayor parte del mismo. Por otro lado, su construcci&amp;oacute;n tienen
un car&amp;aacute;cter recursivo y descendente, de los conceptos generales
a los particulares, raz&amp;oacute;n por la cual el acr&amp;oacute;nimo TDIDT (Top-Down Induction on Decision Trees) es utilizado para referirse a los algoritmos de construcci&amp;oacute;n de &amp;aacute;rboles de decisi&amp;oacute;n, como es el caso del algoritmo &lt;acronym title="Iterative Dichotomizer (version) 3" lang="en"&gt;ID3&lt;/acronym&gt; de Quinlan.&lt;/p&gt;

&lt;p&gt;La mayor&amp;iacute;a de las heur&amp;iacute;sticas utilizadas para la determinaci&amp;oacute;n
de &amp;aacute;rboles de decisi&amp;oacute;n mediante algoritmos de aprendizaje,
&lt;a href="http://www.inference.phy.cam.ac.uk/mackay/itprnn/book.html" title="Information Theory, Inference, and Learning Algorithms" lang="en"&gt;se
basan&lt;/a&gt; en la teor&amp;iacute;a matem&amp;aacute;tica de la informaci&amp;oacute;n (&lt;a href="http://www-groups.dcs.st-and.ac.uk/~history/Mathematicians/Shannon.html" lang="en"&gt;C.
Shannon&lt;/a&gt;, W. Weaver; Bell Laboratories, 1948) [&lt;a href="http://www.lucent.com/minds/infotheory/" lang="en"&gt;1&lt;/a&gt;] [&lt;a href="http://programacionlogica.blogspot.com/2004_01_01_programacionlogica_archive.html#107395732842307963"&gt;2&lt;/a&gt;]. Las heur&amp;iacute;sticas
son criterios, m&amp;eacute;todos o principios, que permiten decidir, de entre
varias alternativas de acci&amp;oacute;n, cu&amp;aacute;l ser&amp;aacute; la m&amp;aacute;s
efectiva para cumplir determinada meta. Permiten restringir el n&amp;uacute;mero
de evaluaciones, y en consecuencia repercuten en una mejora de los tiempos
de b&amp;uacute;squeda de soluciones. Entrop&amp;iacute;a y cantidad de informaci&amp;oacute;n
son dos conceptos que se dan la mano en el campo de las heur&amp;iacute;sticas.
Sobre Entrop&amp;iacute;a y cantidad de informaci&amp;oacute;n, ver en &lt;a href="http://tiopetrus.blogia.com/"&gt;Tio
Petros&lt;/a&gt;: [&lt;a href="http://tiopetrus.blogia.com/2005/061301-entropia-y-cantidad-de-informacion-1-..php"&gt;1&lt;/a&gt;]
[&lt;a href="http://tiopetrus.blogia.com/2005/061401-entropia-y-cantidad-de-informacion-2-.php"&gt;2&lt;/a&gt;]
[&lt;a href="http://tiopetrus.blogia.com/2005/061501-entropia-y-cantidad-de-informacion-3-.php"&gt;3&lt;/a&gt;]
[&lt;a href="http://tiopetrus.blogia.com/2005/061601-entropia-y-cantidad-de-informacion-y-4-.php"&gt;4&lt;/a&gt;].&lt;/p&gt;

&lt;p&gt;El algoritmo &lt;acronym title="Iterative Dichotomizer (version) 3" lang="en"&gt;ID3&lt;/acronym&gt; genera lo que se conoce como reglas "duras", es decir,
aquellas que solo atienden a dos posibles estados (verdadero-falso, positivo-negativo,
0-1, etc.), y que tienen por tanto un car&amp;aacute;cter bivalente, a diferencia
de las reglas "borrosas", que permiten representar un rango infinito de
valores entre dos extremos de una escala, como las que se obtienen mediante
algoritmos &lt;acronym title="Iterative Dichotomizer (version) 3" lang="en"&gt;ID3&lt;/acronym&gt; "extendidos" (ID4, ID5, ID5R, C4.5, C5, etc.).&lt;/p&gt;

&lt;p&gt;Pseudoc&amp;oacute;digo del algoritmo &lt;acronym title="Iterative Dichotomizer (version) 3" lang="en"&gt;ID3&lt;/acronym&gt;:&lt;/p&gt;

&lt;p class="codigo"&gt;Si todos los ejemplos de E pertenecen a una misma clase C, entonces
&lt;br /&gt;&amp;nbsp;&amp;nbsp; arbol1 &amp;lt;-- nodo etiquetado con C
&lt;br /&gt;SiNo
&lt;br /&gt;&amp;nbsp;&amp;nbsp; Si a = f, entonces
&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; C &amp;lt;-- clase mayoritaria de los ejemplos
de E
&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; arbol1 &amp;lt;-- nodo etiquetado con C
&lt;br /&gt;&amp;nbsp;&amp;nbsp; SiNo
&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; A &amp;lt;-- mejor atributo de a
&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; arbol1 &amp;lt;-- nodo etiquetado con A
&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Para cada v perteneciente a los valores
de A, hacer
&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; EAv &amp;lt;-- los ejemplos
de E que tienen el valor v para el atributo A
&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Si EAv = f, entonces
&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;
arbol2 &amp;lt;-- nodo etiquetado con la clase mayoritaria en E
&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; SiNo
&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;
arbol2 &amp;lt;-- ID3(EAv , a-{A})
&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; arbol1 &amp;lt;-- a&amp;ntilde;adir
a arbol1 el arbol2, a trav&amp;eacute;s de una rama etiquetada con v
&lt;br /&gt;Devolver arbol1&lt;/p&gt;

&lt;p&gt;Otra representaci&amp;oacute;n en pseudoc&amp;oacute;digo del algoritmo &lt;acronym title="Iterative Dichotomizer (version) 3" lang="en"&gt;ID3&lt;/acronym&gt;:&lt;/p&gt;

&lt;p class="codigo"&gt;Aprendizaje-&amp;Aacute;rbol-Decisi&amp;oacute;n(&lt;em&gt;Ejemplos&lt;/em&gt;, &lt;em&gt;Atributos&lt;/em&gt;,
&lt;em&gt;Default&lt;/em&gt;)
&lt;br /&gt;&amp;nbsp;&amp;nbsp; retorna un &amp;aacute;rbol de decisi&amp;oacute;n
&lt;br /&gt;&lt;br /&gt;&lt;strong&gt;IF&lt;/strong&gt; no hay &lt;em&gt;Ejemplos&lt;/em&gt;, retornar &lt;em&gt;Default&lt;/em&gt;
&lt;br /&gt;&lt;strong&gt;ELSE IF&lt;/strong&gt; si todos los &lt;em&gt;Ejemplos&lt;/em&gt; tienen la misma clasificaci&amp;oacute;n,
&lt;br /&gt;&amp;nbsp;&amp;nbsp; &lt;strong&gt;retornar&lt;/strong&gt; la clasificaci&amp;oacute;n,
&lt;br /&gt;&lt;strong&gt;ELSE IF&lt;/strong&gt; &lt;em&gt;Atributo&lt;/em&gt;s = vac&amp;iacute;o, &lt;strong&gt;retornar&lt;/strong&gt; Mayor&amp;iacute;a(&lt;em&gt;Ejemplos&lt;/em&gt;)
&lt;br /&gt;&lt;strong&gt;ELSE&lt;/strong&gt;
&lt;br /&gt;&amp;nbsp;&amp;nbsp; mejor-atr &amp;lt;-- elegir-atributo(&lt;em&gt;Atributos&lt;/em&gt;, &lt;em&gt;Ejemplos&lt;/em&gt;)
&lt;br /&gt;&amp;nbsp;&amp;nbsp; &amp;aacute;rbol &amp;lt;-- nuevo &amp;aacute;rbol de decisi&amp;oacute;n
con ra&amp;iacute;z en mejor-atr
&lt;br /&gt;&amp;nbsp;&amp;nbsp; &lt;strong&gt;FOR EACH&lt;/strong&gt; valor v[i] de mejor-atr &lt;strong&gt;DO&lt;/strong&gt;
&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;em&gt;Ejemplos&lt;/em&gt;[i] &amp;lt;-- {elementos
de &lt;em&gt;Ejemplos&lt;/em&gt; con mejor-atr = v[i]}
&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; subar &amp;lt;-- Aprendizaje-&amp;Aacute;rbol-Decisi&amp;oacute;n(ejemplos[i],
&lt;em&gt;Atributos&lt;/em&gt;
- mejor-atr, Mayor&amp;iacute;a(&lt;em&gt;Ejemplos&lt;/em&gt;))
&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; agregar rama al &amp;aacute;rbol con etiqueta
v[i] y sub&amp;aacute;rbol subar
&lt;br /&gt;&amp;nbsp;&amp;nbsp; &lt;strong&gt;OD&lt;/strong&gt;
&lt;br /&gt;&lt;strong&gt;retornar&lt;/strong&gt; &amp;aacute;rbol&lt;/p&gt;

&lt;p&gt;Los procesos de aprendizaje, que hacen uso de la clasificaci&amp;oacute;n
de datos, mediante el descubrimiento de patrones, se utilizan con profusi&amp;oacute;n
dentro de lo que se conoce como "Data Mining", en castellano miner&amp;iacute;a
de datos, explotaci&amp;oacute;n de datos, o descubrimiento de conocimiento
en bases de datos, diversidad terminol&amp;oacute;gica en torno a la cual existe
una cierta pol&amp;eacute;mica.&lt;/p&gt;

&lt;p&gt;Maximiliano del Rio es autor de una versi&amp;oacute;n escrita en lenguaje
Prolog del algoritmo de aprendizaje &lt;acronym title="Iterative Dichotomizer (version) 3" lang="en"&gt;ID3&lt;/acronym&gt;. Los archivos correspondientes
a esta implementaci&amp;oacute;n (&lt;a href="http://www.programacion.com/codigo/65/"&gt;librer&amp;iacute;a
Clasif&lt;/a&gt;) se pueden localizar bien en la secci&amp;oacute;n de &lt;a href="http://www.programacion.com/codigo/"&gt;c&amp;oacute;digo
fuente&lt;/a&gt; de &lt;a href="http://www.programacion.com/"&gt;programacion.com&lt;/a&gt;
(comprimidos en un "zip"), o en el &lt;a href="http://gollem.swi.psy.uva.nl/twiki/pl/bin/view/Main/MaximilianoDelRio" lang="en"&gt;espacio
personal&lt;/a&gt; que el propio autor tiene en el "&lt;a href="http://gollem.swi.psy.uva.nl/twiki/pl/bin/view" lang="en"&gt;Wiki&lt;/a&gt;"
de &lt;a href="http://www.swi-prolog.org/" lang="en"&gt;SWI-Prolog&lt;/a&gt;. En "&lt;a href="http://gollem.swi.psy.uva.nl/twiki/pl/pub/Main/MaximilianoDelRio/guia.txt"&gt;guia.txt&lt;/a&gt;"
se explica el manejo de esta implementaci&amp;oacute;n del &lt;a href="http://gollem.swi.psy.uva.nl/twiki/pl/pub/Main/MaximilianoDelRio/id3.pl"&gt;algoritmo
&lt;acronym title="Iterative Dichotomizer (version) 3" lang="en"&gt;ID3&lt;/acronym&gt; en Prolog&lt;/a&gt;, que hace uso de la &lt;a href="http://www.swi-prolog.org/packages/odbc.html" title="SWI-Prolog ODBC Interface" lang="en"&gt;interfaz &lt;acronym title="Open DataBase Connectivity" lang="en"&gt;ODBC&lt;/acronym&gt;&lt;/a&gt;
para consultar las tablas de la base de datos seleccionada, de las que
se obtienen los ejemplos necesarios para generar las reglas de producci&amp;oacute;n.
Se adjunta adem&amp;aacute;s el archivo "&lt;a href="http://gollem.swi.psy.uva.nl/twiki/pl/pub/Main/MaximilianoDelRio/clasif.pl"&gt;clasif.pl&lt;/a&gt;",
programa de "Data Mining" que hace uso del algoritmo &lt;acronym title="Iterative Dichotomizer (version) 3" lang="en"&gt;ID3&lt;/acronym&gt;, dotado de interfaz
gr&amp;aacute;fica mediante la utilizaci&amp;oacute;n de la librer&amp;iacute;a nativa
&lt;a href="http://www.swi-prolog.org/graphics.html" lang="en"&gt;XPCE&lt;/a&gt;.&lt;/p&gt;

&lt;blockquote&gt;
"[...] programa que utiliza la librer&amp;iacute;a anterior [...]
Ayuda a generar las reglas y muestra las reglas obtenidas textual y gr&amp;aacute;ficamente;
tambi&amp;eacute;n muestra una traza de como trabaja el algoritmo."
&lt;div class="cita"&gt;&lt;a href="http://www.programacion.com/codigo/65/"&gt;Fuente&lt;/a&gt;&lt;/div&gt;
&lt;/blockquote&gt;

&lt;p&gt;Esta interfaz gr&amp;aacute;fica se abre lanzando el objetivo "?- main." en
la l&amp;iacute;nea de &amp;oacute;rdenes de SWI-Prolog, una vez compilado el programa.
Finalmente, la librer&amp;iacute;a "&lt;a href="http://gollem.swi.psy.uva.nl/twiki/pl/pub/Main/MaximilianoDelRio/compilar.pl"&gt;compila.pl&lt;/a&gt;"
contiene predicados que permiten &lt;a href="http://www.swi.psy.uva.nl/projects/SWI-Prolog/Manual/runtime.html" title="SWI-Prolog Manual - Generating Runtime Applications" lang="en"&gt;generar
un ejecutable&lt;/a&gt; para Windows de los resultados obtenidos, mediante SWI-Prolog.&lt;/p&gt;

&lt;p&gt;Para obtener una visi&amp;oacute;n bastante amplia sobre la implementaci&amp;oacute;n
en lenguaje Prolog de procesos de aprendizaje autom&amp;aacute;tico en general,
y aprendizaje inductivo mediante &amp;aacute;rboles de decisi&amp;oacute;n en particular
(clasificaci&amp;oacute;n de datos), es muy recomendable la lectura del cap&amp;iacute;tulo
18, "Machine Learning", de la (ya cl&amp;aacute;sica) obra de Ivan Bratko "Prolog:
Programming for Artificial Intelligence" (2&amp;ordf; ed. Addison-Wesley, 1994;
ISBN: 0-201-41606-9). Sobre &amp;aacute;rboles de decisi&amp;oacute;n trata concretamente
el punto 18.6, "Induction of decision trees".&lt;/p&gt;

&lt;p&gt;Existe as&amp;iacute; mismo un repositorio de algoritmos de aprendizaje
autom&amp;aacute;tico escritos en lenguaje Prolog, &lt;a href="ftp://ftp.gmd.de/gmd/mlt/ML-Program-Library/" lang="en"&gt;Prolog
library of machine learning algorithms&lt;/a&gt;, un tanto desactualizado eso
s&amp;iacute;, ya que la &amp;uacute;ltima actualizaci&amp;oacute;n parece datar del
a&amp;ntilde;o 1994, mantenido por Thomas Hoppe (&lt;a href="http://www.fraunhofer.de/english/" lang="en"&gt;Fraunhofer-Gesellschaft&lt;/a&gt;,
&lt;a href="http://www.tu-berlin.de/"&gt;Universidad
T&amp;eacute;cnica de Berl&amp;iacute;n&lt;/a&gt;). Los programas est&amp;aacute;n escritos
haciendo uso de la sintaxis y, en la mayor parte de las ocasiones, de los
predicados predefinidos (&lt;em&gt;built-in predicates&lt;/em&gt;) contemplados en el
Prolog descrito por Clocksin y Mellish, conocido como "est&amp;aacute;ndar
de Edimburgo", basado a su vez en el DECsystem-10 (D. Warren, F. Pereira
y L. Pereira), para de esta forma asegurar el mayor grado posible de compatibilidad
entre versiones de este lenguaje. Las implementaciones del algoritmo &lt;acronym title="Iterative Dichotomizer (version) 3" lang="en"&gt;ID3&lt;/acronym&gt;
se localizan en la carpeta "&lt;a href="ftp://ftp.gmd.de/gmd/mlt/ML-Program-Library/idt"&gt;IDT&lt;/a&gt;"
(ver en cualquier caso el archivo "&lt;a href="ftp://ftp.gmd.de/gmd/mlt/ML-Program-Library/README" lang="en"&gt;Readme&lt;/a&gt;" para m&amp;aacute;s informaci&amp;oacute;n).&lt;/p&gt;

&lt;p&gt;M&amp;aacute;s informaci&amp;oacute;n:&lt;/p&gt;

&lt;ul class="conmargeninf"&gt;
&lt;li&gt;
&lt;a href="http://www.iued.uned.es/users/Enlaces/Apuntes/RaAp2.zip"&gt;Algoritmo
&lt;acronym title="Iterative Dichotomizer (version) 3" lang="en"&gt;ID3&lt;/acronym&gt; de J.R. Quinlan&lt;/a&gt; (documento traducido por J.A. Fern&amp;aacute;ndez,
en &lt;acronym title="Portable Document Format" lang="en"&gt;PDF&lt;/acronym&gt;,
comprimido en un zip).&lt;/li&gt;

&lt;li&gt;
&lt;a href="http://www.ia.uned.es/~jgb/publica/index.html"&gt;Aspectos B&amp;aacute;sicos
del Aprendizaje Simb&amp;oacute;lico&lt;/a&gt; (J.G. Boticario).&lt;/li&gt;

&lt;li&gt;
&lt;a href="http://elvex.ugr.es/etexts/spanish/PhD/as.pdf"&gt;Aprendizaje de
clasificadores&lt;/a&gt; (F. Berzal Galiano; en PDF).&lt;/li&gt;

&lt;li&gt;
&lt;a href="http://elvex.ugr.es/etexts/spanish/PhD/art.pdf"&gt;ART: Un m&amp;eacute;todo
alternativo para la construcci&amp;oacute;n de &amp;aacute;rboles de decisi&amp;oacute;n&lt;/a&gt;
(F. Berzal Galiano; en PDF).&lt;/li&gt;

&lt;li&gt;
&lt;a href="http://elvex.ugr.es/etexts/spanish/PhD/"&gt;ART: Un m&amp;eacute;todo
alternativo para la construcci&amp;oacute;n de &amp;aacute;rboles de decisi&amp;oacute;n&lt;/a&gt;
(F. Berzal Galiano, 2002; tesis doctoral, en PDF).&lt;/li&gt;

&lt;li&gt;
&lt;a href="http://www-2.cs.cmu.edu/afs/cs/project/ai-repository/ai/areas/learning/systems/learn_pl/idt/"&gt;IDT:
Torgos ID3-like system based on the gain-ratio measure&lt;/a&gt; (algoritmo &lt;acronym title="Iterative Dichotomizer (version) 3" lang="en"&gt;ID3&lt;/acronym&gt;
escrito en sintaxis del Prolog de Edimburgo). Este c&amp;oacute;digo se localiza
en el directorio sobre &lt;a href="http://www-2.cs.cmu.edu/afs/cs/project/ai-repository/ai/areas/learning/" lang="en"&gt;Machine
Learning&lt;/a&gt; del &lt;acronym title="Carnegie Mellon University" lang="en"&gt;&lt;a href="http://www-2.cs.cmu.edu/afs/cs/project/ai-repository/ai/" lang="en"&gt;CMU&lt;/acronym&gt;
Artificial Intelligence Repository&lt;/a&gt; (ver &lt;a href="http://www-2.cs.cmu.edu/afs/cs/project/ai-repository/ai/0.html" lang="en"&gt;descripci&amp;oacute;n&lt;/a&gt;;
en cada uno de los directorios existen tres archivos, "0.html", "0.doc"
y "readme.txt", que contienen la descripci&amp;oacute;n de su contenido). El
directorio dedicado al lenguaje Prolog en general se localiza &lt;a href="http://www-2.cs.cmu.edu/afs/cs/project/ai-repository/ai/lang/prolog/" lang="en"&gt;en este enlace&lt;/a&gt;.&lt;/li&gt;

&lt;li&gt;
&lt;a href="http://www.cse.unsw.edu.au/~billw/cs9414/notes/ml/06prop/id3/id3.html" lang="en"&gt;Induction
of Decision Trees&lt;/a&gt;.&lt;/li&gt;

&lt;li&gt;
&lt;a href="http://www.algoritmia.net/articles.php?id=17"&gt;&amp;Aacute;rboles&lt;/a&gt;,
&lt;a href="http://www.algoritmia.net/articles.php?id=18"&gt;Grafos&lt;/a&gt;
(en &lt;a href="http://www.algoritmia.net/articles.php?folder=Estructuras%20de%20Datos"&gt;Estructuras
de Datos&lt;/a&gt;, &lt;a href="http://www.algoritmia.net/"&gt;algoritmia.net&lt;/a&gt;).&lt;/li&gt;

&lt;li&gt;
&lt;a href="http://www.sc.ehu.es/ccwbayes/docencia/mmcc/docs/t11arboles.pdf"&gt;&amp;Aacute;rboles
de Clasificaci&amp;oacute;n&lt;/a&gt; (&lt;acronym title="Portable Document Format" lang="en"&gt;PDF&lt;/acronym&gt;;
tema de los apuntes de la asignatura "&lt;a href="http://www.sc.ehu.es/ccwbayes/docencia/mmcc/main0405.htm"&gt;M&amp;eacute;todos
Matem&amp;aacute;ticos en Ciencias de la Computaci&amp;oacute;n&lt;/a&gt;", &lt;acronym title="Universidad del Pa&amp;iacute;s Vasco"&gt;UPV&lt;/acronym&gt;).&lt;/li&gt;

&lt;li&gt;
&lt;a href="http://ciberconta.unizar.es/Biblioteca/0007/arboles.html"&gt;Sistemas
de Inducci&amp;oacute;n de &amp;aacute;rboles de decisi&amp;oacute;n&lt;/a&gt;.&lt;/li&gt;

&lt;li&gt;
&lt;a href="http://plato.la.asu.edu/guide.html" lang="en"&gt;Decision Tree for
Optimization Software&lt;/a&gt;.&lt;/li&gt;

&lt;li&gt;
En &lt;a href="http://www.cse.unsw.edu.au/~billw/cs9414/notes.html" lang="en"&gt;Artificial
Intelligence Lecture Notes&lt;/a&gt;: a) &lt;a href="http://www.cse.unsw.edu.au/~billw/cs9414/notes/mandc/mandc.html" lang="en"&gt;Problem
Solving in Prolog&lt;/a&gt;; b) &lt;a href="http://www.cse.unsw.edu.au/~billw/cs9414/notes/ml/06prop/id3/id3.html" lang="en"&gt;Induction
of Decision Trees&lt;/a&gt;.&lt;/li&gt;

&lt;li&gt;
Algoritmo &lt;acronym title="Iterative Dichotomizer (version) 3" lang="en"&gt;ID3&lt;/acronym&gt; &lt;a href="http://www.us.kanto-gakuen.ac.jp/indo/front_e.html" lang="en"&gt;escrito en Prolog&lt;/a&gt;.&lt;/li&gt;

&lt;li&gt;
"&lt;a href="http://www.cse.unsw.edu.au/~billw/mldict.html#ID3" lang="en"&gt;ID3&lt;/a&gt;"
en "&lt;a href="http://www.cse.unsw.edu.au/~billw/mldict.html" lang="en"&gt;The
Machine Learning Dictionary&lt;/a&gt;".&lt;/li&gt;

&lt;li&gt;
"&lt;a href="http://www-2.cs.cmu.edu/afs/cs/project/ai-repository/ai/areas/learning/systems/learn_pl/idt/0.html" lang="en"&gt;IDT:
Torgos ID3-like system based on the gain-ratio measure&lt;/a&gt;" en &lt;a href="http://www-2.cs.cmu.edu/afs/cs.cmu.edu/project/ai-repository/ai/0.html" lang="en"&gt;CMU
Artificial Intelligence Repository&lt;/a&gt;. Forma parte del directorio de programas
"&lt;a href="http://www-2.cs.cmu.edu/afs/cs/project/ai-repository/ai/areas/learning/systems/learn_pl/0.html" lang="en"&gt;Machine
Learning Algorithms Implemented in Prolog&lt;/a&gt;".&lt;/li&gt;

&lt;li&gt;
Tesis doctoral: &lt;em&gt;&lt;a href="http://www.gsi.dit.upm.es/~anto/tesis/html/"&gt;Inducci&amp;oacute;n
de Conocimiento con Incertidumbre en Bases de Datos Relacionales Borrosas&lt;/a&gt;&lt;/em&gt;
(A. J. G&amp;oacute;mez Flechoso, 1998). En relaci&amp;oacute;n con los temas tratados
en este "post", ver el &lt;a href="http://www.gsi.dit.upm.es/~anto/tesis/html/stateart.html"&gt;cap&amp;iacute;tulo
2&lt;/a&gt; en general, y en particular los apartados &lt;a href="http://www.gsi.dit.upm.es/~anto/tesis/html/stateart.html#pgfId=157054"&gt;2.1&lt;/a&gt;
(Introducci&amp;oacute;n), &lt;a href="http://www.gsi.dit.upm.es/~anto/tesis/html/stateart.html#pgfId=151149"&gt;2.2&lt;/a&gt;
(Descubrimiento de conocimiento y miner&amp;iacute;a de datos), &lt;a href="http://www.gsi.dit.upm.es/~anto/tesis/html/stateart.html#pgfId=151014"&gt;2.3&lt;/a&gt;
(M&amp;eacute;todos aplicados de miner&amp;iacute;a de datos), y &lt;a href="http://www.gsi.dit.upm.es/~anto/tesis/html/stateart.html#pgfId=152999"&gt;2.4&lt;/a&gt;
(Programaci&amp;oacute;n L&amp;oacute;gica Inductiva).&lt;/li&gt;

&lt;li&gt;
&lt;a href="http://www.mlnet.org/" lang="en"&gt;MLnet (Machine Learning network)
Online Information Service&lt;/a&gt;.&lt;/li&gt;
&lt;/ul&gt;

&lt;h3&gt;&lt;a name="arboles"&gt;&lt;/a&gt;Anexo - &amp;Aacute;rboles de decisi&amp;oacute;n&lt;/h3&gt;

&lt;p&gt;Los &amp;aacute;rboles de decisi&amp;oacute;n son una representaci&amp;oacute;n de
los procesos involucrados en las tareas de clasificaci&amp;oacute;n. Se componen de:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
Nodos: nombres o identificadores de los atributos.&lt;/li&gt;

&lt;li&gt;
Ramas: posibles valores del atributo asociado al nodo.&lt;/li&gt;

&lt;li&gt;
Hojas: conjuntos ya clasificados de ejemplos y etiquetados con el nombre
de una clase.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Los nodos reflejan propiedades de los objetos del dominio, los arcos o
ramas son los distintos valores de dichos atributos y las hojas son las
clasificaciones posibles.&lt;/p&gt;

&lt;p&gt;[Los &amp;aacute;rboles de decisi&amp;oacute;n] Se adaptan especialmente bien a aquellos casos en los que:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
Los ejemplos pueden ser descritos como pares valor-atributo.&lt;/li&gt;

&lt;li&gt;
La funci&amp;oacute;n objetivo toma valores discretos.&lt;/li&gt;

&lt;li&gt;
Podemos tomar hip&amp;oacute;tesis con disyunciones.&lt;/li&gt;

&lt;li&gt;
Posible existencia de ruido en el conjunto de entrenamiento.&lt;/li&gt;

&lt;li&gt;
Los valores de algunos atributos en los ejemplos del conjunto de entrenamiento
pueden ser desconocidos.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;[Fuente: &lt;a href="http://www.cs.us.es/~delia/sia/html98-99/pag-alumnos/web2/indice.html"&gt;Inducci&amp;oacute;n
de &amp;Aacute;rboles de Decisi&amp;oacute;n: extensiones del &lt;acronym title="Iterative Dichotomizer (version) 3" lang="en"&gt;ID3&lt;/acronym&gt;&lt;/a&gt;] [&lt;a href="#ref_arboles"&gt;Volver
al texto&lt;/a&gt;]&lt;/p&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5454882-113183908299834913?l=programacionlogica.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://programacionlogica.blogspot.com/feeds/113183908299834913/comments/default' title='Enviar comentarios'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=5454882&amp;postID=113183908299834913&amp;isPopup=true' title='0 comentarios'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5454882/posts/default/113183908299834913'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5454882/posts/default/113183908299834913'/><link rel='alternate' type='text/html' href='http://programacionlogica.blogspot.com/2005/11/algoritmo-de-aprendizaje-id3.html' title='Algoritmo de aprendizaje ID3'/><author><name>etxe</name><uri>http://www.blogger.com/profile/10987668917577281087</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5454882.post-113171459319411469</id><published>2005-11-11T14:09:00.000+01:00</published><updated>2005-11-13T12:50:05.783+01:00</updated><title type='text'>Técnicas mnemotécnicas y acertijos de ingenio</title><content type='html'>&lt;p&gt;&lt;strong&gt;Nota:&lt;/strong&gt; la primera parte de esta extensa anotaci&amp;oacute;n, la m&amp;aacute;s
directamente relacionada con el enunciado del t&amp;iacute;tulo, ya fue publicada
en mi bit&amp;aacute;cora hermana, &lt;a href="http://vistoyleido.blogspot.com/"&gt;Visto
y Le&amp;iacute;do&lt;/a&gt;, el &lt;a href="http://vistoyleido.blogspot.com/2004_01_01_vistoyleido_archive.html#107421541775470787"&gt;16/01/2004&lt;/a&gt;,
bajo el mismo t&amp;iacute;tulo. Al apuntar posteriormente alg&amp;uacute;n enlace
en el que se trata de la aplicaci&amp;oacute;n de la programaci&amp;oacute;n l&amp;oacute;gica
en general, y Prolog en particular, a los acertijos de ingenio y los juegos
l&amp;oacute;gicos, he ido a&amp;ntilde;adiendo otras cuestiones estrictamente
relacionadas con dicho lenguaje de programaci&amp;oacute;n, particularmente
relativas a su origen, evoluci&amp;oacute;n y algunas de sus versiones desarrolladas
a lo largo del tiempo con m&amp;aacute;s o menos fortuna y permanencia posterior.&lt;/p&gt;

&lt;p&gt;En el libro "Ayudando a la memoria. T&amp;eacute;cnicas y trucos para recordar"
(Plaza &amp;amp; Janes, 2001; ISBN: 84-8450-527-8) su autor, Josep M&amp;ordf;
Albaig&amp;egrave;s, incluye, como complemento imprescindible a la excelente
descripci&amp;oacute;n que se aborda en el libro respecto de los procesos de
retenci&amp;oacute;n, memoria, y t&amp;eacute;cnicas de recuperaci&amp;oacute;n o recuerdo
de lo memorizado, un curioso "Diccionario de Mnemotecnias", en el que se
recogen, ordenados alfab&amp;eacute;ticamente en relaci&amp;oacute;n con la cuesti&amp;oacute;n
a la que hacen referencia, toda clase de recursos mnemot&amp;eacute;cnicos
(de &lt;em&gt;mnemo&lt;/em&gt; + &lt;em&gt;tecnia&lt;/em&gt;, aquellos que sirven para auxiliar a la
memoria), algunos de cierta complejidad y otros m&amp;aacute;s asequibles,
referidos a aspectos muy variados. En este mismo diccionario se encuentra
la siguiente definici&amp;oacute;n:&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;"Llamamos mnemotecnia a cualquier truco o procedimiento abreviado
que permite recordar, de forma m&amp;aacute;s o menos provisional, una cosa
concreta y en general breve."&lt;/p&gt;
&lt;div class="cita"&gt;En "Ayudando a la memoria...", p&amp;aacute;gina 95&lt;/div&gt;
&lt;/blockquote&gt;

&lt;p&gt;Me quedo para esta ocasi&amp;oacute;n con dos curiosidades referidas al universo
de las clasificaciones, entendidas &amp;eacute;stas en sentido amplio (cito
textualmente):&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;&lt;strong&gt;Clasificaci&amp;oacute;n decimal en bibliotecas&lt;/strong&gt;&lt;br /&gt;
Las tem&amp;aacute;ticas de la clasificaci&amp;oacute;n decimal suelen ser:
0. Obras Generales - 1. Filosof&amp;iacute;a - 2. Religi&amp;oacute;n - 3. Ciencias
Sociales - 4. Lengua - 5. Ciencias Puras - 6. Tecnolog&amp;iacute;a - 7. Arte
- 8. Literatura - 9. Historia. Que se recuerdan con la frase: "Generales:
&amp;iexcl;filosofad religiosamente! Socios: &amp;iexcl;hablad puramente! T&amp;eacute;cnicos
y artistas: &amp;iexcl;escribid hist&amp;oacute;ricamente!".&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Taxonom&amp;iacute;a&lt;/strong&gt;&lt;br /&gt;
La clasificaci&amp;oacute;n de las especies naturales comprende los siguientes
escalones: Reino - Tipo - Clase - Orden - Familia - G&amp;eacute;nero - Especie.
Se recuerda esta secuencia, en orden inverso, con la frase: "Una especie
general de familias ordenadas clasifican los tipos del reino".&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;Es tambi&amp;eacute;n muy curiosa la descripci&amp;oacute;n menot&amp;eacute;cnica
de los &lt;a href="http://www.science.uva.nl/~seop/entries/aristotle-logic/" title="Aristotle's Logic" lang="en"&gt;silogismos&lt;/a&gt;
(y la forma de recordar las figuras en que los escol&amp;aacute;sticos los
clasificaron), del n&amp;uacute;mero &lt;em&gt;pi&lt;/em&gt;, y de varios principios o teoremas
fundamentales de la f&amp;iacute;sica y la estad&amp;iacute;stica, entre otros,
pero dada la relativamente amplia extensi&amp;oacute;n de los textos en cuesti&amp;oacute;n,
me remito a la consulta y lectura del libro referenciado, caso de interesar
este tema.&lt;/p&gt;

&lt;p&gt;La l&amp;oacute;gica silog&amp;iacute;stica o &lt;em&gt;aristot&amp;eacute;lica&lt;/em&gt; trata
de determinar la verdad o falsedad de determinado argumento filos&amp;oacute;fico,
mediante el contraste de proposiciones o &lt;em&gt;premisas&lt;/em&gt;, y en cierto sentido
puede ser considerada como una formalizaci&amp;oacute;n, basada en expresiones
del lenguaje natural, del sentido com&amp;uacute;n. La utilizaci&amp;oacute;n del
silogismo por parte de los &lt;a href="http://www.webdianoia.com/his_fil/medieval.htm" title="Historia de la filosofía medieval"&gt;escol&amp;aacute;sticos&lt;/a&gt;
se entiende dada la integraci&amp;oacute;n de la filosof&amp;iacute;a de Arist&amp;oacute;teles
en la dogm&amp;aacute;tica cristiana, caracter&amp;iacute;stica de la tarea de
reflexi&amp;oacute;n desarrollada por este grupo de pensadores de la Filosof&amp;iacute;a
occidental entre mediados del siglo XI y mediados del siglo XV, aproximadamente.&lt;/p&gt;

&lt;p&gt;Josep M&amp;ordf; Albaig&amp;egrave;s es tambi&amp;eacute;n editor de la revista
&lt;a href="http://www.mensa.es/carrollia/"&gt;Carrollia&lt;/a&gt;,&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;"[...] &amp;oacute;rgano de comunicaci&amp;oacute;n [...] de &lt;a href="http://www.mensa.es/"&gt;Mensa
Espa&amp;ntilde;a&lt;/a&gt;, que se dedica a las Matem&amp;aacute;ticas recreativas,
la Ling&amp;uuml;&amp;iacute;stica, la Literatura Experimental, la L&amp;oacute;gica,
la Ciencia y todo aquello que hubiera gustado a &lt;a href="http://vistoyleido.blogspot.com/2005_10_01_vistoyleido_archive.html#112879815136038289"&gt;Lewis Carroll&lt;/a&gt;."&lt;/p&gt;
&lt;div class="cita"&gt;&lt;a href="http://www.mensa.es/carrollia/"&gt;Fuente&lt;/a&gt;&lt;/div&gt;
&lt;/blockquote&gt;

&lt;p&gt;Los &lt;a href="http://www.mensa.es/carrollia/listacarr.htm"&gt;boletines&lt;/a&gt;
de los &amp;uacute;ltimos a&amp;ntilde;os est&amp;aacute;n disponibles en formato &lt;acronym title="Portable Document Format" lang="en"&gt;PDF&lt;/acronym&gt;.
Tambi&amp;eacute;n es muy recomendable, si se est&amp;aacute; interesado por estos
temas, la "&lt;a href="http://www.juegosmensa.com/"&gt;Colecci&amp;oacute;n de juegos
de ingenio&lt;/a&gt;" (resueltos) del &lt;a href="http://www.mensa.es/"&gt;Club Mensa&lt;/a&gt;,
gran parte de ellos editados originalmente en las p&amp;aacute;ginas de Carrollia.
En otro orden de "utilidad" pr&amp;aacute;ctica, el "&lt;a href="http://www.mensa.es/carrollia/listabofci.htm"&gt;Bolet&amp;iacute;n
Oficial de la Facultad de Ciencias In&amp;uacute;tiles&lt;/a&gt;" (BOFCI) es otra
publicaci&amp;oacute;n del Club Mensa cuya lectura conviene no perderse...&lt;/p&gt;

&lt;p&gt;Y ya que hablamos, al menos tangencialmente, de juegos l&amp;oacute;gicos
y de ingenio, mencionar dos bit&amp;aacute;coras en lengua castellana dedicadas
de forma monogr&amp;aacute;fica a estos asuntos:
&lt;a href="http://www.geocities.com/juegosdeingenio/"&gt;Juegos
de Ingenio &amp;amp; Acertijos&lt;/a&gt; y &lt;a href="http://www.markelo.f2o.org/"&gt;Peque&amp;ntilde;os
Enigmas&lt;/a&gt;. En este &amp;uacute;ltimo sitio se localizan un buen n&amp;uacute;mero
de enlaces que llevan a otras p&amp;aacute;ginas de tem&amp;aacute;tica af&amp;iacute;n
(ver el apartado "Buenas p&amp;aacute;ginas de ingenio").&lt;/p&gt;

&lt;p&gt;Enlazando la cuesti&amp;oacute;n planteada inicialmente con la utilizaci&amp;oacute;n
de la programaci&amp;oacute;n l&amp;oacute;gica en general, y el lenguaje Prolog
en particular, en la resoluci&amp;oacute;n de acertijos y juegos l&amp;oacute;gicos,
podemos mencionar a modo de ejemplo el excelente trabajo "&lt;a href="http://www.unlu.edu.ar/~gpfl/acertijo.ps"&gt;Resolviendo
acertijos con Prolog&lt;/a&gt;" (&lt;a href="http://www.unlu.edu.ar/~gpfl/JPhome.htm"&gt;J.
Peri&lt;/a&gt;, &lt;a href="http://www.unlu.edu.ar"&gt;Universidad Nacional de Luj&amp;aacute;n&lt;/a&gt;,
Argentina; en formato &lt;a href="http://www.cs.wisc.edu/~ghost/" title="Ghostscript, Ghostview and GSview" lang="en"&gt;PostScript&lt;/a&gt;),
en el que podemos leer:&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;"[...] Prolog puede ser imaginado como un laboratorio de l&amp;oacute;gica.
Su capacidad para manejar expresiones simb&amp;oacute;licas le permite codificar
f&amp;aacute;cilmente cierto tipo de informaci&amp;oacute;n que en los lenguajes
procedurales es muy dif&amp;iacute;cil de manejar. La programaci&amp;oacute;n l&amp;oacute;gica
permite traducir en l&amp;iacute;neas de c&amp;oacute;digo descripciones de hechos
e implicaciones, lo que en principio permite codificar l&amp;iacute;neas de
razonamiento completas."&lt;/p&gt;
&lt;div class="cita"&gt;En "&lt;a href="http://www.unlu.edu.ar/~gpfl/acertijo.ps" title="Resolviendo acertijos con Prolog"&gt;Resolviendo acertijos con Prolog&lt;/a&gt;"&lt;/div&gt;
&lt;/blockquote&gt;

&lt;p&gt;Los ejemplos est&amp;aacute;n escritos en notaci&amp;oacute;n &lt;a href="http://www.cs.nps.navy.mil/people/faculty/rowe/book/ae.html" lang="en"&gt;Micro-Prolog&lt;/a&gt;,
que difiere sustancialmente de la difundida posteriormente como est&amp;aacute;ndar
de facto por el denominado "Prolog de Edimburgo", tal y como se explica
en un ap&amp;eacute;ndice al final del documento (Ap&amp;eacute;ndice II - Diferencias
entre Micro-Prolog y la notaci&amp;oacute;n de Edimburgo), si bien la sem&amp;aacute;ntica
de ejecuci&amp;oacute;n es id&amp;eacute;ntica en ambos casos. La l&amp;oacute;gica
subyacente en los ejemplos expuestos es en cualquier caso plenamente v&amp;aacute;lida,
independientemente de la notaci&amp;oacute;n con la que se representen.&lt;/p&gt;

&lt;p&gt;El autor de este trabajo es coordinador del "&lt;a href="http://www.unlu.edu.ar/~gpfl/"&gt;Grupo
de Programaci&amp;oacute;n Funcional y L&amp;oacute;gica&lt;/a&gt;" (&lt;acronym title="Universidad Nacional de Luján"&gt;UNL&lt;/acronym&gt;, &lt;acronym title="Universidad Nacional de la Pampa"&gt;UNP&lt;/acronym&gt;,
Argentina), cuyos miembros han publicado tambi&amp;eacute;n otros interesantes
documentos y trabajos sobre diversos aspectos de la programaci&amp;oacute;n
l&amp;oacute;gica, localizables
&lt;a href="http://www.unlu.edu.ar/~gpfl/wwwunlu.htm#Publicaciones"&gt;en
la p&amp;aacute;gina web&lt;/a&gt; de dicho grupo (tengan paciencia con las descargas,
el servidor es bastante lento, y se demoran un cierto tiempo). La utilizaci&amp;oacute;n
de la notaci&amp;oacute;n de Micro-Prolog en los trabajos de este grupo, se
explica en raz&amp;oacute;n de que sus miembros han desarrollado un int&amp;eacute;rprete
para Prolog, &lt;a href="http://www.unlu.edu.ar/~gpfl/edulog/wwwunlu.htm"&gt;Edulog&lt;/a&gt;,
orientado hacia fines educativos y la utilizaci&amp;oacute;n en sus cursos
y seminarios, que precisamente hace uso de la notaci&amp;oacute;n que venimos
comentando. El proyecto parece estar paralizado, al menos en su forma de
comunicaci&amp;oacute;n p&amp;uacute;blica, ya que las p&amp;aacute;ginas llevan bastante
tiempo sin ser actualizadas. El prototipo Edulog es accesible &lt;a href="http://www.unlu.edu.ar/~gpfl/F&amp;Lhome.htm#Software"&gt;desde
un enlace&lt;/a&gt; ubicado en la p&amp;aacute;gina de la asignatura "&lt;a href="http://www.unlu.edu.ar/~gpfl/F&amp;Lhome.htm"&gt;Programaci&amp;oacute;n
Funcional y L&amp;oacute;gica&lt;/a&gt;", si bien el archivo de descarga est&amp;aacute;
protegido por contrase&amp;ntilde;a. Supongo que poni&amp;eacute;ndose en contacto
con los responsables del proyecto, y exponi&amp;eacute;ndoles las razones por
las que se quiere acceder a su uso, no habr&amp;aacute; ning&amp;uacute;n problema
en conseguir la clave correspondiente.&lt;/p&gt;

&lt;p&gt;La notaci&amp;oacute;n implementada por Micro-Prolog es m&amp;aacute;s limitada
y menos flexible que la propia del est&amp;aacute;ndar de Edimburgo: as&amp;iacute;
por ejemplo, los posibles nombres de variables est&amp;aacute;n muy restringidos,
y el int&amp;eacute;rprete se conformar&amp;aacute; con la primera soluci&amp;oacute;n
que satisfaga el objetivo planteado, en contraposici&amp;oacute;n a lo habitual
en los int&amp;eacute;rpretes actuales basados en el Prolog est&amp;aacute;ndar,
que es tratar de proporcionar todas las posibles soluciones hasta agotar
la base de conocimientos del programa y las posibilidades de unificaci&amp;oacute;n
de las variables en juego. Otras diferencias se refieren a la utilizaci&amp;oacute;n,
por parte de Micro-Prolog, de predicados predefinidos de car&amp;aacute;cter particular.&lt;/p&gt;

&lt;p&gt;Las diferencias b&amp;aacute;sicas entre ambos tipos de notaciones est&amp;aacute;n
perfectamente explicadas, con ejemplos, en el documento "&lt;a href="http://www.unlu.edu.ar/~gpfl/F&amp;Lhome.htm#Bibliografia"&gt;Diferencias
entre la notaci&amp;oacute;n de Micro Prolog y la de Edimburgo&lt;/a&gt;" que encontramos
en la p&amp;aacute;gina de la asignatura mencionada, si bien el archivo comprimido
que sirve como medio de descarga al original en formato Word, est&amp;aacute;
tambi&amp;eacute;n protegido por contrase&amp;ntilde;a, por lo que de nuevo se
hace necesario ponerse en contacto con sus autores con el fin de obtener
la pertinente autorizaci&amp;oacute;n.&lt;/p&gt;

&lt;p&gt;Micro-Prolog fue un dialecto del lenguaje Prolog creado alrededor de
1980 para ser ejecutado originalmente en los primeros ordenadores personales,
equipos de poca capacidad de procesamiento y memoria en comparaci&amp;oacute;n
con los par&amp;aacute;metros actuales, basados en el procesador Z-80 de Zilog &lt;abbr title="Corporation" lang="en"&gt;Corp.&lt;/abbr&gt;, sucesor del 8085 de Intel, y el &lt;acronym title="Sistema Operativo"&gt;S.O.&lt;/acronym&gt; &lt;acronym title="Control Program/Monitor" lang="en"&gt;&lt;a href="http://www.iacvt.com.ar/cpm.htm"&gt;CP/M&lt;/acronym&gt;&lt;/a&gt;,
antecesor del &lt;acronym title="Personal Computer/Microsoft-Disk Operating System" lang="en"&gt;PC/MS-DOS&lt;/acronym&gt;
(&lt;a href="http://www.nvg.ntnu.no/sinclair/computers/computers.htm" title="The Sinclair Computers" lang="en"&gt;ZX
Spectrum&lt;/a&gt;, &lt;a href="http://www.hut.fi/Misc/cbm/" lang="en"&gt;Commodore
64&lt;/a&gt;, &lt;a href="http://www.old-computers.com/" title="old-computers.com" lang="en"&gt;etc.&lt;/a&gt;).
El compilador e int&amp;eacute;rprete &lt;a href="http://www.lpa.co.uk/dow_fre.htm" lang="en"&gt;LPA
Prolog Professional&lt;/a&gt; soporta la notaci&amp;oacute;n Micro-Prolog, aunque
hay que advertir que se trata de un "dialecto" completamente en desuso,
dadas sus evidentes limitaciones, siendo la notaci&amp;oacute;n del est&amp;aacute;ndar
de Edimburgo (tambi&amp;eacute;n conocida como sintaxis DECsystem-10) la m&amp;aacute;s
extendida, y por tanto la empleada en la pr&amp;aacute;ctica totalidad de las
implementaciones actuales de int&amp;eacute;rpretes para el lenguaje Prolog.
Desde &lt;a href="http://www.cs.buap.mx/~jpalacio/gimf/HectorJ/ai-verano/prolog.exe"&gt;este
otro enlace&lt;/a&gt; se puede descargar el int&amp;eacute;rprete original para Micro-Prolog.&lt;/p&gt;

&lt;p&gt;&lt;a href="http://clocksin.com/" lang="en"&gt;W.F. Clocksin&lt;/a&gt; y C.S. Mellish,
en su libro "Programaci&amp;oacute;n en Prolog" (Gustavo Gili, 1993; ISBN:
84-252-1339-8), dedican un apartado completo, "Ap&amp;eacute;ndice E - Micro-Prolog",
a la explicaci&amp;oacute;n de la sintaxis implementada por Micro-Prolog:&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;"La sintaxis de Micro-Prolog es bastante diferente [...] La
idea b&amp;aacute;sica es que s&amp;oacute;lo existe un tipo de t&amp;eacute;rmino:
la lista. Si queremos construir el &amp;laquo;t&amp;eacute;rmino&amp;raquo; con funtor
&lt;strong&gt;f&lt;/strong&gt;
y cuatro argumentos, usamos de hecho una lista de cinco elementos, con
&lt;strong&gt;f&lt;/strong&gt;
como la cabeza, y los cuatro argumentos apareciendo sucesivamente como
los elementos restantes. As&amp;iacute;, lo que en la sintaxis de nuestro &amp;laquo;n&amp;uacute;cleo&amp;raquo;
se escribir&amp;iacute;a: &lt;strong&gt;f(a,g(2,3),c)&lt;/strong&gt; se escribir&amp;iacute;a en Micro-Prolog:
&lt;strong&gt;(f
(g 2 3) c)&lt;/strong&gt;. Aqu&amp;iacute; tambi&amp;eacute;n vemos la sintaxis diferente
para listas, en donde las listas van entre par&amp;eacute;ntesis, con sus elementos
separados por espacios.&lt;/p&gt;

&lt;p&gt;Las cl&amp;aacute;usulas se representan como listas de t&amp;eacute;rminos,
en los que el primero es la cabeza de la cl&amp;aacute;usula, y el resto son
objetivos, que tomados como una conjunci&amp;oacute;n, forman el cuerpo. He
aqu&amp;iacute; una cl&amp;aacute;usula m&amp;aacute;s complicada [...]:&lt;/p&gt;

&lt;p class="codigo"&gt;
((alterar (z1|z2) (x|y))
&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; (cambiar z1 x)
&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; (altera z2 y)
&lt;br /&gt;)
&lt;/p&gt;

&lt;p&gt;Esto es la segunda cl&amp;aacute;usula de [el predicado] &lt;strong&gt;alterar&lt;/strong&gt; de
la secci&amp;oacute;n 3.4. [...]&lt;/p&gt;

&lt;p class="codigo"&gt;
alterar([H|T],[X|Y]):- cambiar(H,X), alterar(T,Y).
&lt;/p&gt;

&lt;p&gt;[...] Los nombres y prop&amp;oacute;sitos de los predicados predefinidos var&amp;iacute;an
considerablemente de los que se han visto a lo largo de este libro [...]"&lt;/p&gt;
&lt;div class="cita"&gt;En &lt;em&gt;Programaci&amp;oacute;n en Prolog&lt;/em&gt;, Ap&amp;eacute;ndice E - Micro-Prolog&lt;/div&gt;
&lt;/blockquote&gt;

&lt;p&gt;Por otra parte, en Turbo Prolog los programas se dividen en secciones diferenciadas:
&lt;em&gt;dominios&lt;/em&gt;, &lt;em&gt;cl&amp;aacute;usulas&lt;/em&gt;, &lt;em&gt;predicados&lt;/em&gt;, &lt;em&gt;base de
datos&lt;/em&gt; y &lt;em&gt;objetivos&lt;/em&gt;. La explicaci&amp;oacute;n, tanto sobre la sintaxis
de Micro-Prolog, como sobre otros aspectos generales de este dialecto (predicados
predefinidos particulares, facilidades para la depuraci&amp;oacute;n del c&amp;oacute;digo,
etc.), tiene cierta extensi&amp;oacute;n, por lo que me remito a la obra referenciada
para obtener m&amp;aacute;s informaci&amp;oacute;n al respecto, y en particular,
adem&amp;aacute;s de al referido Ap&amp;eacute;ndice E, a los ap&amp;eacute;ndices
"C - Diferentes versiones de Prolog" (ofrece una breve visi&amp;oacute;n general
sobre este particular), y "D - Prolog del DECsystem-10".&lt;/p&gt;

&lt;p&gt;&lt;a href="http://www.info.ucl.ac.be/people/cvvanroy.html" lang="en"&gt;Peter
Van Roy&lt;/a&gt; (&lt;a href="http://www.ucl.ac.be/" lang="fr"&gt;Universidad Cat&amp;oacute;lica
de Lovaina&lt;/a&gt;, B&amp;eacute;lgica, &lt;abbr title="Departamento"&gt;&lt;a href="http://www.info.ucl.ac.be/" lang="en"&gt;Dpto.&lt;/abbr&gt;
de Ingenier&amp;iacute;a Inform&amp;aacute;tica&lt;/a&gt;), una de las figuras m&amp;aacute;s
destacadas en el mundo de la programaci&amp;oacute;n l&amp;oacute;gica, es autor
de un art&amp;iacute;culo, de lectura m&amp;aacute;s que recomendable, referido
a la evoluci&amp;oacute;n del lenguaje Prolog en la d&amp;eacute;cada que transcurre
a partir de la aparici&amp;oacute;n de la arquitectura &lt;acronym title="Warren Abstract Machine" lang="en"&gt;WAM&lt;/acronym&gt;:
"&lt;a href="http://www.info.ucl.ac.be/people/PVR/official_report.ps"&gt;1983-1993:
The Wonder Years of Sequential Prolog Implementation&lt;/a&gt;" (en formato &lt;acronym title="PostScript" lang="en"&gt;PS&lt;/acronym&gt;):&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;"This report surveys the major developments in sequential Prolog
implementation during the period 1983-1993. In this decade, implementation
technology has matured to such a degree that Prolog has left the university
and become useful in industry. The survey is divided into four parts. The
first part gives an overview of the important technical developments starting
with the Warren Abstract Machine (WAM). The second part presents the history
and the contributions of the major software and hardware systems. The third
part charts the evolution of Prolog performance since Warren?s DEC-10 compiler.
The fourth part extrapolates current trends regarding the evolution of
sequential logic languages, their implementation, and their role in the marketplace."&lt;/p&gt;

&lt;p&gt;"By 1983 Warren had developed the WAM, a structure-copying execution
model for Prolog that has become the de facto standard implementation technique
[...]. The WAM defines a high-level instruction set that maps closely to
Prolog source code. [...]"&lt;/p&gt;
&lt;div class="cita"&gt;En "&lt;a href="http://www.info.ucl.ac.be/people/PVR/official_report.ps"&gt;1983-1993:
The Wonder Years of Sequential Prolog Implementation&lt;/a&gt;"&lt;/div&gt;
&lt;/blockquote&gt;

&lt;p&gt;La tesis doctoral de Peter Van Roy versaba precisamente sobre la implementaci&amp;oacute;n
de la &lt;acronym title="Warren Abstract Machine" lang="en"&gt;WAM&lt;/acronym&gt;:
"&lt;a href="http://www2.info.ucl.ac.be/people/PVR/Peter.thesis/Peter.thesis.html" lang="en"&gt;Can Logic Programming Execute as Fast as Imperative Pro-gramming?&lt;/a&gt;" (PhD
Thesis, Department of Computer Science, U.C. Berkeley, Report UCB/CSD 90/600, 1990).&lt;/p&gt;

&lt;p&gt;La aparici&amp;oacute;n de la M&amp;aacute;quina Abstracta de Warren o &lt;acronym title="Warren Abstract Machine" lang="en"&gt;WAM&lt;/acronym&gt; (David H.D. Warren, 1983) supuso un punto de inflexi&amp;oacute;n en la evoluci&amp;oacute;n
del lenguaje Prolog, por cuanto comportaba la definici&amp;oacute;n de un conjunto
de instrucciones de alto nivel y un modelo de ejecuci&amp;oacute;n para este
lenguaje, y la materializaci&amp;oacute;n de la &lt;a href="http://www.clip.dia.fi.upm.es/~vocal/public_info/"&gt;programaci&amp;oacute;n l&amp;oacute;gica
con restricciones&lt;/a&gt; (Constraint Logic Programming, CLP). Supone la base, adoptada como est&amp;aacute;ndar de facto, para la implementaci&amp;oacute;n
de int&amp;eacute;rpretes portables para el lenguaje Prolog, convirti&amp;eacute;ndolo
en un lenguaje multiprop&amp;oacute;sito con caracter&amp;iacute;sticas similares
a las de los lenguajes compilados de car&amp;aacute;cter procedimental, en
lo que alos tiempos de ejecuci&amp;oacute;n se refiere. As&amp;iacute;, en el sitio
web del int&amp;eacute;rprete SWI-Prolog leemos:&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;"SWI-Prolog is a Prolog implementation based on a subset of the WAM (Warren Abstract Machine)."&lt;/p&gt;

&lt;p&gt;"[...] is based on a very restricted form of the &lt;acronym title="Warren Abstract Machine" lang="en"&gt;WAM&lt;/acronym&gt; [...] described in &lt;em&gt;&lt;a href="http://www.swi.psy.uva.nl/projects/SWI-Prolog/Manual/Bibliography.html#Bowen:83" lang="en"&gt;Bowen
&amp;amp; Byrd, 1983&lt;/a&gt;&lt;/em&gt; which defines only 7 instructions. Prolog can
easily be compiled into this language and the abstract machine code is
easily decompiled back into Prolog. As it is also possible to wire a standard
4-port debugger in the &lt;acronym title="Warren Abstract Machine" lang="en"&gt;WAM&lt;/acronym&gt; interpreter there is no need for a distinction between compiled and interpreted
code. Besides simplifying the design of the Prolog system itself this approach
has advantages for program development: the compiler is simple and fast,
the user does not have to decide in advance whether debugging is required
and the system only runs slightly slower when in debug mode. The price
we have to pay is some performance degradation (taking out the debugger
from the &lt;acronym title="Warren Abstract Machine" lang="en"&gt;WAM&lt;/acronym&gt;
interpreter improves performance by about 20%) and somewhat additional
memory usage to help the decompiler and debugger."&lt;/p&gt;

&lt;p&gt;"SWI-Prolog extends the minimal set of instructions described in &lt;em&gt;&lt;a href="http://www.swi.psy.uva.nl/projects/SWI-Prolog/Manual/Bibliography.html#Bowen:83" lang="en"&gt;Bowen
&amp;amp; Byrd, 1983&lt;/a&gt;&lt;/em&gt; to improve performance. While extending this set
care has been taken to maintain the advantages of decompilation and tracing
of compiled code. The extensions include specialised instructions for unification,
predicate invocation, some frequently used built-in predicates, arithmetic,
and control (&lt;a href="http://www.swi.psy.uva.nl/projects/SWI-Prolog/Manual/control.html#;/2" lang="en"&gt;;/2&lt;/a&gt;,
&lt;a href="http://www.swi.psy.uva.nl/projects/SWI-Prolog/Manual/control.html#|/2" lang="en"&gt;|/2&lt;/a&gt;),
if-then (&lt;a href="http://www.swi.psy.uva.nl/projects/SWI-Prolog/Manual/control.html#send_arrow/2" lang="en"&gt;-&gt;/2&lt;/a&gt;)
and negation-by-failure (&lt;a href="http://www.swi.psy.uva.nl/projects/SWI-Prolog/Manual/control.html#\+/1" lang="en"&gt;\+/1&lt;/a&gt;)."&lt;/p&gt;
&lt;div class="cita"&gt;En &lt;a href="http://www.swi.psy.uva.nl/projects/SWI-Prolog/Manual/" lang="en"&gt;SWI-Prolog
Reference Manual&lt;/a&gt; - &lt;a href="http://www.swi.psy.uva.nl/projects/SWI-Prolog/Manual/swiprolog.html" lang="en"&gt;1.1 SWI-Prolog&lt;/a&gt;&lt;/div&gt;
&lt;/blockquote&gt;

&lt;p&gt;La funci&amp;oacute;n de esta m&amp;aacute;quina virtual, dentro del n&amp;uacute;cleo
del int&amp;eacute;rprete, es compilar las instrucciones escritas en lenguaje
de alto nivel a instrucciones en lenguaje m&amp;aacute;quina, de forma similar
a como lo hace la m&amp;aacute;quina virtual Java (&lt;acronym title="Java Virtual Machine" lang="en"&gt;JVM&lt;/acronym&gt;).
La arquitectura WAM ha permitido en consecuencia desarrollar versiones
de Prolog "compilado" a nivel de ejecuci&amp;oacute;n, aun cuando los programas
se sigan guardando y ejecutando desde archivos que contienen c&amp;oacute;digo
escrito en lenguaje de alto nivel. De manera general, una m&amp;aacute;quina
virtual es por tanto un procedimiento abstracto para ejecutar conjuntos
de instrucciones escritas en un lenguaje formal, como puede ser en este
caso Prolog.&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;"[...] si utilizamos un entorno de programaci&amp;oacute;n interpretado
de Prolog [...] la eficiencia, en cuanto a velocidad de ejecuci&amp;oacute;n
se refiere, disminuye, al igual que en cualquier lenguaje interpretado,
frente a un lenguaje compilado.&lt;/p&gt;

&lt;p&gt;El conjunto de instrucciones de las computadoras actuales resulta muy
pobre en relaci&amp;oacute;n con la sem&amp;aacute;ntica de Prolog, por lo que
la mayor&amp;iacute;a de los compiladores de Prolog [...] realizan una compilaci&amp;oacute;n
a un lenguaje intermedio en vez de hacerlo directamente a lenguaje m&amp;aacute;quina.
El lenguaje m&amp;aacute;s popular es el Warren Abstract Machine (WAM) [...]
conjunto de instrucciones abstractas utilizable en Prolog y que se puede
interpretar o traducir a lenguaje m&amp;aacute;quina. Existen otros compiladores
que traducen Prolog a un lenguaje de alto nivel como Lisp o C, y utilizan
dicho compilador para traducir a lenguaje m&amp;aacute;quina.&lt;/p&gt;

&lt;p&gt;Antes del trabajo de Warren sobre la compilaci&amp;oacute;n de la inferencia
en Prolog, la programaci&amp;oacute;n l&amp;oacute;gica resultaba excesivamente
lenta para su uso generalizado. Los compiladores dise&amp;ntilde;ados por Warren
y otros permitieron a Prolog alcanzar velocidades adecuadas [...] En fechas
m&amp;aacute;s recientes, la aplicaci&amp;oacute;n de la moderna tecnolog&amp;iacute;a
de compilaci&amp;oacute;n [...] ha permitido a Prolog alcanzar velocidades
tan &amp;oacute;ptimas que lo hace competir con C en cuanto a diversos aspectos
est&amp;aacute;ndar [...]. [...] el hecho de poder escribir un planificador
o un analizador de lenguaje natural en unas cuantas decenas de l&amp;iacute;neas
de Prolog, hacen que &amp;eacute;ste sea m&amp;aacute;s preferible que C en la
realizaci&amp;oacute;n de los prototipos de gran parte de los proyectos de
investigaci&amp;oacute;n de &lt;acronym title="Inteligencia Artificial"&gt;IA&lt;/acronym&gt;
a escala reducida."&lt;/p&gt;
&lt;div class="cita"&gt;&lt;a href="http://www.uhu.es/nieves.pavon/pprogramacion/temario/tema4/tema4.html#_Toc495058042"&gt;Fuente&lt;/a&gt;
(&lt;a href="http://www.uhu.es/nieves.pavon/pprogramacion/"&gt;estructura general de marcos&lt;/a&gt; de
la p&amp;aacute;gina citada)&lt;/div&gt;
&lt;/blockquote&gt;

&lt;p&gt;M&amp;aacute;s informaci&amp;oacute;n al respecto: "&lt;a href="http://www.vanx.org/archive/wam/wambook.pdf" lang="en"&gt;Warrens's
Abstract Machine: A Tutorial Reconstruction&lt;/a&gt;" (en &lt;acronym title="Portable Document Format" lang="en"&gt;PDF&lt;/acronym&gt;;
Hassan A&amp;iuml;t-Kaci; The MIT Press, Cambridge, MA, 1991).&lt;/p&gt;

&lt;p&gt;En el siguiente trabajo se describe el sistema y la notaci&amp;oacute;n
DECsystem-10 Prolog, en la que se basa el est&amp;aacute;ndar de Edimburgo,
que recordemos es de facto el sistema Prolog est&amp;aacute;ndar en la actualidad,
recogido la norma ISO vigente referida a este lenguaje (ISO/IEC 13211-1:1995
Part 1: General core):&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;"&lt;a href="http://www-2.cs.cmu.edu/afs/cs/project/ai-repository/ai/lang/prolog/doc/intro/prolog.doc"&gt;DECsystem-10
Prolog User's Manual&lt;/a&gt;". D.L. Bowen (ed.), L. Byrd, F.C.N. Pereira, L.M.
Pereira, and D.H.D. Warren, Department of Artificial Intelligence, University
of Edinburgh, November 10, 1982.&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;Si bien el formato del anterior documento es ".doc", se trata realmente
de un archivo de texto plano, por lo que se descoloca la disposici&amp;oacute;n
del mismo si se abre con &lt;acronym title="MicroSoft" lang="en"&gt;MS&lt;/acronym&gt;
Word. Tambi&amp;eacute;n: &lt;a href="http://www.cs.uah.edu/~thinke/Prolog/prolog.html"&gt;versi&amp;oacute;n
en HTML&lt;/a&gt;, y &lt;a href="http://proton.ucting.udg.mx/tutorial/prolog/index.htm"&gt;traducci&amp;oacute;n
al castellano&lt;/a&gt; de este manual, limitada a los tres primeros cap&amp;iacute;tulos.&lt;/p&gt;

&lt;p&gt;El DECsystem-10 Prolog fue una implementaci&amp;oacute;n creada y desarrollada
(1977, 1980) por D. Warren y otros (F. Pereira, L. Byrd, L. Pereira) en
el Departamento de Inteligencia Artificial de la Universidad de Edimburgo,
para operar en sistemas inform&amp;aacute;ticos DECsystem-10. Junto con el
Prolog descrito en la obra referenciada de Clocksin y Mellish, las versiones
del DEC-10 Prolog y sus posteriores desarrollos constituyen la base del
est&amp;aacute;ndar o sintaxis de Edimburgo.&lt;/p&gt;

&lt;p&gt;Las iniciales DECsystem-10 hacen referencia al sistema inform&amp;aacute;tico
sobre el que se bas&amp;oacute; la implementaci&amp;oacute;n Prolog de la Universidad
de Edimburgo que venimos comentando, fabricado por
&lt;a href="http://www.research.microsoft.com/~gbell/Digital/DECMuseum.htm" title="CyberMuseum for Digital Equipment Corp (DEC)" lang="en"&gt;Digital
Equipment &lt;abbr title="Corporation" lang="en"&gt;Corp.&lt;/abbr&gt;&lt;/a&gt; Los
DECsystem-10/20 eran sistemas de &lt;a href="http://www.research.microsoft.com/~gbell/Digital/timeline/36-bit.htm" lang="en"&gt;arquitectura
de 36-bit&lt;/a&gt;, cuyas primeras versiones datan del a&amp;ntilde;o 1971. Cuando
hablamos de este tipo de sistemas no hay que pensar en los &lt;acronym title="Personal Computer" lang="en"&gt;PC&lt;/acronym&gt;s,
posteriores en el tiempo y orientados inicialmente hacia otro tipo de usuario
final, sino que se trataba de equipos situados, por potencia de procesamiento
y c&amp;aacute;lculo (y todo sea dicho, por dificultad de manejo y operaci&amp;oacute;n),
en la escala de los grandes equipos inform&amp;aacute;ticos conocidos como
"mainframes". No es infrecuente encontrar, en gu&amp;iacute;as y manuales antiguos
del lenguaje Prolog (por ejemplo los referidos a C-Prolog [&lt;a href="http://kilo.ee.lsu.edu/koppel/ee4785/prolog.html" title="C-Prolog User's Manual" lang="en"&gt;en
HTML&lt;/a&gt;] [&lt;a href="ftp://ftp.ee.lsu.edu/pub/koppel/ee4785/prolog.ps"&gt;en &lt;acronym title="PostScript" lang="en"&gt;PS&lt;/acronym&gt;&lt;/a&gt;],
y en general a las implementaciones derivadas de la primera especificaci&amp;oacute;n
DECsystem-10 Prolog), referencias a TOPS-20, evoluci&amp;oacute;n de los DECsystem-10/20,
y a otros sistemas de &lt;acronym title="Digital Equipment Corporation" lang="en"&gt;DEC&lt;/acronym&gt;.&lt;/p&gt;

&lt;p&gt;Sobre la base de este primer int&amp;eacute;rprete-compilador para Prolog
se cre&amp;oacute;, en 1983, uno de los primeros int&amp;eacute;rpretes puros para
dicho lenguaje, &lt;a href="http://kilo.ee.lsu.edu/koppel/ee4785/prolog.html" title="C-Prolog User's Manual" lang="en"&gt;C-Prolog&lt;/a&gt;
(F. Pereira, D. Bowen, L. Byrd), escrito en lenguaje C, que contribuy&amp;oacute;
a consolidar el est&amp;aacute;ndar de Edimburgo, como referencia para posteriores
implementaciones.&lt;/p&gt;

&lt;p&gt;Para finalizar esta anotaci&amp;oacute;n, mencionar el ejemplo de aplicaci&amp;oacute;n
pr&amp;aacute;ctica del lenguaje Prolog a la resoluci&amp;oacute;n de juegos y
acertijos l&amp;oacute;gicos descrito en "&lt;a href="http://www.sunyit.edu/~millerd1/RUBIK.HTM" lang="en"&gt;Solving
Rubik's Cube Using the Bestfast Algorithm and Profile tables - A Prolog
program and demonstration of an efficient heuristic search method&lt;/a&gt;"
(por &lt;a href="http://www.sunyit.edu/~millerd1/" lang="en"&gt;D.L. Winston
Miller&lt;/a&gt;). Como el propio t&amp;iacute;tulo indica, en este texto se explica
el fundamento te&amp;oacute;rico y el funcionamiento de un programa dise&amp;ntilde;ado
para efectuar la b&amp;uacute;squeda de los mejores m&amp;eacute;todos posibles
de resoluci&amp;oacute;n del problema planteado por el famoso &lt;a href="http://www.microsiervos.com/rompecabezas.html"&gt;Cubo
de Rubik&lt;/a&gt;. Los archivos que conforman el programa (ver al final del
documento) est&amp;aacute;n escritos originalmente para ser ejecutados bajo
el int&amp;eacute;rprete &lt;a href="http://www.arity.com/www.pl/products/ap.htm" lang="en"&gt;Arity
Prolog&lt;/a&gt; (de uso libre) si bien, al soportar la notaci&amp;oacute;n y &lt;a href="http://www.arity.com/www.pl/products/appreds.htm" lang="en"&gt;predicados&lt;/a&gt;
del est&amp;aacute;ndar de Edimburgo, el programa en principio deber&amp;iacute;a
tambi&amp;eacute;n poder ejecutarse correctamente bajo &lt;a href="http://www.swi-prolog.org/" lang="en"&gt;SWI-Prolog&lt;/a&gt;.&lt;/p&gt;

&lt;p&gt;El programa hace uso de un algoritmo de b&amp;uacute;squeda &lt;a href="http://www.cogs.susx.ac.uk/local/books/ai-through-search/ch04/ch04-uh-6.html" title="Ordered search and the A* Algorithm" lang="en"&gt;A*&lt;/a&gt;
(&lt;a href="http://www.sju.edu/~jhodgson/ai/astar.html"&gt;ejemplo&lt;/a&gt;), basado
en el tipo conocido como "best-first search", derivado a su vez del m&amp;eacute;todo
de b&amp;uacute;squeda "breadth-first search" o "b&amp;uacute;squeda primero en
anchura" (&lt;a href="http://www.sju.edu/~jhodgson/ai/bfs.html" lang="en"&gt;ejemplo&lt;/a&gt;),
que eval&amp;uacute;a cada nodo del mismo nivel, dentro del &amp;aacute;rbol de
b&amp;uacute;squeda (entendiendo por tal la representaci&amp;oacute;n en forma
de grafo dirigido -los nodos que lo forman est&amp;aacute;n conectados mediante
flechas que indican la direcci&amp;oacute;n del movimiento- de un determinado
problema de b&amp;uacute;squeda), antes de continuar el proceso en el siguiente
nivel de profundidad. En contraposici&amp;oacute;n a este m&amp;eacute;todo se
sit&amp;uacute;a la b&amp;uacute;squeda "depth-first" o "primero en profundidad"
(&lt;a href="http://www.sju.edu/~jhodgson/ai/dfs.html" lang="en"&gt;ejemplo&lt;/a&gt;),
en la que se explora cada "rama" del &amp;aacute;rbol hasta llegar al "nodo
terminal", antes de proceder a la b&amp;uacute;squeda por otro camino. Este
es precisamente el tipo de b&amp;uacute;squeda "interna" por defecto que lleva
a cabo el lenguaje Prolog (b&amp;uacute;squeda en profundidad y de izquierda
a derecha en un &amp;aacute;rbol And-Or) dentro de la base de conocimientos
compilada, al tratar de satisfacer los objetivos.&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;"The A* [...] is an efficient and widely used &lt;a href="http://www.generation5.org/glossary/display.asp?uri=pathing.xml" lang="en"&gt;pathing&lt;/a&gt;
algorithm. The A* keeps track of the cost of getting from point A to point
B and the overall cost of getting from the beginning point to the end point.
The algorithm follows the path of least cost to find a solution. The A*
uses up a lot of memory and can be very slow on rough terrain - therefore
it is not used for real-time robotics &lt;a href="http://www.generation5.org/glossary/display.asp?uri=pathing.xml" lang="en"&gt;pathing&lt;/a&gt; too often."&lt;/p&gt;
&lt;div class="cita"&gt;&lt;a href="http://www.generation5.org/glossary/display.asp?uri=astar.xml" lang="en"&gt;Fuente&lt;/a&gt;&lt;/div&gt;
&lt;/blockquote&gt;

&lt;p&gt;A los dos tipos b&amp;aacute;sicos de algoritmos de b&amp;uacute;squeda mencionados
(existen otros muchos), se les pueden a&amp;ntilde;adir eventualmente m&amp;eacute;todos
heur&amp;iacute;sticos de evaluaci&amp;oacute;n, consistentes en reglas capaces
de valorar si, en base a determinado tipo de informaci&amp;oacute;n previa,
la b&amp;uacute;squeda est&amp;aacute; siguiendo el camino correcto, para de esta
forma aumentar la probabilidad de dar con la soluci&amp;oacute;n correcta.
Los m&amp;eacute;todos heur&amp;iacute;sticos tratan de aplicar dos criterios de
b&amp;uacute;squeda: a) elecci&amp;oacute;n de los caminos que es posible que fallen
con mayor probabilidad, para de esta forma "podar" el espacio de b&amp;uacute;squeda
y as&amp;iacute; reducir su tama&amp;ntilde;o, o bien b) comprobaci&amp;oacute;n, en
primer lugar, de los caminos con mayor probabilidad de &amp;eacute;xito. Las
b&amp;uacute;squedas heur&amp;iacute;sticas son por tanto b&amp;uacute;squedas basadas
en la experiencia. La adici&amp;oacute;n de capacidades heur&amp;iacute;sticas
a los m&amp;eacute;todos de b&amp;uacute;squeda "breadth-first", da lugar a los
algoritmos "best-first search", como el A* utilizado en el programa aplicado
a la resoluci&amp;oacute;n de los estados del Cubo de Rubik.&lt;/p&gt;

&lt;p&gt;Estos tres tipos b&amp;aacute;sicos de algoritmos de b&amp;uacute;squeda, as&amp;iacute;
como los conceptos y teoremas b&amp;aacute;sicos de la Teor&amp;iacute;a de Grafos
[&lt;a href="http://emis.library.cornell.edu/monographs/Diestel/en/download.html" title="Graph Theory by Reinhard Diestel" lang="en"&gt;1&lt;/a&gt;]
[&lt;a href="http://es.wikipedia.org/wiki/Teor%EDa_de_grafos" title="En Wikipedia, la enciclopedia libre"&gt;2&lt;/a&gt;]
[&lt;a href="http://en2.wikipedia.org/wiki/Graph_theory" title="Graph theory. From Wikipedia, the free encyclopedia" lang="en"&gt;3&lt;/a&gt;]
necesarios para la comprensi&amp;oacute;n y conocimiento de sus mecanismos
de funcionamiento, se describen ampliamente en los cap&amp;iacute;tulos 11.
"Basic Problem-Solving Strategies", 12. "Best First: A Heuristic Search
Principle", y 13. "Problem Reduction and AND/OR Graphs" de la obra de Ivan
Bratko "Prolog programming for Artificial Intelligence" (Addison-Wesley,
1994; ISBN: 0-201-41606-9).&lt;/p&gt;

&lt;p&gt;Por otra parte "&lt;a href="http://www.cogs.susx.ac.uk/local/books/ai-through-search/index.html" lang="en"&gt;Artificial
Intelligence Through Search&lt;/a&gt;" (C.J. Thorton, B. du Boulay) es un libro
que aborda de forma especifica la cuesti&amp;oacute;n de los m&amp;eacute;todos
y algoritmos utilizados en espacios de b&amp;uacute;squeda (definidos &amp;eacute;stos
por el conjunto de todos los nodos de un grafo dirigido). Desafortunadamente,
en la versi&amp;oacute;n electr&amp;oacute;nica de este libro se pierden gran parte
de las figuras y esquemas del original impreso, lo cual dificulta la comprensi&amp;oacute;n de estas cuestiones, que de por si tienen cierta complejidad.&lt;/p&gt;

&lt;p&gt;M&amp;aacute;s informaci&amp;oacute;n:&lt;/p&gt;

&lt;ul class="conmargeninf"&gt;
&lt;li&gt;
"&lt;a href="http://www.dccia.ua.es/~faraon/docs/juegos.pdf"&gt;Los Juegos como
Herramienta Docente. Formalizaci&amp;oacute;n de Juegos L&amp;oacute;gicos en Prolog&lt;/a&gt;"
(&lt;a href="http://www.dccia.ua.es/~faraon/principal.htm"&gt;F. Llorens&lt;/a&gt;,
M&amp;ordf; Jes&amp;uacute;s Castel, F. Mora y C. Villagr&amp;aacute;; en &lt;acronym title="Portable Document Format" lang="en"&gt;PDF&lt;/acronym&gt;).&lt;/li&gt;

&lt;li&gt;
&lt;a href="http://www.fraber.de/university/prolog/tprolog.html" lang="en"&gt;Turbo
Prolog&lt;/a&gt;.&lt;/li&gt;

&lt;li&gt;
Early History of Prolog: &lt;a href="http://www.lim.univ-mrs.fr/~colmer/ArchivesPublications/HistoireProlog/19november92.pdf" lang="en"&gt;The
birth of Prolog&lt;/a&gt; / &lt;a href="http://www.lim.univ-mrs.fr/~colmer/ArchivesPublications/HistoireProlog/24juillet92.pdf"&gt;La
naissance de Prolog&lt;/a&gt; (en &lt;acronym title="Portable Document Format" lang="en"&gt;PDF&lt;/acronym&gt;;
P. Roussel).&lt;/li&gt;

&lt;li&gt;
&lt;a href="http://tcl.sfs.nphil.uni-tuebingen.de/~cornell/prolog/" lang="en"&gt;Notas de curso&lt;/a&gt; sobre Prolog: &lt;a href="http://tcl.sfs.nphil.uni-tuebingen.de/~cornell/prolog/Graphs-root.html" lang="en"&gt;Chapter
7 Graphs&lt;/a&gt; (representaci&amp;oacute;n de grafos en Prolog).&lt;/li&gt;

&lt;li&gt;
&lt;a href="http://www.cs.ubc.ca/spider/poole/ci/ci_code.html" lang="en"&gt;C&amp;oacute;digo fuente&lt;/a&gt; de algunos algoritmos A*.&lt;/li&gt;

&lt;li&gt;
Otro ejemplo de implementaci&amp;oacute;n del algoritmo de b&amp;uacute;squeda
A* en Prolog, y en dos versiones: a) en &lt;a href="http://perso.wanadoo.fr/colin.barker/tpro1/astar.htm"&gt;sint&amp;aacute;xis
Turbo Prolog&lt;/a&gt;, compatible con &lt;a href="http://www.visual-prolog.com" lang="en"&gt;Visual
Prolog&lt;/a&gt; + &lt;a href="http://perso.wanadoo.fr/colin.barker/lpa/idastar.htm" lang="en"&gt;IDA*&lt;/a&gt;
(Iterative Deepening A* search); y b) en &lt;a href="http://perso.wanadoo.fr/colin.barker/lpa/astar.htm"&gt;sint&amp;aacute;xis
LPA Win-Prolog&lt;/a&gt;.&lt;/li&gt;

&lt;li&gt;
&lt;a href="http://www.csupomona.edu/~jrfisher/www/prolog_tutorial/5_1.html" lang="en"&gt;The
A* algorithm in Prolog&lt;/a&gt; (en &lt;a href="http://www.csupomona.edu/~jrfisher/www/prolog_tutorial/contents.html" lang="en"&gt;Prolog
Tutorial&lt;/a&gt; de &lt;a href="http://www.csupomona.edu/~jrfisher/www/" lang="en"&gt;J.R.Fisher&lt;/a&gt;).&lt;/li&gt;

&lt;li&gt;
&lt;a href="http://www.generation5.org/content/2000/astar.asp" lang="en"&gt;A*
for the Masses&lt;/a&gt; (en &lt;a href="http://www.generation5.org/" lang="en"&gt;generation5.org&lt;/a&gt;).&lt;/li&gt;
&lt;/ul&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5454882-113171459319411469?l=programacionlogica.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://programacionlogica.blogspot.com/feeds/113171459319411469/comments/default' title='Enviar comentarios'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=5454882&amp;postID=113171459319411469&amp;isPopup=true' title='1 comentarios'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5454882/posts/default/113171459319411469'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5454882/posts/default/113171459319411469'/><link rel='alternate' type='text/html' href='http://programacionlogica.blogspot.com/2005/11/t-mnemot-y-acertijos-de-ingenio.html' title='T&amp;eacute;cnicas mnemot&amp;eacute;cnicas y acertijos de ingenio'/><author><name>etxe</name><uri>http://www.blogger.com/profile/10987668917577281087</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5454882.post-112185542955986340</id><published>2005-07-20T12:29:00.000+02:00</published><updated>2005-07-20T12:42:10.163+02:00</updated><title type='text'>Selección de enlaces</title><content type='html'>&lt;p&gt;Siguiendo con la pr&amp;aacute;ctica introducida meses atr&amp;aacute;s en este
sitio, a continuaci&amp;oacute;n rese&amp;ntilde;o una serie art&amp;iacute;culos,
anotaciones, y enlaces diversos, recopilados en las &amp;uacute;ltimas semanas
(los entrecomillados son citas textuales tomadas de los sitios referenciados):&lt;/p&gt;

&lt;h3&gt;Art&amp;iacute;culos, introducciones, anotaciones de "blogs":&lt;/h3&gt;

&lt;ul class="conmargeninf"&gt;
&lt;li&gt;
&lt;a href="http://www.logicandlanguage.net/archives/2005/04/searching_for_l_1.html" lang="en"&gt;Searching
for Logic&lt;/a&gt; (en &lt;a href="http://www.logicandlanguage.net/" lang="en"&gt;Logic
and Language&lt;/a&gt;). Esta anotaci&amp;oacute;n versa sobre la aplicaci&amp;oacute;n
de las leyes de la l&amp;oacute;gica al &amp;aacute;mbito de las b&amp;uacute;squedas
en los cat&amp;aacute;logos de bibliotecas.&lt;/li&gt;

&lt;li&gt;
&lt;a href="http://www.emis.de/journals/DM/v62/art8.pdf"&gt;Algunas Experiencias
en la Utilizaci&amp;oacute;n de Sistemas de EAC para la Ense&amp;ntilde;anza de
la Inteligencia Artificial&lt;/a&gt; (&lt;acronym title="Portable Document Format" lang="en"&gt;PDF&lt;/acronym&gt;;
M. Lezcano, V. Giraldo Vald&amp;eacute;s; en &lt;em&gt;&lt;a href="http://www.emis.de/journals/DM/"&gt;Divulgaciones
Matem&amp;aacute;ticas&lt;/a&gt;&lt;/em&gt;, &lt;a href="http://www.emis.de/journals/DM/vol6-2.htm"&gt;vol.
6 n&amp;ordm;. 2&lt;/a&gt;, 1998). EAC = Ense&amp;ntilde;anza Asistida por Computadora
(en ingl&amp;eacute;s CAI, &lt;em&gt;Computer Aided Instruction&lt;/em&gt;, o bien &lt;em&gt;Computer-assisted Instruction&lt;/em&gt;).&lt;/li&gt;

&lt;li&gt;
&lt;a href="http://developers.slashdot.org/article.pl?sid=05/04/28/1936206&amp;tid=156&amp;tid=6" lang="en"&gt;Practical
Common Lisp&lt;/a&gt; (acerca del &lt;a href="http://www.gigamonkeys.com/book/" lang="en"&gt;libro
de Peter Seibel&lt;/a&gt;; en &lt;a href="http://slashdot.org/" lang="en"&gt;Slashdot&lt;/a&gt;).&lt;/li&gt;

&lt;li&gt;
&lt;a href="http://www.archivodenessus.com/articulos/018/"&gt;Ling&amp;uuml;&amp;iacute;stica
y ciencia ficci&amp;oacute;n&lt;/a&gt; (por Xavier Riesco Riquelme, en &lt;a href="http://www.archivodenessus.com/"&gt;El
archivo de Nessus&lt;/a&gt;). "El &amp;uacute;nico g&amp;eacute;nero literario que se
ha ocupado de la ling&amp;uuml;&amp;iacute;stica como tal de forma constante, al
menos en los &amp;uacute;ltimos a&amp;ntilde;os, es que se sepa, el conocido como
ciencia ficci&amp;oacute;n. No s&amp;oacute;lo desde el punto de vista tem&amp;aacute;tico
de una novela, sino tambi&amp;eacute;n desde el punto de vista de la cr&amp;iacute;tica
literaria y el ensayo. Normalmente muchos libros del g&amp;eacute;nero contienen
elementos ling&amp;uuml;&amp;iacute;sticos como subsidiarios a la idea central. [...]".&lt;/li&gt;

&lt;li&gt;
&lt;a href="http://www.javaworld.com/javaworld/jw-06-2003/jw-0620-protege.html" lang="en"&gt;An &lt;acronym title="Artificial Intelligence" lang="en"&gt;AI&lt;/acronym&gt;
tool for the real world - Knowledge modeling with Prot&amp;eacute;g&amp;eacute;&lt;/a&gt;
(H. Knublauch; en &lt;a href="http://www.javaworld.com/" lang="en"&gt;JavaWorld&lt;/a&gt;,
junio 2003): "While artificial intelligence (AI) is often regarded as an
exotic academic playground, its tools and techniques have matured to contribute
to real-world software technology as well. This article introduces &lt;a href="http://protege.stanford.edu/" lang="en"&gt;Prot&amp;eacute;g&amp;eacute;&lt;/a&gt;,
arguably the most successful open source knowledge-modeling platform. Using
Prot&amp;eacute;g&amp;eacute;, developers and domain experts can build conceptual
models and knowledge bases and access them via an easy-to-use Java &lt;acronym title="Application Programming Interface" lang="en"&gt;API&lt;/acronym&gt;.
The resulting models can implement decision-support systems, capture software
requirements, populate databases, generate Java classes and &lt;acronym title="Unified Modeling Language" lang="en"&gt;UML&lt;/acronym&gt; diagrams, share and reuse domain models, and access the Semantic Web.".&lt;/li&gt;

&lt;li&gt;
&lt;a href="http://www.geocities.com/ateologia2001/falacias1.html"&gt;Falacias
y errores de l&amp;oacute;gica&lt;/a&gt;. "[...] Hay una cierta cantidad de errores
que uno debe evitar al construir argumentos deductivos. Algunos son errores
formales de l&amp;oacute;gica [...] otros representan errores de concepto o
actitudes inaceptables. Se conocen como falacias; de un argumento que resulta
invalidado por una falacia se dice que es "falaz". [...]".&lt;/li&gt;

&lt;li&gt;
&lt;a href="http://www.programacion.com/java/tutorial/jap_data_alg/"&gt;Estructuras
de Datos y Algoritmos en Java&lt;/a&gt; (J. Friesen, traducido por J. A. Palos;
en &lt;em&gt;&lt;a href="http://www.programacion.com/java/"&gt;Java en castellano&lt;/a&gt;&lt;/em&gt;).&lt;/li&gt;

&lt;li&gt;
&lt;a href="http://vidaartificial.com/?q=node/99"&gt;Una introducci&amp;oacute;n
a los Sistemas Expertos&lt;/a&gt; (en &lt;a href="http://vidaartificial.com/"&gt;Vida
Artificial&lt;/a&gt;). Este art&amp;iacute;culo incluye una descripci&amp;oacute;n de
&lt;a href="http://homepage.ntlworld.com/peterhi/sie.html" lang="en"&gt;SIE&lt;/a&gt;
(Simple Inference Engine), motor de inferencia que permite desarrollar
peque&amp;ntilde;os sistemas expertos, utilizando el lenguaje &lt;acronym title="Extensible Markup Language" lang="en"&gt;XML&lt;/acronym&gt; para almacenar la base de conocimientos.&lt;/li&gt;

&lt;li&gt;
&lt;a href="http://www.cs.nyu.edu/pipermail/fom/2005-May/008956.html" lang="en"&gt;Primer
on vagueness&lt;/a&gt; (&lt;a href="http://www.st-andrews.ac.uk/academic/philosophy/STAFF/shapiro.html" lang="en"&gt;S.
Shapiro&lt;/a&gt;; v&amp;iacute;a &lt;a href="http://www.ucalgary.ca/~rzach/logblog/2005/05/primer-on-vagueness.html" lang="en"&gt;LogBlog&lt;/a&gt;): "[...] primer on the philosophical and logical issues 
concerning vagueness. [...]".&lt;/li&gt;

&lt;li&gt;
Entrop&amp;iacute;a y cantidad de informaci&amp;oacute;n: [&lt;a href="http://blogia.com/tiopetrus/index.php?idarticulo=200506131"&gt;1&lt;/a&gt;]
[&lt;a href="http://blogia.com/tiopetrus/index.php?idarticulo=200506141"&gt;2&lt;/a&gt;]
[&lt;a href="http://blogia.com/tiopetrus/index.php?idarticulo=200506151"&gt;3&lt;/a&gt;]
[&lt;a href="http://blogia.com/tiopetrus/index.php?idarticulo=200506161"&gt;4&lt;/a&gt;]
("[...] Nuestro prop&amp;oacute;sito es definir dos conceptos relativos a las
variables aleatorias: cantidad de informaci&amp;oacute;n y entrop&amp;iacute;a.
[...]"; en &lt;a href="http://www.blogia.com/tiopetrus/"&gt;Tio Petros&lt;/a&gt;).&lt;/li&gt;
&lt;/ul&gt;

&lt;h3&gt;P&amp;aacute;ginas y sitios &lt;em&gt;web&lt;/em&gt;:&lt;/h3&gt;

&lt;ul class="conmargeninf"&gt;
&lt;li&gt;
&lt;a href="http://blogic.phpwebhosting.com/" lang="en"&gt;blogic, an interactive
introduction to logic&lt;/a&gt; (J. David Velleman). "[...] &lt;a href="http://blogic.phpwebhosting.com/Logic/" lang="en"&gt;blogic&lt;/a&gt;
is an interactive web-based textbook in introductory logic. The textbook
includes interactive exercises that automatically correct the student's work. [...]".&lt;/li&gt;

&lt;li&gt;
&lt;a href="http://www.semanticweb.gr/TheaOWLParser/" lang="en"&gt;Thea: A Web
Ontology Language - OWL Parser for [SWI] Prolog&lt;/a&gt;: "Thea is a Prolog
implementation of an OWL parser. [...] uses SWI-Prolog?s Semantic Web library
for parsing RDF/XML serialisations of OWL documents into RDF triples and
then it builds a representation of the OWL ontology as it is defined in
the OWL Web Ontology Language Semantics and Abstract Syntax part of the
OWL specification. The OWL ontology abstract syntax is implemented as Prolog terms."&lt;/li&gt;

&lt;li&gt;
&lt;a href="http://www.acm.org/pubs/tocl/" lang="en"&gt;&lt;acronym title="Association for Computing Machinery" lang="en"&gt;ACM&lt;/acronym&gt;
Transactions on Computational Logic&lt;/a&gt; (TOCL). El texto completo de los
art&amp;iacute;culos publicados en los vol&amp;uacute;menes aparecidos hasta el
momento (1, 2, 3, 4, 5, y 6; a&amp;ntilde;os 2000-2005), pueden localizarse,
en formato &lt;a href="http://www.cs.wisc.edu/~ghost/" lang="en"&gt;PostScript&lt;/a&gt;,
en el apartado &lt;a href="http://www.acm.org/pubs/tocl/accepted.html" lang="en"&gt;Accepted Papers&lt;/a&gt;.&lt;/li&gt;

&lt;li&gt;
&lt;a href="http://home.andrej.com/math/" lang="en"&gt;Mathematics and Computation&lt;/a&gt;. Como expresa el t&amp;iacute;tulo, una bit&amp;aacute;cora en ingl&amp;eacute;s dedicada a esos temas.&lt;/li&gt;

&lt;li&gt;
&lt;a href="http://www.phil.cam.ac.uk/teaching_staff/Smith/LaTeX/" lang="en"&gt;LaTeX
for Logicians&lt;/a&gt; ("A guide to resources of interest to logicians, philosophers
and others using LaTeX to produce papers or presentations, teaching materials,
theses or books, and in particular wanting to include logical matter such
as natural deduction proofs.").&lt;/li&gt;

&lt;li&gt;
&lt;a href="http://www.mindswap.org/" lang="en"&gt;Mindswap&lt;/a&gt; ("The Semantic
Web Research Group is a group of people working with Semantic Web technology
inside the MIND LAB at University of Maryland Institute for Advanced Computer Studies").&lt;/li&gt;

&lt;li&gt;
&lt;a href="http://consequently.org/" lang="en"&gt;consequently.org&lt;/a&gt; (Sitio
personal de Greg Restall, Departamento de Filosof&amp;iacute;a, Universidad de Melbourne).&lt;/li&gt;

&lt;li&gt;
&lt;a href="http://www.computationaltruth.net/blog/" lang="en"&gt;Computational
Truth&lt;/a&gt; ("[...] &lt;a href="http://www.computationaltruth.net/homepage.html" lang="en"&gt;Peter
Gerdes&lt;/a&gt;'s blog about philosophy and the occasional bit of mathematical logic. [...]").&lt;/li&gt;
&lt;/ul&gt;

&lt;h3&gt;Conferencias, congresos:&lt;/h3&gt;

&lt;ul class="conmargeninf"&gt;
&lt;li&gt;
&lt;a href="http://personal.lse.ac.uk/willia11/progic2005/" lang="en"&gt;Progic
2005&lt;/a&gt; ("Second workshop on Combining Probability and Logic: Special
focus on Objective Bayesianism"; Centre for Philosophy of Natural and Social
Science, London School of Economics, 6-8 julio 2005).&lt;/li&gt;

&lt;li&gt;
&lt;a href="http://lcsd05.cs.tamu.edu/" lang="en"&gt;Library-Centric Software
Design LCSD'05&lt;/a&gt; (Taller de trabajo que se celebrar&amp;aacute; en el marco
de la conferencia &lt;em&gt;Object-Oriented Programming, Systems, Languages and Applications&lt;/em&gt;
&lt;a href="http://oopsla.org/" lang="en"&gt;OOPSLA'05&lt;/a&gt;, San Diego, California,
16-20 de octubre 2005): "Libraries are central to all major scientific,
engineering, and business areas, yet the design, implementation, and use
of libraries are underdeveloped arts. This workshop is one of the first
steps in the process of placing all aspects of libraries on a sound technical
and scientific basis through research into fundamental issues and documentation
of best practices. [...]"&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;A prop&amp;oacute;sito de uno de los sitios referenciados (&lt;a href="http://home.andrej.com/math/" lang="en"&gt;Mathematics
and Computation&lt;/a&gt;), quiero hacer notar el sencillo sistema implementado
en &amp;eacute;l para dotar a los textos de contenido y simbolog&amp;iacute;a matem&amp;aacute;tica,
haciendo para ello uso de un &lt;em&gt;script&lt;/em&gt; de JavaScript denominado &lt;a href="http://www1.chapman.edu/~jipsen/mathml/asciimath.html" lang="en"&gt;ASCIIMathML&lt;/a&gt;,
del que hablar&amp;eacute; m&amp;aacute;s adelante.&lt;/p&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5454882-112185542955986340?l=programacionlogica.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://programacionlogica.blogspot.com/feeds/112185542955986340/comments/default' title='Enviar comentarios'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=5454882&amp;postID=112185542955986340&amp;isPopup=true' title='0 comentarios'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5454882/posts/default/112185542955986340'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5454882/posts/default/112185542955986340'/><link rel='alternate' type='text/html' href='http://programacionlogica.blogspot.com/2005/07/selecci-de-enlaces.html' title='Selecci&amp;oacute;n de enlaces'/><author><name>etxe</name><uri>http://www.blogger.com/profile/10987668917577281087</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5454882.post-111547003501606296</id><published>2005-05-07T14:46:00.000+02:00</published><updated>2005-05-09T11:05:29.676+02:00</updated><title type='text'>Representación del conocimiento en la Web Semántica</title><content type='html'>&lt;p&gt;Dentro de la enorme bibliograf&amp;iacute;a publicada sobre la &lt;em&gt;Web Sem&amp;aacute;ntica&lt;/em&gt;
[&lt;a href="http://www.w3.org/2001/sw/" lang="en"&gt;1&lt;/a&gt;] [&lt;a href="http://www.wshoy.sidar.org/"&gt;2&lt;/a&gt;]
[&lt;a href="http://www.semanticweb.gr/" lang="en"&gt;3&lt;/a&gt;] [&lt;a href="http://www.semanticplanet.com/" lang="en"&gt;4&lt;/a&gt;]
[&lt;a href="http://f14web.com.ar/inkel/"&gt;5&lt;/a&gt;], voy a recomendar en esta
ocasi&amp;oacute;n la lectura de dos art&amp;iacute;culos:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;em&gt;&lt;a href="http://www.sciam.com/linktous.cfm?articleID=00048144-10D2-1C70-84A9809EC588EF21" lang="en"&gt;The
Semantic Web&lt;/a&gt;&lt;/em&gt; (&lt;a href="http://www.w3.org/People/Berners-Lee/" lang="en"&gt;T.
Berners-Lee&lt;/a&gt;, J. Hendler, &lt;a href="http://www.lassila.org/blog/" lang="en"&gt;O.
Lassila&lt;/a&gt;; en &lt;em&gt;&lt;a href="http://www.sciam.com/" lang="en"&gt;Scientific
American&lt;/a&gt;&lt;/em&gt;, 2001).&lt;/li&gt;
&lt;li&gt;
&lt;em&gt;&lt;a href="http://www.ksl.stanford.edu/KSL_Abstracts/KSL-01-02.html" lang="en"&gt;The
Role of Frame-Based Representation on the Semantic Web&lt;/a&gt;&lt;/em&gt; (O. Lassila, D. McGuinness; 2001).&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;El primero es un texto de car&amp;aacute;cter introductorio y divulgativo,
muy difundido y citado, perfecto para obtener una visi&amp;oacute;n general
sobre la cuesti&amp;oacute;n, del que me gustar&amp;iacute;a destacar especialmente
el apartado "Knowledge Representation" por estar muy relacionado con tema
tratado en el segundo texto.&lt;/p&gt;

&lt;p&gt;En "The Role of..." los autores proponen el esquema de representaci&amp;oacute;n
del conocimiento (&lt;acronym title="Knowledge Representation" lang="en"&gt;KR&lt;/acronym&gt;)
basado en marcos (&lt;em&gt;frame-based representation&lt;/em&gt;) como un paradigma
para la construcci&amp;oacute;n de ontolog&amp;iacute;as -necesarias en su opini&amp;oacute;n
para la construcci&amp;oacute;n de la &lt;em&gt;web sem&amp;aacute;ntica&lt;/em&gt;-, y para
la conceptualizaci&amp;oacute;n del lenguaje formal &lt;a href="http://www.w3.org/RDF/" lang="en"&gt;&lt;acronym title="Resource Description Framework" lang="en"&gt;RDF&lt;/acronym&gt;&lt;/a&gt;
[&lt;a href="http://www.w3.org/RDF/" lang="en"&gt;1&lt;/a&gt;] [&lt;a href="http://www.bib.uc3m.es/~mendez/publicaciones/7jc99/rdf.htm"&gt;2&lt;/a&gt;]
[&lt;a href="http://www.xml.com/pub/a/2001/01/24/rdf.html" lang="en"&gt;3&lt;/a&gt;]
[&lt;a href="http://www.dlib.org/dlib/may98/miller/05miller.html" lang="en"&gt;4&lt;/a&gt;]
[&lt;a href="http://www.ilrt.bris.ac.uk/discovery/rdf/resources/" lang="en"&gt;5&lt;/a&gt;],
propuesto a tal fin como esquema b&amp;aacute;sico por el &lt;a href="http://www.w3.org/" lang="en"&gt;&lt;acronym title="World Wide Web" lang="en"&gt;WWW&lt;/acronym&gt;
Consortium&lt;/a&gt; como expresi&amp;oacute;n de la representaci&amp;oacute;n basada
en marcos de la propia &lt;acronym title="World Wide Web" lang="en"&gt;WWW&lt;/acronym&gt;.&lt;/p&gt;

&lt;p&gt;La representaci&amp;oacute;n basada en marcos es un tipo de &lt;a href="http://elies.rediris.es/elies9/4-3.htm"&gt;representaci&amp;oacute;n
formal del conocimiento&lt;/a&gt;, derivada del esquema general de las &lt;a href="http://elies.rediris.es/elies9/4-3-2.htm"&gt;redes
sem&amp;aacute;nticas&lt;/a&gt; (ver concretamente el apartado "&lt;a href="http://elies.rediris.es/elies9/4-3-2.htm#4.3.2.3"&gt;4.3.2.3
Esquemas de marcos&lt;/a&gt;" dentro del texto enlazado). Por otra parte, las
redes sem&amp;aacute;nticas son un mecanismo de representaci&amp;oacute;n muy empleado
en el &amp;aacute;mbito de la Inteligencia Artificial (IA). En esta &lt;em&gt;&lt;a href="http://www.ia.uned.es/~seve/docencia/intro-ia/libros/materia.html"&gt;Introducci&amp;oacute;n
a la Inteligencia Artificial&lt;/a&gt;&lt;/em&gt; se ofrece, adem&amp;aacute;s de una perspectiva
hist&amp;oacute;rica general de la &lt;acronym title="Inteligencia Artificial"&gt;IA&lt;/acronym&gt;,
una buena aproximaci&amp;oacute;n te&amp;oacute;rica a los modelos formales de
representaci&amp;oacute;n del conocimiento y sus dominios de aplicaci&amp;oacute;n:
ver en particular los apartados &lt;em&gt;&lt;a href="http://www.ia.uned.es/~seve/docencia/intro-ia/libros/materia.html#etapa2"&gt;Modelos
simb&amp;oacute;licos simples de prop&amp;oacute;sito general&lt;/a&gt;&lt;/em&gt;, &lt;em&gt;&lt;a href="http://www.ia.uned.es/~seve/docencia/intro-ia/libros/materia.html#etapa3"&gt;El
conocimiento del dominio y su parcelaci&amp;oacute;n&lt;/a&gt;&lt;/em&gt;, y &lt;em&gt;&lt;a href="http://www.ia.uned.es/~seve/docencia/intro-ia/libros/materia.html#etapa4"&gt;Aspectos
metodol&amp;oacute;gicos y distribuci&amp;oacute;n del conocimiento&lt;/a&gt;&lt;/em&gt;. El
esquema de representaci&amp;oacute;n del conocimiento basado en marcos fue
propuesto inicialmente por el profesor del &lt;acronym title="Massachusetts Institute of Technology" lang="en"&gt;MIT&lt;/acronym&gt;
&lt;a href="http://web.media.mit.edu/~minsky/" lang="en"&gt;Marvin Minsky&lt;/a&gt; -pionero de la &lt;acronym title="Inteligencia Artificial"&gt;IA&lt;/acronym&gt;,
de las ciencias &lt;em&gt;neuro-cognitivas&lt;/em&gt;, y de la ling&amp;uuml;&amp;iacute;stica
computacional, entre otras disciplinas- en su ensayo &lt;em&gt;&lt;a href="http://web.media.mit.edu/~minsky/papers/Frames/frames.html" lang="en"&gt;A
Framework for Representing Knowledge&lt;/a&gt;&lt;/em&gt; (1974).&lt;/p&gt;

&lt;p&gt;En todo caso, y a modo ilustrativo de la dificultad que entra&amp;ntilde;a
la pr&amp;aacute;ctica de la representaci&amp;oacute;n del conocimiento y la recuperaci&amp;oacute;n
de informaci&amp;oacute;n -metadatos [&lt;a href="http://www.dcc.uchile.cl/~cvasquez/meta/lenguajes.html"&gt;1&lt;/a&gt;]
[&lt;a href="http://www.noisebetweenstations.com/personal/essays/metadata_glossary/metadata_glossary.html" lang="en"&gt;2&lt;/a&gt;]
para ser exactos- en el entorno de la
&lt;em&gt;web&lt;/em&gt; sem&amp;aacute;ntica, nada
mejor que leer al respecto el art&amp;iacute;culo de Pedro Manuel D&amp;iacute;az
Ortu&amp;ntilde;o
&lt;em&gt;&lt;a href="http://www.um.es/fccd/anales/ad06/ad0603.pdf"&gt;Problem&amp;aacute;tica
y tendencias en la arquitectura de metadatos web&lt;/a&gt;&lt;/em&gt; (&lt;acronym title="Portable Document Format" lang="en"&gt;PDF&lt;/acronym&gt;;
en
&lt;em&gt;&lt;a href="http://www.um.es/fccd/anales/"&gt;Anales de Documentaci&amp;oacute;n&lt;/a&gt;&lt;/em&gt;,
n&amp;ordm; 6, 2003, p&amp;aacute;gs. 35-58).&lt;/p&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5454882-111547003501606296?l=programacionlogica.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://programacionlogica.blogspot.com/feeds/111547003501606296/comments/default' title='Enviar comentarios'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=5454882&amp;postID=111547003501606296&amp;isPopup=true' title='0 comentarios'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5454882/posts/default/111547003501606296'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5454882/posts/default/111547003501606296'/><link rel='alternate' type='text/html' href='http://programacionlogica.blogspot.com/2005/05/representaci-del-conocimiento-en-la-web.html' title='Representaci&amp;oacute;n del conocimiento en la &lt;em&gt;Web&lt;/em&gt; Sem&amp;aacute;ntica'/><author><name>etxe</name><uri>http://www.blogger.com/profile/10987668917577281087</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5454882.post-111382286763189016</id><published>2005-04-18T13:13:00.000+02:00</published><updated>2005-04-19T10:39:13.640+02:00</updated><title type='text'>Vida Artificial: bitácora</title><content type='html'>&lt;p&gt;A trav&amp;eacute;s de los referidos (&lt;em&gt;referred&lt;/em&gt;) de las estad&amp;iacute;sticas,
he recalado en la bit&amp;aacute;cora &lt;a href="http://vidaartificial.com/"&gt;Vida
Artificial&lt;/a&gt; ("Inteligencia Artificial, Software Libre y algo de todo
lo dem&amp;aacute;s"). En ella, entre otras interesantes anotaciones y comentarios,
encontramos &lt;a href="http://vidaartificial.com/?q=taxonomy/term/22"&gt;un
apartado&lt;/a&gt; dedicado a "colgar" traducciones al castellano de art&amp;iacute;culos
publicados originalmente &lt;a href="http://www.generation5.org/articles.asp" lang="en"&gt;en
Generation5&lt;/a&gt; (portal dedicado a la Inteligencia Artificial y sus m&amp;uacute;ltiples perspectivas), ocasi&amp;oacute;n magn&amp;iacute;fica para acceder a su contenido
por parte de aquellos que no dominen excesivamente (o nada) el idioma ingl&amp;eacute;s,
dada la buena calidad que en general suelen tener, y su orientaci&amp;oacute;n
eminentemente pr&amp;aacute;ctica, aunque bien es cierto que salvo &lt;a href="http://www.generation5.org/articles.asp?Action=BySub&amp;Subcategory=Beginner" lang="en"&gt;los
de car&amp;aacute;cter introductorio&lt;/a&gt;, generalmente est&amp;aacute;n pensados
para ser le&amp;iacute;dos por personas con conocimientos previos sobre el
tema tratado en particular. Sobre el lenguaje &lt;a href="http://www.generation5.org/articles.asp?Action=List&amp;Topic=Programming" lang="en"&gt;Prolog&lt;/a&gt;
y el &lt;a href="http://www.generation5.org/articles.asp?Action=List&amp;Topic=Natural+Language+Processing" lang="en"&gt;Procesamiento
del Lenguaje Natural&lt;/a&gt; (&lt;acronym title="Natural Language Processing" lang="en"&gt;NLP&lt;/acronym&gt;)
-debilidades particulares, entre otras, de quien suscribe-, hay unos cuantos en &lt;a href="http://www.generation5.org/" lang="en"&gt;Generation5&lt;/a&gt;,
muy recomendables para quien desee introducirse en el conocimiento de estas cuestiones.&lt;/p&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5454882-111382286763189016?l=programacionlogica.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://programacionlogica.blogspot.com/feeds/111382286763189016/comments/default' title='Enviar comentarios'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=5454882&amp;postID=111382286763189016&amp;isPopup=true' title='0 comentarios'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5454882/posts/default/111382286763189016'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5454882/posts/default/111382286763189016'/><link rel='alternate' type='text/html' href='http://programacionlogica.blogspot.com/2005/04/vida-artificial-bit.html' title='Vida Artificial: bit&amp;aacute;cora'/><author><name>etxe</name><uri>http://www.blogger.com/profile/10987668917577281087</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5454882.post-111373783807391568</id><published>2005-04-17T13:36:00.000+02:00</published><updated>2005-04-17T17:16:29.176+02:00</updated><title type='text'>Glosario sobre Lógica de Primer Orden</title><content type='html'>&lt;p&gt;Un recurso m&amp;aacute;s que recomendable, &lt;a href="http://www.earlham.edu/~peters/courses/logsys/glossary.htm" lang="en"&gt;Glossary
of First-Order Logic&lt;/a&gt;:&lt;/p&gt;

&lt;blockquote&gt;
"This glossary is limited to basic set theory, basic recursive
function theory, two branches of logic (truth-functional propositional
logic and first-order predicate logic) and their metatheory."&lt;/blockquote&gt;

&lt;p&gt;El autor de este glosario terminol&amp;oacute;gico, &lt;a href="http://www.earlham.edu/~peters/hometoc.htm" lang="en"&gt;Peter
Suber&lt;/a&gt;, imparte en el &lt;a href="http://www.earlham.edu/~phil/" lang="en"&gt;Departamento
de Filosof&amp;iacute;a&lt;/a&gt; del &lt;a href="http://www.earlham.edu" lang="en"&gt;Earlham
College&lt;/a&gt; (&lt;acronym title="Estados Unidos de Am&amp;eacute;rica"&gt;EUA&lt;/acronym&gt;)
el curso &lt;a href="http://www.earlham.edu/~peters/courses/logsys/lshome.htm"&gt;Logical
Systems&lt;/a&gt; (sobre sistemas l&amp;oacute;gicos formales, l&amp;oacute;gica de primer
orden est&amp;aacute;ndar, y Teor&amp;iacute;a de la Computaci&amp;oacute;n, principalmente),
desde cuya p&amp;aacute;gina se puede acceder, bajo el ep&amp;iacute;grafe "Hand-outs",
a un buen n&amp;uacute;mero de textos en relaci&amp;oacute;n con los temas tratados
en la asignatura. Los "hand outs" son materiales de trabajo (cuadernillos
con textos o ejercicios), generalmente de car&amp;aacute;cter esquem&amp;aacute;tico
aunque no necesariamente, que se entregan a los participantes de un curso.&lt;/p&gt;

&lt;p&gt;Al margen del mencionado curso, P. Suber desarrolla tambi&amp;eacute;n una
notable actividad en torno al &lt;a href="http://www.soros.org/openaccess/" lang="en"&gt;Movimiento
de Libre Acceso&lt;/a&gt; (&lt;em&gt;Open Access Movement&lt;/em&gt;, ver su &lt;a href="http://www.earlham.edu/~peters/hometoc.htm" lang="en"&gt;p&amp;aacute;gina
personal&lt;/a&gt;, y por destacar algo al respecto, por ejemplo su &lt;a href="http://www.earlham.edu/~peters/fos/fosblog.html" lang="en"&gt;bit&amp;aacute;cora
monogr&amp;aacute;fica&lt;/a&gt; sobre el particular, as&amp;iacute; como la &lt;a href="http://www.earlham.edu/~peters/fos/guide.htm" lang="en"&gt;Guide
to the Open Access Movement&lt;/a&gt;, entre otros). Tambi&amp;eacute;n mantiene
un extenso directorio de enlaces sobre Filosof&amp;iacute;a en la &lt;em&gt;web&lt;/em&gt;:
&lt;a href="http://www.earlham.edu/~peters/philinks.htm" lang="en"&gt;Guide to
Philosophy on the Internet&lt;/a&gt;.&lt;/p&gt;

&lt;p&gt;Y ya que estamos metidos en l&amp;oacute;gica y filosof&amp;iacute;a, recomendar
la lectura del siguiente ensayo: &lt;em&gt;&lt;a href="http://www.crumpled.com/cp/personal/ccip.html" lang="en"&gt;Philosophical
Logic and Computational Constraints&lt;/a&gt;&lt;/em&gt; (2002), de John L. Taylor,
autor as&amp;iacute; mismo de una interesante bit&amp;aacute;cora, &lt;a href="http://crumpled.com/cp/personal/" lang="en"&gt;Johnny
Logic&lt;/a&gt;. No es muy extenso y la lectura es bastante asequible, proporcionando
una visi&amp;oacute;n general sobre el tema enunciado en el t&amp;iacute;tulo. A trav&amp;eacute;s de su bit&amp;aacute;cora he podido de paso conocer
alguna otra, sobre temas relacionados con la L&amp;oacute;gica y la Filosof&amp;iacute;a
de la L&amp;oacute;gica, como por ejemplo &lt;a href="http://www.ucalgary.ca/~rzach/logblog/" lang="en"&gt;LogBlog&lt;/a&gt;,
mantenida por &lt;a href="http://www.ucalgary.ca/~rzach/" lang="en"&gt;Richard
Zach&lt;/a&gt; (profesor de Filosof&amp;iacute;a en la &lt;a href="http://www.ucalgary.ca/" lang="en"&gt;Universidad
de Calgary&lt;/a&gt;, Canad&amp;aacute;). A su vez, la secci&amp;oacute;n de enlaces
(&lt;em&gt;Blogroll&lt;/em&gt;) de esta &amp;uacute;ltima nos ofrece la posibilidad de conocer
otras tem&amp;aacute;ticamente relacionadas: &lt;a href="http://thatlogicblog.blogspot.com/" lang="en"&gt;That
Logic Blog&lt;/a&gt;, &lt;a href="http://www.openefp.com/frontiers/" lang="en"&gt;Epistemic
Frontiers Project&lt;/a&gt;, &lt;a href="http://www.logicandlanguage.net/" lang="en"&gt;Logic
and Language&lt;/a&gt;, etc.&lt;/p&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5454882-111373783807391568?l=programacionlogica.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://programacionlogica.blogspot.com/feeds/111373783807391568/comments/default' title='Enviar comentarios'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=5454882&amp;postID=111373783807391568&amp;isPopup=true' title='0 comentarios'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5454882/posts/default/111373783807391568'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5454882/posts/default/111373783807391568'/><link rel='alternate' type='text/html' href='http://programacionlogica.blogspot.com/2005/04/glosario-sobre-l-de-primer-orden.html' title='Glosario sobre L&amp;oacute;gica de Primer Orden'/><author><name>etxe</name><uri>http://www.blogger.com/profile/10987668917577281087</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5454882.post-111223209416134715</id><published>2005-03-31T03:19:00.000+02:00</published><updated>2005-04-01T03:10:44.500+02:00</updated><title type='text'>Lógica estoica</title><content type='html'>&lt;p&gt;En la anterior anotaci&amp;oacute;n, cit&amp;aacute;bamos el art&amp;iacute;culo &lt;em&gt;&lt;a href="http://www.maa.org/devlin/devlin_june.html" lang="en"&gt;Laws
of Thought&lt;/a&gt;&lt;/em&gt;, publicado por Keith Devlin en su columna mensual &lt;a href="http://www.maa.org/news/devangle.html" lang="en"&gt;Devlin's
Angle&lt;/a&gt;. Bien, simplemente mencionar que en &amp;eacute;l, el autor realiza un repaso a las principales
caracter&amp;iacute;sticas de la l&amp;oacute;gica estoica (surgida en el seno de
la &lt;a href="http://www.luventicus.org/articulos/03U014/estoica.html"&gt;escuela
filos&amp;oacute;fica de los estoicos&lt;/a&gt;, circa 300 a.C.), que supuso el punto
de arranque verdadero, junto con las aportaciones al respecto de la l&amp;oacute;gica
aristot&amp;eacute;lica (a la que se debe sin embargo la sistematizaci&amp;oacute;n
de la disciplina), de los fundamentos contempor&amp;aacute;neos de la &lt;a href="http://www.educajob.com/xmoned/temarios_elaborados/filosofia/De%20la%20l%F3gica%20cl%E1sica%20a%20la%20l%F3gica%20simb%F3lica.htm"&gt;l&amp;oacute;gica&lt;/a&gt;
matem&amp;aacute;tica en general, y proposicional en particular:&lt;/p&gt;

&lt;blockquote&gt;
"[Los Estoicos] Realizan una ampliaci&amp;oacute;n de la silog&amp;iacute;stica
aristot&amp;eacute;lica mediante cinco formas de inferencia hipot&amp;eacute;ticas
o tambi&amp;eacute;n disyuntivas, a partir de las cuales se tiene que poder
obtener cualquier conclusi&amp;oacute;n v&amp;aacute;lida. Mientras que la l&amp;oacute;gica
aristot&amp;eacute;lica era una l&amp;oacute;gica de t&amp;eacute;rminos, la l&amp;oacute;gica
estoica es una l&amp;oacute;gica proposicional."
&lt;div class="cita"&gt;[Fuente: &lt;a href="http://centros4.cnice.mecd.es/~norbacae/webcarrapiso/#TEMA6"&gt;6.3. Estoicismo&lt;/a&gt;]&lt;/div&gt;
&lt;/blockquote&gt;

&lt;p&gt;La &lt;a href="http://logicae.usal.es/searching.php?c_phase=1&amp;id=181"&gt;l&amp;oacute;gica
proposicional&lt;/a&gt; o &lt;em&gt;l&amp;oacute;gica de enunciados&lt;/em&gt;, surge realmente
por tanto a partir de la aportaciones de los estoicos al campo de la l&amp;oacute;gica
formal (en contraposici&amp;oacute;n esta &amp;uacute;ltima a la l&amp;oacute;gica
material o &lt;em&gt;teor&amp;iacute;a del conocimiento&lt;/em&gt;), ya que cultivan una
l&amp;oacute;gica basada en &lt;em&gt;proposiciones&lt;/em&gt; (enunciados l&amp;oacute;gicos
a los que se asocian valores de verdad o falsedad) y no en &lt;em&gt;conceptos&lt;/em&gt;
(enunciados verdaderos &lt;em&gt;por si mismos&lt;/em&gt;, por ejemplo: "Todos los hombres
son mortales, S&amp;oacute;crates es un hombre"; necesarios para inferir, a
partir de ellos, la demostraci&amp;oacute;n de otros: "por lo tanto, S&amp;oacute;crates
es mortal") como en el caso de la l&amp;oacute;gica aristot&amp;eacute;lica o &lt;em&gt;silog&amp;iacute;stica&lt;/em&gt;.&lt;/p&gt;

&lt;h3&gt;Un breve repaso a las principales ramas de la l&amp;oacute;gica&lt;/h3&gt;

&lt;p&gt;Tradicionalmente se ha considerado que el origen remoto de la l&amp;oacute;gica
formal es la l&amp;oacute;gica silog&amp;iacute;stica o l&amp;oacute;gica cl&amp;aacute;sica
desarrollada por el fil&amp;oacute;sofo griego Arist&amp;oacute;teles (384-322
a.C.), si bien ya hemos dicho anteriormente que hay que considerar
en el desarrollo de la l&amp;oacute;gica proposicional la decisiva aportaci&amp;oacute;n
de los l&amp;oacute;gicos estoicos.&lt;/p&gt;

&lt;p&gt;La l&amp;oacute;gica silog&amp;iacute;stica o &lt;em&gt;aristot&amp;eacute;lica&lt;/em&gt;, en
tanto que &lt;em&gt;formalizaci&amp;oacute;n&lt;/em&gt; del sentido com&amp;uacute;n, y en base
al lenguaje natural (y por tanto no exenta de ciertas dosis de ambig&amp;uuml;edad
e imprecisi&amp;oacute;n), trata de establecer la verdad o falsedad de determinado
argumento filos&amp;oacute;fico.&lt;/p&gt;

&lt;p&gt;Abandonando el campo de la formalizaci&amp;oacute;n de los argumentos l&amp;oacute;gicos
basados en el uso del lenguaje natural, la l&amp;oacute;gica simb&amp;oacute;lica
o matem&amp;aacute;tica arranca con las aportaciones al respecto del fil&amp;oacute;sofo
alem&amp;aacute;n G.W. Leibniz (1646-1717), inspiradas a su vez en el &lt;em&gt;Ars
Magna&lt;/em&gt; de Ram&amp;oacute;n Llull (1232-1316) [&lt;a href="http://www.aaai.org/Library/Magazine/Vol19/19-02/Papers/AIMag19-02-016.pdf" lang="en"&gt;&lt;acronym title="Portable Document Format" lang="en"&gt;PDF&lt;/acronym&gt;&lt;/a&gt;],
tratando de enfocar la l&amp;oacute;gica desde la perspectiva del &amp;aacute;lgebra,
si bien no es tomada realmente en consideraci&amp;oacute;n hasta el siglo XIX,
de la mano de George Boole (1815-1864), l&amp;oacute;gico y matem&amp;aacute;tico
brit&amp;aacute;nico, y su l&amp;oacute;gica booleana en la que otorga un tratamiento
algebraico a las proposiciones de la l&amp;oacute;gica proposicional tradicional.
Los trabajos de Boole en el campo de la l&amp;oacute;gica matem&amp;aacute;tica
permitir&amp;iacute;an a Claude Shannon [&lt;a href="http://vistoyleido.blogspot.com/2005_01_01_vistoyleido_archive.html#110469079266948666"&gt;1&lt;/a&gt;]
[&lt;a href="http://programacionlogica.blogspot.com/2004_01_01_programacionlogica_archive.html#107395732842307963"&gt;2&lt;/a&gt;]
[&lt;a href="http://www.sciam.com/print_version.cfm?articleID=000745C4-9E66-1DA5-815A809EC5880000" lang="en"&gt;3&lt;/a&gt;]
desarrollar en los a&amp;ntilde;os 30 del siglo XX el esquema b&amp;aacute;sico
de "m&amp;aacute;quina l&amp;oacute;gica" digital, inicialmente sobre la base del
funcionamiento de rel&amp;eacute;s que pod&amp;iacute;an adoptar dos posiciones:
&lt;em&gt;abierto&lt;/em&gt; o &lt;em&gt;cerrado&lt;/em&gt; (l&amp;oacute;gica binaria asociada al funcionamiento
de un circuito el&amp;eacute;ctrico) [&lt;a href="http://descartes.cnice.mecd.es/taller_de_matematicas/logica_digital/Logica%20Digital_0.htm"&gt;1&lt;/a&gt;]
[&lt;a href="http://www.sindominio.net/biblioweb/telematica/conf-ernesto/"&gt;2&lt;/a&gt;].
La l&amp;oacute;gica simb&amp;oacute;lica representa los conceptos mediante s&amp;iacute;mbolos,
siendo &amp;eacute;stos interconectados a trav&amp;eacute;s de operadores.&lt;/p&gt;

&lt;p&gt;Dentro de la l&amp;oacute;gica simb&amp;oacute;lica que se desarrolla a partir
del siglo XIX hay que distinguir a su vez dos grandes ramas: la &lt;em&gt;l&amp;oacute;gica
proposicional&lt;/em&gt; por un lado, y el &lt;em&gt;c&amp;aacute;lculo de predicados&lt;/em&gt; por otro.&lt;/p&gt;

&lt;p&gt;La l&amp;oacute;gica proposicional [&lt;a href="http://www.philosophypages.com/lg/e10a.htm" lang="en"&gt;1&lt;/a&gt;]
[&lt;a href="http://wmatem.eis.uva.es/~matpag/CONTENIDOS/Conjuntos/conjuntos.htm"&gt;2&lt;/a&gt;]
se ocupa de establecer la verdad o falsedad de una o varias proposiciones,
entendiendo por &amp;eacute;stas sentencias correctamente formadas que pueden
tomar un valor verdadero o falso, siendo conectadas las proposiciones mediante operadores.&lt;/p&gt;

&lt;p&gt;Por su parte, el c&amp;aacute;lculo de predicados, tambi&amp;eacute;n denominado
&lt;em&gt;l&amp;oacute;gica de predicados&lt;/em&gt;, es una extensi&amp;oacute;n de la l&amp;oacute;gica
proposicional que toma como base de c&amp;aacute;lculo el &lt;em&gt;predicado&lt;/em&gt;,
funci&amp;oacute;n que devuelve un valor &lt;em&gt;verdadero&lt;/em&gt; o &lt;em&gt;falso&lt;/em&gt; dependiendo
de su argumento. As&amp;iacute; por ejemplo, las bases de conocimiento de los
&lt;a href="http://www.cica.es/docu/pubs/1994-06-suma.html"&gt;lenguajes de programaci&amp;oacute;n
l&amp;oacute;gica&lt;/a&gt; como Prolog, est&amp;aacute;n construidas b&amp;aacute;sicamente
a base de predicados que pueden tomar en consideraci&amp;oacute;n uno o m&amp;aacute;s
argumentos, o incluso otros predicados, para inferir resultados en los
procesos de interrogaci&amp;oacute;n. El c&amp;aacute;lculo de predicados permite
por tanto la separaci&amp;oacute;n entre un objeto y su posible atributo, y
establecer relaciones entre objetos y clases de objetos. Por otra parte,
la generalizaci&amp;oacute;n de predicados se lleva a cabo mediante el uso de variables.&lt;/p&gt;

&lt;p&gt;Un paso adelante en el desarrollo de m&amp;eacute;todos de &lt;a href="http://claudiogutierrez.com/EeI.html"&gt;representaci&amp;oacute;n
e inferencia del conocimiento&lt;/a&gt; basados en el uso de sistemas l&amp;oacute;gicos,
particularmente en el desarrollo de sistemas expertos, sobre el uso que
tradicionalmente permit&amp;iacute;an la l&amp;oacute;gica proposicional y la l&amp;oacute;gica
de predicados, es la toma en consideraci&amp;oacute;n de factores de incertidumbre,
usando a tal efecto c&amp;aacute;lculos probabil&amp;iacute;sticos tomados de la
Teor&amp;iacute;a de probabilidad cl&amp;aacute;sica, en una primera fase de evoluci&amp;oacute;n
de este tipo de sistemas.&lt;/p&gt;

&lt;p&gt;El uso de factores de incertidumbre se torna en imprescindible, en tanto
que muchas situaciones dentro de los fen&amp;oacute;menos observables en el
mundo real admiten una gama de situaciones mucho m&amp;aacute;s amplia que
la simple y tradicional dicotom&amp;iacute;a entre &lt;em&gt;verdadero&lt;/em&gt; y &lt;em&gt;falso&lt;/em&gt;.
A la uni&amp;oacute;n entre l&amp;oacute;gica e incertidumbre, se la conoce habitualmente
como l&amp;oacute;gica borrosa o &lt;em&gt;fuzzy&lt;/em&gt;, y es el punto de partida b&amp;aacute;sico
y esencial para el desarrollo de sistemas y aplicaciones de &lt;em&gt;Inteligencia
Artificial&lt;/em&gt; (IA). La aplicaci&amp;oacute;n de factores de incertidumbre
(probabilidad) en la toma de decisiones, en situaciones en las que se toma
en consideraci&amp;oacute;n informaci&amp;oacute;n &lt;em&gt;hipot&amp;eacute;tica&lt;/em&gt;, por
parte de sistemas expertos, es por tanto la puerta de entrada b&amp;aacute;sica
a la IA. Es en todo caso un punto de partida muy elemental, totalmente
superado hoy en d&amp;iacute;a por otros enfoques a la hora de abordar la cuesti&amp;oacute;n
de los sistemas inform&amp;aacute;ticos &lt;em&gt;inteligentes&lt;/em&gt;.&lt;/p&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5454882-111223209416134715?l=programacionlogica.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://programacionlogica.blogspot.com/feeds/111223209416134715/comments/default' title='Enviar comentarios'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=5454882&amp;postID=111223209416134715&amp;isPopup=true' title='0 comentarios'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5454882/posts/default/111223209416134715'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5454882/posts/default/111223209416134715'/><link rel='alternate' type='text/html' href='http://programacionlogica.blogspot.com/2005/03/l-estoica.html' title='L&amp;oacute;gica estoica'/><author><name>etxe</name><uri>http://www.blogger.com/profile/10987668917577281087</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5454882.post-111218522029637073</id><published>2005-03-30T14:19:00.000+02:00</published><updated>2005-04-21T19:43:41.800+02:00</updated><title type='text'>Selección de enlaces</title><content type='html'>&lt;p&gt;Doy salida con esta anotaci&amp;oacute;n a una serie de enlaces a art&amp;iacute;culos,
comentarios, sitios y eventos diversos, que por una u otra raz&amp;oacute;n
han merecido mi atenci&amp;oacute;n en las &amp;uacute;ltimas semanas, sin que
por supuesto estos listados sean representativos de nada en particular...&lt;/p&gt;

&lt;p&gt;Art&amp;iacute;culos, introducciones, anotaciones de "blogs":&lt;/p&gt;

&lt;ul class="conmargeninf"&gt;
&lt;li&gt;
&lt;a href="http://www.touchgraph.com/TGGoogleBrowser.html" lang="en"&gt;TouchGraph
GoogleBrowser&lt;/a&gt; ("[...] aplicaci&amp;oacute;n en Java que crea un mapa relacional
de una p&amp;aacute;gina &lt;em&gt;web&lt;/em&gt; basada en los resultados de google [...]"
&lt;a href="http://rivadulla.info/archivos/internet/touchgraph_googlebrowser.php"&gt;v&amp;iacute;a
rivadulla.info&lt;/a&gt;).&lt;/li&gt;

&lt;li&gt;
En &lt;a href="http://www.maa.org/news/devangle.html" lang="en"&gt;Devlin's Angle&lt;/a&gt;,
columna mensual de la &lt;a href="http://www.maa.org/" lang="en"&gt;Mathematical
Association of America&lt;/a&gt;: &lt;a href="http://www.maa.org/devlin/devlin_3_01.html"&gt;&lt;em&gt;Claude
Shannon&lt;/em&gt;&lt;/a&gt; (&lt;a href="http://dimmat.fundacite.arg.gov.ve/devangsp2001-03.htm"&gt;traducci&amp;oacute;n
al castellano&lt;/a&gt;; marzo 2001); &lt;a href="http://www.maa.org/devlin/devlin_june.html" lang="en"&gt;&lt;em&gt;Laws
of Thought&lt;/em&gt;&lt;/a&gt; (junio 1996).&lt;/li&gt;

&lt;li&gt;
&lt;a href="http://www.xml.com/pub/a/2001/02/14/functional.html" lang="en"&gt;Functional
Programming and XML&lt;/a&gt; (Bijan Parsia en &lt;a href="http://www.xml.com/" lang="en"&gt;XML.com&lt;/a&gt;;
tambi&amp;eacute;n existe una versi&amp;oacute;n del art&amp;iacute;culo &lt;a href="http://www.erlang-fr.org/articles/bijan_parsia_001-fr.html" lang="fr"&gt;traducida
al franc&amp;eacute;s&lt;/a&gt;). Adem&amp;aacute;s de los mencionados en el art&amp;iacute;culo,
otro ejemplo de lenguaje basado en el paradigma de programaci&amp;oacute;n
funcional es &lt;a href="http://www.informatik.uni-kiel.de/~mh/curry/" lang="en"&gt;Curry&lt;/a&gt;
("A Truly Integrated Functional Logic Language"), aunque realmente se trata
de un lenguaje que combina los dos paradigmas m&amp;aacute;s relevantes de
la programaci&amp;oacute;n declarativa, el ya mencionado &lt;em&gt;funcional&lt;/em&gt;,
y el de la &lt;em&gt;programaci&amp;oacute;n l&amp;oacute;gica&lt;/em&gt;, dando lugar a una
nueva &lt;em&gt;amalgama&lt;/em&gt;, la &lt;a href="http://www.informatik.uni-kiel.de/~mh/FLP/" lang="en"&gt;programaci&amp;oacute;n
&lt;em&gt;l&amp;oacute;gico-funcional&lt;/em&gt;&lt;/a&gt;
(Functional Logic Programming).&lt;/li&gt;

&lt;li&gt;
&lt;a href="http://zootropo.f2o.org/traducciones/interfaces-usuario-usables/gui.html"&gt;Dise&amp;ntilde;o
de Interfaces de Usuario Usables: Una Gu&amp;iacute;a R&amp;aacute;pida para Desarrolladores
de Software Libre y de C&amp;oacute;digo Abierto&lt;/a&gt; (texto traducido por Ra&amp;uacute;l
Gonz&amp;aacute;lez Duque, en &lt;a href="http://zootropo.f2o.org/"&gt;Zootropo&lt;/a&gt;).&lt;/li&gt;

&lt;li&gt;
&lt;a href="http://blog.enrique.barbeito.org/archivos/2005/01/09/koders-codigo-fuente-indexado/"&gt;Koders,
c&amp;oacute;digo fuente indexado&lt;/a&gt; ("Koders es [...] un motor de b&amp;uacute;squeda
de c&amp;oacute;digo fuente, procedente de multitud de repositorios de software
p&amp;uacute;blicos en Internet [...]. El c&amp;oacute;digo es indexado y clasificado
por lenguajes de programaci&amp;oacute;n y licencias con las que dicho c&amp;oacute;digo
est&amp;aacute; protegido."; en &lt;a href="http://blog.enrique.barbeito.org/"&gt;Ebarbeito&lt;/a&gt;).&lt;/li&gt;

&lt;li&gt;
&lt;a href="http://www.nosolousabilidad.com/articulos/descripcion_y_clasificacion.htm"&gt;Dise&amp;ntilde;o
de Arquitecturas de Informaci&amp;oacute;n: Descripci&amp;oacute;n y Clasificaci&amp;oacute;n&lt;/a&gt;
(&lt;a href="http://www.nosolousabilidad.com/hassan/"&gt;Yusef Hassan Montero&lt;/a&gt;,
&lt;a href="http://anikautopia.blogia.com/"&gt;Ana
N&amp;uacute;&amp;ntilde;ez Pe&amp;ntilde;a&lt;/a&gt;; en &lt;a href="http://www.nosolousabilidad.com/"&gt;No
Solo Usabilidad&lt;/a&gt;).&lt;/li&gt;

&lt;li&gt;
&lt;a href="http://www.microsiervos.com/archivo/ciencia/on-intelligence.html"&gt;On
Intelligence&lt;/a&gt; (rese&amp;ntilde;a del libro de Jeff Hawkins, en
&lt;a href="http://www.microsiervos.com/"&gt;Microsiervos&lt;/a&gt;).&lt;/li&gt;

&lt;li&gt;
El Modelo del Espacio Vectorial. &lt;a href="http://irsweb.blogspot.com/2005/03/el-modelo-del-espacio-vectorial-i.html"&gt;(I):
similitud entre vectores&lt;/a&gt;; &lt;a href="http://irsweb.blogspot.com/2005/03/el-modelo-del-espacio-vectorial-ii_22.html"&gt;(II):
distancia entre vectores&lt;/a&gt;; &lt;a href="http://irsweb.blogspot.com/2005/03/modelo-del-espacio-vectorial-iii-el_23.html"&gt;(III):
el esquema tf-idf&lt;/a&gt;; &lt;a href="http://irsweb.blogspot.com/2005/03/modelo-del-espacio-vectorial-iv-el.html"&gt;(IV):
El Alineamiento&lt;/a&gt; (en &lt;a href="http://irsweb.blogspot.com/"&gt;Recuperaci&amp;oacute;n
de Informaci&amp;oacute;n en la Web&lt;/a&gt;).&lt;/li&gt;

&lt;li&gt;
&lt;a href="http://kirai.bitacoras.com/index.php?p=504"&gt;&amp;iquest;Hacer cosas
&amp;uacute;tiles?&lt;/a&gt; ("En un e-mail de mi hermano [...] leo lo siguiente:
'[...] voy a empezar a meterle ca&amp;ntilde;a a Php y Mysql a ver si aprendo
cosas &amp;uacute;tiles [...]' Dentro de esta simple frase se encuentra impl&amp;iacute;cita
una de las grandes pol&amp;eacute;micas de Ing. de Telecomunicaciones e Inform&amp;aacute;tica
donde hay que dedicar varios a&amp;ntilde;os a estudiar matem&amp;aacute;ticas
y f&amp;iacute;sica pura y dura. [...] Seg&amp;uacute;n mucha gente todo esto no
sirve para nada, porque al salir al mundo laboral hay muchas cosas que
importan bastante m&amp;aacute;s, pero..."; en &lt;a href="http://kirai.bitacoras.com/"&gt;Kirai.net&lt;/a&gt;). En esta interesante reflexi&amp;oacute;n, H&amp;eacute;ctor Garc&amp;iacute;a aborda
la presunta &lt;em&gt;utilidad&lt;/em&gt; o &lt;em&gt;inutilidad&lt;/em&gt; de las disciplinas acad&amp;eacute;micas
que se imparten en ingenier&amp;iacute;as como Telecomunicaciones e Inform&amp;aacute;tica,
para concluir finalmente que todas ellas redundan positivamente en la formaci&amp;oacute;n
de la persona, ya que contribuyen a &lt;em&gt;modelar&lt;/em&gt; un tipo de pensamiento (cient&amp;iacute;fico)
y de forma de razonar, imprescindibles para llevar a buen t&amp;eacute;rmino
y con eficacia la pr&amp;aacute;ctica profesional en dichos campos de las ciencias
aplicadas.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;P&amp;aacute;ginas y sitios &lt;em&gt;web&lt;/em&gt;:&lt;/p&gt;

&lt;ul class="conmargeninf"&gt;
&lt;li&gt;
&lt;a href="http://web.genie.it/utenti/p/paoloomero/prolog.htm" lang="it"&gt;Interprete
di un linguaggio imperativo scritto in Prolog&lt;/a&gt;.&lt;/li&gt;

&lt;li&gt;
&lt;a href="http://christophe.delord.free.fr/en/pylog/" lang="en"&gt;PyLog -
A first order logic library in Python&lt;/a&gt; ("PyLog is a first order logic
library including a Prolog engine in Python. PyLog can also translate Prolog
into Python. [...]").&lt;/li&gt;

&lt;li&gt;
&lt;a href="http://www.webir.org/" lang="en"&gt;Web IR &amp;amp; IE&lt;/a&gt; ("This site
is a collection of online resources for research in the field of information
retrieval and information extraction from the Web. [...]").&lt;/li&gt;

&lt;li&gt;
&lt;a href="http://coleweb.dc.fi.udc.es/cole/sites_cl.html" lang="en"&gt;Interesting
sites about Natural Language Processing&lt;/a&gt; / &lt;a href="http://coleweb.dc.fi.udc.es/cole/sites_ir.html" lang="en"&gt;[...]
about (Natural Language) Information Retrieval and Information Extraction&lt;/a&gt;.&lt;/li&gt;

&lt;li&gt;
&lt;a href="http://www.divulgamat.net/"&gt;DIVULGAMAT&lt;/a&gt; - Centro Virtual de
Divulgaci&amp;oacute;n de las Matem&amp;aacute;ticas.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Conferencias, congresos:&lt;/p&gt;

&lt;ul class="conmargeninf"&gt;
&lt;li&gt;
&lt;a href="http://www.iiia.csic.es/~vtorra/mdai2005/" lang="en"&gt;MDAI (Modeling
Decisions for Artificial Intelligence) 2005&lt;/a&gt; (Tsukuba, Jap&amp;oacute;n,
25-27 julio 2005).&lt;/li&gt;

&lt;li&gt;
&lt;a href="http://www.laaic05.ruc.dk/" lang="en"&gt;LAAIC (Logical Aspects and
Applications of Integrity Constraints) 2005&lt;/a&gt; (in conjunction with the
16th International Conference on Database and Expert Systems Applications,
&lt;a href="http://www.dexa.org/" lang="en"&gt;DEXA
2005&lt;/a&gt;; Copenhagen, Dinamarca, 26 agosto 2005).&lt;/li&gt;

&lt;li&gt;
&lt;a href="http://www.hds.utc.fr/WI05/" lang="en"&gt;2005 IEEE/WIC/ACM International
Conference on Web Intelligence and Intelligent Agent Technology&lt;/a&gt; (Compiegne
University of Technology, Francia, 19-22 septiembre 2005).&lt;/li&gt;

&lt;li&gt;
&lt;a href="http://cedi2005.ugr.es/simposio_s7_ttia.shtml"&gt;TTIA'05: VI Jornadas
de Transferencia Tecnol&amp;oacute;gica de Inteligencia Artificial&lt;/a&gt; (Granada
14-16 septiembre 2005); estas jornadas se celebrar&amp;aacute;n en el marco
del &lt;a href="http://cedi2005.ugr.es/"&gt;I Congreso Espa&amp;ntilde;ol de Inform&amp;aacute;tica
- CEDI 2005&lt;/a&gt;; tambi&amp;eacute;n en el marco de este congreso: &lt;a href="http://cedi2005.ugr.es/simposio_s5_lfsc.shtml"&gt;LFSC'2005
- Simposio sobre L&amp;oacute;gica Fuzzy y Soft Computing&lt;/a&gt;.&lt;/li&gt;

&lt;li&gt;
&lt;a href="http://www.iiia.csic.es/iclp2005/" lang="en"&gt;International Conference
on Logic Programming (ICLP 2005)&lt;/a&gt; - &lt;a href="http://www.cs.nmsu.edu/~epontell/DC2005/" lang="en"&gt;Doctoral
Consortium&lt;/a&gt; (Sitges, Barcelona, 2-5 octubre 2005).&lt;/li&gt;

&lt;li&gt;
&lt;a href="http://www-gsi.dec.usc.es/caepia05/"&gt;XI Conferencia de la Asociaci&amp;oacute;n
Espa&amp;ntilde;ola para la Inteligencia Artificial&lt;/a&gt; (CAEPIA'05; Santiago
de Compostela, 23-25 noviembre 2005).&lt;/li&gt;

&lt;li&gt;
&lt;a href="http://www.cacs.louisiana.edu/~icdm05/" lang="en"&gt;ICDM'05&lt;/a&gt;:
The Fifth IEEE International Conference on Data Mining (Nueva Orleans, &lt;acronym title="Estados Unidos de Am&amp;eacute;rica"&gt;EUA&lt;/acronym&gt;,
27-30 noviembre 2005).&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Dos &amp;uacute;ltimos apuntes:&lt;/p&gt;

&lt;p&gt;En fechas recientes, han cambiado de ubicaci&amp;oacute;n y de sistema de
publicaci&amp;oacute;n (m&amp;aacute;s flexible y potente), en &lt;a href="http://deakialli.bitacoras.com/"&gt;Deakialli
DocuMental&lt;/a&gt;, y por lo que se ve han aprovechado tambi&amp;eacute;n para
llevar a cabo una ligera reorientaci&amp;oacute;n tem&amp;aacute;tica, tomando
especial consideraci&amp;oacute;n hacia los temas m&amp;aacute;s directamente relacionados
con la recuperaci&amp;oacute;n de informaci&amp;oacute;n en sus m&amp;uacute;ltiples
facetas y enfoques. El cambio en todos los sentidos ha sido claramente
para mejor.&lt;/p&gt;

&lt;p&gt;En segundo lugar, y ya que m&amp;aacute;s arriba nos hacemos eco de la excelente
serie de art&amp;iacute;culos que sobre el &lt;a href="http://www.ub.es/bid/04figue2.htm"&gt;modelo
de espacio vectorial de recuperaci&amp;oacute;n de informaci&amp;oacute;n&lt;/a&gt; est&amp;aacute;n
apareciendo en la bit&amp;aacute;cora &lt;a href="http://irsweb.blogspot.com/"&gt;Recuperaci&amp;oacute;n
de Informaci&amp;oacute;n en la Web&lt;/a&gt;, recomendar, a modo de introducci&amp;oacute;n
sobre el tema, el breve resumen que sobre el mismo apareci&amp;oacute; hace
ya tiempo en el fenecido &lt;em&gt;weblog&lt;/em&gt; &lt;a href="http://rivendel.blogalia.com/"&gt;rivendel.org&lt;/a&gt;,
bajo el t&amp;iacute;tulo &lt;em&gt;Introducci&amp;oacute;n a la Recuperaci&amp;oacute;n de
Informaci&amp;oacute;n: Recuperar informaci&amp;oacute;n con el Modelo de Espacio
Vectorial&lt;/em&gt;. Se puede acceder al texto &lt;a href="http://rivendel.blogalia.com/documentos/Teor%EDa/Recuperaci%F3nMEV.html"&gt;en
la ubicaci&amp;oacute;n original&lt;/a&gt;, o bien &lt;a href="http://web.archive.org/web/20050329155658/http://rivendel.blogalia.com/documentos/Teor%EDa/Recuperaci%F3nMEV.html"&gt;a
trav&amp;eacute;s de Wayback Machine&lt;/a&gt;, herramienta de recuperaci&amp;oacute;n
del proyecto &lt;a href="http://www.archive.org/" lang="en"&gt;Internet Archive&lt;/a&gt;. (Actualizaci&amp;oacute;n 01/04/2005: &lt;a href="http://www.veaseademas.com/archivos/1999/01/yusef.html"&gt;Yusef
Hassan&lt;/a&gt; tambi&amp;eacute;n se hizo eco de esta serie de excelentes art&amp;iacute;culos
&lt;a href="http://www.veaseademas.com/archivos/2005/03/recuperacian_de.html"&gt;en
V&amp;eacute;ase Adem&amp;aacute;s&lt;/a&gt;).&lt;/p&gt;

&lt;p&gt;Espero poder retomar en la pr&amp;oacute;ximas semanas un ritmo de publicaci&amp;oacute;n
m&amp;aacute;s o menos regular. Gracias a todos por mantener el inter&amp;eacute;s
sobre este sitio.&lt;/p&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5454882-111218522029637073?l=programacionlogica.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://programacionlogica.blogspot.com/feeds/111218522029637073/comments/default' title='Enviar comentarios'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=5454882&amp;postID=111218522029637073&amp;isPopup=true' title='0 comentarios'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5454882/posts/default/111218522029637073'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5454882/posts/default/111218522029637073'/><link rel='alternate' type='text/html' href='http://programacionlogica.blogspot.com/2005/03/selecci-de-enlaces.html' title='Selecci&amp;oacute;n de enlaces'/><author><name>etxe</name><uri>http://www.blogger.com/profile/10987668917577281087</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5454882.post-110716808572200411</id><published>2005-01-31T11:40:00.000+01:00</published><updated>2005-01-31T20:42:49.886+01:00</updated><title type='text'>Sistema experto aplicado a la extracción de información</title><content type='html'>&lt;p&gt;Uno de los art&amp;iacute;culos incluidos en el &amp;uacute;ltimo n&amp;uacute;mero
de &lt;a href="http://www.bibliosperu.com/"&gt;Biblos&lt;/a&gt; (Revista Electr&amp;oacute;nica
de Ciencias de la Informaci&amp;oacute;n; n&amp;ordm; 20, octubre - diciembre 2004),
lleva por t&amp;iacute;tulo "&lt;a href="http://www.documentalistas.com/web/biblios/articulos/20/2004_27.htm"&gt;Ensayo
de un sistema de extracci&amp;oacute;n de informaci&amp;oacute;n (t&amp;eacute;cnica
de inteligencia artificial) en un centro de informaci&amp;oacute;n especializado
en sanidad vegetal.&lt;/a&gt;" (el art&amp;iacute;culo en s&amp;iacute; est&amp;aacute; &lt;a href="http://www.documentalistas.com/web/biblios/articulos/20/2004_27.pdf"&gt;en
formato &lt;acronym title="Portable Document Format" lang="en"&gt;PDF&lt;/acronym&gt;&lt;/a&gt;).
Escrito por Ingrid Paz Garc&amp;iacute;a (Cuba), en &amp;eacute;l se detalla un
sistema experto aplicado a la extracci&amp;oacute;n de informaci&amp;oacute;n de
art&amp;iacute;culos de car&amp;aacute;cter cient&amp;iacute;fico, cuya tem&amp;aacute;tica
versa en este caso sobre la sanidad vegetal. La extracci&amp;oacute;n de informaci&amp;oacute;n
-una de las tareas m&amp;aacute;s relevantes dentro de lo que se ha dado en
conocer como &lt;em&gt;miner&amp;iacute;a de datos&lt;/em&gt; [&lt;a href="http://logicae.usal.es/open/29/mineria.pdf"&gt;1
&lt;/a&gt; -&lt;acronym title="Portable Document Format" lang="en"&gt;PDF&lt;/acronym&gt;-]
[&lt;a href="http://w3.mor.itesm.mx/~emorales/Cursos/KDD01/"&gt;2&lt;/a&gt;] [&lt;a href="http://www.cee.hw.ac.uk/~alison/ai3notes/all.html" lang="en"&gt;3&lt;/a&gt;]
[&lt;a href="http://elvex.ugr.es/etexts/spanish/kdd/KDD.html"&gt;4&lt;/a&gt;] [&lt;a href="http://www.bibliomining.com/" lang="en"&gt;5&lt;/a&gt;]
o &lt;em&gt;data mining&lt;/em&gt;-, a&amp;ntilde;ade complementariamente, a las t&amp;eacute;cnicas
cl&amp;aacute;sicas de la recuperaci&amp;oacute;n de informaci&amp;oacute;n, otras
propias del &amp;aacute;mbito de la inteligencia artificial, que permiten obtener
hechos (datos relevantes) a partir de los documentos recuperados.&lt;/p&gt;

&lt;p&gt;Por cierto, y en relaci&amp;oacute;n con el &lt;em&gt;data mining&lt;/em&gt;, hay muchos
expertos en la materia a los que no les gusta la traducci&amp;oacute;n literal
"miner&amp;iacute;a de datos"; prefieren expresiones m&amp;aacute;s ajustadas al
sentido y uso original del t&amp;eacute;rmino anglosaj&amp;oacute;n tales como
"explotaci&amp;oacute;n de datos" o "descubrimiento de datos", por ejemplo.&lt;/p&gt;

&lt;p&gt;El sistema experto descrito en el art&amp;iacute;culo, utilizado para la
extracci&amp;oacute;n de informaci&amp;oacute;n relevante de art&amp;iacute;culos de
contenido cient&amp;iacute;fico-t&amp;eacute;cnico, recibe la denominaci&amp;oacute;n
SEISAV (Sistema de Extracci&amp;oacute;n de Informaci&amp;oacute;n en Sanidad Vegetal),
y est&amp;aacute; basado en el sistema CRYSTAL (Universidad de Massachussets),
orientado al tratamiento de textos exclusivamente en ingl&amp;eacute;s, por
lo que ha sido convenientemente adaptado para trabajar con las particularidades
ling&amp;uuml;&amp;iacute;sticas del idioma castellano, y dotado de mayores posibilidades
de uso. Induce (construye) autom&amp;aacute;ticamente reglas de an&amp;aacute;lisis
de los textos a partir de un entrenamiento previo (m&amp;eacute;todo de "Entrenamiento
autom&amp;aacute;tico"), si bien estas reglas pueden ser construidas manualmente
por un experto familiarizado en este tipo de sistemas, y en el dominio
espec&amp;iacute;fico de aplicaci&amp;oacute;n (m&amp;eacute;todo de "Ingenier&amp;iacute;a por Conocimiento").&lt;/p&gt;

&lt;p&gt;El sistema CRYSTAL es un &lt;em&gt;&lt;a href="http://www.faqs.org/faqs/ai-faq/expert/" lang="en"&gt;shell&lt;/a&gt;&lt;/em&gt;
(entorno de desarrollo) dise&amp;ntilde;ado originalmente para trabajar bajo
MS-DOS, comercializado en Europa por &lt;a href="http://www.ie.com/" lang="en"&gt;Intelligent
Environments&lt;/a&gt;. Sin embargo, nuevos entornos (&lt;a href="http://www.ie.com/pages.aspx?sid=13&amp;id=174" lang="en"&gt;&lt;acronym title="Application Manager" lang="en"&gt;AM&lt;/acronym&gt;
para Windows&lt;/a&gt;) relegaron el &lt;a href="http://www.ie.com/pages.aspx?sid=13&amp;id=172&amp;type=No" lang="en"&gt;desarrollo
de CRYSTAL&lt;/a&gt; como producto comercial en los a&amp;ntilde;os 90 del siglo pasado.&lt;/p&gt;

&lt;p&gt;El funcionamiento del sistema, y varios ejemplos de uso, est&amp;aacute;n
perfectamente explicados en el art&amp;iacute;culo, de forma bastante amena,
con un nivel de complejidad muy asequible incluso para las personas sin
conocimientos previos en relaci&amp;oacute;n con los sistemas expertos [&lt;a href="http://www.redcientifica.com/doc/doc199908210001.html"&gt;1&lt;/a&gt;]
[&lt;a href="http://www.ucm.es/info/eurotheo/diccionario/S/sistemas_expertos.htm"&gt;2&lt;/a&gt;]
[&lt;a href="http://luisguillermo.com/castellano/default.htm#AI"&gt;3&lt;/a&gt;] [&lt;a href="http://www.esi2.us.es/~dco/sistemas.htm"&gt;4&lt;/a&gt;]
[&lt;a href="http://personales.unican.es/gutierjm/BookCGH.html" lang="en"&gt;5&lt;/a&gt;] [&lt;a href="http://www.bcsnsg.org.uk/itin08/darling.htm" lang="en"&gt;6&lt;/a&gt;] [&lt;a href="http://ingenieroseninformatica.org/recursos/tutoriales/sist_exp/"&gt;7&lt;/a&gt;],
que hace que sea una lectura m&amp;aacute;s que recomendable para toda persona
interesada en la puesta en marcha de estos sistemas aplicados al tratamiento
documental y la gesti&amp;oacute;n de la informaci&amp;oacute;n de car&amp;aacute;cter
significativo (en contraposici&amp;oacute;n a la recuperaci&amp;oacute;n y tratamiento
de informaci&amp;oacute;n en "bruto").&lt;/p&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5454882-110716808572200411?l=programacionlogica.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://programacionlogica.blogspot.com/feeds/110716808572200411/comments/default' title='Enviar comentarios'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=5454882&amp;postID=110716808572200411&amp;isPopup=true' title='0 comentarios'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5454882/posts/default/110716808572200411'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5454882/posts/default/110716808572200411'/><link rel='alternate' type='text/html' href='http://programacionlogica.blogspot.com/2005/01/sistema-experto-aplicado-la-extracci-de.html' title='Sistema experto aplicado a la extracci&amp;oacute;n de informaci&amp;oacute;n'/><author><name>etxe</name><uri>http://www.blogger.com/profile/10987668917577281087</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5454882.post-110475812646661046</id><published>2005-01-03T14:14:00.000+01:00</published><updated>2005-01-07T12:02:35.946+01:00</updated><title type='text'>Reseñas de libros sobre lógica y demostración en MAA Online</title><content type='html'>&lt;p&gt;En &lt;a href="http://www.maa.org/reviews/tindex14.html" lang="en"&gt;Proofs
and Logic Solving Book Reviews&lt;/a&gt;, se listan todas las rese&amp;ntilde;as
publicadas en la &lt;em&gt;web&lt;/em&gt; de la Mathematical Association of America (&lt;a href="http://www.maa.org/" lang="en"&gt;MAA
Online&lt;/a&gt;), dentro de la secci&amp;oacute;n &lt;a href="http://www.maa.org/reviews/reviews.html" lang="en"&gt;Read
This! - The MAA Online book review column&lt;/a&gt;, sobre monograf&amp;iacute;as
cuya tem&amp;aacute;tica principal gira en torno a la l&amp;oacute;gica y la demostraci&amp;oacute;n,
as&amp;iacute; como disciplinas conexas de la matem&amp;aacute;tica, como por ejemplo
la &lt;a href="http://www.cis.syr.edu/~sanchis/setory.html" lang="en"&gt;teor&amp;iacute;a
de conjuntos&lt;/a&gt;. Para localizar rese&amp;ntilde;as sobre otras tem&amp;aacute;ticas del
&amp;aacute;mbito de estudio de las matem&amp;aacute;ticas, acudir al &lt;a href="http://www.maa.org/reviews/topics-index.html" lang="en"&gt;&amp;iacute;ndice
por temas&lt;/a&gt;.&lt;/p&gt;

&lt;p&gt;Tambi&amp;eacute;n son destacables en la &lt;em&gt;web&lt;/em&gt; de &lt;a href="http://www.maa.org/" lang="en"&gt;MAA
Online&lt;/a&gt;, las breves &lt;em&gt;columnas&lt;/em&gt; mensuales (en el men&amp;uacute; desplegable
de la izquierda del portal de entrada, est&amp;aacute;n recogidas bajo el ep&amp;iacute;grafe
"Publications, Columns"), escritas por diversos autores sobre toda clase
de temas relacionados con el amplio universo de las matem&amp;aacute;ticas, como
por ejemplo la de Keith Devlin, la m&amp;aacute;s veterana de todas, publicada
bajo el ep&amp;iacute;grafe &lt;a href="http://www.maa.org/news/devangle.html" lang="en"&gt;Devlin's
Angle&lt;/a&gt;; este autor, y sobre el tema de la l&amp;oacute;gica y la deducci&amp;oacute;n,
tiene alguna cosa interesante, como son los breves comentarios &lt;em&gt;&lt;a href="http://www.maa.org/devlin/devlin_01_04.html" lang="en"&gt;The
mathematics of human thought&lt;/a&gt;&lt;/em&gt;, &lt;em&gt;&lt;a href="http://www.maa.org/devlin/devlin_june.html" lang="en"&gt;Laws
of Thought&lt;/a&gt;&lt;/em&gt; y &lt;em&gt;&lt;a href="http://www.maa.org/devlin/devlinangle_april.html" lang="en"&gt;Are
Mathematicians Turning Soft?&lt;/a&gt;&lt;/em&gt;, entre otros.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Actualizaci&amp;oacute;n&lt;/strong&gt; (07/01/2005): en el art&amp;iacute;culo de
este mes (enero 2005), &lt;em&gt;&lt;a href="http://www.maa.org/devlin/devlin_01_05.html" lang="en"&gt;Last
doubts removed about the proof of the Four Color Theorem&lt;/a&gt;&lt;/em&gt;, K. Devlin
da cuenta de nuevas aportaciones en la demostraci&amp;oacute;n, mediante medios
inform&amp;aacute;ticos, del Problema de los Cuatro Colores [&lt;a href="http://es.wikipedia.org/wiki/Colorear_un_mapa_con_4_colores"&gt;1&lt;/a&gt;]
[&lt;a href="http://redescolar.ilce.edu.mx/redescolar/act_permanentes/mate/mate1o.htm"&gt;2&lt;/a&gt;]
[&lt;a href="http://centros5.pntic.mec.es/ies.ortega.y.rubio/Mathis/Colores/4colores.htm"&gt;3&lt;/a&gt;],
un cl&amp;aacute;sico en el campo de la l&amp;oacute;gica deductiva, la &lt;a href="http://minerva.filosoficas.unam.mx/~morado/LogicaHoy/morado.html"&gt;demostraci&amp;oacute;n
matem&amp;aacute;tica&lt;/a&gt;, la topolog&amp;iacute;a, y la combinatoria, y hace un
repaso a las diversas conjeturas que este problema a suscitado a lo largo
del tiempo. Este problema se puede definir, brevemente, mediante el siguiente
enunciado:&lt;/p&gt;

&lt;blockquote&gt;
"En un plano o en una esfera no se necesitan m&amp;aacute;s de
cuatro colores para colorear un mapa de manera que dos regiones vecinas,
es decir, que compartan una frontera y no &amp;uacute;nicamente un punto, no
queden coloreadas del mismo color"
&lt;div class="cita"&gt;[&lt;a href="http://redescolar.ilce.edu.mx/redescolar/act_permanentes/mate/mate1o.htm"&gt;Fuente&lt;/a&gt;]&lt;/div&gt;
&lt;/blockquote&gt;

&lt;p&gt;&lt;a href="http://www-formal.stanford.edu/jmc/" lang="en"&gt;John McCarthy&lt;/a&gt;,
uno de los pioneros de la Inteligencia Artificial, analiz&amp;oacute;, en el
art&amp;iacute;culo &lt;em&gt;&lt;a href="http://www-formal.stanford.edu/jmc/coloring.html" lang="en"&gt;Coloring
Maps and the Kowalski Doctrine&lt;/a&gt;&lt;/em&gt; (1982), un programa escrito en Prolog,
y sus algoritmos subyacentes, que resolv&amp;iacute;a este problema aplicando
la metodolog&amp;iacute;a de la programaci&amp;oacute;n l&amp;oacute;gica a demostraciones
matem&amp;aacute;ticas anteriores, alcanzadas tras el enunciado del problema
en la segunda mitad del siglo XIX.&lt;/p&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5454882-110475812646661046?l=programacionlogica.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://programacionlogica.blogspot.com/feeds/110475812646661046/comments/default' title='Enviar comentarios'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=5454882&amp;postID=110475812646661046&amp;isPopup=true' title='0 comentarios'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5454882/posts/default/110475812646661046'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5454882/posts/default/110475812646661046'/><link rel='alternate' type='text/html' href='http://programacionlogica.blogspot.com/2005/01/rese-de-libros-sobre-l-y-demostraci-en.html' title='Rese&amp;ntilde;as de libros sobre l&amp;oacute;gica y demostraci&amp;oacute;n en MAA Online'/><author><name>etxe</name><uri>http://www.blogger.com/profile/10987668917577281087</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5454882.post-110359178123158623</id><published>2004-12-21T02:14:00.000+01:00</published><updated>2005-01-04T02:36:27.083+01:00</updated><title type='text'>Artículos, comentarios, y otros enlaces diversos</title><content type='html'>&lt;p&gt;En estos &amp;uacute;ltimos meses de ausencia de producci&amp;oacute;n escrita por estos lares, he ido tomando nota de una serie
de art&amp;iacute;culos, comentarios en bit&amp;aacute;coras, y otros enlaces de
diversa naturaleza, que han merecido mi inter&amp;eacute;s por una u otra raz&amp;oacute;n,
siempre en funci&amp;oacute;n de la tem&amp;aacute;tica sobre la que versa o pretende
versar este sitio. No se trata de una lista exhaustiva (de todo lo que
he le&amp;iacute;do y me ha interesado), ni ordenada con excesivo criterio o rigor...&lt;/p&gt;

&lt;p&gt;Art&amp;iacute;culos, introducciones, anotaciones de "blogs":&lt;/p&gt;

&lt;ul class="conmargeninf"&gt;
&lt;li&gt;
A taste of Poplog &lt;a href="http://zephyrfalcon.org/weblog2/arch_e10_00560.html#e562" lang="en"&gt;(1)&lt;/a&gt;
y &lt;a href="http://zephyrfalcon.org/weblog2/arch_e10_00560.html#e563" lang="en"&gt;(2)&lt;/a&gt;
(sobre el &lt;a href="http://www.poplog.org/" lang="en"&gt;entorno de desarrollo
Poplog&lt;/a&gt;; en &lt;a href="http://zephyrfalcon.org/weblog2/" lang="en"&gt;Efectos
Especiales&lt;/a&gt;).&lt;/li&gt;

&lt;li&gt;
&lt;a href="http://lambda-the-ultimate.org/node/view/240" lang="en"&gt;Pythologic
- Prolog syntax in Python&lt;/a&gt; (en &lt;a href="http://lambda-the-ultimate.org/" lang="en"&gt;Lambda
the Ultimate&lt;/a&gt;).&lt;/li&gt;

&lt;li&gt;
&lt;a href="http://lambda-the-ultimate.org/node/view/247" lang="en"&gt;Description
Logics in Literate Haskell&lt;/a&gt; / &lt;a href="http://lambda-the-ultimate.org/node/view/246" lang="en"&gt;SAT
3 Proof with E Prover via OWL&lt;/a&gt; (en &lt;a href="http://lambda-the-ultimate.org/" lang="en"&gt;Lambda
the Ultimate&lt;/a&gt;).&lt;/li&gt;

&lt;li&gt;
&lt;a href="http://lambda-the-ultimate.org/node/view/257" lang="en"&gt;NewLisp:
A better Lisp/Scheme Fusion&lt;/a&gt; ("&lt;a href="http://www.newlisp.org/" lang="en"&gt;newLISP&lt;/a&gt;
is a general purpose scripting language for developing Web applications
and programs in general and in the domain of Artificial Intelligence (AI)
and statistics."; en &lt;a href="http://lambda-the-ultimate.org/" lang="en"&gt;Lambda
the Ultimate&lt;/a&gt;).&lt;/li&gt;

&lt;li&gt;
&lt;a href="http://www.microsoft.com/typography/ctfonts/WordRecognition.aspx" lang="en"&gt;The
Science of Word Recognition&lt;/a&gt; (Kevin Larson - Advanced Reading Technology,
Microsoft Corporation).&lt;/li&gt;

&lt;li&gt;
&lt;a href="http://eprints.rclis.org/archive/00001497/" lang="en"&gt;Intelligent
library systems: artificial intelligence technology and library automation
systems&lt;/a&gt; (Bailey, Jr., Charles W., 1991).&lt;/li&gt;

&lt;li&gt;
&lt;a href="http://www.alanturing.net/turing_archive/pages/Reference%20Articles/What%20is%20AI.html" lang="en"&gt;What
is Artificial Intelligence?&lt;/a&gt; (por Jack Copeland en &lt;a href="http://www.alanturing.net/turing_archive/pages/Reference%20Articles/referencearticlesindex.html" lang="en"&gt;Catalogue
of Reference Articles&lt;/a&gt; - &lt;a href="http://www.alanturing.net/" lang="en"&gt;AlanTuring.net&lt;/a&gt;).&lt;/li&gt;

&lt;li&gt;
&lt;a href="http://www.maths.tcd.ie/pub/HistMath/People/Boole/CalcLogic/CalcLogic.html" lang="en"&gt;The
Calculus of Logic&lt;/a&gt; (Por George Boole, 1815-1864, l&amp;oacute;gico y matem&amp;aacute;tico brit&amp;aacute;nico,
creador del primer sistema formal de l&amp;oacute;gica matem&amp;aacute;tica o
&lt;em&gt;simb&amp;oacute;lica&lt;/em&gt;, denominado &lt;em&gt;&amp;aacute;lgebra de Boole&lt;/em&gt; o &lt;em&gt;&amp;aacute;lgebra
l&amp;oacute;gica&lt;/em&gt;, cuyo &amp;aacute;mbito es el estudio de las funciones l&amp;oacute;gicas).&lt;/li&gt;

&lt;li&gt;
&lt;a href="http://www.mycgiserver.com/~gpiancastelli/blog/archives/000094.html" lang="en"&gt;Does
Fit fit your testing needs?&lt;/a&gt; ("I needed to perform some acceptance testing
on a Prolog parser, and found some sample Prolog text from the &lt;a href="ftp://ftp.elis.rug.ac.be/pub/prolog/prolog.parser.Z"&gt;BinProlog&lt;/a&gt;
engine that I could use for the task at hand. To automate the process,
I decided to use &lt;a href="http://fit.c2.org/" lang="en"&gt;Fit&lt;/a&gt; because
[...]"; en &lt;a href="http://www.mycgiserver.com/~gpiancastelli/blog/" lang="en"&gt;Through
the blogging-glass&lt;/a&gt;).&lt;/li&gt;

&lt;li&gt;
&lt;a href="http://www.generation5.org/content/2004/nlpUnix.asp" lang="en"&gt;Natural
Language Processing Using Linux&lt;/a&gt; ("This article will discuss how to
perform simple textual analysis such as word counts, bigrams and trigrams,
using standard Linux tools. [...]"; en &lt;a href="http://www.generation5.org/" lang="en"&gt;Generation5&lt;/a&gt;).&lt;/li&gt;

&lt;li&gt;
&lt;a href="http://www.generation5.org/content/1999/selforganize.asp" lang="en"&gt;Self-Organizing
Nets&lt;/a&gt; ("After a detailed look at supervised networks [...] we should
look at a good example of unsupervised networks. The Kohonen network is
probably the best example, because it is quite simple yet introduces the
concepts of self-organization and unsupervised training easily. [...]";
en &lt;a href="http://www.generation5.org/" lang="en"&gt;Generation5&lt;/a&gt;).&lt;/li&gt;

&lt;li&gt;
&lt;a href="http://www.di.uniovi.es/~cernuda/noprog.html"&gt;C&amp;oacute;mo NO realizar
una pr&amp;aacute;ctica de programaci&amp;oacute;n&lt;/a&gt; (v&amp;iacute;a &lt;a href="http://cek.bitacoras.com/archivos/2004/10/20/como_no_hacer_una_practica_de_programacion/"&gt;Ceklog&lt;/a&gt;).&lt;/li&gt;

&lt;li&gt;
&lt;a href="http://homepages.inf.ed.ac.uk/wadler/realworld/" lang="en"&gt;Functional
Programming in the Real World&lt;/a&gt; ("[...] a list of functional programs
applied to real-world tasks.").&lt;/li&gt;

&lt;li&gt;
&lt;a href="http://www.ontopia.net/topicmaps/materials/tm-vs-thesauri.html" lang="en"&gt;Metadata?
Thesauri? Taxonomies? Topic Maps!&lt;/a&gt; (conocido a trav&amp;eacute;s del "blog"
&lt;a href="http://blogia.com/anikautopia/index.php?idarticulo=200411131"&gt;K-Utop&amp;iacute;a&lt;/a&gt;).&lt;/li&gt;

&lt;li&gt;
&lt;a href="http://www.mycgiserver.com/~gpiancastelli/blog/archives/000096.html" lang="en"&gt;A
&lt;acronym title="Constraint Logic Programming" lang="en"&gt;CLP&lt;/acronym&gt; + &lt;acronym title="Constraint Handling Rules" lang="en"&gt;CHR&lt;/acronym&gt; bibliography&lt;/a&gt; ("For future reference, here is a list of &lt;acronym title="Constraint Logic Programming" lang="en"&gt;CLP&lt;/acronym&gt;
and &lt;acronym title="Constraint Handling Rules" lang="en"&gt;CHR&lt;/acronym&gt; related works I?ve been reading in the last weeks. In memoriam
of a project I?m not going to pursue anymore."; en &lt;a href="http://www.mycgiserver.com/~gpiancastelli/blog/" lang="en"&gt;Through
the blogging-glass&lt;/a&gt;). Sobre Programaci&amp;oacute;n L&amp;oacute;gica con Restricciones (CLP), ver por ejemplo la introducci&amp;oacute;n &lt;em&gt;&lt;a href="http://www.cs.auckland.ac.nz/~j-hamer/07.363/byte.html" lang="en"&gt;Constraint Logic Programming&lt;/a&gt;&lt;/em&gt; (&lt;a href="http://www.byte.com/art/9502/sec13/art3.htm" lang="en"&gt;BYTE magazine&lt;/a&gt;, &lt;a href="http://www.byte.com/art/9502/9502.htm" lang="en"&gt;febrero 1995&lt;/a&gt;), o bien &lt;a href="http://www.cs.ualberta.ca/~mmueller/Courses/325Fall2003/Mynotes/Log/clp-intro.html" lang="en"&gt;esta otra&lt;/a&gt;, en la que primero se hace un repaso general a la &lt;em&gt;programaci&amp;oacute;n con restricciones&lt;/em&gt;. La &lt;a href="http://www.swi-prolog.org/dl-beta.html" lang="en"&gt;&amp;uacute;ltima versi&amp;oacute;n&lt;/a&gt; en desarrollo de &lt;a href="http://www.swi-prolog.org/" lang="en"&gt;SWI-Prolog&lt;/a&gt;, soporta clp(R): "Beta version of Constraint Logic Programming over Reals library". Por su parte, CHR son las siglas de &lt;em&gt;&lt;a href="http://www.informatik.uni-ulm.de/pm/fileadmin/pm/home/fruehwirth/chr-intro.html" lang="en"&gt;Constraint
Handling Rules&lt;/a&gt;&lt;/em&gt;: "CHR was designed as a language for defining constraint
solvers, but at the same time it is one of the most powerful multiset rewriting
languages. [...] CHR are a high-level language for concurrent logical systems.
CHR make it easy to define constraint reasoning: simplification and propagation
as well as incremental solving of constraints. [...]" [&lt;a href="http://www.informatik.uni-ulm.de/pm/fileadmin/pm/home/fruehwirth/chr-rightframe.html" lang="en"&gt;fuente&lt;/a&gt;].&lt;/li&gt;

&lt;li&gt;
&lt;a href="http://lambda-the-ultimate.org/node/view/386" lang="en"&gt;&lt;acronym title="Resource Description Framework" lang="en"&gt;RDF&lt;/acronym&gt; and
Databases&lt;/a&gt; (en &lt;a href="http://lambda-the-ultimate.org/" lang="en"&gt;Lambda
the Ultimate&lt;/a&gt;).&lt;/li&gt;

&lt;li&gt;
&lt;a href="http://www.fing.edu.uy/inco/grupos/coal/investigacion/publicaciones/pm02.pdf"&gt;Orientaci&amp;oacute;n
a objetos en Prolog&lt;/a&gt; (formato &lt;acronym title="Portable Document Format" lang="en"&gt;PDF&lt;/acronym&gt;; "La posibilidad de incorporar elementos
del paradigma de orientaci&amp;oacute;n a objetos en la programaci&amp;oacute;n
l&amp;oacute;gica parece, a priori, interesante, dado que permitir&amp;iacute;a
sumar lo mejor de ambos mundos. Los lenguajes de programaci&amp;oacute;n l&amp;oacute;gica
han tenido siempre como ventaja el permitir enfocar la atenci&amp;oacute;n
del programador en el problema a resolver y en el dise&amp;ntilde;o de la soluci&amp;oacute;n,
m&amp;aacute;s que en la mec&amp;aacute;nica de la misma. La incorporaci&amp;oacute;n
de orientaci&amp;oacute;n a objetos ayudar&amp;iacute;a en la reutilizaci&amp;oacute;n
del c&amp;oacute;digo, ocultamiento de informaci&amp;oacute;n y adem&amp;aacute;s permitir&amp;iacute;a
realizar un dise&amp;ntilde;o m&amp;aacute;s claro de las soluciones. En este trabajo
se estudia una aproximaci&amp;oacute;n al tema de la orientaci&amp;oacute;n a objetos
en Prolog, la realizada por el m&amp;oacute;dulo &lt;a href="http://www.sics.se/sicstus/docs/latest/html/sicstus/Obj-Intro.html" lang="en"&gt;Prolog
Objects&lt;/a&gt; de &lt;a href="http://www.sics.se/sicstus.html" lang="en"&gt;SICStus
Prolog&lt;/a&gt;. Se muestran las ideas principales del m&amp;oacute;dulo, su sintaxis
y funcionamiento, para presentar finalmente algunos ejemplos de dise&amp;ntilde;o
utilizando el paradigma."; D. Perovich y G. Moncecchi, 2002).&lt;/li&gt;

&lt;li&gt;Otro ejemplo de implementaci&amp;oacute;n de Prolog que soporta programaci&amp;oacute;n orientada
a objetos es &lt;a href="http://clip.dia.fi.upm.es/Software/Ciao/" lang="en"&gt;Ciao
Prolog&lt;/a&gt;: "O'Ciao is a set of libraries which allows object-oriented
programming in Ciao Prolog. [...]" (fuente: &lt;a href="http://clip.dia.fi.upm.es/Software/Ciao/ciao_html/ciao_toc.html" lang="en"&gt;Reference
Manual&lt;/a&gt; - &lt;a href="http://clip.dia.fi.upm.es/Software/Ciao/ciao_html/ciao_114.html" lang="en"&gt;Object
oriented programming&lt;/a&gt;).&lt;/li&gt;

&lt;li&gt;
&lt;a href="http://www.danielclemente.com/logica/dn.html"&gt;Introducci&amp;oacute;n
a la deducci&amp;oacute;n natural&lt;/a&gt; (D. Clemente Laboreo; la deducci&amp;oacute;n
natural consiste en un conjunto de procedimientos formales -lenguaje de
la l&amp;oacute;gica formal- cuyo fin es la demostraci&amp;oacute;n de la correcci&amp;oacute;n
de determinado razonamiento, es decir, la validad de dicho razonamiento
-no su invalidez, sin embargo-; este documento tambi&amp;eacute;n est&amp;aacute;
disponible &lt;a href="http://www.danielclemente.com/logica/dn.pdf"&gt;en formato
&lt;acronym title="Portable Document Format" lang="en"&gt;PDF&lt;/acronym&gt;&lt;/a&gt;).&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;P&amp;aacute;ginas y sitios &lt;em&gt;web&lt;/em&gt;:&lt;/p&gt;

&lt;ul class="conmargeninf"&gt;
&lt;li&gt;
&lt;a href="http://techbooksforfree.com/" lang="en"&gt;TechBooksForFree.com&lt;/a&gt;
(Free Programming and Computer Science Books; &lt;a href="http://cek.bitacoras.com/archivos/2004/09/14/libros_electronicos_gratis/"&gt;v&amp;iacute;a
Ceklog&lt;/a&gt;).&lt;/li&gt;

&lt;li&gt;
&lt;a href="http://www.sidar.org/wshoy/"&gt;Web Sem&amp;aacute;ntica Hoy&lt;/a&gt;.&lt;/li&gt;

&lt;li&gt;
&lt;a href="http://www.premise.org/" lang="en"&gt;Premise.org&lt;/a&gt; (selecci&amp;oacute;n
de enlaces sobre el campo de la Inteligencia Artificial).&lt;/li&gt;

&lt;li&gt;
&lt;a href="http://www.cnice.mecd.es/eos/MaterialesEducativos/mem2003/logica/"&gt;Aprende
L&amp;oacute;gica&lt;/a&gt; (esta p&amp;aacute;gina mereci&amp;oacute; uno de los segundos
premios en el concurso de la &lt;a href="http://www.cnice.mecd.es/eos/MaterialesEducativos/mem2003/"&gt;edici&amp;oacute;n
2003&lt;/a&gt; convocado por el Ministerio de Educaci&amp;oacute;n y Ciencia a trav&amp;eacute;s
del Centro Nacional de Investigaci&amp;oacute;n y Comunicaci&amp;oacute;n Educativa
-&lt;a href="http://www.cnice.mecd.es/"&gt;CNICE&lt;/a&gt;-).&lt;/li&gt;

&lt;li&gt;
&lt;a href="http://irsweb.blogspot.com/"&gt;Recuperaci&amp;oacute;n de Informaci&amp;oacute;n
en la Web&lt;/a&gt; ("Bit&amp;aacute;cora dedicada a la recuperaci&amp;oacute;n de la
informaci&amp;oacute;n en la Web, centrada no &amp;uacute;nicamente en los aspectos
tecnol&amp;oacute;gicos de la misma, sino tambi&amp;eacute;n en noticias de marcada
incidencia social."). Art&amp;iacute;culos y comentarios muy buenos, escritos por &lt;a href="http://www.um.es/gtiweb/fjmm/"&gt;F.
J. Mart&amp;iacute;nez M&amp;eacute;ndez&lt;/a&gt; -profesor de la &lt;a href="http://www.um.es/f-documentacion/"&gt;Facultad
de Comunicaci&amp;oacute;n y Documentaci&amp;oacute;n&lt;/a&gt; de la Universidad de
Murcia- con mucho rigor y al tiempo amenidad sobre toda clase de temas
relacionados con las t&amp;eacute;cnicas de recuperaci&amp;oacute;n de informaci&amp;oacute;n,
con una particular atenci&amp;oacute;n en la incidencia de las mismas en los
entornos &lt;em&gt;web&lt;/em&gt;. Ver a modo de ejemplo uno de los &amp;uacute;ltimos comentarios: &lt;em&gt;&lt;a href="http://irsweb.blogspot.com/2004/12/es-la-realimentacin-por-relevancia-una.html"&gt;&amp;iquest;Es
la "realimentaci&amp;oacute;n por relevancia" una t&amp;eacute;cnica de recuperaci&amp;oacute;n
de informaci&amp;oacute;n?&lt;/a&gt;&lt;/em&gt;.&lt;/li&gt;

&lt;li&gt;
&lt;a href="http://www.um.es/gtiweb/adrico/"&gt;Glosario de Recuperaci&amp;oacute;n
de Informaci&amp;oacute;n Web&lt;/a&gt; (por Adriana Colino Tom&amp;eacute;).&lt;/li&gt;

&lt;li&gt;
&lt;a href="http://ioctl.org/logic/" lang="en"&gt;Prolog interpreter in Javascript&lt;/a&gt;.&lt;/li&gt;

&lt;li&gt;
&lt;a href="http://www.documentaciondigital.org/master/laboratorio.htm"&gt;Laboratorio
Digital del M&amp;aacute;ster Online en Documentaci&amp;oacute;n Digital&lt;/a&gt; (Universitat
Pompeu Fabra; Incluye, adem&amp;aacute;s de varias utilidades desarrolladas
con las &lt;acronym title="Aplication Programming Interface" lang="en"&gt;API&lt;/acronym&gt; de Google, las herramientas: DigiDocMap -editor de mapas conceptuales-,
DigiDocMenu -editor de men&amp;uacute;s desplegables-, y DigiDocIndex -indexador
y generador de buscadores locales-).&lt;/li&gt;

&lt;li&gt;
&lt;a href="http://www.dei.isep.ipp.pt/~jcoelho/x-prolog/" lang="en"&gt;X-Prolog:
a type-based system for &lt;acronym title="Extensible Markup Language" lang="en"&gt;XML&lt;/acronym&gt; processing in Prolog&lt;/a&gt; (&lt;a href="http://www.dei.isep.ipp.pt/~jcoelho/" lang="en"&gt;J.
Coelho&lt;/a&gt;, &lt;a href="http://www.ncc.up.pt/~amf/" lang="en"&gt;M. Florido&lt;/a&gt;.
Tambi&amp;eacute;n de estos dos autores, la ponencia &lt;em&gt;&lt;a href="http://www.dei.isep.ipp.pt/~jcoelho/x-prolog/padl03.pdf" lang="en"&gt;Type-based
&lt;acronym title="Extensible Markup Language" lang="en"&gt;XML&lt;/acronym&gt; Processing in Logic Programming&lt;/a&gt;&lt;/em&gt; -en &lt;acronym title="Portable Document Format" lang="en"&gt;PDF&lt;/acronym&gt;- ofrece una exposici&amp;oacute;n
del funcionamiento y aplicaci&amp;oacute;n de X-Prolog en el procesamiento
de c&amp;oacute;digo &lt;acronym title="Extensible Markup Language" lang="en"&gt;XML&lt;/acronym&gt;. Para su funcionamiento necesita tener instalado &lt;a href="http://www.swi-prolog.org/" lang="en"&gt;SWI-Prolog&lt;/a&gt;
y cargada la &lt;a href="http://www.swi-prolog.org/packages/sgml2pl.html" lang="en"&gt;librer&amp;iacute;a
o m&amp;oacute;dulo SGML&lt;/a&gt;. Con prop&amp;oacute;sito general, comentar que en
el cap&amp;iacute;tulo 5 -&lt;em&gt;&lt;a href="http://hcs.science.uva.nl/projects/SWI-Prolog/Manual/modules.html" lang="en"&gt;Using
Modules&lt;/a&gt;&lt;/em&gt;- del &lt;a href="http://hcs.science.uva.nl/projects/SWI-Prolog/Manual/" lang="en"&gt;manual
de referencia&lt;/a&gt; de SWI-Prolog, se explica c&amp;oacute;mo usar m&amp;oacute;dulos
externos. En el caso de la librer&amp;iacute;a SGML, los predicados necesarios
para procesar &lt;acronym title="Extensible Markup Language" lang="en"&gt;XML&lt;/acronym&gt; se compilan al cargar el archivo "sgml.pl", localizado
en la carpeta "library" del directorio de instalaci&amp;oacute;n de SWI-Prolog
-generalmente y por defecto "Archivos de programa\pl\"-).&lt;/li&gt;

&lt;li&gt;
&lt;a href="http://www.disenorama.com/"&gt;Dise&amp;ntilde;orama&lt;/a&gt; ("[...] es un
sitio de tutoriales, art&amp;iacute;culos y recursos para dise&amp;ntilde;adores
web sobre est&amp;aacute;ndares, accesibilidad, usabilidad y programaci&amp;oacute;n.").&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Conferencias, congresos:&lt;/p&gt;

&lt;ul class="conmargeninf"&gt;
&lt;li&gt;
&lt;a href="http://www.swi.psy.uva.nl/AIED2005/" lang="en"&gt;AIED 2005&lt;/a&gt; -
The 12th International Conference on Artificial Intelligence in Education
(18-22 de julio 2005, Amsterdam).&lt;/li&gt;

&lt;li&gt;
&lt;a href="http://www-gsi.dec.usc.es/ecir05/" lang="en"&gt;ECIR'05&lt;/a&gt; - 27th
European Conference on Information Retrieval (21-23 de marzo 2005, Santiago
de Compostela).&lt;/li&gt;

&lt;li&gt;
&lt;a href="http://bd.ub.es/isko2005/"&gt;7&amp;ordm; Congreso ISKO-Espa&amp;ntilde;a&lt;/a&gt;
(6-8 de julio 2005, Barcelona).&lt;/li&gt;

&lt;li&gt;
&lt;a href="http://www.unm.edu/~herme/padl05/" lang="en"&gt;PADL 05&lt;/a&gt; - Seventh
International Symposium on Practical Aspects of Declarative Languages (10-11
de enero 2005, Long Beach, California).&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Comentar por &amp;uacute;ltimo que mi intenci&amp;oacute;n es ir publicando de aqu&amp;iacute; en adelante, y con
una periodicidad m&amp;aacute;s o menos mensual, sucesivas listas de los art&amp;iacute;culos,
rese&amp;ntilde;as y otros textos y enlaces, que me parezcan m&amp;aacute;s relevantes,
relacionados directa o indirectamente con los asuntos tratados por lo general
en este &lt;em&gt;blog&lt;/em&gt;.&lt;/p&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5454882-110359178123158623?l=programacionlogica.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://programacionlogica.blogspot.com/feeds/110359178123158623/comments/default' title='Enviar comentarios'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=5454882&amp;postID=110359178123158623&amp;isPopup=true' title='0 comentarios'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5454882/posts/default/110359178123158623'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5454882/posts/default/110359178123158623'/><link rel='alternate' type='text/html' href='http://programacionlogica.blogspot.com/2004/12/art-comentarios-y-otros-enlaces.html' title='Art&amp;iacute;culos, comentarios, y otros enlaces diversos'/><author><name>etxe</name><uri>http://www.blogger.com/profile/10987668917577281087</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5454882.post-110325068217145837</id><published>2004-12-17T03:30:00.000+01:00</published><updated>2004-12-18T17:35:01.676+01:00</updated><title type='text'>Una introducción general al lenguaje Prolog</title><content type='html'>&lt;p&gt;A quienes busquen una introducci&amp;oacute;n b&amp;aacute;sica (muy b&amp;aacute;sica
eso s&amp;iacute;) al lenguaje Prolog, les recomiendo la lectura del art&amp;iacute;culo o "white paper" de &lt;a href="http://www.gerardorossel.org/"&gt;Gerardo Rossel&lt;/a&gt; "Programaci&amp;oacute;n l&amp;oacute;gica":&lt;/p&gt;

&lt;blockquote&gt;
"Un recorrido por la programaci&amp;oacute;n l&amp;oacute;gica y uno
de sus lenguajes m&amp;aacute;s representativos: Prolog, cl&amp;aacute;sico de
la inteligencia artificial, que se aplica de m&amp;uacute;ltiples formas en
el desarrollo de software comercial"
&lt;div class="cita"&gt;[Fuente: entradilla del art&amp;iacute;culo]&lt;/div&gt;
&lt;/blockquote&gt;

&lt;p&gt;En la introducci&amp;oacute;n del art&amp;iacute;culo se define de forma muy clara
y concisa la famosa "ecuaci&amp;oacute;n" de Kowalski (a la que quiz&amp;aacute;s recordar&amp;aacute;n
dediqu&amp;eacute; un comentario bastante extenso -no tan claro y conciso-, hace ya tiempo, en la
anotaci&amp;oacute;n "&lt;a href="http://programacionlogica.blogspot.com/2004_03_01_programacionlogica_archive.html#108064695478923719"&gt;A
prop&amp;oacute;sito de la f&amp;oacute;rmula de Kowalski&lt;/a&gt;"). Leemos lo siguiente en dicha introducci&amp;oacute;n:&lt;/p&gt;

&lt;blockquote&gt;
"[...] La ecuaci&amp;oacute;n de Robert Kowalski [...] establece
la idea esencial de la programaci&amp;oacute;n l&amp;oacute;gica: &lt;em&gt;algoritmos
= l&amp;oacute;gica + control&lt;/em&gt;. Es decir, un algoritmo se construye especificando
conocimiento en un lenguaje formal (l&amp;oacute;gica de primer orden), y el
problema se resuelve mediante un mecanismo de inferencia (control) que
act&amp;uacute;a sobre aqu&amp;eacute;l."
&lt;/blockquote&gt;

&lt;p&gt;Publicado en el &lt;a href="http://www.tectimes.com/magazines/code/code007/"&gt;n&amp;uacute;mero
7&lt;/a&gt; de la revista &lt;a href="http://www.tectimes.com/magazines/default.asp?marca=.CODE"&gt;.code&lt;/a&gt;,
el texto completo del art&amp;iacute;culo se puede localizar, &lt;a href="http://www.amzi.com/articles/code07_whitepaper.pdf"&gt;en
formato &lt;acronym title="Portable Document Format" lang="en"&gt;PDF&lt;/acronym&gt;&lt;/a&gt;,
a trav&amp;eacute;s de la p&amp;aacute;gina de &lt;a href="http://www.amzi.com/" lang="en"&gt;Amzi!&lt;/a&gt;,
empresa dedicada al desarrollo de aplicaciones y sistemas expertos sobre
la base de los fundamentos de la programaci&amp;oacute;n l&amp;oacute;gica en sinergia o conjunci&amp;oacute;n con otras tecnolog&amp;iacute;as y lenguajes:&lt;/p&gt;

&lt;blockquote&gt;
"Amzi! specializes in products and services for developing
and deploying integrated application components that apply logical knowledge,
such as pricing rules, configuration logic, insurance regulations, diagnostic
and advisory knowledge, grammar rules, message translation rules, and semantic
relationships. [...]"
&lt;div class="cita"&gt;[Fuente: &lt;a href="http://www.amzi.com/products/amzi_overview.htm" lang="en"&gt;Amzi!
Technology, Products and Services Overview&lt;/a&gt;]&lt;/div&gt;
&lt;/blockquote&gt;

&lt;p&gt;Especialmente reputado es su entorno de desarrollo &lt;a href="http://www.amzi.com/products/prolog_products.htm" lang="en"&gt;Amzi!
Prolog + Logic Server&lt;/a&gt; ("Embeddable, extendable Prolog for programmers
to build high-performance rule-based systems."). Por otra parte, en el
apartado "&lt;a href="http://www.amzi.com/articles/" lang="en"&gt;Articles &amp;amp;
Links&lt;/a&gt;" encontramos, en ingl&amp;eacute;s, un buen n&amp;uacute;mero de introducciones,
tutoriales, art&amp;iacute;culos, y otras referencias, sobre el lenguaje Prolog
y sus m&amp;uacute;ltiples aspectos pr&amp;aacute;cticos, con una especial atenci&amp;oacute;n
a su aplicaci&amp;oacute;n en el desarrollo de sistemas expertos.&lt;/p&gt;

&lt;p&gt;Para finalizar, comentar que, incre&amp;iacute;ble e inmerecidamente (y
no es falsa modestia), se referencia a este espacio de publicaci&amp;oacute;n
con formato de bit&amp;aacute;cora desde el que escribo estas l&amp;iacute;neas,
en el apartado "Enlaces relacionados", que se puede encontrar al final del
art&amp;iacute;culo de Gerardo Rossel. La publicaci&amp;oacute;n de esta breve
rese&amp;ntilde;a no tiene nada que ver con dicha circunstancia, de hecho repar&amp;eacute;
en ella una vez que me puse a escribir y rele&amp;iacute; con mayor atenci&amp;oacute;n
el texto del art&amp;iacute;culo...&lt;/p&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5454882-110325068217145837?l=programacionlogica.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://programacionlogica.blogspot.com/feeds/110325068217145837/comments/default' title='Enviar comentarios'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=5454882&amp;postID=110325068217145837&amp;isPopup=true' title='0 comentarios'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5454882/posts/default/110325068217145837'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5454882/posts/default/110325068217145837'/><link rel='alternate' type='text/html' href='http://programacionlogica.blogspot.com/2004/12/una-introducci-general-al-lenguaje.html' title='Una introducci&amp;oacute;n general al lenguaje Prolog'/><author><name>etxe</name><uri>http://www.blogger.com/profile/10987668917577281087</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5454882.post-108842566701806355</id><published>2004-06-28T14:27:00.000+02:00</published><updated>2004-06-30T01:41:52.266+02:00</updated><title type='text'>Inicios de la programación informática: ASCII y Cobol</title><content type='html'>&lt;p&gt;El pasado martes 22/06/2004, falleci&amp;oacute; en EE.UU. &lt;a href="http://www.bobbemer.com/" lang="en"&gt;Robert
W. Bemer&lt;/a&gt;, pionero de la programaci&amp;oacute;n de ordenadores. Entre sus
m&amp;eacute;ritos profesionales se cuenta el haber contribu&amp;iacute;do decisivamente
al establecimiento del est&amp;aacute;ndar &lt;acronym title="American Standard Code for Information Interchange" lang="en"&gt;ASCII&lt;/acronym&gt;
[&lt;a href="http://www.ascii.cl/" lang="en"&gt;1&lt;/a&gt;] [&lt;a href="http://en.wikipedia.org/wiki/Ascii" lang="en"&gt;2&lt;/a&gt;]
de representaci&amp;oacute;n e intercambio de informaci&amp;oacute;n, y al desarrollo
del lenguaje de programaci&amp;oacute;n &lt;acronym title="COmmon Business Oriented Language" lang="en"&gt;COBOL&lt;/acronym&gt;.
Con motivo de su fallecimiento, el diario &lt;a href="http://www.elpais.es"&gt;El
Pa&amp;iacute;s&lt;/a&gt; public&amp;oacute; en la edici&amp;oacute;n de ayer 27/06/2004
una breve nota biogr&amp;aacute;fica, traducci&amp;oacute;n del texto original editado &lt;a href="http://www.nytimes.com/2004/06/25/obituaries/25bemerobit.html" lang="en"&gt;en
The New York Times&lt;/a&gt;, de la que extractamos los p&amp;aacute;rrafos que hacen
referencia al trabajo de Bemer en el campo de la programaci&amp;oacute;n
inform&amp;aacute;tica:&lt;/p&gt;

&lt;blockquote&gt;

&lt;h3&gt;Robert W. Bemer, pionero de la programaci&amp;oacute;n de ordenadores&lt;/h3&gt;

&lt;p&gt;&lt;a href="http://www.bobbemer.com/" lang="en"&gt;Robert W. Bemer&lt;/a&gt;, uno de
los primeros programadores de ordenadores, que contribuy&amp;oacute; a idear &lt;acronym title="American Standard Code for Information Interchange" lang="en"&gt;ASCII&lt;/acronym&gt;,
un sistema que sigue estando en uso para representar letras y n&amp;uacute;meros
en c&amp;oacute;digo [...] empez&amp;oacute; a trabajar con ordenadores cuando
hac&amp;iacute;a trabajos de ingenier&amp;iacute;a en aviones militares para la
Rand Corporation de California, en 1949. "All&amp;iacute; conoc&amp;iacute; los
primeros ordenadores IBM y me enamor&amp;eacute; de su t&amp;eacute;cnica. Supe
que estaba hecho para el mundo de los ordenadores. Este negocio estaba
en su primera infancia, y programar era un trabajo que se hac&amp;iacute;a
a la medida; normalmente implicaba preparar m&amp;aacute;quinas para que hicieran
c&amp;aacute;lculos de uno en uno. Hasta 1958 no se public&amp;oacute; la primera
menci&amp;oacute;n al t&amp;eacute;rmino &lt;em&gt;software&lt;/em&gt; como t&amp;eacute;rmino inform&amp;aacute;tico.
El &lt;em&gt;software&lt;/em&gt; no era una actividad independiente, sino simplemente
algo por lo que hab&amp;iacute;a que pagar para conseguir que los ordenadores,
que ten&amp;iacute;an entonces el tama&amp;ntilde;o de una habitaci&amp;oacute;n, pudieran
hacer su trabajo", escribi&amp;oacute; en una serie de recuerdos en &lt;a href="http://www.bobbemer.com/" lang="en"&gt;su
p&amp;aacute;gina &lt;em&gt;web&lt;/em&gt;&lt;/a&gt;.&lt;/p&gt;

&lt;p&gt;Brillante, locuaz e irreverente, Bemer pareci&amp;oacute; encajar exactamente
en el papel durante los primeros a&amp;ntilde;os alocados de la programaci&amp;oacute;n.
Trabaj&amp;oacute; para fabricantes de aviones en California, hasta 1955, que
se incorpor&amp;oacute; al departamento de investigaci&amp;oacute;n de programaci&amp;oacute;n
de IBM en Nueva York. No hab&amp;iacute;a preparaci&amp;oacute;n oficial para programadores,
y durante un tiempo Bemer estuvo encargado de reclutarlos.&lt;/p&gt;

&lt;p&gt;Bemer desempe&amp;ntilde;&amp;oacute; un importante papel contribuyendo a desarrollar
un sistema est&amp;aacute;ndar para traducir letras y n&amp;uacute;meros a un c&amp;oacute;digo
digital que pod&amp;iacute;a ser procesado por un ordenador, conocido como
C&amp;oacute;digo Est&amp;aacute;ndar Americano para Intercambio de Informaci&amp;oacute;n,
o &lt;acronym title="American Standard Code for Information Interchange" lang="en"&gt;ASCII&lt;/acronym&gt;
(siglas en ingl&amp;eacute;s). Antes de &lt;acronym title="American Standard Code for Information Interchange" lang="en"&gt;ASCII&lt;/acronym&gt;,
los fabricantes de ordenadores ten&amp;iacute;an sus propios sistemas para
codificar letras y n&amp;uacute;meros, lo que hac&amp;iacute;a dif&amp;iacute;cil o
imposible el intercambio de datos entre m&amp;aacute;quinas de distintos fabricantes
de ordenadores. A finales de los a&amp;ntilde;os cincuenta y principios de
los sesenta, Bemer fue uno de los principales defensores e impulsores del
est&amp;aacute;ndar, bajo la orientaci&amp;oacute;n del &lt;a href="http://www.ansi.org/" lang="en"&gt;Instituto
Americano de Est&amp;aacute;ndares Nacionales&lt;/a&gt; (despu&amp;eacute;s fue adoptado
por la &lt;a href="http://www.iso.org" lang="en"&gt;Organizaci&amp;oacute;n Internacional
de Est&amp;aacute;ndares&lt;/a&gt;). &lt;acronym title="American Standard Code for Information Interchange" lang="en"&gt;ASCII&lt;/acronym&gt;
se puso en pr&amp;aacute;ctica en 1963, se fue expandiendo y modificando a
lo largo de los a&amp;ntilde;os [...]. Bemer apoy&amp;oacute; decididamente el &lt;acronym title="American Standard Code for Information Interchange" lang="en"&gt;ASCII&lt;/acronym&gt;,
a pesar de que la direcci&amp;oacute;n de IBM defend&amp;iacute;a su propio est&amp;aacute;ndar
de codificaci&amp;oacute;n. En 1962, Bemer dej&amp;oacute; IBM para incorporarse
a la divisi&amp;oacute;n Sperry Sand's Univac. A su manera, el est&amp;aacute;ndar &lt;acronym title="American Standard Code for Information Interchange" lang="en"&gt;ASCII&lt;/acronym&gt;
fue un precursor de los est&amp;aacute;ndares para intercambio y lectura de
datos que permiten la comunicaci&amp;oacute;n a trav&amp;eacute;s de Internet y
la &lt;em&gt;web&lt;/em&gt; mundial.&lt;/p&gt;

&lt;p&gt;A finales de los a&amp;ntilde;os cincuenta, Bemer desempe&amp;ntilde;&amp;oacute;
un papel en otro est&amp;aacute;ndar inform&amp;aacute;tico importante, el lenguaje
de programaci&amp;oacute;n Cobol. El Departamento de Defensa quer&amp;iacute;a
un lenguaje com&amp;uacute;n para datos de contabilidad y administraci&amp;oacute;n,
y el resultado, a finales de 1959, fue Cobol, siglas inglesas de Lenguaje
Com&amp;uacute;n Orientado a la Administraci&amp;oacute;n. [...]&lt;/p&gt;

&lt;/blockquote&gt;

&lt;p&gt;Como su propio nombre indica, &lt;acronym title="COmmon Business Oriented Language" lang="en"&gt;COBOL&lt;/acronym&gt;
(&lt;em&gt;COmmon Business Oriented Language&lt;/em&gt;) fue un lenguaje de programaci&amp;oacute;n
&lt;a href="http://www.cnn.com/TECH/computing/9906/09/1959.idg/" lang="en"&gt;creado
en 1959-1960&lt;/a&gt;, en el seno del comit&amp;eacute; &lt;a href="http://www.ee.und.ac.za/coursemain/DNE4DP2/sqlnotes/CODASYL.htm" lang="en"&gt;CODASYL&lt;/a&gt;
(&lt;em&gt;Conference on Data Systems Languages&lt;/em&gt;) -auspiciado a partir de 1957
por el Departamento de Defensa de los EE.UU- para ser aplicado en tareas
de gesti&amp;oacute;n administrativa y contable.&lt;/p&gt;

&lt;p&gt;De gran facilidad de lectura,
merced a una sintaxis muy cercana a la expresi&amp;oacute;n del lenguaje natural
en idioma ingl&amp;eacute;s, se le achaca sin embargo a &lt;acronym title="COmmon Business Oriented Language" lang="en"&gt;COBOL&lt;/acronym&gt; ser un lenguaje excesivamente
r&amp;iacute;gido en su formato de escritura, de sentencias muy largas, y no
adecuado para las t&amp;eacute;cnicas de &lt;a href="http://es.wikipedia.org/wiki/Programaci%F3n_estructurada"&gt;programaci&amp;oacute;n
estructurada&lt;/a&gt; (&lt;a href="http://aljibe.sip.ucm.es/recursos/progr-pascal/"&gt;Pascal&lt;/a&gt;
y C, por citar algunos, son ejemplos de lenguajes orientados a la &lt;a href="http://www.utm.mx/~rruiz/materias/PE/ipe.htm"&gt;programaci&amp;oacute;n
estructurada&lt;/a&gt;).&lt;/p&gt;

&lt;p&gt;Por otra parte, la &lt;a href="http://www.cobolstandard.info/" lang="en"&gt;alta
estandarizaci&amp;oacute;n&lt;/a&gt; adoptada desde el inicio de su desarrollo, y la especial
atenci&amp;oacute;n de este lenguaje a la correcta expresi&amp;oacute;n de las estructuras de datos
[&lt;a href="http://www3.uji.es/~sanchiz/Docencia/F05/"&gt;1&lt;/a&gt;] [&lt;a href="http://www.algoritmia.net/articles.php?folder=Estructuras%20de%20Datos"&gt;2&lt;/a&gt;],
entre otras caracter&amp;iacute;sticas, ha permitido que todav&amp;iacute;a hoy
en d&amp;iacute;a sigan operando, en el mundo bancario, empresarial
y comercial, aplicaciones con 40 a&amp;ntilde;os a sus espaldas, demostrando
una solidez y estabilidad muy notables, una vez superados los problemas
que el denominado "&lt;a href="http://www.cibersociedad.net/textos/articulo.php?art=10"&gt;efecto
del a&amp;ntilde;o 2000&lt;/a&gt;" (consistente en los problemas derivados del uso
de dos d&amp;iacute;gitos para almacenar fechas en los sistemas antiguos) supuso,
en algunos casos, para su operatividad y correcto funcionamiento.&lt;/p&gt;

&lt;p&gt;M&amp;aacute;s informaci&amp;oacute;n sobre el lenguaje &lt;acronym title="COmmon Business Oriented Language" lang="en"&gt;COBOL&lt;/acronym&gt;:
[&lt;a href="http://www.csis.ul.ie/cobol/" lang="en"&gt;1&lt;/a&gt;] [&lt;a href="http://homepage.ntlworld.com/zingmatter/zingcobol/" lang="en"&gt;2&lt;/a&gt;]
[&lt;a href="http://www.cobolportal.com/" lang="en"&gt;3&lt;/a&gt;] [&lt;a href="http://www.cobol.org/" lang="en"&gt;4&lt;/a&gt;]
[&lt;a href="http://cgibin.erols.com/ziring/cgi-bin/cep/cep.pl?_key=COBOL" lang="en"&gt;5&lt;/a&gt;]
[&lt;a href="http://wombat.doc.ic.ac.uk/foldoc/foldoc.cgi?query=cobol&amp;action=Search" lang="en"&gt;6&lt;/a&gt;]
[&lt;a href="http://en.wikipedia.org/wiki/COBOL" lang="en"&gt;7&lt;/a&gt;]&lt;/p&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5454882-108842566701806355?l=programacionlogica.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://programacionlogica.blogspot.com/feeds/108842566701806355/comments/default' title='Enviar comentarios'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=5454882&amp;postID=108842566701806355&amp;isPopup=true' title='0 comentarios'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5454882/posts/default/108842566701806355'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5454882/posts/default/108842566701806355'/><link rel='alternate' type='text/html' href='http://programacionlogica.blogspot.com/2004/06/inicios-de-la-programacitica-ascii-y.html' title='Inicios de la programaci&amp;oacute;n inform&amp;aacute;tica: ASCII y Cobol'/><author><name>etxe</name><uri>http://www.blogger.com/profile/10987668917577281087</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5454882.post-108622197347385265</id><published>2004-06-03T02:17:00.000+02:00</published><updated>2004-06-03T10:59:40.306+02:00</updated><title type='text'>Conciencia humana e inteligencia artificial</title><content type='html'>&lt;p&gt;Para romper el largo periodo de tiempo transcurrido sin dejar nada escrito
por estos lares, y en espera, entre otras cosas, de mayores cotas de inspiraci&amp;oacute;n, indico
a continuaci&amp;oacute;n algunos art&amp;iacute;culos y anotaciones que me han
llamado agradablemente la atenci&amp;oacute;n en las &amp;uacute;ltimas semanas:&lt;/p&gt;

&lt;ul class="conmargeninf"&gt;
&lt;li&gt;
&lt;a href="http://davis.wpi.edu/~matt/courses/soms/" lang="en"&gt;Self Organizing
Maps&lt;/a&gt; (por T. Germano; descripci&amp;oacute;n de la aplicaci&amp;oacute;n de
las redes neuronales artificiales a la clasificaci&amp;oacute;n y visualizaci&amp;oacute;n
de informaci&amp;oacute;n).&lt;/li&gt;

&lt;li&gt;
&lt;a href="http://kirai.bitacoras.com/index.php?m=200404#73"&gt;L&amp;oacute;gica
Difusa - Fuzzy Logic&lt;/a&gt; (por H&amp;eacute;ctor Garc&amp;iacute;a en &lt;a href="http://kirai.bitacoras.com/"&gt;Kirai.Net&lt;/a&gt;).&lt;/li&gt;

&lt;li&gt;
&lt;a href="http://www.mycgiserver.com/~gpiancastelli/blog/archives/000064.html" lang="en"&gt;A
Prolog introduction for hackers&lt;/a&gt; (comentario en &lt;a href="http://www.mycgiserver.com/~gpiancastelli/blog/" lang="en"&gt;Through
the blogging-glass&lt;/a&gt; al &lt;a href="http://www.kuro5hin.org/story/2004/2/25/124713/784" lang="en"&gt;tutorial
sobre Prolog&lt;/a&gt; publicado en &lt;a href="http://www.kuro5hin.org" lang="en"&gt;kuro5hin.org&lt;/a&gt;).&lt;/li&gt;

&lt;li&gt;
&amp;iquest;C&amp;oacute;mo funciona un buscador? [&lt;a href="http://kirai.bitacoras.com/index.php?p=62"&gt;1&lt;/a&gt;],
[&lt;a href="http://kirai.bitacoras.com/index?p=102"&gt;2&lt;/a&gt;], [&lt;a href="http://kirai.bitacoras.com/index.php?p=111"&gt;3&lt;/a&gt;]
y [&lt;a href="http://kirai.bitacoras.com/index.php?p=116" title="PageRank"&gt;4&lt;/a&gt;]
(por H&amp;eacute;ctor Garc&amp;iacute;a en &lt;a href="http://kirai.bitacoras.com/"&gt;Kirai.Net&lt;/a&gt;).&lt;/li&gt;

&lt;li&gt;
&lt;a href="http://www.programacion.com/articulo/grafos_asignacion/"&gt;Problema
de Asignaci&amp;oacute;n de Horarios&lt;/a&gt; (aplicaci&amp;oacute;n pr&amp;aacute;ctica
de ciertos aspectos de la teor&amp;iacute;a de grafos; A. Arranz Ord&amp;oacute;&amp;ntilde;ez
y E. Cuesta Guzm&amp;aacute;n, en &lt;a href="http://www.programacion.com/"&gt;Programaci&amp;oacute;n
en Castellano&lt;/a&gt;).&lt;/li&gt;

&lt;li&gt;
&lt;a href="http://www.generation5.org/content/2004/MultiBP.asp" lang="en"&gt;Multi-Backpropagation
Network: Concept and Modeling&lt;/a&gt; ("Backpropagation network is one of the
well known &lt;acronym title="Neural Network" lang="en"&gt;NN&lt;/acronym&gt;
model. However, large network is too complex and takes a long time to train...";
en &lt;a href="http://www.generation5.org/" lang="en"&gt;Generation5&lt;/a&gt;).&lt;/li&gt;

&lt;li&gt;
&lt;a href="http://kirai.bitacoras.com/index.php?p=120"&gt;George Boole&lt;/a&gt; (sobre
la l&amp;oacute;gica &lt;em&gt;booleana&lt;/em&gt;, digital o binaria; por H&amp;eacute;ctor
Garc&amp;iacute;a en &lt;a href="http://kirai.bitacoras.com/"&gt;Kirai.Net&lt;/a&gt;).&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Como puede verse, un lugar preferente de menci&amp;oacute;n en esta peque&amp;ntilde;a
lista, se lo lleva sin duda H&amp;eacute;ctor Garc&amp;iacute;a, y en este punto
me parece pertinente comentar que es muy encomiable la forma que tiene
de abordar los temas de los que trata por lo com&amp;uacute;n en su bit&amp;aacute;cora
(&lt;a href="http://kirai.bitacoras.com/"&gt;Kirai.Net&lt;/a&gt;), al margen de aquellos
de car&amp;aacute;cter e inter&amp;eacute;s m&amp;aacute;s o menos estrictamente personal
y particular, a saber: fundamentos de computaci&amp;oacute;n, Inteligencia
Artificial y sus aplicaciones, programaci&amp;oacute;n en general... Se nota
de ver&amp;aacute;s su notable esfuerzo por hacer asequibles y comprensibles,
para "el com&amp;uacute;n de los mortales", dichos asuntos.&lt;/p&gt;

&lt;p&gt;En otra de sus anotaciones, "&lt;a href="http://kirai.bitacoras.com/index.php?p=94"&gt;El
test de Turing y los ordenadores Inteligentes&lt;/a&gt;", aborda un tema que
tradicionalmente ha levantado, y sin duda seguir&amp;aacute; levantando, gran
pol&amp;eacute;mica y diversidad de opiniones: b&amp;aacute;sicamente, aquella
que se refiere a c&amp;oacute;mo definir lo que podr&amp;iacute;amos denominar
como verdadera &lt;em&gt;inteligencia artificial&lt;/em&gt;, cuales son las caracter&amp;iacute;sticas
diferenciadoras y definitorias de un sistema aut&amp;oacute;nomo, para considerar
que est&amp;aacute; dotado de las propiedades y funciones inherentes a la inteligencia
humana (si es que alg&amp;uacute;n d&amp;iacute;a se alcanza a conocer y comprender
la totalidad de esas propiedades y funciones, desde una perspectiva unitaria),
es decir aquellas que son expresi&amp;oacute;n de la naturaleza y funcionamiento
de los procesos cognitivos, de razonamiento y aprendizaje, que se dan en
la mente de los seres humanos.&lt;/p&gt;

&lt;p&gt;En los &lt;a href="http://kirai.bitacoras.com/index.php?p=94#comments"&gt;comentarios
a dicha anotaci&amp;oacute;n&lt;/a&gt;, podemos leer interesantes opiniones al respecto,
y en este punto me gustar&amp;iacute;a aportar una reflexi&amp;oacute;n hecha por
el escritor y cr&amp;iacute;tico ingl&amp;eacute;s David Lodge [&lt;a href="http://www.contemporarywriters.com/authors/?p=auth62" lang="en"&gt;1&lt;/a&gt;]
[&lt;a href="http://www3.shropshire-cc.gov.uk/lodge.htm" lang="en"&gt;2&lt;/a&gt;],
en el contexto de una entrevista publicada en la edici&amp;oacute;n del suplemento
Babelia del diario &lt;a href="http://www.elpais.es"&gt;El Pa&amp;iacute;s&lt;/a&gt; del
pasado 1 de mayo ("En defensa de la ficci&amp;oacute;n", b&amp;aacute;sicamente
versa sobre la importancia del g&amp;eacute;nero de la novela, de la ficci&amp;oacute;n,
en tanto que instrumento de representaci&amp;oacute;n de la conciencia humana,
variable en funci&amp;oacute;n de distintos periodos a lo largo del tiempo).
Pregunta la entrevistadora (Lourdes G&amp;oacute;mez): "&amp;iquest;Cree que la
conciencia es el &lt;em&gt;software&lt;/em&gt; de la mente humana?", y Lodge contesta:&lt;/p&gt;

&lt;blockquote&gt;&amp;laquo;En el sentido literario es una buena met&amp;aacute;fora
para describir la conciencia. Otra cuesti&amp;oacute;n es si la mente humana
funciona como un ordenador. Yo creo que el ordenador es un tipo de cerebro
bastante limitado. Se dan analog&amp;iacute;as en su funcionamiento, pero tambi&amp;eacute;n
importantes diferencias. Principalmente en la conectividad de la mente
humana y la ejecuci&amp;oacute;n de funciones simult&amp;aacute;neas. Un ordenador
nunca podr&amp;aacute; replicar estas caracter&amp;iacute;sticas pese a lo que
nos aseguren los expertos en inteligencia artificial. Los ordenadores son
mucho m&amp;aacute;s r&amp;aacute;pidos que el cerebro humano, pero no creo que
sean capaces de eliminar intuitivamente los elementos irrelevantes de una
funci&amp;oacute;n. Nos ganar&amp;aacute;n en el ajedrez, pero nunca en la toma
de decisiones que requiere una habilidad intuitiva.&amp;raquo;&lt;/blockquote&gt;

&lt;p&gt;Apart&amp;aacute;ndome un tanto de la reflexi&amp;oacute;n de Lodge -que en todo
caso no deja de ser una opini&amp;oacute;n, avalada eso si por el conocimiento
atesorado en dos a&amp;ntilde;os de estudio dedicados a las ciencias cognoscitivas,
la inteligencia artificial y el fen&amp;oacute;meno de la conciencia, con la
vista puesta en la preparaci&amp;oacute;n de su novela &lt;em&gt;Pensamientos secretos&lt;/em&gt;
(&lt;a href="http://www.anagrama-ed.es/"&gt;Anagrama&lt;/a&gt;, 2002; ISBN: 84-339-69893-8),
como explica el propio autor en la entrevista-, y sin pretender entrar
en grandes profundidades en lo que se refiere a este tema, es evidente
que dif&amp;iacute;cilmente se podr&amp;aacute;n trasladar las caracter&amp;iacute;sticas
de la inteligencia humana y sus procesos cognitivos a un sistema aut&amp;oacute;nomo
artificial, creando por tanto "inteligencia artificial", si no se alcanza
a entender en su totalidad el funcionamiento de dichos procesos, y parece
ser que las disciplinas cient&amp;iacute;ficas que se ocupan de estos menesteres
(tanto en lo que se refiere a los procesos f&amp;iacute;sico-qu&amp;iacute;micos,
como los referidos a los de transferencia y procesamiento de informaci&amp;oacute;n),
est&amp;aacute;n bastante lejos de alcanzar un estado de conocimiento &amp;oacute;ptimo
y "global" acerca de las evidentes complejidades, mayores de las que en
un principio se pens&amp;oacute; al abordar su estudio, de la mente humana.&lt;/p&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5454882-108622197347385265?l=programacionlogica.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://programacionlogica.blogspot.com/feeds/108622197347385265/comments/default' title='Enviar comentarios'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=5454882&amp;postID=108622197347385265&amp;isPopup=true' title='0 comentarios'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5454882/posts/default/108622197347385265'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5454882/posts/default/108622197347385265'/><link rel='alternate' type='text/html' href='http://programacionlogica.blogspot.com/2004/06/conciencia-humana-e-inteligencia.html' title='Conciencia humana e inteligencia artificial'/><author><name>etxe</name><uri>http://www.blogger.com/profile/10987668917577281087</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5454882.post-108193143757338892</id><published>2004-04-14T10:30:00.000+02:00</published><updated>2004-04-15T20:17:26.233+02:00</updated><title type='text'>Seminarios sobre Programación Lógica y Declarativa</title><content type='html'>&lt;p&gt;Nos hacemos eco en esta ocasi&amp;oacute;n de tres citas que, en el &amp;aacute;mbito
de las conferencias y los encuentros referidos a la programaci&amp;oacute;n
&lt;a href="http://www.cs.uu.nl/people/jeroen/courses/fp-sp.pdf"&gt;declarativa/funcional&lt;/a&gt;
(en &lt;acronym title="Portable Document Format" lang="en"&gt;PDF&lt;/acronym&gt;) y l&amp;oacute;gica, est&amp;aacute;n por celebrarse en los
pr&amp;oacute;ximos meses:&lt;/p&gt;

&lt;p&gt;&lt;a href="http://www.cs.uni-bonn.de/~costanza/lisp-ecoop/" lang="en"&gt;1st
European Lisp and Scheme Workshop&lt;/a&gt; (Oslo, 13 de junio 2004)&lt;/p&gt;

&lt;blockquote&gt;
"Lisp has a tradition of providing a fruitful basis for language
design experiments for many decades. The structure of Lisp, including Common
Lisp and Scheme as its major dialects of today, makes it easy to extend
the language or even to implement entirely new dialects without starting
from scratch. Common Lisp, with the Common Lisp Object System (CLOS), was
the first object-oriented programming language to receive an ANSI standard
at the beginning of the 1990's. It is, arguably, the most complete and
advanced object system of any programming language, and has influenced
many other object-oriented programming languages that were to follow."
&lt;div class="cita"&gt;[&lt;a href="http://www.cs.uni-bonn.de/~costanza/lisp-ecoop/" lang="en"&gt;contin&amp;uacute;a&lt;/a&gt;]&lt;/div&gt;
&lt;/blockquote&gt;

&lt;p&gt;&lt;a href="http://clip.dia.fi.upm.es/Conferences/CICLOPS-2004/" lang="en"&gt;Colloquium
on Implementation of Constraint and LOgic Programming Systems&lt;/a&gt; (CICLOPS 2004)&lt;/p&gt;

&lt;blockquote&gt;
"This workshop aims at discussing and exchanging experience
on the design, implementation, and optimization of logic, constraint (logic)
programming systems, and systems intimately related to logic as a means
to express computations. Experience backed up by real implementations and
their evaluation will be given preference, as well as descriptions of work
in progress in that direction."
&lt;div class="cita"&gt;[&lt;a href="http://clip.dia.fi.upm.es/Conferences/CICLOPS-2004/" lang="en"&gt;contin&amp;uacute;a&lt;/a&gt;]&lt;/div&gt;
&lt;/blockquote&gt;

&lt;p&gt;&lt;a href="http://clip.dia.fi.upm.es/Conferences/WLPE04/" lang="en"&gt;The 14th
workshop on logic programming environments&lt;/a&gt; (WLPE' 04)&lt;/p&gt;

&lt;blockquote&gt;
"The aim of the workshop is to provide an informal meeting
for the researchers working on tools for the development and analysis of
logic programs. This year we want to emphasize two aspects: on one hand
we want to discuss the presentation, pragmatics and experiences of such
tools; on the other one, we want to extend the concept of "logic programming"
environments to tools developed for any language based on computational
logic (constraints, integration of paradigms, specification languages, ...)."
&lt;div class="cita"&gt;[&lt;a href="http://clip.dia.fi.upm.es/Conferences/WLPE04/" lang="en"&gt;contin&amp;uacute;a&lt;/a&gt;]&lt;/div&gt;
&lt;/blockquote&gt;

&lt;p&gt;De la primera cita (de cuya celebraci&amp;oacute;n nos hemos enterado v&amp;iacute;a
&lt;a href="http://home.comcast.net/~bc19191/blog/040406.html" lang="en"&gt;Bill
Clementson's Blog&lt;/a&gt;, "&lt;em&gt;Bits and pieces (mostly Lisp-related) that I
collect from the ether&lt;/em&gt;") est&amp;aacute;n disponibles, en formato &lt;acronym title="Portable Document Format" lang="en"&gt;PDF&lt;/acronym&gt;,
los &lt;em&gt;papers&lt;/em&gt; (comunicaciones, ponencias) &lt;a href="http://www.cs.uni-bonn.de/~costanza/lisp-ecoop/papers.htm" lang="en"&gt;recibidos
hasta el momento&lt;/a&gt;. En cuanto a los &lt;em&gt;&lt;a href="http://www.irisa.fr/manifestations/2004/ICLP04/workshops.htm" lang="en"&gt;workshops&lt;/a&gt;&lt;/em&gt;
(talleres de trabajo, seminarios) &lt;a href="http://clip.dia.fi.upm.es/Conferences/CICLOPS-2004/" lang="en"&gt;CICLOPS
2004&lt;/a&gt; y &lt;a href="http://clip.dia.fi.upm.es/Conferences/WLPE04/" lang="en"&gt;WLPE'
04&lt;/a&gt;, decir que se celebrar&amp;aacute;n en el marco la &lt;a href="http://www.irisa.fr/manifestations/2004/ICLP04/" lang="en"&gt;20th
International Conference on Logic Programming&lt;/a&gt; (ICLP'04, 6-10 de septiembre
2004, Saint-Malo, Francia), organizada por la &lt;a href="http://www.cs.kuleuven.ac.be/~dtai/projects/ALP/" lang="en"&gt;Association
for Logic Programming&lt;/a&gt; (ALP).&lt;/p&gt;

&lt;p&gt;&lt;a href="http://lml.ls.fi.upm.es/~mcarro/" lang="en"&gt;Manuel Carro&lt;/a&gt;
y &lt;a href="http://clip.dia.fi.upm.es/~jgomez/" lang="en"&gt;Jos&amp;eacute; Manuel
G&amp;oacute;mez-Perez&lt;/a&gt;, dos de los organizadores y coordinadores de los
seminarios encuadrados en la &lt;a href="http://www.irisa.fr/manifestations/2004/ICLP04/" lang="en"&gt;ICLP'04&lt;/a&gt;
a los que acabamos de hacer referencia, son miembros del &lt;a href="http://www.clip.dia.fi.upm.es/" lang="en"&gt;CLIP
Lab&lt;/a&gt; (&lt;em&gt;The Computational logic, Languages, Implementation, and Parallelism
Lab&lt;/em&gt;) de la Facultad de Inform&amp;aacute;tica, Universidad Polit&amp;eacute;cnica
de Madrid, cuya &amp;aacute;rea de actividad se centra en la Programaci&amp;oacute;n
L&amp;oacute;gica en general y la &lt;a href="http://www.clip.dia.fi.upm.es/logic_programming_repositories.html" lang="en"&gt;Programaci&amp;oacute;n
L&amp;oacute;gica con Restricciones&lt;/a&gt; (&lt;em&gt;Constraint Logic Programming&lt;/em&gt;,
CLP) en particular. En este contexto de actividad, los miembros del &lt;a href="http://www.clip.dia.fi.upm.es/" lang="en"&gt;CLIP
Lab&lt;/a&gt; han desarrollado el sistema &lt;a href="http://www.clip.dia.fi.upm.es/Software/Ciao/" lang="en"&gt;Ciao
Prolog&lt;/a&gt;:&lt;/p&gt;

&lt;blockquote&gt;
"[...] entorno de programaci&amp;oacute;n l&amp;oacute;gica y de restricciones
[...] es uno de los &lt;a href="http://www.clip.dia.fi.upm.es/Software/" lang="en"&gt;sistemas
desarrollados&lt;/a&gt; por el grupo CLIP. [...] es software libre [...] y se
est&amp;aacute; utilizando actualmente tanto en aplicaciones empresariales
como en el entorno acad&amp;eacute;mico [...]. Entre las ventajas ofrecidas
por Ciao Prolog resalta su extensibilidad, que ha permitido desarrollar
muchas librer&amp;iacute;as que a&amp;ntilde;aden funcionalidades significativas
al sistema, tales como resolutores de restricciones, concurrencia, primitivas
para la programaci&amp;oacute;n distribuida y de agentes inteligentes, persistencia,
orden superior, objetos, interfaces a otros lenguajes de programaci&amp;oacute;n,
etc. Como ejemplos podemos destacar la librer&amp;iacute;a &lt;a href="http://www.clip.dia.fi.upm.es/Software/pillow/pillow.html" lang="en"&gt;PiLLoW&lt;/a&gt;,
posiblemente el componente m&amp;aacute;s utilizado para la interconexi&amp;oacute;n
entre sistemas de programaci&amp;oacute;n l&amp;oacute;gica (y de restricciones)
y la &lt;acronym title="World Wide Web" lang="en"&gt;WWW&lt;/acronym&gt;, y &lt;a href="http://www.clip.dia.fi.upm.es/Software/Ciao/index.html#lpdoc" lang="en"&gt;LPdoc&lt;/a&gt;,
un generador autom&amp;aacute;tico de documentaci&amp;oacute;n para sistemas de
programaci&amp;oacute;n l&amp;oacute;gica y de restricciones, ambos distribuidos
como software libre."
&lt;div class="cita"&gt;[&lt;a href="http://www.clip.dia.fi.upm.es/clip_spanish/"&gt;fuente&lt;/a&gt;]&lt;/div&gt;
&lt;/blockquote&gt;

&lt;p&gt;La mayor parte de los informes t&amp;eacute;cnicos (&lt;em&gt;Technical Reports&lt;/em&gt;) producidos
por los miembros del &lt;a href="http://www.clip.dia.fi.upm.es/" lang="en"&gt;CLIP
Lab&lt;/a&gt;, est&amp;aacute;n disponibles para su consulta, ordenados &lt;a href="http://www.clip.dia.fi.upm.es/clippubsbytopic/clippubsbytopic.html" lang="en"&gt;por
&amp;aacute;rea de inter&amp;eacute;s&lt;/a&gt; y &lt;a href="http://www.clip.dia.fi.upm.es/clippubsbyyear/clippubsbyyear.html" lang="en"&gt;por
a&amp;ntilde;o de producci&amp;oacute;n&lt;/a&gt; (los formatos de los documentos son &lt;acronym title="Portable Document Format" lang="en"&gt;PDF&lt;/acronym&gt;
y &lt;acronym title="PostScript" lang="en"&gt;PS&lt;/acronym&gt;). Salvo que se
busque un texto en concreto, del que se tenga noticia previamente, en cuyo
caso es m&amp;aacute;s directo y r&amp;aacute;pido realizar la b&amp;uacute;squeda
por a&amp;ntilde;o, lo m&amp;aacute;s pr&amp;aacute;ctico y productivo es efectuarla
a trav&amp;eacute;s de la ordenaci&amp;oacute;n &lt;a href="http://www.clip.dia.fi.upm.es/clippubsbytopic/clippubsbytopic.html" lang="en"&gt;por
tema de investigaci&amp;oacute;n&lt;/a&gt;. M&amp;aacute;s informaci&amp;oacute;n sobre las
conferencias y seminarios coorganizados por este laboratorio &lt;a href="http://www.clip.dia.fi.upm.es/Conferences/" lang="en"&gt;en
la p&amp;aacute;gina correspondiente&lt;/a&gt;.&lt;/p&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5454882-108193143757338892?l=programacionlogica.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://programacionlogica.blogspot.com/feeds/108193143757338892/comments/default' title='Enviar comentarios'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=5454882&amp;postID=108193143757338892&amp;isPopup=true' title='0 comentarios'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5454882/posts/default/108193143757338892'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5454882/posts/default/108193143757338892'/><link rel='alternate' type='text/html' href='http://programacionlogica.blogspot.com/2004/04/seminarios-sobre-programacigica-y.html' title='Seminarios sobre Programaci&amp;oacute;n L&amp;oacute;gica y Declarativa'/><author><name>etxe</name><uri>http://www.blogger.com/profile/10987668917577281087</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5454882.post-108135621701128394</id><published>2004-04-07T18:43:00.000+02:00</published><updated>2004-05-16T01:52:13.013+02:00</updated><title type='text'>Prolog + Scheme = Schelog</title><content type='html'>&lt;p&gt;&lt;a href="http://www.ccs.neu.edu/home/dorai/schelog/schelog.html" lang="en"&gt;Schelog&lt;/a&gt;
es una implementaci&amp;oacute;n desarrollada por &lt;a href="http://www.ccs.neu.edu/~dorai/" lang="en"&gt;D.
Sitaram&lt;/a&gt; que permite combinar fragmentos de c&amp;oacute;digo escritos en
un estilo de programaci&amp;oacute;n similar a &lt;a href="http://www.cse.unsw.edu.au/~billw/prologdict.html" title="The Prolog Dictionary" lang="en"&gt;Prolog&lt;/a&gt;
(incluyendo las principales caracter&amp;iacute;sticas de este lenguaje tales
como el &lt;em&gt;backtracking&lt;/em&gt; o retroceso, la unificaci&amp;oacute;n, el corte,
la negaci&amp;oacute;n, &lt;a href="http://www.programacion.com/tutorial/prolog3/4/"&gt;predicados
meta-l&amp;oacute;gicos&lt;/a&gt;, etc.) con expresiones en &lt;a href="http://www.swiss.ai.mit.edu/projects/scheme/index.html" lang="en"&gt;Scheme&lt;/a&gt;
&lt;em&gt;puro&lt;/em&gt; o convencional (Scheme es un lenguaje derivado de &lt;a href="http://foldoc.doc.ic.ac.uk/foldoc/foldoc.cgi?Lisp" lang="en"&gt;&lt;acronym title="LISt Processing" lang="en"&gt;Lisp&lt;/acronym&gt;&lt;/a&gt;
- ver la &lt;a href="http://programacionlogica.blogspot.com/2004_04_01_programacionlogica_archive.html#108086277849012996"&gt;anterior
anotaci&amp;oacute;n&lt;/a&gt; en la que hac&amp;iacute;amos referencia a este &amp;uacute;ltimo),
dentro de una misma aplicaci&amp;oacute;n:&lt;/p&gt;

&lt;blockquote&gt;
Schelog is an &lt;em&gt;embedding&lt;/em&gt; of Prolog-style logic programming
in Scheme. "Embedding'' means you don't lose Scheme: You can use Prolog-style
and conventional Scheme code fragments alongside each other. Schelog contains
the full repertoire of Prolog features, including meta-logical and second-order
("set'') predicates, leaving out only those features that could more easily
and more efficiently be done with Scheme subexpressions.
&lt;div class="cita"&gt;En &lt;em&gt;&lt;a href="http://www.ccs.neu.edu/home/dorai/schelog/schelog.html" lang="en"&gt;Programming
in Schelog&lt;/a&gt;&lt;/em&gt;&lt;/div&gt;
&lt;/blockquote&gt;

&lt;p&gt;La sintaxis de Schelog es la propia del &lt;a href="http://grimpeur.tamu.edu/~colin/lp/" lang="en"&gt;lenguaje
Lisp/Scheme&lt;/a&gt; (b&amp;aacute;sicamente, consiste en listas anidadas e indentadas,
sin comas, indicadas mediante par&amp;eacute;ntesis, anteposici&amp;oacute;n de
los signos de operaci&amp;oacute;n a los argumentos, cadenas de caracteres
entre comillas, etc.). A modo de ejemplo, se indica a continuaci&amp;oacute;n
la porci&amp;oacute;n de c&amp;oacute;digo necesaria para calcular, recursivamente,
el factorial de un n&amp;uacute;mero, en Prolog en primer lugar, y &lt;a href="http://www.ccs.neu.edu/home/dorai/schelog/schelog-Z-H-8.html#node_sec_8" lang="en"&gt;en
Schelog&lt;/a&gt; en segundo (recordemos que el factorial de un n&amp;uacute;mero
natural &lt;em&gt;n&lt;/em&gt;, es el producto de todos los n&amp;uacute;meros naturales
desde 1 hasta &lt;em&gt;n&lt;/em&gt;):&lt;/p&gt;

&lt;pre&gt;factorial(0,1):- !.
factorial(X,Y):- X1 is X-1,
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; factorial(X1,Y1),
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Y is X*Y1.

(define %factorial
&amp;nbsp; (%rel (x y x1 y1)
&amp;nbsp;&amp;nbsp;&amp;nbsp; [(0 1) !]
&amp;nbsp;&amp;nbsp;&amp;nbsp; [(x y) (&amp;lt; x 0) ! %fail]
&amp;nbsp;&amp;nbsp;&amp;nbsp; [(x y) (%is x1 (- x 1))
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; (%factorial x1 y1)
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; (%is y (* y1 x))]))&lt;/pre&gt;

&lt;p&gt;Schelog puede ser considerado como una combinaci&amp;oacute;n entre los estilos
de programaci&amp;oacute;n o &lt;em&gt;paradigmas&lt;/em&gt; representados por el lenguaje
Prolog por un lado (&lt;a href="http://foldoc.doc.ic.ac.uk/foldoc/foldoc.cgi?logic+programming" lang="en"&gt;programaci&amp;oacute;n
l&amp;oacute;gica&lt;/a&gt;), y el &lt;em&gt;dialecto&lt;/em&gt; de &lt;a href="http://www.paulgraham.com/lisp.html" lang="en"&gt;Lisp&lt;/a&gt;
&lt;em&gt;Scheme&lt;/em&gt; por otro (programaci&amp;oacute;n &lt;a href="http://foldoc.doc.ic.ac.uk/foldoc/foldoc.cgi?functional+programming" lang="en"&gt;declarativa y funcional&lt;/a&gt;).
"&lt;a href="http://www.ccs.neu.edu/home/dorai/schelog/schelog.html" lang="en"&gt;Programming
in Schelog&lt;/a&gt;" es una introducci&amp;oacute;n en la que el mencionado &lt;a href="http://www.ccs.neu.edu/~dorai/" lang="en"&gt;D.
Sitaram&lt;/a&gt; aborda la sintaxis y la programaci&amp;oacute;n mediante la implementaci&amp;oacute;n
que venimos comentando. Por otra parte, y de este mismo autor, "&lt;a href="http://www.ccs.neu.edu/home/dorai/t-y-scheme/t-y-scheme.html" lang="en"&gt;Teach
Yourself Scheme in Fixnum Days&lt;/a&gt;" es una gu&amp;iacute;a r&amp;aacute;pida e
introducci&amp;oacute;n al lenguaje Scheme.&lt;/p&gt;

&lt;p&gt;Finalmente, recomendar la lectura de una introducci&amp;oacute;n de car&amp;aacute;cter
general, referida a los or&amp;iacute;genes del lenguaje Scheme: "&lt;a href="http://www.lania.mx/biblioteca/newsletters/1996-primavera-verano/art3.html"&gt;Scheme:
lo peque&amp;ntilde;o es bello - Un lenguaje de programaci&amp;oacute;n ideal para
la ense&amp;ntilde;anza&lt;/a&gt;" (&lt;a href="http://delta.cs.cinvestav.mx/~ccoello/page.html"&gt;Carlos
Coello&lt;/a&gt;). Este art&amp;iacute;culo fue &lt;a href="http://delta.cs.cinvestav.mx/~ccoello/scheme.zip"&gt;publicado
posteriormente&lt;/a&gt; (&lt;a href="http://www.cs.wisc.edu/~ghost/" lang="en"&gt;formato &lt;acronym title="PostScript" lang="en"&gt;PS&lt;/acronym&gt;&lt;/a&gt;
comprimido en un .zip) por el autor, con id&amp;eacute;ntico t&amp;iacute;tulo
y m&amp;aacute;s extensi&amp;oacute;n y profundidad, en la revista &lt;em&gt;Soluciones
Avanzadas&lt;/em&gt; (n&amp;uacute;meros 39 y 43; actualmente esta publicaci&amp;oacute;n
parece no estar disponible en l&amp;iacute;nea, si bien en &lt;a href="http://web.archive.org/" lang="en"&gt;Internet
Archive&lt;/a&gt; es posible localizar &lt;a href="http://web.archive.org/web/*/http://www.fciencias.unam.mx/revista/soluciones.html" lang="en"&gt;varias
copias&lt;/a&gt;). Esta nueva versi&amp;oacute;n ampliada de "Scheme: lo peque&amp;ntilde;o
es bello..." a&amp;ntilde;ade, a la explicaci&amp;oacute;n de la parte hist&amp;oacute;rica
y de desarrollo del lenguaje Scheme, una introducci&amp;oacute;n, con ejemplos,
a sus caracter&amp;iacute;sticas esenciales y sintaxis de uso, principales
versiones y extensiones, as&amp;iacute; como una consideraci&amp;oacute;n final
en torno a su utilidad en la investigaci&amp;oacute;n y ense&amp;ntilde;anza en
el campo de los lenguajes de programaci&amp;oacute;n ("Scheme como un instrumento para la ense&amp;ntilde;anza").&lt;/p&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5454882-108135621701128394?l=programacionlogica.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5454882/posts/default/108135621701128394'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5454882/posts/default/108135621701128394'/><link rel='alternate' type='text/html' href='http://programacionlogica.blogspot.com/2004/04/prolog-scheme-schelog.html' title='Prolog + Scheme = Schelog'/><author><name>etxe</name><uri>http://www.blogger.com/profile/10987668917577281087</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author></entry><entry><id>tag:blogger.com,1999:blog-5454882.post-108086277849012996</id><published>2004-04-02T01:39:00.000+02:00</published><updated>2004-04-07T00:41:23.123+02:00</updated><title type='text'>Lisp y Java -artículo-</title><content type='html'>&lt;p&gt;No todo va a ser Prolog en el &amp;aacute;mbito de la programaci&amp;oacute;n
declarativa... A trav&amp;eacute;s de &lt;a href="http://lemonodor.com/archives/000752.html" lang="en"&gt;Lemonodor&lt;/a&gt;,
&lt;em&gt;weblog&lt;/em&gt; dedicado al lenguaje Lisp (&lt;em&gt;LISt Processing&lt;/em&gt;) y sus
tecnolog&amp;iacute;as asociadas (aunque tambi&amp;eacute;n tratan bastantes temas
relacionados con la rob&amp;oacute;tica), llegamos al art&amp;iacute;culo &lt;em&gt;&lt;a href="http://www.onjava.com/pub/a/onjava/2004/03/24/lisp.html" lang="en"&gt;Lisp
and Java&lt;/a&gt;&lt;/em&gt; (D. Milstein):&lt;/p&gt;

&lt;blockquote&gt;
"First-class &lt;a href="http://grimpeur.tamu.edu/~colin/lp/node15.html" lang="en"&gt;functions&lt;/a&gt;
are a powerful feature of the Lisp programming language. This article describes
some ways they can be used, and explores how to approximate them in Java."
&lt;/blockquote&gt;

&lt;p&gt;El lenguaje Lisp [&lt;a href="http://store.yahoo.com/paulgraham/lisp.html" lang="en"&gt;1&lt;/a&gt;]
[&lt;a href="http://www.alu.org/" lang="en"&gt;2&lt;/a&gt;] [&lt;a href="http://www.apl.jhu.edu/~hall/lisp.html" lang="en"&gt;3&lt;/a&gt;]
[&lt;a href="http://simon.incutio.com/archive/2002/09/27/functionalProgramming" lang="en"&gt;4&lt;/a&gt;]
[&lt;a href="http://en.wikipedia.org/wiki/Lisp_programming_language" lang="en"&gt;5&lt;/a&gt;],
desarrollado inicialmente a finales de los a&amp;ntilde;os 50 del siglo pasado por
&lt;a href="http://www-formal.stanford.edu/jmc/" lang="en"&gt;John McCarthy&lt;/a&gt;
(ver al respecto su ensayo &lt;em&gt;&lt;a href="http://www-formal.stanford.edu/jmc/history/lisp/lisp.html" lang="en"&gt;History
of Lisp&lt;/a&gt;&lt;/em&gt;), es sin duda uno m&amp;aacute;s conocidos y utilizados dentro
del paradigma de programaci&amp;oacute;n &lt;a href="http://foldoc.doc.ic.ac.uk/foldoc/foldoc.cgi?declarative+language" lang="en"&gt;declarativo/funcional&lt;/a&gt;,
y base para el desarrollo de otros lenguajes y dialectos similares, de caracter&amp;iacute;sticas
m&amp;aacute;s avanzadas y modernas, o simplemente orientados hacia otros ámbitos de aplicación (es el caso, por
ejemplo, del lenguaje &lt;a href="http://el.media.mit.edu/logo-foundation/" title="Logo Foundation" lang="en"&gt;Logo&lt;/a&gt;). Lisp es un lenguaje muy utilizado y extendido en el mundo anglosaj&amp;oacute;n,
espec&amp;iacute;ficamente en Estados Unidos, sobre todo mediante la implementaci&amp;oacute;n
Commom Lisp, y tradicionalmente se ha utilizado, tanto en el &amp;aacute;mbito acad&amp;eacute;mico como en el empresarial, para programar aplicaciones
orientadas a procesos de Inteligencia Artificial (&lt;acronym title="Artificial Intelligence" lang="en"&gt;AI&lt;/acronym&gt;)
-de hecho puede decirse que fue creado y desarrollado con esta finalidad, y es considerado por tanto
"el primer lenguaje de &lt;acronym title="Inteligencia Artificial"&gt;IA&lt;/acronym&gt;"-,
y &lt;a href="http://www.cogs.susx.ac.uk/lab/nlp/gazdar/nlp-in-lisp/index.html" title="NLP in Lisp" lang="en"&gt;procesamiento
del lenguaje natural&lt;/a&gt; (&lt;acronym title="Natural Language Processing" lang="en"&gt;NLP&lt;/acronym&gt;),
si bien hoy en d&amp;iacute;a es posible incluso encontrar, por poner un ejemplo
de sus m&amp;uacute;ltiples aplicaciones, &lt;a href="http://www.ai.mit.edu/projects/iiip/doc/cl-http/home-page.html" lang="Common Lisp Hypermedia Server" lang="en"&gt;servidores
&lt;em&gt;web&lt;/em&gt;&lt;/a&gt; desarrollados mediante este lenguaje de programaci&amp;oacute;n.&lt;/p&gt;

&lt;p&gt;M&amp;aacute;s informaci&amp;oacute;n sobre el lenguaje Lisp:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;a href="http://www.gigamonkeys.com/book/" lang="en"&gt;Practical Common Lisp&lt;/a&gt;
(Peter Seibel).&lt;/li&gt;

&lt;li&gt;
&lt;a href="http://www.paulgraham.com/onlisp.html" lang="en"&gt;On Lisp&lt;/a&gt; (P.
Graham).&lt;/li&gt;

&lt;li&gt;
&lt;a href="http://grimpeur.tamu.edu/~colin/lp/" lang="en"&gt;LISP Primer&lt;/a&gt;
(C. Allen, M. Dhagat; &lt;a href="http://burks.bton.ac.uk/burks/language/lisp/lprimer/lp.htm" lang="en"&gt;otra
ubicaci&amp;oacute;n&lt;/a&gt;).&lt;/li&gt;

&lt;li&gt;
&lt;a href="http://www.cliki.net/" lang="en"&gt;CLiki, the common lisp wiki&lt;/a&gt;.&lt;/li&gt;

&lt;li&gt;
&lt;a href="http://www.csc.vill.edu/~dmatusze/resources/lisp/intro_to_lisp/lisp.html" lang="en"&gt;A
Concise Introduction to LISP&lt;/a&gt; (David L. Matuszek).&lt;/li&gt;

&lt;li&gt;
&lt;a href="http://www-2.cs.cmu.edu/~dst/LispBook/index.html" lang="en"&gt;Common
Lisp: A Gentle Introduction to Symbolic Computation&lt;/a&gt; (David S. Touretzky).&lt;/li&gt;

&lt;li&gt;
&lt;a href="http://www-2.cs.cmu.edu/Groups/AI/html/cltl/cltl2.html" lang="en"&gt;Common
Lisp the Language, 2nd Edition&lt;/a&gt; (&lt;a href="http://www.supelec.fr/docs/cltl/cltl2.html" lang="en"&gt;otra
ubicaci&amp;oacute;n&lt;/a&gt;).&lt;/li&gt;

&lt;li&gt;
&lt;a href="http://www-2.cs.cmu.edu/Groups/AI/html/faqs/lang/lisp/top.html" lang="en"&gt;Lisp
FAQ&lt;/a&gt;.&lt;/li&gt;

&lt;li&gt;
&lt;a href="http://www8.informatik.uni-erlangen.de/html/lisp/histlit1.html" lang="en"&gt;Early
LISP History (1956-1959)&lt;/a&gt; / &lt;a href="http://www8.informatik.uni-erlangen.de/html/lisp/mcc91.html" lang="en"&gt;The
Influence of the Designer on the Design - J. McCarthy and LISP&lt;/a&gt; (H.
Stoyan).&lt;/li&gt;

&lt;li&gt;
&lt;a href="http://www.fast-index.com/declarative/lectures/" lang="en"&gt;Lisp
Lectures&lt;/a&gt; (N. Levine).&lt;/li&gt;

&lt;li&gt;
&lt;a href="http://cs1.cs.nyu.edu/phd_students/schwarz/NLCP/lisp.html" lang="en"&gt;LISP
Tutorial&lt;/a&gt; (M. Schwarz).&lt;/li&gt;

&lt;li&gt;
&lt;a href="http://psg.com/~dlamkins/sl/cover.html" lang="en"&gt;Successful Lisp:
How to Understand and Use Common Lisp&lt;/a&gt; (David B. Lamkins).&lt;/li&gt;

&lt;li&gt;
&lt;a href="http://cl-cookbook.sourceforge.net/" lang="en"&gt;The Common Lisp
Cookbook&lt;/a&gt;.&lt;/li&gt;

&lt;li&gt;
&lt;a href="http://www.htus.org/" lang="en"&gt;How to Use Scheme. Writing Scripts
and Programs with PLT Scheme&lt;/a&gt; (M. Felleisen &lt;em&gt;et al&lt;/em&gt;.).&lt;/li&gt;

&lt;li&gt;
&lt;a href="http://www.ccs.neu.edu/home/dorai/t-y-scheme/t-y-scheme.html" lang="en"&gt;Teach
Yourself Scheme in Fixnum Days&lt;/a&gt; (&lt;a href="http://www.ccs.neu.edu/home/dorai/" lang="en"&gt;D.
Sitaram&lt;/a&gt;).&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Para ilustrar los ejemplos, el autor de &lt;em&gt;&lt;a href="http://www.onjava.com/pub/a/onjava/2004/03/24/lisp.html" lang="en"&gt;Lisp
and Java&lt;/a&gt;&lt;/em&gt; ha utilizado un dialecto de Lisp, denominado Scheme [&lt;a href="http://swiss.csail.mit.edu/projects/scheme/" lang="en"&gt;1&lt;/a&gt;]
[&lt;a href="http://www.schemers.org/" lang="en"&gt;2&lt;/a&gt;].&lt;/p&gt;

&lt;p&gt;El art&amp;iacute;culo est&amp;aacute; publicado en &lt;a href="http://www.onjava.com/" lang="en"&gt;ONJava.com&lt;/a&gt;
(de cuya portada principal hemos tomado la breve sinopsis en ingl&amp;eacute;s),
estupenda fuente de referencia en la que encontrar buenos art&amp;iacute;culos
y otras referencias relativas al lenguaje Java y sus m&amp;uacute;ltiples aplicaciones.
Por otra parte, &lt;a href="http://www.onjava.com/" lang="en"&gt;ONJava.com&lt;/a&gt;
es una publicaci&amp;oacute;n electr&amp;oacute;nica englobada bajo el proyecto
corporativo &lt;a href="http://www.oreilly.com/" lang="en"&gt;O'Reilly.com&lt;/a&gt;
de Tim O'Reilly, &lt;a href="http://www.oreilly.com/oreilly/about.html" lang="en"&gt;dedicado&lt;/a&gt;
a la publicaci&amp;oacute;n de libros, impartici&amp;oacute;n de conferencias y
cursos, y creaci&amp;oacute;n de sitios &lt;em&gt;web&lt;/em&gt; (&lt;em&gt;Resource Centers&lt;/em&gt;)
y publicaciones &lt;em&gt;on-line&lt;/em&gt; (&lt;em&gt;Online Publications&lt;/em&gt;: &lt;a href="http://www.xml.com/" lang="en"&gt;XML.com&lt;/a&gt;,
&lt;a href="http://www.perl.com/" lang="en"&gt;Perl.com&lt;/a&gt;, etc.) sobre tecnolog&amp;iacute;as
inform&amp;aacute;ticas y lenguajes de programaci&amp;oacute;n (&lt;a href="http://perl.oreilly.com/" lang="en"&gt;Perl&lt;/a&gt;,
&lt;a href="http://python.oreilly.com/" lang="en"&gt;Python&lt;/a&gt;, &lt;a href="http://cprog.oreilly.com/" lang="en"&gt;C/C++&lt;/a&gt;, &lt;a href="http://xml.oreilly.com/" lang="en"&gt;&lt;acronym title="Extensible Markup Language" lang="en"&gt;XML&lt;/acronym&gt;&lt;/a&gt;,
&lt;a href="http://dotnet.oreilly.com/" lang="en"&gt;.NET&lt;/a&gt;, etc.), con una
clara orientaci&amp;oacute;n hacia aquellas tecnolog&amp;iacute;as relativas al
desarrollo de aplicaciones bajo entornos &lt;em&gt;web&lt;/em&gt;.&lt;/p&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5454882-108086277849012996?l=programacionlogica.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://programacionlogica.blogspot.com/feeds/108086277849012996/comments/default' title='Enviar comentarios'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=5454882&amp;postID=108086277849012996&amp;isPopup=true' title='0 comentarios'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5454882/posts/default/108086277849012996'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5454882/posts/default/108086277849012996'/><link rel='alternate' type='text/html' href='http://programacionlogica.blogspot.com/2004/04/lisp-y-java-artculo.html' title='Lisp y Java -art&amp;iacute;culo-'/><author><name>etxe</name><uri>http://www.blogger.com/profile/10987668917577281087</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5454882.post-108064695478923719</id><published>2004-03-30T13:42:00.000+02:00</published><updated>2004-03-31T11:37:02.296+02:00</updated><title type='text'>A propósito de la fórmula de Kowalski</title><content type='html'>&lt;p&gt;Siguiendo el estilo del que hasta hace poco tiempo era el dise&amp;ntilde;o
de mi &lt;a href="http://vistoyleido.blogspot.com/"&gt;bit&amp;aacute;cora hermana&lt;/a&gt;,
hace poco m&amp;aacute;s de un mes se cambi&amp;oacute; el aspecto de &lt;a href="http://programacionlogica.blogspot.com/" class="interno"&gt;ProLog IR&lt;/a&gt;,
si bien, por diversas circunstancias -las mismas que durante este tiempo
han mantenido en "silencio" este espacio de publicaci&amp;oacute;n- hasta este
momento no se ha hecho una referencia expl&amp;iacute;cita a esta circunstancia.
B&amp;aacute;sicamente el trabajo de redise&amp;ntilde;o ha consistido en eliminar
las tablas como sistema de maquetaci&amp;oacute;n, y realizar &amp;eacute;sta &amp;uacute;ltima
enteramente con &lt;acronym title="Cascading Style Sheets" lang="en"&gt;CSS&lt;/acronym&gt;.
La ventaja de tener la p&amp;aacute;gina estructurada de esta forma, al margen
de &lt;a href="http://validator.w3.org/" lang="en"&gt;cumplir&lt;/a&gt; m&amp;aacute;s
o menos con los &lt;a href="http://www.w3.org/" lang="en"&gt;est&amp;aacute;ndares&lt;/a&gt;
existentes al efecto, es que se pueden separar completamente los bloques
de contenido de la presentaci&amp;oacute;n en s&amp;iacute;, y de esta manera introducir
m&amp;aacute;s f&amp;aacute;cilmente futuros cambios de estilo y aspecto. De hecho
el estilo que se puede ver en estos momentos pretendo que sea provisional,
ya que entre otras cuestiones, y en su actual configuraci&amp;oacute;n, puede
presentar algunos problemas de visualizaci&amp;oacute;n en Internet Explorer
(&amp;iexcl;como no!), seg&amp;uacute;n sea la resoluci&amp;oacute;n de pantalla utilizada.&lt;/p&gt;

&lt;p&gt;Tambi&amp;eacute;n tengo en mente un futuro &lt;a href="http://prolog.f2o.org/"&gt;cambio
de hospedaje&lt;/a&gt; y de sistema de publicaci&amp;oacute;n (&amp;iquest;&lt;a href="http://wordpress.org/" lang="en"&gt;WordPress&lt;/a&gt;?)
a corto plazo, si el tiempo y las ganas lo permiten... En cualquier caso,
lo importante, y de lo que se trata, cuestiones de estilo al margen, es
ofrecer contenidos interesantes, y en este sentido espero "ponerme las
pilas" en lo sucesivo, ya que &amp;uacute;ltimamente he dilatado en exceso
los intervalos de publicaci&amp;oacute;n, a&amp;uacute;n a pesar de que las estad&amp;iacute;sticas
me demuestran que, m&amp;aacute;s que usuarios asiduos y fieles, el perfil
de los visitantes de este sitio se corresponde con personas que acceden,
de forma significativamente mayoritaria,
&lt;a href="http://www.nedstatbasic.net/s?tab=1&amp;link=4&amp;id=2373444"&gt;a
trav&amp;eacute;s de buscadores&lt;/a&gt; (Google especialmente, como no pod&amp;iacute;a
ser de otra forma, al menos hoy por hoy) y metabuscadores, y de las correspondientes
ecuaciones de b&amp;uacute;squeda -algunas muy interesantes y sorprendentes,
por cierto- cuyo an&amp;aacute;lisis permite al tiempo establecer si existe
una adecuada correspondencia entre los temas com&amp;uacute;nmente tratados
y las b&amp;uacute;squedas equivalentes a esos temas por parte de los usuarios.&lt;/p&gt;

&lt;p&gt;Bien, ahora toca aclarar el sentido y significado de la cita que de
momento comparte protagonismo con la cabecera de la p&amp;aacute;gina: &amp;laquo;Algorithm
= Logic + Control&amp;raquo;. Esta "ecuaci&amp;oacute;n", de car&amp;aacute;cter muy
general, ha hecho fortuna a la hora explicitar, de forma gr&amp;aacute;fica
y condensada, los principios y fundamentos impl&amp;iacute;citos en el paradigma
de la programaci&amp;oacute;n l&amp;oacute;gica (asoci&amp;aacute;ndose este esquema,
de modo particular, con la programaci&amp;oacute;n l&amp;oacute;gica con restricciones),
y en general en el an&amp;aacute;lisis de los programas inform&amp;aacute;ticos,
y no es sino el t&amp;iacute;tulo de un art&amp;iacute;culo en el que el autor,
&lt;a href="http://www-lp.doc.ic.ac.uk/UserPages/staff/rak/rak.html" lang="en"&gt;Robert
Kowalski&lt;/a&gt;, explica su noci&amp;oacute;n de la programaci&amp;oacute;n declarativa
en general y l&amp;oacute;gica en particular, de desarrollo incipiente por
los a&amp;ntilde;os en que fue publicado. La rese&amp;ntilde;a completa de dicho
art&amp;iacute;culo es la siguiente:&lt;/p&gt;

&lt;blockquote&gt;
Kowalski, R. (1979), "Algorithm = logic + control", &lt;em&gt;Communications
of the &lt;acronym title="Association for Computing Machinery" lang="en"&gt;ACM&lt;/acronym&gt;&lt;/em&gt;,
22 (7), pp. 424-436.
&lt;div class="cita"&gt;[&lt;a href="http://portal.acm.org/citation.cfm?doid=359131.359136" lang="en"&gt;referencia
completa&lt;/a&gt;]&lt;/div&gt;
&lt;/blockquote&gt;

&lt;p&gt;El texto completo, en formato &lt;acronym title="Portable Document Format" lang="en"&gt;PDF&lt;/acronym&gt;,
est&amp;aacute; &lt;a href="http://portal.acm.org/citation.cfm?doid=359131.359136" lang="en"&gt;disponible&lt;/a&gt;
en la &lt;a href="http://portal.acm.org/dl.cfm" lang="en"&gt;biblioteca digital&lt;/a&gt;
de la &lt;a href="http://www.acm.org/" lang="en"&gt;&lt;acronym title="Association for Computing Machinery" lang="en"&gt;ACM&lt;/acronym&gt;&lt;/a&gt;,
si bien el acceso est&amp;aacute; limitado a suscriptores de pago. S&amp;iacute;
es de acceso libre la rese&amp;ntilde;a, el resumen, y la bibliograf&amp;iacute;a
que acompa&amp;ntilde;an al texto original. El art&amp;iacute;culo fue republicado
posteriormente dentro de la obra &lt;em&gt;Programming Languages: A Grand Tour&lt;/em&gt;
(3&amp;ordf; edici&amp;oacute;n, E. Horwitz ed., Computer Science Press: Maryland,
1986, pp. 480-492).&lt;/p&gt;

&lt;p&gt;Al formular esta expresi&amp;oacute;n, que viene a simbolizar, en forma
de "ecuaci&amp;oacute;n", el paradigma de la programaci&amp;oacute;n l&amp;oacute;gica,
Kowalski expresaba que en cualquier programa inform&amp;aacute;tico podemos
distinguir dos aspectos constitutivos esenciales: lo que queremos que el
programa haga (o parte l&amp;oacute;gica del programa, el &lt;em&gt;qu&amp;eacute;&lt;/em&gt;)
y la forma en que dicho programa debe resolver ese objetivo (el
&lt;em&gt;c&amp;oacute;mo&lt;/em&gt;, la parte de control). En este sentido, el paradigma de la programaci&amp;oacute;n
l&amp;oacute;gica, y en general el paradigma de la &lt;a href="http://foldoc.doc.ic.ac.uk/foldoc/foldoc.cgi?declarative+language" lang="en"&gt;programaci&amp;oacute;n
declarativa&lt;/a&gt; (que engloba por una parte la &lt;a href="http://www.cs.nott.ac.uk/~gmh//faq.html" lang="en"&gt;programaci&amp;oacute;n
funcional&lt;/a&gt; -&lt;a href="http://www.haskell.org/" title="The Haskell Home Page" lang="en"&gt;Haskell&lt;/a&gt;,
&lt;a href="http://www-formal.stanford.edu/jmc/history/lisp/lisp.html" title="History of Lisp" lang="en"&gt;Lisp&lt;/a&gt;,
etc.- y por otra la programaci&amp;oacute;n l&amp;oacute;gica), claramente se centra
m&amp;aacute;s en facilitar &lt;em&gt;qu&amp;eacute;&lt;/em&gt; queremos que haga el programa
-el objetivo prefijado de antemano-, que en &lt;em&gt;c&amp;oacute;mo&lt;/em&gt; lo debe
hacer para alcanzarlo, lo cual no excluye la existencia de poderosas estructuras
de control como son las que vienen representadas, en el lenguaje Prolog,
por los mecanismos de &lt;em&gt;instanciaci&amp;oacute;n&lt;/em&gt; de variables, &lt;em&gt;verificaci&amp;oacute;n&lt;/em&gt;
y &lt;em&gt;unificaci&amp;oacute;n&lt;/em&gt; de estructuras, &lt;em&gt;recursividad&lt;/em&gt; y &lt;em&gt;backtracking&lt;/em&gt;
o retroceso, por citar los m&amp;aacute;s importantes.&lt;/p&gt;

&lt;p&gt;En el cap&amp;iacute;tulo "La caja de Pandora A = L + C y sus variantes",
p&amp;aacute;gina 84 y siguientes, de los apuntes de &lt;a href="http://polaris.lcc.uma.es/~blas/"&gt;B.
C. Ruiz Jim&amp;eacute;nez&lt;/a&gt;, &lt;em&gt;&lt;a href="http://polaris.lcc.uma.es/~blas/apuntes/PDAv/declaII.pdf"&gt;Notas
para la asignatura Programaci&amp;oacute;n Declarativa Avanzada&lt;/a&gt;&lt;/em&gt; (&lt;a href="http://polaris.lcc.uma.es/"&gt;Universidad
de M&amp;aacute;laga&lt;/a&gt;, documento en formato &lt;acronym title="Portable Document Format" lang="en"&gt;PDF&lt;/acronym&gt;)
se ofrece una buena explicaci&amp;oacute;n del significado e implicaciones
de la f&amp;oacute;rmula de Kowalski. Por cierto, en este mismo documento se
puede localizar una exposici&amp;oacute;n muy clara de la sinergia y simbiosis
que determinados proyectos aportan entre el paradigma de programaci&amp;oacute;n
representado en parte por el lenguaje Prolog, y otra serie de enfoques
(funcional, orientado a objetos, etc.), tal y como mencion&amp;aacute;bamos
en la anterior anotaci&amp;oacute;n ("&lt;a href="http://programacionlogica.blogspot.com/2004_03_01_programacionlogica_archive.html#108055799008550619" class="interno"&gt;&amp;iquest;Programaci&amp;oacute;n
l&amp;oacute;gica = Prolog?&lt;/a&gt;") a prop&amp;oacute;sito de una referencia publicada
en &lt;a href="http://lambda.weblogs.com/2004/03/27" lang="en"&gt;Lambda the
Ultimate&lt;/a&gt;. Ver al respecto los apartados "Programaci&amp;oacute;n L&amp;oacute;gica"
e "Integraci&amp;oacute;n de los paradigmas l&amp;oacute;gico y funcional".&lt;/p&gt;

&lt;p&gt;Retomando la explicaci&amp;oacute;n de la ecuaci&amp;oacute;n de Kowalski, interrumpida
por la referencia del p&amp;aacute;rrafo anterior, podemos decir que en Prolog,
y dadas las caracter&amp;iacute;sticas de este lenguaje de programaci&amp;oacute;n,
el usuario se preocupa fundamentalmente de implementar la parte "l&amp;oacute;gica"
de los programas (constituida esencialmente por la base de conocimiento,
las reglas de inferencia, y las consultas), ya que los mecanismos de control
que cit&amp;aacute;bamos anteriormente, aquellos que determinan
&lt;em&gt;c&amp;oacute;mo&lt;/em&gt; el programa resolver&amp;aacute; determinado objetivo, se implementan mediante
una serie de algoritmos y mecanismos que funcionan a nivel interno, cuyas
caracter&amp;iacute;sticas &amp;uacute;ltimas depender&amp;aacute;n del int&amp;eacute;rprete
utilizado (recordemos que Prolog es un lenguaje interpretado, si bien algunas
implementaciones permiten compilar previamente determinadas instrucciones).&lt;/p&gt;

&lt;p&gt;Surge en este punto, al asociar &lt;em&gt;l&amp;oacute;gica&lt;/em&gt; con &lt;em&gt;control&lt;/em&gt;,
el planteamiento de la programaci&amp;oacute;n con restricciones o &lt;em&gt;Constraint
Programming&lt;/em&gt; a fin de aportar mayor control de evaluaci&amp;oacute;n o mecanismos
de control, al esquema de la programaci&amp;oacute;n l&amp;oacute;gica y as&amp;iacute;
hacer plenamente v&amp;aacute;lida la m&amp;aacute;xima de Kowalski, d&amp;aacute;ndose
lugar de esta forma a la programaci&amp;oacute;n l&amp;oacute;gica con restricciones o
&lt;em&gt;Constraint Logic Programming&lt;/em&gt; (CLP). Algunos documentos sobre la
programaci&amp;oacute;n con restricciones en general:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;a href="http://www.icparc.ic.ac.uk/eclipse/reports/handbook/handbook.html" lang="en"&gt;Constraint
Programming&lt;/a&gt; (M. Wallace; tambi&amp;eacute;n en &lt;a href="http://www.icparc.ic.ac.uk/eclipse/reports/handbook.ps.gz"&gt;formato &lt;acronym title="PostScript" lang="en"&gt;PS&lt;/acronym&gt;&lt;/a&gt;;
ver especialmente el apartado &lt;em&gt;&lt;a href="http://www.icparc.ic.ac.uk/eclipse/reports/handbook/node4.html" lang="en"&gt;2.1.1.
Algorithm = Logic + Control&lt;/a&gt;&lt;/em&gt;).&lt;/li&gt;

&lt;li&gt;
&lt;a href="http://web.cs.ualberta.ca/~you/courses/325/Mynotes/Log/clp-intro.html" lang="en"&gt;Constraint
Programming&lt;/a&gt; (notas de curso del profesor &lt;a href="http://web.cs.ualberta.ca/~you/" lang="en"&gt;Jia-Huai
You&lt;/a&gt;).&lt;/li&gt;

&lt;li&gt;
&lt;a href="http://ktiml.mff.cuni.cz/~bartak/constraints/index.html" title="On-line guide to Constraint Programming" lang="en"&gt;On-line
guide to Constraint Programming&lt;/a&gt; (R. Bart&amp;aacute;k, tambi&amp;eacute;n autor
de &lt;a href="http://ktiml.mff.cuni.cz/~bartak/prolog/index.html" lang="en"&gt;Guide
to Prolog Programming&lt;/a&gt;).&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Sobre la programaci&amp;oacute;n l&amp;oacute;gica con restricciones en particular
ver por ejemplo los siguientes textos:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;a href="http://www.clip.dia.fi.upm.es/~vocal/public_info/index.html" lang="en"&gt;An
Introductory Course on Constraint Logic Programming&lt;/a&gt; (M. Carro &lt;em&gt;et
al.&lt;/em&gt;).&lt;/li&gt;

&lt;li&gt;
&lt;a href="http://www.icparc.ic.ac.uk/eclipse/reports/ECRC-93-05.ps.gz"&gt;Constraint
Logic Programming - An Informal Introduction&lt;/a&gt; (T. Fr&amp;uuml;hwirth &lt;em&gt;et
al.&lt;/em&gt;; formato &lt;acronym title="PostScript" lang="en"&gt;PS&lt;/acronym&gt;).&lt;/li&gt;

&lt;li&gt;
&lt;a href="http://www-2.cs.cmu.edu/afs/cs/project/ai-repository/ai/lang/prolog/doc/survey/clp.ps" lang="en"&gt;Constraint
Logic Programming: A Survey&lt;/a&gt; (J. Jaffar, M. J. Mayer; formato &lt;acronym title="PostScript" lang="en"&gt;PS&lt;/acronym&gt;).&lt;/li&gt;

&lt;li&gt;
&lt;a href="http://www.byte.com/art/9502/sec13/art3.htm" lang="en"&gt;Constraint
Logic Programming&lt;/a&gt; (D. Pountain en &lt;a href="http://www.byte.com/" lang="en"&gt;Byte.com&lt;/a&gt;).&lt;/li&gt;

&lt;li&gt;
&lt;a href="http://www2.ags.uni-sb.de/net-www/Forum/pandora.pdf" lang="en"&gt;Assessment
of some issues in Computational Logic theory and program development or
On a Pandora box called 'Algorithm = Logic + Control'&lt;/a&gt; (; en formato &lt;acronym title="Portable Document Format" lang="en"&gt;PDF&lt;/acronym&gt;;
tambi&amp;eacute;n en &lt;a href="http://www2.ags.uni-sb.de/net-www/Forum/pandora.ps" lang="en"&gt;formato &lt;acronym title="PostScript" lang="en"&gt;PS&lt;/acronym&gt;&lt;/a&gt;).&lt;/li&gt;

&lt;li&gt;
&lt;a href="http://talika.eii.us.es/pablo/pd/"&gt;La Programaci&amp;oacute;n L&amp;oacute;gica
con Restricciones&lt;/a&gt; (P. Fern&amp;aacute;ndez Montes).&lt;/li&gt;

&lt;li&gt;
&lt;a href="http://polaris.lcc.uma.es/~blas/apuntes/PDAv/T2000-2001\G15\programacionLCR.pdf"&gt;Programaci&amp;oacute;n
L&amp;oacute;gica Concurrente y Programaci&amp;oacute;n con Restricciones&lt;/a&gt; (C.
J. G&amp;aacute;lvez &lt;em&gt;et al.&lt;/em&gt;; formato &lt;acronym title="Portable Document Format" lang="en"&gt;PDF&lt;/acronym&gt;).&lt;/li&gt;

&lt;li&gt;
&lt;a href="http://www.lambda-systems.com/prolog/constraints.htm" lang="fr"&gt;La
Programmation Logique et par Contraintes&lt;/a&gt; (L. Jean-Michel en &lt;a href="http://www.lambda-systems.com/accueil.html" lang="fr"&gt;Lambda
Systems&lt;/a&gt;).&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Algunas opiniones e interpretaciones al respecto de la "f&amp;oacute;rmula"
que venimos comentando:&lt;/p&gt;

&lt;blockquote&gt;
"The basic property of a declarative programming language is
that a program is a theory in some suitable logic. This property immediately
gives a precise meaning to programs written in the language. From a programmers
point of the basic property is that programming is lifted to a higher level
of abstraction. At this higher level of abstraction the programmer can
concentrate on stating &lt;em&gt;what&lt;/em&gt; is to be computed, not necessarily
&lt;em&gt;how&lt;/em&gt; it is to be computed. In Kowalski's terms where algorithm = logic + control,
the programmer gives the logic but not necessarily the control."
&lt;div class="cita"&gt;&lt;a href="http://www.cs.chalmers.se/~oloft/" lang="en"&gt;Olof Torgersson&lt;/a&gt;
en &lt;em&gt;&lt;a href="http://www.cs.chalmers.se/pub/users/oloft/Papers/wm96/wm96.html" lang="en"&gt;A
Note on Declarative Programming Paradigms and the Future of Definitional
Programming&lt;/a&gt;&lt;/em&gt; (el texto en &lt;acronym title="HyperText Markup Language" lang="en"&gt;HTML&lt;/acronym&gt;
es una versi&amp;oacute;n reducida del original en &lt;a href="http://www.icparc.ic.ac.uk/eclipse/reports/handbook.ps.gz"&gt;formato &lt;acronym title="PostScript" lang="en"&gt;PS&lt;/acronym&gt;&lt;/a&gt;)&lt;/div&gt;
&lt;/blockquote&gt;

&lt;blockquote&gt;
"The formula isn't precise, and it won't be precise until someone proposes
a precise and generally accepted notion of how control is to be added to
an expression of the logic of a program. Nevertheless, the idea is attractive,
and I believe it can be made to work for some interesting class of programs.
It is analogous to my comparison of epistemology and heuristics or Chomsky's
competence and performance."
&lt;div class="cita"&gt;&lt;a href="http://www-formal.stanford.edu/jmc/" lang="en"&gt;John McCarthy&lt;/a&gt;
en &lt;em&gt;&lt;a href="http://www-formal.stanford.edu/jmc/coloring.html" lang="en"&gt;Coloring
Maps and the Kowalski Doctrine&lt;/a&gt;&lt;/em&gt;&lt;/div&gt;
&lt;/blockquote&gt;

&lt;p&gt;En cualquier caso se ofrece una explicaci&amp;oacute;n bastante detallada de
la expresi&amp;oacute;n "Algorithm = Logic + Control",
y su significado en relaci&amp;oacute;n con la programaci&amp;oacute;n l&amp;oacute;gica,
en otro texto del propio Kowalski, &lt;em&gt;Logic for Problem Solving&lt;/em&gt; (North-Holland
Elsevier, 1979), concretamente en el cap&amp;iacute;tulo 5, &lt;em&gt;&lt;a href="http://www-lp.doc.ic.ac.uk/UserPages/staff/rak/papers/Chapter5.pdf"&gt;The
Procedural Interpretation of Horn Clauses&lt;/a&gt;&lt;/em&gt; (en formato &lt;acronym title="Portable Document Format" lang="en"&gt;PDF&lt;/acronym&gt;;
p&amp;aacute;gina 125 y siguientes, aunque en realidad el cap&amp;iacute;tulo entero
versa sobre esta cuesti&amp;oacute;n). Los cap&amp;iacute;tulos de este libro,
de nivel muy asequible, y a texto completo, est&amp;aacute;n disponibles en formato &lt;acronym title="Portable Document Format" lang="en"&gt;PDF&lt;/acronym&gt;,
en la &lt;a href="http://www-lp.doc.ic.ac.uk/UserPages/staff/rak/rak.html" lang="en"&gt;p&amp;aacute;gina
personal&lt;/a&gt; de R. Kowalski, en la que adem&amp;aacute;s se encuentra
una selecci&amp;oacute;n de su m&amp;aacute;s reciente producci&amp;oacute;n bibliogr&amp;aacute;fica,
as&amp;iacute; como los borradores de los cap&amp;iacute;tulos preliminares del nuevo libro que
est&amp;aacute; preparando, &lt;em&gt;How to be Artificially Intelligent - the Logical
Way&lt;/em&gt;, en el que se abordan los principios fundamentales de la l&amp;oacute;gica
computacional, y su aplicaci&amp;oacute;n a los problemas de la vida cotidiana.&lt;/p&gt;

&lt;p&gt;Finalizaremos resaltando que Kowalski es, junto con &lt;a href="http://www.lim.univ-mrs.fr/~colmer/"&gt;Alain
Colmerauer&lt;/a&gt;, una de las figuras fundamentales en la creaci&amp;oacute;n
y desarrollo de la programaci&amp;oacute;n l&amp;oacute;gica en general y del lenguaje
Prolog en particular. Colmerauer, que desde finales de los a&amp;ntilde;os
60 del siglo pasado ven&amp;iacute;a trabajando en el tratamiento y procesamiento
del lenguaje natural mediante la aplicaci&amp;oacute;n de la l&amp;oacute;gica
computacional, toma contacto con Kowalski en 1971 al interesarse por sus
trabajos en relaci&amp;oacute;n con la demostraci&amp;oacute;n autom&amp;aacute;tica
de teoremas (&lt;em&gt;theorem proving&lt;/em&gt;) y el &lt;a href="http://domino.mpi-sb.mpg.de/internet/reports.nsf/NumberView/1997-2-005" lang="en"&gt;m&amp;eacute;todo
de resoluci&amp;oacute;n&lt;/a&gt; SL (&lt;em&gt;SL-resolution&lt;/em&gt;), y fruto de esta colaboraci&amp;oacute;n
se produce el primer desarrollo efectivo del lenguaje de programaci&amp;oacute;n
l&amp;oacute;gica Prolog. Todo este proceso, junto con otras notas autobiogr&amp;aacute;ficas,
es explicado brevemente por el mismo Kowalski en el texto
&lt;em&gt;&lt;a href="http://www-lp.doc.ic.ac.uk/UserPages/staff/rak/history.html" lang="en"&gt;A
Short Story of My Life and Work&lt;/a&gt;&lt;/em&gt;.&lt;/p&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5454882-108064695478923719?l=programacionlogica.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://programacionlogica.blogspot.com/feeds/108064695478923719/comments/default' title='Enviar comentarios'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=5454882&amp;postID=108064695478923719&amp;isPopup=true' title='1 comentarios'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5454882/posts/default/108064695478923719'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5454882/posts/default/108064695478923719'/><link rel='alternate' type='text/html' href='http://programacionlogica.blogspot.com/2004/03/proprmula-de-kowalski.html' title='A prop&amp;oacute;sito de la f&amp;oacute;rmula de Kowalski'/><author><name>etxe</name><uri>http://www.blogger.com/profile/10987668917577281087</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5454882.post-108055799008550619</id><published>2004-03-29T12:59:00.000+02:00</published><updated>2004-03-30T01:56:24.140+02:00</updated><title type='text'>¿Programación lógica = Prolog?</title><content type='html'>&lt;p&gt;La &lt;a href="http://lambda.weblogs.com/2004/03/27" lang="en"&gt;referencia&lt;/a&gt; al tutorial "&lt;a href="http://homepages.cwi.nl/~apt/ps/lp00.ps"&gt;The
Logic Programming Paradigm and Prolog&lt;/a&gt;" de &lt;a href="http://homepages.cwi.nl/~apt/" lang="en"&gt;K.
R. Apt&lt;/a&gt; (Universidad de Amsterdam, documento en formato &lt;acronym title="PostScript" lang="en"&gt;PS&lt;/acronym&gt;;
realmente se trata del cap&amp;iacute;tulo 15 del libro "&lt;a href="http://www.amazon.com/exec/obidos/tg/detail/-/0521780985/qid=1039677031/sr=8-1/ref=sr_8_1/002-1691379-1817626?v=glance&amp;s=books&amp;n=507846" lang="en"&gt;Concepts
in Programming Languages&lt;/a&gt;"), est&amp;aacute; suscitando en &lt;a href="http://lambda.weblogs.com/" lang="en"&gt;Lambda
the Ultimate&lt;/a&gt; interesantes comentarios que conviene no perderse por
parte de las personas interesadas en este lenguaje de programaci&amp;oacute;n,
y en la programaci&amp;oacute;n l&amp;oacute;gica en general. As&amp;iacute; por ejemplo,
&lt;a href="http://www.info.ucl.ac.be/people/cvvanroy.html" lang="en"&gt;Peter
Van Roy&lt;/a&gt;, de la Universidad Cat&amp;oacute;lica de Lovaina (B&amp;eacute;lgica),
destacado investigador de implementaciones de lenguajes de programaci&amp;oacute;n en los dominios de la
programaci&amp;oacute;n declarativa, l&amp;oacute;gica, y con restricciones, entre otros,
&lt;a href="http://lambda.weblogs.com/discuss/msgReader$11662?y=2004&amp;m=3&amp;d=29" lang="en"&gt;critica&lt;/a&gt; -en una clara referencia al propio &lt;a href="http://homepages.cwi.nl/~apt/" lang="en"&gt;Apt&lt;/a&gt;-
el, en su opini&amp;oacute;n, excesivo "ensimismamiento" de algunos programadores...&lt;/p&gt;

&lt;blockquote&gt;
"[...] There is a certain class of logic programmers who choose
to ignore anything that does not fit into the cosy little world of Prolog-style logic programming."
&lt;div class="cita"&gt;[&lt;a href="http://lambda.weblogs.com/discuss/msgReader$11662?y=2004&amp;m=3&amp;d=29" lang="en"&gt;Fuente&lt;/a&gt;]&lt;/div&gt;
&lt;/blockquote&gt;

&lt;p&gt;...interesados casi en exclusiva en el paradigma de la programaci&amp;oacute;n
l&amp;oacute;gica cuando &amp;eacute;ste se circunscribe a Prolog y otros lenguajes
muy similares (de tal forma que llegan a asumir impl&amp;iacute;citamente la
ecuaci&amp;oacute;n &lt;em&gt;programaci&amp;oacute;n l&amp;oacute;gica&lt;/em&gt; = &lt;em&gt;Prolog&lt;/em&gt;),
sin tener en consideraci&amp;oacute;n otras l&amp;iacute;neas de desarrollo e investigaci&amp;oacute;n
que, tomando como base los fundamentos y aportaciones de dicho paradigma,
tratan de complementar las carencias y limitaciones del lenguaje Prolog
"puro" a la hora de representar y resolver ciertos problemas y planteamientos
computacionales. Como ejemplo de las mencionadas l&amp;iacute;neas alternativas
de desarrollo de novedosos sistemas de programaci&amp;oacute;n, "emparentados"
o &lt;a href="http://www.cs.mu.oz.au/research/mercury/information/doc-latest/transition_guide_toc.html" lang="en"&gt;relacionados&lt;/a&gt;
hasta cierto punto con el paradigma de la programaci&amp;oacute;n l&amp;oacute;gica,
podemos citar el &lt;a href="http://www.cs.mu.oz.au/research/mercury/" lang="en"&gt;proyecto
Mercury&lt;/a&gt;, el sistema de programaci&amp;oacute;n &lt;a href="http://www.mozart-oz.org/" lang="en"&gt;Mozart&lt;/a&gt;,
el lenguaje l&amp;oacute;gico/funcional &lt;a href="http://www.informatik.uni-kiel.de/~curry/" lang="en"&gt;Curry&lt;/a&gt;, etc., etc.&lt;/p&gt;

&lt;p&gt;Muy interesante tambi&amp;eacute;n el &lt;a href="http://lambda.weblogs.com/discuss/msgReader$11676?y=2004&amp;m=3&amp;d=29" lang="en"&gt;comentario
de N. Krishnaswami&lt;/a&gt;, que en respuesta a la &lt;a href="http://lambda.weblogs.com/discuss/msgReader$11670?y=2004&amp;m=3&amp;d=29" lang="en"&gt;pregunta
de otro participante&lt;/a&gt;, explica sucintamente, con un ejemplo, en qu&amp;eacute;
consiste la programaci&amp;oacute;n con restricciones [&lt;a href="http://ktiml.mff.cuni.cz/~bartak/constraints/index.html" lang="en"&gt;1&lt;/a&gt;]
[&lt;a href="http://web.cs.ualberta.ca/~you/courses/325/Mynotes/Log/clp-intro.html" lang="en"&gt;2&lt;/a&gt;]
o &lt;em&gt;constraint programming&lt;/em&gt; (CP), que en el paradigma l&amp;oacute;gico/declarativo
da lugar a la &lt;a href="http://www.clip.dia.fi.upm.es/~vocal/public_info/" lang="en"&gt;programaci&amp;oacute;n
l&amp;oacute;gica con restricciones&lt;/a&gt; o &lt;em&gt;Constraint Logic Programming&lt;/em&gt; (CLP).&lt;/p&gt;

&lt;p&gt;La &lt;a href="http://lambda.weblogs.com/discuss/msgReader$11661" lang="en"&gt;discusi&amp;oacute;n&lt;/a&gt;, en los
t&amp;eacute;rminos que mencion&amp;aacute;bamos al comienzo de esta anotaci&amp;oacute;n, planteados por Peter Van Roy, por supuesto contin&amp;uacute;a en el hilo de la &lt;a href="http://lambda.weblogs.com/2004/03/27" lang="en"&gt;referencia&lt;/a&gt; hecha
en &lt;a href="http://lambda.weblogs.com/" lang="en"&gt;Lambda the Ultimate&lt;/a&gt;, por lo que no puedo sino recomendar la lectura de los nuevos
comentarios que se van suscitando a ra&amp;iacute;z de los anteriores.&lt;/p&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5454882-108055799008550619?l=programacionlogica.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://programacionlogica.blogspot.com/feeds/108055799008550619/comments/default' title='Enviar comentarios'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=5454882&amp;postID=108055799008550619&amp;isPopup=true' title='0 comentarios'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5454882/posts/default/108055799008550619'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5454882/posts/default/108055799008550619'/><link rel='alternate' type='text/html' href='http://programacionlogica.blogspot.com/2004/03/gica-prolog.html' title='&amp;iquest;Programaci&amp;oacute;n l&amp;oacute;gica = Prolog?'/><author><name>etxe</name><uri>http://www.blogger.com/profile/10987668917577281087</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5454882.post-107831374456052254</id><published>2004-03-03T12:35:00.000+01:00</published><updated>2004-03-03T13:03:16.763+01:00</updated><title type='text'>El "spam" como metáfora de un organismo vivo</title><content type='html'>&lt;p&gt;Interesante art&amp;iacute;culo en el portal &lt;a href="http://www.generation5.org/" lang="en"&gt;Generation5&lt;/a&gt;:
"&lt;a href="http://www.generation5.org/content/2004/KillSpam.asp" lang="en"&gt;Application
of Biological Metaphors for Identifying and Killing Spam&lt;/a&gt;" (S. Evans).
&amp;iquest;el tema? creaci&amp;oacute;n de un filtro &lt;em&gt;anti-spam&lt;/em&gt; utilizando
t&amp;eacute;cnicas de &lt;a href="http://www.dacs.dtic.mil/techs/neural/neural.title.html" lang="en"&gt;Redes
Neuronales Artificiales&lt;/a&gt; (RNA, &lt;em&gt;Artificial Neural Networks&lt;/em&gt;). Como
introducci&amp;oacute;n y argumento te&amp;oacute;rico, el autor realiza una curiosa
analog&amp;iacute;a, el fen&amp;oacute;meno del &lt;em&gt;spam&lt;/em&gt; como un ser vivo (&lt;em&gt;Spam
as a Living Organism&lt;/em&gt;), en constante evoluci&amp;oacute;n y adaptaci&amp;oacute;n
al "medio" (en este caso el correo electr&amp;oacute;nico y sus formatos y
medios de transmisi&amp;oacute;n a trav&amp;eacute;s de Internet), regido por leyes
propias de "adaptaci&amp;oacute;n natural".&lt;/p&gt;

&lt;blockquote&gt;
Complete with C# source code, this article looks at how to
identify spam using a variety of biological metaphors such as neural networks.
&lt;div class="cita"&gt;[&lt;a href="http://www.generation5.org/articles.asp?Action=List&amp;Topic=Natural%20Language%20Processing" lang="en"&gt;fuente&lt;/a&gt;]&lt;/div&gt;
&lt;/blockquote&gt;

&lt;p&gt;El art&amp;iacute;culo incluye el c&amp;oacute;digo fuente de dicho filtro, descargable
en un archivo comprimido, y desarrollado en lenguaje &lt;a href="http://www.c-sharpcorner.com/" lang="en"&gt;C#&lt;/a&gt;.
Como todas las &lt;acronym title="Redes Neuronales Artificiales"&gt;RNA&lt;/acronym&gt;,
este c&amp;oacute;digo necesita de un entrenamiento previo para funcionar correctamente,
como se explica en el texto (&lt;em&gt;Training the Networks)&lt;/em&gt;. En el apartado
de resultados, se nos informa de que, en las pruebas realizadas, se ha obtenido
un solo fallo sobre 1000 correos analizados.&lt;/p&gt;

&lt;p&gt;En otro orden de asuntos, no muy alejados en todo caso, y tambi&amp;eacute;n
en &lt;a href="http://www.generation5.org/" lang="en"&gt;Generation5&lt;/a&gt;, se
publico hace ya varias semanas otro art&amp;iacute;culo que me gustar&amp;iacute;a
destacar: "&lt;a href="http://www.generation5.org/content/2004/ai-2004.asp" lang="en"&gt;Intelligence
- Artificial and Otherwise&lt;/a&gt;" (Bruce L. Toy):&lt;/p&gt;

&lt;blockquote&gt;
This paper presents a model of artificial intelligence, based
on an &lt;acronym title="Extensible Markup Language" lang="en"&gt;XML&lt;/acronym&gt;
memory structure, a logic architecture of divisible processor functions,
and real-time sensor integration.&amp;nbsp; It incorporates learning, consciousness,
creativity, and growth in a framework that can be used to understand human
behavior, build an independent intelligent entity, or integrate a large-scale
computer network into an intelligent system.
&lt;div class="cita"&gt;[&lt;a href="http://www.generation5.org/content/2004/ai-2004.asp" lang="en"&gt;fuente&lt;/a&gt;]&lt;/div&gt;
&lt;/blockquote&gt;

&lt;p&gt;La utilizaci&amp;oacute;n de &lt;acronym title="Extensible Markup Language" lang="en"&gt;XML&lt;/acronym&gt;
para implementar la estructura de memoria del modelo de trabajo, basado
en t&amp;eacute;cnicas de &lt;acronym title="Inteligencia Artificial"&gt;IA&lt;/acronym&gt;,
que se describe en el texto, viene derivada de la intenci&amp;oacute;n de dotar
a dicho modelo de la capacidad de soportar funcionalidades &lt;em&gt;web&lt;/em&gt;.
Dado que el resumen del art&amp;iacute;culo que acabamos de reproducir es suficientemente
claro y expresivo, creo que no cabe a&amp;ntilde;adir nada m&amp;aacute;s al respecto,
salvo recomendar su lectura.&lt;/p&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5454882-107831374456052254?l=programacionlogica.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://programacionlogica.blogspot.com/feeds/107831374456052254/comments/default' title='Enviar comentarios'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=5454882&amp;postID=107831374456052254&amp;isPopup=true' title='0 comentarios'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5454882/posts/default/107831374456052254'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5454882/posts/default/107831374456052254'/><link rel='alternate' type='text/html' href='http://programacionlogica.blogspot.com/2004/03/el-spam-como-metfora-de-un-organismo.html' title='El &quot;spam&quot; como met&amp;aacute;fora de un organismo vivo'/><author><name>etxe</name><uri>http://www.blogger.com/profile/10987668917577281087</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5454882.post-107818628305027012</id><published>2004-03-02T01:11:00.000+01:00</published><updated>2004-03-02T14:38:33.233+01:00</updated><title type='text'>Una introducción a Prolog ¿para "Hackers"...?</title><content type='html'>&lt;p&gt;A trav&amp;eacute;s de &lt;a href="http://www.pjorge.com/archivo/2004-02-29/17:04:47/"&gt;pjorge&lt;/a&gt;,
me entero de la reciente publicaci&amp;oacute;n de &lt;em&gt;&lt;a href="http://www.kuro5hin.org/story/2004/2/25/124713/784" lang="en"&gt;A
Prolog Introduction for Hackers&lt;/a&gt;&lt;/em&gt;. De paso la referencia me ha servido
para conocer &lt;a href="http://www.kuro5hin.org/" lang="en"&gt;Kuro5hin.org&lt;/a&gt;:
"&lt;em&gt;...collaborative site about technology and culture, both separately
and in their interactions.&lt;/em&gt;" (&lt;a href="http://www.kuro5hin.org/?op=special;page=mission" lang="en"&gt;fuente&lt;/a&gt;).&lt;/p&gt;

&lt;p&gt;A pesar de lo que el t&amp;iacute;tulo pueda dar a entender, "&lt;em&gt;&lt;a href="http://www.kuro5hin.org/story/2004/2/25/124713/784" lang="en"&gt;A
Prolog Introduction...&lt;/a&gt;&lt;/em&gt;" es simplemente una introducci&amp;oacute;n
a este lenguaje, de car&amp;aacute;cter muy general, por lo que no acabo de entender
que pintan los "hackers" en el asunto... seguramente, como &lt;a href="http://donosti.mundurat.net/mt/2004/02/26/agradecimientos_varios.html"&gt;me apuntaba&lt;/a&gt;
Ander de &lt;a href="http://donosti.mundurat.net/mt/"&gt;Donosti.org&lt;/a&gt;,
algo &lt;a href="http://www.bitacoras.org/bit.php?id=43_0_1_0_C"&gt;de esto&lt;/a&gt;
debe de haber en tan incomprensible menci&amp;oacute;n... De car&amp;aacute;cter
general y breve, repito, aunque al tiempo de exposici&amp;oacute;n suficientemente clara
y completa, este peque&amp;ntilde;o tutorial es sin embargo bastante adecuado para quienes apenas conozcan algo (o nada) del lenguaje
Prolog y est&amp;eacute;n interesados en adquirir unas nociones b&amp;aacute;sicas. Quiz&amp;aacute;s
se hecha en falta una menci&amp;oacute;n m&amp;aacute;s extensa de procedimientos
esenciales como son el corte, la negaci&amp;oacute;n, las t&amp;eacute;cnicas recursivas
y de par&amp;aacute;metros acumuladores, la utilizaci&amp;oacute;n de predicados din&amp;aacute;micos, etc.&lt;/p&gt;

&lt;p&gt;Tambi&amp;eacute;n son de lectura muy recomendable los numerosos comentarios
suscitados a prop&amp;oacute;sito de este peque&amp;ntilde;o tutorial (m&amp;aacute;s
de 100 en el momento de escribir estas l&amp;iacute;neas), destacando especialmente,
a mi modo de ver, el que lleva por t&amp;iacute;tulo "&lt;a href="http://www.kuro5hin.org/comments/2004/2/25/124713/784/110#110" lang="en"&gt;Benefits
of the Prolog mindset...&lt;/a&gt;", pero en fin, conviene no perderse ninguno;
muchos de ellos son simples cr&amp;iacute;ticas, m&amp;aacute;s o menos fundamentadas,
en torno a los m&amp;eacute;ritos o dem&amp;eacute;ritos del lenguaje Prolog, si
bien en otros casos se trata de aportaciones adicionales, muy pertinentes,
en torno a cuestiones poco o nada tratadas en el tutorial que venimos comentando,
o que simplemente informan de recursos interesantes relacionados con dicho
lenguaje.&lt;/p&gt;

&lt;p&gt;A su vez, en los &lt;a href="http://www.pjorge.com/servlet/comentarios/2004-02-29/17:04:47/"&gt;comentarios&lt;/a&gt;
a la &lt;a href="http://www.pjorge.com/archivo/2004-02-29/17:04:47/"&gt;anotaci&amp;oacute;n
de pjorge&lt;/a&gt;, JJ da una opini&amp;oacute;n un tanto sorprendente, y a mi juicio
prejuiciosa y equivocada, acerca del lenguaje Prolog, que en cualquier
caso es contestada con gran acierto por Akuma...&lt;/p&gt;

&lt;p&gt;En &lt;a href="http://lambda.weblogs.com/" lang="en"&gt;Lambda the Ultimate&lt;/a&gt;
tambi&amp;eacute;n &lt;a href="http://lambda.weblogs.com/discuss/msgReader$11368" lang="en"&gt;hacen
referencia&lt;/a&gt; al tutorial "&lt;em&gt;&lt;a href="http://www.kuro5hin.org/story/2004/2/25/124713/784" lang="en"&gt;A
Prolog Introduction...&lt;/a&gt;&lt;/em&gt;", e igualmente, en el &lt;a href="http://lambda.weblogs.com/discuss/msgReader$11368" lang="en"&gt;apartado
de comentarios&lt;/a&gt; se pueden leer opiniones interesantes. Destacar que
&lt;a href="http://www.info.ucl.ac.be/people/cvvanroy.html" lang="en"&gt;Peter
Van Roy&lt;/a&gt;, en dichos comentarios, hace algunas correcciones a fallos
evidentes contenidos en el texto de la introducci&amp;oacute;n que venimos
comentando.&lt;/p&gt;

&lt;p&gt;Finalizamos rese&amp;ntilde;ando varios tutoriales, apuntes e introducciones
al lenguaje Prolog. En algunos casos se trata de ediciones electr&amp;oacute;nicas
de monograf&amp;iacute;as dedicadas a este lenguaje de programaci&amp;oacute;n
l&amp;oacute;gica. El orden de la menci&amp;oacute;n es aleatorio, no implica ning&amp;uacute;n
tipo de escala de importancia ni nada parecido:&lt;/p&gt;

&lt;h3&gt;En castellano&lt;/h3&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;a href="http://delta.cs.cinvestav.mx/~schapa/red/intro_lm/logica1.html"&gt;Introducci&amp;oacute;n
a la L&amp;oacute;gica Matem&amp;aacute;tica&lt;/a&gt; -&amp;nbsp; &lt;a href="http://delta.cs.cinvestav.mx/~schapa/red/logica/logica.html"&gt;L&amp;oacute;gica
Matem&amp;aacute;tica y Aplicaciones&lt;/a&gt; (S. V. Chapa Vergara).&lt;/li&gt;

&lt;li&gt;
&lt;a href="http://www28.brinkster.com/oraclelinux/prolog/prolog.html"&gt;Introducci&amp;oacute;n
al Prolog&lt;/a&gt; (J. Su&amp;aacute;rez Sanz).&lt;/li&gt;

&lt;li&gt;
&lt;a href="http://www.geocities.com/v.iniestra/apuntes/pro_log/index.html"&gt;Programaci&amp;oacute;n
L&amp;oacute;gica&lt;/a&gt; (&lt;a href="http://www.geocities.com/v.iniestra/"&gt;V. Iniestra&lt;/a&gt;).&lt;/li&gt;

&lt;li&gt;
&lt;a href="http://www.gsi.dit.upm.es/~gfer/ssii/rcsi/index.html"&gt;Representaci&amp;oacute;n
del conocimiento en sistemas inteligentes&lt;/a&gt; (G. Fern&amp;aacute;ndez Fern&amp;aacute;ndez).&lt;/li&gt;

&lt;li&gt;
&lt;a href="http://www.mor.itesm.mx/~rdec/principal.html"&gt;Representaci&amp;oacute;n
de Conocimiento&lt;/a&gt; (E. Morales, L. E. Sucar).&lt;/li&gt;

&lt;li&gt;
&lt;a href="http://proton.ucting.udg.mx/tutorial/prolog/index.htm"&gt;Tutorial
de Prolog&lt;/a&gt; (traducci&amp;oacute;n parcial del manual del sistema DECsystem-10
Prolog).&lt;/li&gt;

&lt;li&gt;
&lt;a href="http://www.programacion.com/tutoriales/prolog/"&gt;Tutoriales de
Prolog&lt;/a&gt; en &lt;a href="http://www.programacion.com/"&gt;Programaci&amp;oacute;n
en castellano&lt;/a&gt; (A. Fern&amp;aacute;ndez Pineda).&lt;/li&gt;

&lt;li&gt;
&lt;a href="http://ci.ldc.usb.ve/~borges/ci4645/estilo.html"&gt;Gu&amp;iacute;a de
estilo de programaci&amp;oacute;n en Prolog&lt;/a&gt; (P. R. Borges).&lt;/li&gt;

&lt;li&gt;
&lt;a href="http://caminantes.metropoliglobal.com/web/informatica/prolog.htm"&gt;Introducci&amp;oacute;n
al Prolog&lt;/a&gt;.&lt;/li&gt;

&lt;li&gt;
&lt;a href="http://personal5.iddeo.es/wintrmute/ia/proglog.htm"&gt;Programaci&amp;oacute;n
l&amp;oacute;gica en Prolog&lt;/a&gt; (por Wintermute).&lt;/li&gt;

&lt;li&gt;
&lt;a href="http://leibniz.iimas.unam.mx/~euraga/ia/prolog.html"&gt;Prolog&lt;/a&gt;
(M. Salas Z&amp;uacute;&amp;ntilde;iga, E. Uraga Serratos).&lt;/li&gt;

&lt;li&gt;
&lt;a href="http://apolo.us.es/josera/prolog/index.html"&gt;Introducci&amp;oacute;n
al Prolog&lt;/a&gt; (J. R. Portillo).&lt;/li&gt;
&lt;/ul&gt;

&lt;h3&gt;En ingl&amp;eacute;s&lt;/h3&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;a href="http://www.csc.vill.edu/~dmatusze/resources/prolog/intro_to_prolog/index.html" lang="en"&gt;A
Concise Introduction to Prolog&lt;/a&gt; (D. Matuszek; &lt;a href="http://www.netaxs.com/people/nerp/prolog/prolog.html" lang="en"&gt;otra
ubicaci&amp;oacute;n&lt;/a&gt;).&lt;/li&gt;

&lt;li&gt;
&lt;a href="http://www.amzi.com/AdventureInProlog/advfrtop.htm" lang="en"&gt;Adventure
in Prolog&lt;/a&gt; (en &lt;a href="http://www.amzi.com/articles/index.htm" lang="en"&gt;Amzi.com&lt;/a&gt;).&lt;/li&gt;

&lt;li&gt;
&lt;a href="http://www.amzi.com/ExpertSystemsInProlog/index.htm" lang="en"&gt;Building
Expert Systems in Prolog&lt;/a&gt; (D. Merritt; &lt;a href="http://www.amzi.com/articles/index.htm" lang="en"&gt;idem&lt;/a&gt;).&lt;/li&gt;

&lt;li&gt;
&lt;a href="http://etud.epita.fr/~vigier_n/Prolog/index.htm" lang="en"&gt;An
Introduction to Prolog&lt;/a&gt; (L. Michel, V. Nicolas).&lt;/li&gt;

&lt;li&gt;
&lt;a href="http://www.ugrad.cs.ubc.ca/spider/cs322/Sicstus/sicstus-guide.html" lang="en"&gt;An
Introduction to SICStus Prolog&lt;/a&gt; (R. Dearden).&lt;/li&gt;

&lt;li&gt;
&lt;a href="http://www.cee.hw.ac.uk/~alison/essence/prolog/prolog.html" lang="en"&gt;Basics
of Prolog&lt;/a&gt; (A. Cawsey).&lt;/li&gt;

&lt;li&gt;
&lt;a href="http://kilo.ee.lsu.edu/koppel/ee4785/prolog.html" lang="en"&gt;C-Prolog
User's Manual&lt;/a&gt; (F. Pereira &lt;em&gt;et al.&lt;/em&gt;).&lt;/li&gt;

&lt;li&gt;
&lt;a href="http://www.cee.hw.ac.uk/~alison/ai3notes/all.html" lang="en"&gt;Databases
and Artificial Intelligence&lt;/a&gt; (A. Cawsey).&lt;/li&gt;

&lt;li&gt;
&lt;a href="http://pauillac.inria.fr/~diaz/gnu-prolog/manual/index.html" lang="en"&gt;GNU-Prolog
Manual&lt;/a&gt; (&lt;a href="http://pauillac.inria.fr/~diaz/" lang="en"&gt;D. Diaz&lt;/a&gt;).&lt;/li&gt;

&lt;li&gt;
&lt;a href="http://kti.ms.mff.cuni.cz/~bartak/prolog/" lang="en"&gt;Guide to
Prolog Programming&lt;/a&gt; (R. Bart&amp;aacute;k).&lt;/li&gt;

&lt;li&gt;
&lt;a href="http://www.cs.ncl.ac.uk/modules/1997-98/csc128/ncmh/datatypes/" lang="en"&gt;Haskell
and Prolog Datatypes&lt;/a&gt; - &lt;a href="http://www.cs.ncl.ac.uk/modules/1997-98/csc324/differences/" lang="en"&gt;Haskell/Prolog
Differences&lt;/a&gt;.&lt;/li&gt;

&lt;li&gt;
&lt;a href="http://www.csse.monash.edu/~lloyd/tildeLogic/Prolog.toy/Ch/" lang="en"&gt;Prolog
Introduction&lt;/a&gt; (&lt;a href="http://www.csse.monash.edu.au/~lloyd/" lang="en"&gt;L.
Allison&lt;/a&gt;).&lt;/li&gt;

&lt;li&gt;
&lt;a href="http://burks.brighton.ac.uk/burks/language/prolog/pms/pms.htm" lang="en"&gt;Introduction
to Prolog for Mathematicians&lt;/a&gt; (J. Paine; &lt;a href="http://burks.bton.ac.uk/burks/language/prolog/pms/pms.htm" lang="en"&gt;otra
ubicaci&amp;oacute;n&lt;/a&gt;).&lt;/li&gt;

&lt;li&gt;
&lt;a href="http://www.sju.edu/~jhodgson/ugai/prolog.html" lang="en"&gt;Introduction
to Prolog&lt;/a&gt; (&lt;a href="http://www.sju.edu/~jhodgson/" lang="en"&gt;J. Hodgson&lt;/a&gt;).&lt;/li&gt;

&lt;li&gt;
&lt;a href="http://www.cse.unsw.edu.au/~claude/teaching/AI/notes/prolog/index.html" lang="en"&gt;iProlog
Programmer's Manual&lt;/a&gt; (&lt;a href="http://www.cse.unsw.edu.au/~claude/teaching/index.html" lang="en"&gt;C.
Sammut&lt;/a&gt;; &lt;a href="http://www.cse.unsw.edu.au/~cs3411/prolog/doc/index.html" lang="en"&gt;otra
ubicaci&amp;oacute;n&lt;/a&gt;).&lt;/li&gt;

&lt;li&gt;
&lt;a href="http://www.clip.dia.fi.upm.es/~vocal/public_info/index.html" lang="en"&gt;Introductory
Course on Constraint Logic Programming&lt;/a&gt; (M. Carro &lt;em&gt;et al.&lt;/em&gt;).&lt;/li&gt;

&lt;li&gt;
&lt;a href="http://www.cosc.canterbury.ac.nz/~wolfgang/cosc302/Chap2.4.html" lang="en"&gt;Declarative
Programming: The Prolog Language&lt;/a&gt; (&lt;a href="http://www.cosc.canterbury.ac.nz/~wolfgang/" lang="en"&gt;W.
Kreutzer&lt;/a&gt;).&lt;/li&gt;

&lt;li&gt;
&lt;a href="http://www.coli.uni-sb.de/~kris/prolog-course/" lang="en"&gt;Learn
Prolog Now!&lt;/a&gt; (P. Blackburn &lt;em&gt;et al.&lt;/em&gt;).&lt;/li&gt;

&lt;li&gt;
&lt;a href="http://lina.es.ncku.edu.tw/eaglesource/AI/Prolog-Tutorial/prolog/starting.html" lang="en"&gt;Learning
Prolog&lt;/a&gt; (N. Ford).&lt;/li&gt;

&lt;li&gt;
&lt;a href="http://web.uvic.ca/~ling48x/ling482/prolog/index.html" lang="en"&gt;An
Introduction to Prolog&lt;/a&gt; (A. C. Brett).&lt;/li&gt;

&lt;li&gt;
&lt;a href="http://www.cs.sfu.ca/CC/SW/Prolog/Tutorials/toc.html" lang="en"&gt;Logic
Programming Course&lt;/a&gt; (&lt;a href="http://www.cs.sfu.ca/CourseCentral/SW/Prolog/Tutorials/toc.html" lang="en"&gt;otra
ubicaci&amp;oacute;n&lt;/a&gt;).&lt;/li&gt;

&lt;li&gt;
&lt;a href="http://www.generation5.org/articles.asp?Action=List&amp;Topic=Programming" lang="en"&gt;Art&amp;iacute;culos
e introducciones sobre Prolog&lt;/a&gt; en &lt;a href="http://www.generation5.org/" lang="en"&gt;Generation5&lt;/a&gt;.&lt;/li&gt;

&lt;li&gt;
&lt;a href="http://www.dontveter.com/basisofai/12.html" lang="en"&gt;More Prolog&lt;/a&gt;
(D. R. Tveter).&lt;/li&gt;

&lt;li&gt;
&lt;a href="http://www.ccs.neu.edu/home/dorai/schelog/schelog.html" lang="en"&gt;Programming
in Schelog -embedding of Prolog-style logic programming in Scheme&lt;/a&gt; (D.
Sitaram).&lt;/li&gt;

&lt;li&gt;
&lt;a href="http://www.cs.sunysb.edu/~warren/xsbbook/book.html" lang="en"&gt;Programming
in Tabled Prolog&lt;/a&gt; (David S. Warren).&lt;/li&gt;

&lt;li&gt;
&lt;a href="http://www.mdx.ac.uk/www/psychology/cog/psy3230/prolog1/00-CONT.HTML" lang="en"&gt;Prolog
Basics: A Guide For Beginners&lt;/a&gt; (T. Drapkin).&lt;/li&gt;

&lt;li&gt;
&lt;a href="http://www.comp.lancs.ac.uk/computing/courses/year2/250/prolog/notes.html" lang="en"&gt;Introduction
to Prolog&lt;/a&gt; (D. Nichols).&lt;/li&gt;

&lt;li&gt;
&lt;a href="http://www.cs.auckland.ac.nz/~j-hamer/07.363/prolog-for-se.html" lang="en"&gt;Prolog
for Software Engineering&lt;/a&gt; (Peter B. Reintjes).&lt;/li&gt;

&lt;li&gt;
&lt;a href="http://cs.wwc.edu/~cs_dept/KU/PR/Prolog.html" lang="en"&gt;Prolog
Tutorial&lt;/a&gt; (A. Aaby).&lt;/li&gt;

&lt;li&gt;
&lt;a href="http://www.cs.bham.ac.uk/~pjh/prolog_course/sem223.html" lang="en"&gt;Prolog
and Logic Programming&lt;/a&gt; (P. J. Hancox; &lt;a href="http://www.cs.bham.ac.uk/~pjh/prolog_course/sem242.html" lang="en"&gt;otra
ubicaci&amp;oacute;n&lt;/a&gt;).&lt;/li&gt;

&lt;li&gt;
&lt;a href="http://www.compapp.dcu.ie/~alex/LOGIC/start.html" lang="en"&gt;Prolog
Tutorials&lt;/a&gt; (J. Power).&lt;/li&gt;

&lt;li&gt;
&lt;a href="http://www.cs.may.ie/~jpower/Courses/PROLOG/" lang="en"&gt;Prolog
Tutorials&lt;/a&gt; (&lt;a href="http://www.compapp.dcu.ie/~alex/index.html" lang="en"&gt;A.
Monaghan&lt;/a&gt;).&lt;/li&gt;

&lt;li&gt;
&lt;a href="http://www.visual-prolog.com/vip6/tutorial/default.htm" lang="en"&gt;Visual
Prolog On-line Tutorials&lt;/a&gt;.&lt;/li&gt;

&lt;li&gt;
&lt;a href="http://www.csupomona.edu/~jrfisher/www/prolog_tutorial/contents.html" lang="en"&gt;Prolog
Tutorial&lt;/a&gt; (&lt;a href="http://www.csupomona.edu/~jrfisher/www/" lang="en"&gt;J.
R. Fisher&lt;/a&gt;).&lt;/li&gt;

&lt;li&gt;
&lt;a href="http://cblpc0142.leeds.ac.uk/~paul/prologbook/" lang="en"&gt;Prolog
Programming A First Course&lt;/a&gt; (P. Brna).&lt;/li&gt;

&lt;li&gt;
&lt;a href="http://www.dai.ed.ac.uk/groups/ssp/bookpages/quickprolog/quickprolog.html" lang="en"&gt;Quick
Prolog&lt;/a&gt; (D. S. Robertson).&lt;/li&gt;

&lt;li&gt;
&lt;a href="http://www.sics.se/isl/sicstuswww/site/documentation.html" lang="en"&gt;SICStus
Prolog User's Manual&lt;/a&gt;.&lt;/li&gt;

&lt;li&gt;
&lt;a href="http://www.htw-dresden.de/~logic/ai/combinatoric/content.htm" lang="en"&gt;Solving
combinatoric problems with Prolog&lt;/a&gt;.&lt;/li&gt;

&lt;li&gt;
&lt;a href="http://www.cse.unsw.edu.au/~billw/prologdict.html" lang="en"&gt;The
Prolog Dictionary&lt;/a&gt; (B. Wilson).&lt;/li&gt;

&lt;li&gt;
&lt;a href="http://www.trinc-prolog.com/doc/index.htm" lang="en"&gt;Trinc-Prolog
Help Index&lt;/a&gt;.&lt;/li&gt;

&lt;li&gt;
&lt;a href="http://en.wikipedia.org/wiki/Prolog" lang="en"&gt;Prolog&lt;/a&gt; (en
&lt;a href="http://en.wikipedia.org/" lang="en"&gt;Wikipedia&lt;/a&gt;).&lt;/li&gt;

&lt;li&gt;
&lt;a href="http://www-users.york.ac.uk/~sjh1/courses/L333intro_to_prolog/swi/" lang="en"&gt;Using
SWI-Prolog&lt;/a&gt; (S. Harlow).&lt;/li&gt;

&lt;li&gt;
&lt;a href="http://www.swi.psy.uva.nl/projects/SWI-Prolog/Manual/" lang="en"&gt;SWI-Prolog
Reference Manual&lt;/a&gt;.&lt;/li&gt;

&lt;li&gt;
&lt;a href="http://www.dcs.warwick.ac.uk/~pwg/cs205/cs205index.html" lang="en"&gt;Online
Teaching Material - Prolog&lt;/a&gt; (P. W. Goldberg).&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Monograf&amp;iacute;as&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;a href="http://spivey.oriel.ox.ac.uk/mike/logic/" lang="en"&gt;An Introduction
to Logic Programming through Prolog&lt;/a&gt; (J. M. Spivey).&lt;/li&gt;

&lt;li&gt;
&lt;a href="http://www.cs.nps.navy.mil/people/faculty/rowe/book/book.html" lang="en"&gt;Artificial
Intelligence through Prolog&lt;/a&gt; (Neil C. Rowe).&lt;/li&gt;

&lt;li&gt;
&lt;a href="http://www.cogs.susx.ac.uk/local/books/nlp-in-prolog/index.html" lang="en"&gt;Natural
Language Processing in Prolog&lt;/a&gt; (G. Gazdar, C. Mellish; &lt;a href="http://www.cogs.susx.ac.uk/lab/nlp/gazdar/nlp-in-prolog/" lang="en"&gt;otra
ubicaci&amp;oacute;n&lt;/a&gt;).&lt;/li&gt;

&lt;li&gt;
&lt;a href="http://www.cogs.susx.ac.uk/local/books/ai-through-search/index.html" lang="en"&gt;Artificial
Intelligence Through Search&lt;/a&gt; (C. Thorton, B. du Boulay).&lt;/li&gt;

&lt;li&gt;
&lt;a href="http://www.cis.upenn.edu/~jean/gbooks/logic.html" lang="en"&gt;Logic
for Computer Science: Foundations of Automatic Theorem Proving&lt;/a&gt; (J.
Gallier).&lt;/li&gt;

&lt;li&gt;
&lt;a href="http://www.ida.liu.se/~ulfni/lpp/" lang="en"&gt;Logic, Programming
and Prolog&lt;/a&gt; (U. Nilsson, J. Maluszynski).&lt;/li&gt;

&lt;li&gt;
&lt;a href="http://www.mtome.com/" lang="en"&gt;Prolog and Natural-Language Analysis&lt;/a&gt;
(F. C. N. Pereira, S. M. Shieber).&lt;/li&gt;

&lt;li&gt;
&lt;a href="http://utenti.lycos.it/parsers/index.htm" lang="en"&gt;Prolog Parsers.
Parsing techniques in Prolog&lt;/a&gt; (Klaus von Bremen).&lt;/li&gt;

&lt;li&gt;
&lt;a href="http://www.cl.cam.ac.uk/Teaching/2001/PrologAI/cae1.pdf" lang="en"&gt;Clause
and Effect: Prolog programming for the Working Programmer&lt;/a&gt; (W. F. Clocksin;
en &lt;acronym title="Portable Document Format" lang="en"&gt;PDF&lt;/acronym&gt;;
tambi&amp;eacute;n en &lt;a href="http://www.cl.cam.ac.uk/Teaching/2001/PrologAI/cae1.ps.gz" lang="en"&gt;&lt;acronym title="PostScript" lang="en"&gt;PS&lt;/acronym&gt;&lt;/a&gt;).&lt;/li&gt;

&lt;li&gt;
&lt;a href="http://www-lp.doc.ic.ac.uk/UserPages/staff/rak/rak.html" lang="en"&gt;Logic
for Problem Solving&lt;/a&gt; (R. Kowalski).&lt;/li&gt;
&lt;/ul&gt;

&lt;h3&gt;En otros idiomas&lt;/h3&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;a href="http://users.info.unicaen.fr/~nugues/Cours/prolog/prolog.html" lang="fr"&gt;La
Programmation Logique et le langage Prolog&lt;/a&gt; (P. Nugues).&lt;/li&gt;

&lt;li&gt;
&lt;a href="http://www710.univ-lyon1.fr/~csolnon/prolog.html" lang="fr"&gt;Introduction
&amp;agrave; Prolog&lt;/a&gt; (C. Solnon).&lt;/li&gt;

&lt;li&gt;
&lt;a href="http://www.ce.unipr.it/research/HYPERPROLOG/manuale.html" lang="it"&gt;Manuale
Prolog&lt;/a&gt; (G. Adorni &lt;em&gt;et al.&lt;/em&gt;).&lt;/li&gt;

&lt;li&gt;
&lt;a href="http://www.lambda-systems.com/prolog/meta.htm" lang="fr"&gt;M&amp;eacute;ta
Interpr&amp;eacute;teurs en Prolog&lt;/a&gt; (&lt;a href="http://www.lambda-systems.com/accueil.html" lang="fr"&gt;L.
Jean-Michel&lt;/a&gt;).&lt;/li&gt;

&lt;li&gt;
&lt;a href="http://www.joinville.udesc.br/departamentos/dcc/professores/claudio/prolog/index.html"&gt;Tutorial
de Prolog&lt;/a&gt; (Claudio Cesar de S&amp;aacute;).&lt;/li&gt;

&lt;li&gt;
&lt;a href="http://www.dietmar-schmitt.de/essays/SGI/Prolog/inhalt.html"&gt;Zur
Entstehung der Programmiersprache Prolog&lt;/a&gt; (&lt;a href="http://www.dietmar-schmitt.de/prolog/index.html"&gt;D.
Schmitt&lt;/a&gt;).&lt;/li&gt;

&lt;li&gt;
&lt;a href="http://ia.ucpel.tche.br/~lpalazzo/Prolog/Pagina/pl03.htm" lang="br"&gt;Introdu&amp;ccedil;&amp;atilde;o
&amp;agrave; Programa&amp;ccedil;&amp;atilde;o Prolog&lt;/a&gt; (Luiz A. M. Palazzo).&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;No se trata en absoluto de un listado completo de todo lo que se puede
localizar en Internet sobre este lenguaje. En ingl&amp;eacute;s, y tambi&amp;eacute;n
en castellano, se encuentran bastantes apuntes y notas de curso correspondientes a asignaturas universitarias,
por lo general de calidad y profundidad de an&amp;aacute;lisis bastante superiores
a las que encontramos en las introducciones y tutoriales que acabamos de
mencionar, si bien su referencia la dejamos para m&amp;aacute;s adelante.&lt;/p&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5454882-107818628305027012?l=programacionlogica.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://programacionlogica.blogspot.com/feeds/107818628305027012/comments/default' title='Enviar comentarios'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=5454882&amp;postID=107818628305027012&amp;isPopup=true' title='0 comentarios'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5454882/posts/default/107818628305027012'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5454882/posts/default/107818628305027012'/><link rel='alternate' type='text/html' href='http://programacionlogica.blogspot.com/2004/03/una-introduccipara-hackers.html' title='Una introducci&amp;oacute;n a Prolog &amp;iquest;para &quot;Hackers&quot;...?'/><author><name>etxe</name><uri>http://www.blogger.com/profile/10987668917577281087</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5454882.post-107741381357375135</id><published>2004-02-22T02:36:00.000+01:00</published><updated>2004-02-27T20:35:13.576+01:00</updated><title type='text'>Un nuevo "blog" y clasificaciones facetadas a propósito de Nedstat</title><content type='html'>&lt;p&gt;Por medio de los "referred" (referidos) de las &lt;a href="http://v1.nedstatbasic.net/stats?ACQ3RA1anuDg6ulEdx4p1aheB5qA"&gt;estad&amp;iacute;sticas&lt;/a&gt;,
me entero de la existencia de &lt;a href="http://www.cerezo.name/weblog/" lang="en"&gt;Sense
of Wonder&lt;/a&gt;, &lt;em&gt;weblog&lt;/em&gt; escrito en ingl&amp;eacute;s por David Cerezo,
que la verdad sea dicha tiene muy buena pinta, tanto en la presentaci&amp;oacute;n
como en los contenidos, que en definitiva viene a ser lo importante. Problemas
fundamentales de la teor&amp;iacute;a de la computaci&amp;oacute;n, lenguajes de
programaci&amp;oacute;n, representaci&amp;oacute;n del conocimiento... son, a grandes
rasgos, algunos de los temas tratados de momento, complementados por prometedores
apartados como el que encontramos en la columna de la derecha bajo el ep&amp;iacute;grafe
"Worth reading documents", selecci&amp;oacute;n de documentos relevantes de
tem&amp;aacute;tica variada.&lt;/p&gt;

&lt;p&gt;Por cierto, y ya que hemos mencionado el sistema de estad&amp;iacute;sticas,
es muy curiosa y expresiva, muy "sem&amp;aacute;ntica", la identificaci&amp;oacute;n
que hace &lt;a href="http://www.nedstatbasic.net/" lang="en"&gt;Nedstat&lt;/a&gt; de
los apartados en que divide la informaci&amp;oacute;n que ofrece, a saber:
"Aqu&amp;iacute; y ahora", "Cu&amp;aacute;ndo", "De d&amp;oacute;nde", "C&amp;oacute;mo",
"Con qu&amp;eacute;"... Sin duda se trata de una &lt;a href="http://www.nosolousabilidad.com/articulos/sistemas_clasificacion.htm" title="Sistemas de Clasificaci&amp;oacute;n de Informaci&amp;oacute;n"&gt;forma
de clasificación&lt;/a&gt;, de &lt;a href="http://www.nosolousabilidad.com/articulos/clas_facetadas1.htm" title="Clasificaciones Facetadas y Metadatos"&gt;organizaci&amp;oacute;n facetada&lt;/a&gt; de la informaci&amp;oacute;n, que recuerda
a las cinco facetas significativas o fundamentales de la &lt;a href="http://www.slais.ubc.ca/courses/libr517/02-03-wt2/projects/faceted/index.htm" lang="en"&gt;Clasificaci&amp;oacute;n
Colonada&lt;/a&gt; ("Colon Classification") de &lt;a href="http://dmoz.org/Reference/Libraries/Library_and_Information_Science/Librarians/Ranganathan,_S._R./" lang="en"&gt;Ranghanatan&lt;/a&gt;:
&lt;em&gt;Personalidad&lt;/em&gt;, &lt;em&gt;Materia&lt;/em&gt;, &lt;em&gt;Energ&amp;iacute;a&lt;/em&gt;, &lt;em&gt;Espacio&lt;/em&gt;
y &lt;em&gt;Tiempo&lt;/em&gt;. &amp;Eacute;stas permiten agrupar la informaci&amp;oacute;n en
"campos sem&amp;aacute;nticos", determinados por una serie de afinidades
y caracter&amp;iacute;sticas comunes.&lt;/p&gt;

&lt;p&gt;Ranganathan consideraba el mundo como un conjunto de &lt;em&gt;entidades variables&lt;/em&gt;,
descomponibles en puntos de vista o &lt;em&gt;facetas&lt;/em&gt;, que son los t&amp;eacute;rminos
normalizados, utilizados para clasificar las materias, que acabamos de
enumerar:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
Personalidad: es el primer orden clasificatorio, el objeto principal de
cada materia y por ello el &amp;oacute;rden m&amp;aacute;s activo.&lt;/li&gt;

&lt;li&gt;
Materia: aspectos, propiedades, cualidades, elementos materiales.&lt;/li&gt;

&lt;li&gt;
Energ&amp;iacute;a: acciones, procedimientos, t&amp;eacute;cnicas.&lt;/li&gt;

&lt;li&gt;
Espacio: lugar en el que sucede un hecho.&lt;/li&gt;

&lt;li&gt;
Tiempo: toda realidad es contemplable desde una localizaci&amp;oacute;n en
el tiempo.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Los sistemas facetados se basan en el an&amp;aacute;lisis y descomposici&amp;oacute;n
de las materias en sus partes componentes, y la uni&amp;oacute;n de esas partes
de acuerdo con el documento que se va a representar. Implican por tanto
un proceso de an&amp;aacute;lisis y de s&amp;iacute;ntesis, que toma en consideraci&amp;oacute;n
la individualidad de cada documento, y permite un elevado grado
de autonom&amp;iacute;a en la toma de decisiones a la hora de clasificarlos.&lt;/p&gt;

&lt;p&gt;Podemos destacar las siguientes ventajas de las clasificaciones facetadas:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
Las divisiones en facetas constituyen medios originales para canalizar
las materias y los conocimientos.&lt;/li&gt;

&lt;li&gt;
Permiten explicar conceptos con mayor precisi&amp;oacute;n que los sistemas
enumerativos (aquellos que listan, relacionan, y enumeran todas las materias
con car&amp;aacute;cter lineal, dividiendo las disciplinas en clases de niveles
jer&amp;aacute;rquicos diferenciados, descendiendo en especificidad), a partir
de un n&amp;uacute;mero de elementos menor. Las facetas tienen una alta capacidad
combinatoria, partiendo de pocos elementos iniciales.&lt;/li&gt;

&lt;li&gt;
Los sistemas facetados se prestan bien a la automatizaci&amp;oacute;n, ya que
una materia se puede localizar a partir de cada una de las facetas con
las que halla sido descrita, incidiendo de esta forma en ciertos aspectos
de la postcoordinaci&amp;oacute;n (en los lenguajes documentales postcoordinados
los t&amp;eacute;rminos de la descripci&amp;oacute;n se utilizan libremente, sin
relaci&amp;oacute;n a priori entre ellos, estableci&amp;eacute;ndose esa relaci&amp;oacute;n
en el momento de la recuperaci&amp;oacute;n del documento).&lt;/li&gt;

&lt;li&gt;
Tienen una gran capacidad para integrar nuevos conceptos. Se pueden introducir
modificaciones en una faceta dentro de un &amp;aacute;rea determinada sin que
afecte a las restantes.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Sin embargo:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
Los sistemas facetados tienen una estructura, para cada materia concreta,
con niveles jer&amp;aacute;rquicos menos definidos que la equivalente en las
clasificaciones de car&amp;aacute;cter enumerativo.&lt;/li&gt;

&lt;li&gt;
Las notaciones resultantes son a menudo complicadas y dif&amp;iacute;ciles
de memorizar, al estar adaptadas expresamente a cada documento en particular.&lt;/li&gt;

&lt;li&gt;
La responsabilidad de las descripciones recae siempre sobre la competencia
del clasificador, mientras que en los sistemas enumerativos &amp;eacute;sta
se presenta resuelta en las tablas.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;En cualquier caso el sistema clasificatorio facetado desarrollado por Ranganathan,
supuso un importante avance te&amp;oacute;rico, de decisiva influencia en los
posteriores sistemas de clasificaci&amp;oacute;n de car&amp;aacute;cter combinatorio y en los modernos &lt;em&gt;tesauros&lt;/em&gt;.&lt;/p&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5454882-107741381357375135?l=programacionlogica.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://programacionlogica.blogspot.com/feeds/107741381357375135/comments/default' title='Enviar comentarios'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=5454882&amp;postID=107741381357375135&amp;isPopup=true' title='0 comentarios'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5454882/posts/default/107741381357375135'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5454882/posts/default/107741381357375135'/><link rel='alternate' type='text/html' href='http://programacionlogica.blogspot.com/2004/02/un-nuevo-blog-y-clasificaciones.html' title='Un nuevo &quot;blog&quot; y clasificaciones facetadas a prop&amp;oacute;sito de Nedstat'/><author><name>etxe</name><uri>http://www.blogger.com/profile/10987668917577281087</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5454882.post-107395732842307963</id><published>2004-01-13T02:28:00.000+01:00</published><updated>2004-02-27T18:11:31.420+01:00</updated><title type='text'>Teoría Matemática de la Información</title><content type='html'>&lt;p&gt;Entre los diversos modelos y teor&amp;iacute;as [&lt;a href="http://www.infoamerica.org/selecciones/articulo2.htm" title="Comunicación para el desarrollo: tres paradigmas, dos modelos"&gt;1&lt;/a&gt;]
[&lt;a href="http://www.ccms-infobase.com" title="Communication studies, cultural studies, media studies infobase" lang="en"&gt;2&lt;/a&gt;]
de la comunicaci&amp;oacute;n y la informaci&amp;oacute;n que surgen en las d&amp;eacute;cadas
de los a&amp;ntilde;os 40 y 50 del siglo XX (e.g. el modelo de H. D. Laswell
para representar los elementos del proceso comunicativo, que se resume
en la frase o &lt;a href="http://www.cultsock.ndirect.co.uk/MUHome/cshtml/introductory/lasswell.html" title="The Lasswell Formula" lang="en"&gt;f&amp;oacute;rmula&lt;/a&gt;
"&amp;iquest;Qui&amp;eacute;n dice qu&amp;eacute; a qui&amp;eacute;n a trav&amp;eacute;s de
qu&amp;eacute; canal y con qu&amp;eacute; efecto?"), destaca, por su posterior
influencia en numerosos campos, especialmente en el &amp;aacute;rea de la computaci&amp;oacute;n
y el procesamiento automatizado de la informaci&amp;oacute;n, el modelo matem&amp;aacute;tico
de los ingenieros de telecomunicaciones &lt;a href="http://www-groups.dcs.st-and.ac.uk/~history/Mathematicians/Shannon.html" lang="en"&gt;Claude
E. Shannon&lt;/a&gt; y &lt;a href="http://www.encyclopedia.com/html/W/Weaver-W1.asp" lang="en"&gt;Warren
Weaver&lt;/a&gt; (&lt;a href="http://www.bell-labs.com/" lang="en"&gt;Bell Laboratories&lt;/a&gt;).
El art&amp;iacute;culo de Shannon "&lt;a href="http://cm.bell-labs.com/cm/ms/what/shannonday/paper.html" lang="en"&gt;A
Mathematical Theory of Communication&lt;/a&gt;" (1948) supone el punto de arranque
del desarrollo de la &lt;a href="http://www.lucent.com/minds/infotheory/" lang="en"&gt;Teor&amp;iacute;a
Matem&amp;aacute;tica de la Informaci&amp;oacute;n&lt;/a&gt;, fundamental en la comprensi&amp;oacute;n
y an&amp;aacute;lisis de los procesos informativos y comunicativos desde una
perspectiva cuantificable y predecible. Las aportaciones de Shannon a este
respecto, han sido fundamentales, por ejemplo, en el desarrollo de la criptograf&amp;iacute;a
y los sistemas de compresi&amp;oacute;n de datos [&lt;a href="http://netlab3.cs.ucla.edu/shannon1949/" lang="Communication Theory of Secrecy Systems" lang="en"&gt;1&lt;/a&gt;]
[&lt;a href="http://www.data-compression.com/theory.html" title="Theory of Data Compression" lang="en"&gt;2&lt;/a&gt;].&lt;/p&gt;

&lt;p&gt;Shannon trat&amp;oacute; de establecer a trav&amp;eacute;s de esta teor&amp;iacute;a
una ecuaci&amp;oacute;n matem&amp;aacute;tica para poder medir el valor informativo
de los mensajes, tomando en consideraci&amp;oacute;n la "informaci&amp;oacute;n"
como un valor cuantificable en los procesos de comunicaci&amp;oacute;n. Inici&amp;oacute;
sus investigaciones al respecto sobre la base de los avances que en el
mundo de la ingenier&amp;iacute;a se hab&amp;iacute;an producido como consecuencia
directa del esfuerzo b&amp;eacute;lico de la II Guerra Mundial, y concretamente
tomando como punto de partida sus estudios sobre cibern&amp;eacute;tica en
general y sobre una m&amp;aacute;quina capaz de predecir el movimiento de un
m&amp;oacute;vil, con aplicaciones militares, en particular. La principal aplicaci&amp;oacute;n
del modelo matem&amp;aacute;tico de informaci&amp;oacute;n, como era de esperar
dado su especial car&amp;aacute;cter "mecanicista" y algor&amp;iacute;tmico, se
ha producido en el lenguaje entre m&amp;aacute;quinas.&lt;/p&gt;

&lt;p&gt;En un plano m&amp;aacute;s general, Shannon y Weaver afirman en su teor&amp;iacute;a
matem&amp;aacute;tica de la informaci&amp;oacute;n que en cualquier sistema comunicativo
hay que resolver los siguientes problemas:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Problema t&amp;eacute;cnico: con qu&amp;eacute; precisi&amp;oacute;n puede transmitirse la informaci&amp;oacute;n.&lt;/li&gt;
&lt;li&gt;Problema sem&amp;aacute;ntico: el m&amp;aacute;s significativo en el mundo de la informaci&amp;oacute;n. Implica
con qu&amp;eacute; precisi&amp;oacute;n es recibida la informaci&amp;oacute;n por el
receptor, en relaci&amp;oacute;n con el significado original dado al mensaje.&lt;/li&gt;
&lt;li&gt;Problema de la efectividad: se refiere a la efectividad con la que el significado original recibido
por el receptor, afecta a su conducta.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;El eje central del modelo matem&amp;aacute;tico de informaci&amp;oacute;n es el
concepto de "informaci&amp;oacute;n relevante", tambi&amp;eacute;n denominado "concepto
de pertinencia", que en el campo matem&amp;aacute;tico se traduce por la idea
de "probabilidad". A grandes rasgos, implica que, a menor probabilidad
de acontecer un suceso, o menor conocimiento impl&amp;iacute;cito, sobre el
hecho reflejado, en el proceso comunicativo, mayor relevancia informativa
en el caso de acontecer dicho suceso, ya que:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;El receptor valora como especialmente "informativo" un hecho que desconoce previamente.&lt;/li&gt;
&lt;li&gt;El estado previo de conocimiento del receptor determina la relevancia informativa
que para &amp;eacute;l poseer&amp;aacute; un hecho determinado.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;La cantidad de informaci&amp;oacute;n recibida respecto de la ocurrencia de
un evento, es inversamente proporcional a su probabilidad. Una probabilidad
de ocurrencia grande, ofrece una cantidad de informaci&amp;oacute;n menor,
y por ello implica menor relevancia informativa. La relaci&amp;oacute;n entre
cantidad de informaci&amp;oacute;n (I) y probabilidad de la ocurrencia (p),
o medida de la informaci&amp;oacute;n, se expresa formalmente en el modelo
matem&amp;aacute;tico de Shannon y Weaver mediante la ecuaci&amp;oacute;n I=log&lt;sub&gt;2&lt;/sub&gt;1/p, donde:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;&lt;em&gt;p&lt;/em&gt; es la probabilidad del mensaje transmitido.&lt;/li&gt;
&lt;li&gt;&lt;em&gt;log&lt;sub&gt;2&lt;/sub&gt;&lt;/em&gt; es el logaritmo de 1/p en base 2.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Un concepto muy importante introducido por Shannon y Weaver en su teor&amp;iacute;a es el de "entrop&amp;iacute;a",
o informaci&amp;oacute;n promedio de un mensaje (cantidad de informaci&amp;oacute;n
media). Siendo iguales las probabilidades de una serie de mensajes, la
f&amp;oacute;rmula matem&amp;aacute;tica que permite determinar la entrop&amp;iacute;a
total es H=log&lt;sub&gt;2&lt;/sub&gt;N (donde N es igual al n&amp;uacute;mero de mensajes posibles
en el conjunto). El t&amp;eacute;rmino "entrop&amp;iacute;a" [&lt;a href="http://www.maxwellian.demon.co.uk/art/eia/index.html" title="Entropy? An intuitive approach by Gian Vasta" lang="en"&gt;1&lt;/a&gt;]
[&lt;a href="http://www.maxwellian.demon.co.uk/art/esa/entropyscientific.html" lang="en"&gt;2&lt;/a&gt;]
se toma prestado del dominio de estudio de la termodin&amp;aacute;mica, en
el que adquiere un sentido diferente. As&amp;iacute;, el "principio de entrop&amp;iacute;a
universal" establece que los sistemas termodin&amp;aacute;micos sometidos a
fen&amp;oacute;menos aleatorios o c&amp;iacute;clicos, tienden ha adoptar los estados
que requieren menor consumo de energ&amp;iacute;a.&lt;/p&gt;

&lt;p&gt;Gr&amp;aacute;ficamente, el esquema comunicativo impl&amp;iacute;cito
en el modelo matem&amp;aacute;tico de la informaci&amp;oacute;n se puede resumir de la siguiente
forma:&lt;/p&gt;

&lt;blockquote class="codigo"&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; (distorsiona)&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Transmisi&amp;oacute;n*&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Ruido&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Receptor&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; (interpreta)&lt;br /&gt;
Emisor ------&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; -------&gt;&amp;nbsp;&amp;nbsp; -------&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; -------&gt; Destinatario&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Mensaje&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Se&amp;ntilde;al**&amp;nbsp;&amp;nbsp;&amp;nbsp; Se&amp;ntilde;al**&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Decodifica

&lt;p&gt;&amp;nbsp;(*) El mensaje es codificado por el transmisor&lt;br /&gt;
(**) A trav&amp;eacute;s de un canal&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;El canal es el soporte a trav&amp;eacute;s del cual se "transporta" la informaci&amp;oacute;n.
El concepto de "c&amp;oacute;digo" es inherente a este esquema, entendiendo
por tal el conjunto de signos, comunes al emisor y al receptor, que permiten
la codificaci&amp;oacute;n de un mensaje y por tanto la comunicaci&amp;oacute;n.
No puede haber comunicaci&amp;oacute;n sin un consenso previo acerca del c&amp;oacute;digo
a utilizar tanto por parte del emisor como por parte del receptor.&lt;/p&gt;

&lt;p&gt;El modelo de Shannon y Weaver tiene muchas aplicaciones, referidas sobre
todo a situaciones de comunicaci&amp;oacute;n no humana (en las que tiene muchas
limitaciones), espec&amp;iacute;ficamente lenguaje entre m&amp;aacute;quinas y
telecomunicaciones, donde las posibilidades de error o ambig&amp;uuml;edad
en la utilizaci&amp;oacute;n del c&amp;oacute;digo son m&amp;iacute;nimas. Seg&amp;uacute;n
el planteamiento de este modelo, se entiende por "informaci&amp;oacute;n" los
datos o conocimientos que estos originan, considerados novedosos o relevantes
por un receptor en un momento dado, a fin de paliar su ignorancia o reducir
su incertidumbre sobre una materia.&lt;/p&gt;

&lt;p&gt;Un ejemplo pr&amp;aacute;ctico de aplicaci&amp;oacute;n de los principios matem&amp;aacute;ticos
y algor&amp;iacute;tmicos de la Teor&amp;iacute;a de la Informaci&amp;oacute;n a los
sistemas autom&amp;aacute;ticos de tratamiento y recuperaci&amp;oacute;n de informaci&amp;oacute;n
(en este caso en combinaci&amp;oacute;n con procesos de inferencia bayesiana),
es &lt;a href="http://www.autonomy.com/Content/Technology/" lang="en"&gt;Autonomy&lt;/a&gt;,
programa del que se hac&amp;iacute;a eco &lt;a href="http://www.abraldes.net/comments.php?id=109_0_1_0_C"&gt;Abraldes&lt;/a&gt;
hace ya alg&amp;uacute;n tiempo.&lt;/p&gt;

&lt;p&gt;As&amp;iacute; mismo, la mayor&amp;iacute;a de las heur&amp;iacute;sticas utilizadas
para el establecimiento de &amp;aacute;rboles de decisi&amp;oacute;n mediante algoritmos
de aprendizaje, &lt;a href="http://www.inference.phy.cam.ac.uk/mackay/itprnn/book.html" title="Information Theory, Inference, and Learning Algorithms" lang="en"&gt;se
basan&lt;/a&gt; en la teor&amp;iacute;a matem&amp;aacute;tica de la informaci&amp;oacute;n.
Los &amp;aacute;rboles de decisi&amp;oacute;n son una forma de representaci&amp;oacute;n
del conocimiento que permite "clasificar ejemplos en un n&amp;uacute;mero finito
de clases" (&lt;a href="http://www.gsi.dit.upm.es/~anto/tesis/html/stateart.html"&gt;fuente&lt;/a&gt;).
Las heur&amp;iacute;sticas son criterios, m&amp;eacute;todos o principios que permiten
decidir, de entre varias alternativas de acci&amp;oacute;n, cu&amp;aacute;l ser&amp;aacute;
la m&amp;aacute;s efectiva para cumplir determinada meta. Permiten restringir
el n&amp;uacute;mero de evaluaciones, de forma que repercuten en una mejora
de los tiempos empleados en la b&amp;uacute;squeda de soluciones.&lt;/p&gt;

&lt;p&gt;Shannon es por otra parte, dentro del contexto de la Teor&amp;iacute;a Matem&amp;aacute;tica
de la Informaci&amp;oacute;n desarrollada junto con Weaver, autor de una aportaci&amp;oacute;n
fundamental al desarrollo de la computaci&amp;oacute;n: la asociaci&amp;oacute;n
del &lt;a href="http://www.kerryr.net/pioneers/binary.htm" title="Binary - So Simple a Computer Can Do It"&gt;sistema
binario&lt;/a&gt; a un circuito el&amp;eacute;ctrico (de rel&amp;eacute;s en un principio),
sobre la base de teoremas de l&amp;oacute;gica matem&amp;aacute;tica. En el sistema
binario, la circulaci&amp;oacute;n de corriente se corresponde generalmente
al 1, y el 0 al estado contrario (ausencia de corriente).&lt;/p&gt;

&lt;p&gt;Shannon comenz&amp;oacute; sus trabajos al respecto en Alemania (1938), estudiando la aplicaci&amp;oacute;n
de la teor&amp;iacute;a del &amp;Aacute;lgebra de Boole [&lt;a href="http://descartes.cnice.mecd.es/taller_de_matematicas/logica_digital/Logica%20Digital_0.htm"&gt;1&lt;/a&gt;]
[&lt;a href="http://descartes.cnice.mecd.es/taller_de_matematicas/Logidigital2_d3/Logica_Digital_20.htm"&gt;2&lt;/a&gt;]
a la representaci&amp;oacute;n de circuitos l&amp;oacute;gicos, y desarrollando
una incipiente Teor&amp;iacute;a de la Informaci&amp;oacute;n. En 1948 publica,
como ya dijimos al principio, "&lt;a href="http://cm.bell-labs.com/cm/ms/what/shannonday/paper.html" lang="en"&gt;A
mathematical theory of communication&lt;/a&gt;", trabajo en el que expone la
posibilidad de automatizar operaciones matem&amp;aacute;ticas complejas por
medio de los circuitos de rel&amp;eacute;s utilizados en telefon&amp;iacute;a,
haciendo uso de la &lt;a href="http://delta.cs.cinvestav.mx/~schapa/red/intro_lm/logica1.html" title=" Introducci&amp;oacute;n a la L&amp;oacute;gica Matem&amp;aacute;tica"&gt;l&amp;oacute;gica
binaria&lt;/a&gt; (los fundamentos de la aplicaci&amp;oacute;n de
la aritm&amp;eacute;tica binaria, luego utilizados por los pioneros de la computaci&amp;oacute;n
en el siglo XX -Atanasoff, von Neumann, entre otros-, fueron establecidos
en parte por Charles Babbage ya en la primera mitad del siglo XIX) y el
&lt;a href="http://www.kerryr.net/pioneers/boolean.htm" title="What's So Logical About Boolean Algebra?"&gt;&amp;aacute;lgebra
booleana&lt;/a&gt;. Este principio descompone cualquier problema matem&amp;aacute;tico
complejo en una m&amp;iacute;nima expresi&amp;oacute;n, representada mediante c&amp;oacute;digo
binario, que permite &amp;uacute;nicamente dos posibles estados: &lt;em&gt;s&amp;iacute;&lt;/em&gt;-&lt;em&gt;no&lt;/em&gt;,
0-1, &lt;em&gt;abierto&lt;/em&gt;-&lt;em&gt;cerrado&lt;/em&gt;...&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;"En los circuitos electr&amp;oacute;nicos, desde el punto de vista
l&amp;oacute;gico, suele representarse la presencia de tensi&amp;oacute;n en un
punto del circuito [...] por medio de un 1, correspondiendo el 0 a la ausencia
de tensi&amp;oacute;n. Si se hacen las consideraciones anteriores, se dice
que se est&amp;aacute; utilizando &lt;em&gt;l&amp;oacute;gica positiva&lt;/em&gt; (utilizada
en la mayor&amp;iacute;a de los casos). Por otro lado, si se asocia el 0 a la presencia
de tensi&amp;oacute;n y el 1 a la ausencia de la misma, se dice que se utiliza
&lt;em&gt;l&amp;oacute;gica negativa&lt;/em&gt;." (p. 23)
&lt;div class="cita"&gt;En &lt;em&gt;Inform&amp;aacute;tica B&amp;aacute;sica&lt;/em&gt;; E. Alcalde &lt;em&gt;et al&lt;/em&gt;; Ed. McGraw-Hill, 1989; ISBN: 84-7615-241-8&lt;/div&gt;&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;En el libro que se acaba de citar, concretamente en el cap&amp;iacute;tulo
2 (p&amp;aacute;gina 23 y siguientes), se explica de forma sencilla y clara
las formas de representaci&amp;oacute;n de la informaci&amp;oacute;n mediante sistemas
de numeraci&amp;oacute;n en el &amp;aacute;mbito de la computaci&amp;oacute;n digital.&lt;/p&gt;

&lt;p&gt;El t&amp;eacute;rmino que utiliza Shannon para denominar la bivalencia del
sistema binario es el de &lt;em&gt;informaci&amp;oacute;n&lt;/em&gt;. La unidad b&amp;aacute;sica
de la representaci&amp;oacute;n binaria en computaci&amp;oacute;n, unidad b&amp;aacute;sica
de informaci&amp;oacute;n para Shannon, es el "bit" (&lt;em&gt;binary digit&lt;/em&gt;) y se
corresponde a uno de los dos estados de valor descritos.&lt;/p&gt;

&lt;p&gt;El modelo matem&amp;aacute;tico de Shannon y Weaver presenta algunas limitaciones desde el punto de vista de los modelos comunicativos (o modelos de comunicaci&amp;oacute;n social):&lt;/p&gt;

&lt;p&gt;En las situaciones de comunicaci&amp;oacute;n cotidianas, el c&amp;aacute;lculo
de probabilidades no es un acto previo, de hecho &amp;eacute;ste &lt;a href="http://www.infoaragon.net/servicios/blogs/tiopetrus/index.php?idarticulo=200311271"&gt;no
forma parte&lt;/a&gt; del conjunto de habilidades que hacen posible los procesos
de verbalizaci&amp;oacute;n del pensamiento y aprehensi&amp;oacute;n de la realidad
exterior al sujeto, y en definitiva los procesos comunicativos que caracterizan
al ser humano en su interacci&amp;oacute;n social.&lt;/p&gt;

&lt;p&gt;El modelo da por sentado la existencia de un &amp;uacute;nico c&amp;oacute;digo
comunicativo. Sin embargo, en la comunicaci&amp;oacute;n humana se hallan presentes
"subc&amp;oacute;digos", que son todos aquellos elementos culturales, ideol&amp;oacute;gicos,
afectivos, econ&amp;oacute;micos, etc., que subyacen en la forma de expresi&amp;oacute;n
del lenguaje humano. Los subc&amp;oacute;digos comunicativos condicionan, tanto
el sentido inicial dado al mensaje, como el sentido en que dicho mensaje
es interpretado por el receptor, lo que hace que la comunicaci&amp;oacute;n
entre humanos no tenga siempre un sentido id&amp;eacute;ntico y un&amp;iacute;voco.
As&amp;iacute; mismo, son la raz&amp;oacute;n por la cual los mensajes pueden tener
diferente interpretaci&amp;oacute;n a lo largo del tiempo, a medida que los
subc&amp;oacute;digos subyacentes a un determinado significado van variando.&lt;/p&gt;

&lt;p&gt;El valor concedido a la informaci&amp;oacute;n var&amp;iacute;a de un individuo
a otro: no existe una valoraci&amp;oacute;n unitaria, de forma que el concepto
y el valor de la relevancia es distinto si tomamos en consideraci&amp;oacute;n
diferentes receptores. Tampoco la informaci&amp;oacute;n se halla totalmente
relacionada con lo novedoso o desconocido por un individuo: su estado de
conocimiento previo sin duda condiciona el valor informativo y la relevancia
de los hechos comunicados.&lt;/p&gt;

&lt;p&gt;Con posterioridad a la aparici&amp;oacute;n de la Teor&amp;iacute;a Matem&amp;aacute;tica
de la Informaci&amp;oacute;n, otros autores, como &lt;a href="http://www.cultsock.ndirect.co.uk/MUHome/cshtml/introductory/schro1.html" title="Osgood &amp; Schramm Circular Model" lang="en"&gt;Osgood
y Schramm&lt;/a&gt; en su "modelo circular", aportar&amp;aacute;n un concepto de
informaci&amp;oacute;n y comunicaci&amp;oacute;n no meramente basado en par&amp;aacute;metros
"matem&amp;aacute;ticos" o "probabil&amp;iacute;sticos", de simple transmisi&amp;oacute;n
de informaci&amp;oacute;n de un punto a otro (una visi&amp;oacute;n "f&amp;iacute;sica"
de la comunicaci&amp;oacute;n en definitiva), en un intento de superar el modelo
matem&amp;aacute;tico de Shannon y Weaver y sus limitaciones en el estudio
y comprensi&amp;oacute;n de los procesos comunicativos de las sociedades humanas.
Para estos te&amp;oacute;ricos, "comunicaci&amp;oacute;n" ser&amp;aacute; sin&amp;oacute;nimo
de "poner en com&amp;uacute;n algo", atribuyendo al t&amp;eacute;rmino un sentido
que coincide con el significado etimol&amp;oacute;gico de la palabra, y se
interesar&amp;aacute;n acerca de qu&amp;eacute; es lo que se pone en com&amp;uacute;n
(comunicaci&amp;oacute;n interpersonal y comunicaci&amp;oacute;n colectiva).&lt;/p&gt;

&lt;p&gt;Se puede encontrar una explicaci&amp;oacute;n m&amp;aacute;s detallada de Teor&amp;iacute;a
de la Informaci&amp;oacute;n de Shannon y sus fundamentos matem&amp;aacute;ticos,
algor&amp;iacute;timos y l&amp;oacute;gicos, en los enlaces que se relacionan a continuaci&amp;oacute;n:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;a href="http://www.bioplanet.net/magazine/bio_enefeb_2003/bio_2003_enefeb_biocultura.htm"&gt;Claude
Shannon. El profeta tecnol&amp;oacute;gico que cambi&amp;oacute; el planeta&lt;/a&gt;.&lt;/li&gt;

&lt;li&gt;
&lt;a href="http://www.numaboa.com/criptologia/historia/shannon.php"&gt;Claude
Elwood Shannon&lt;/a&gt; (en portugu&amp;eacute;s).&lt;/li&gt;

&lt;li&gt;
&lt;a href="http://www-groups.dcs.st-and.ac.uk/~history/Mathematicians/Shannon.html"&gt;Claude
Elwood Shannon&lt;/a&gt; (en &lt;a href="http://www-groups.dcs.st-and.ac.uk/~history/"&gt;The
MacTutor History of Mathematics archive&lt;/a&gt;).&lt;/li&gt;

&lt;li&gt;
&lt;a href="http://www.skypoint.com/~gimonca/shannon.html" lang="en"&gt;Heroes
of Cyberspace: Claude Shannon&lt;/a&gt; (&lt;a href="http://www.gimonca.com/personal/stuff.html" lang="en"&gt;C.
A. Gimon&lt;/a&gt;).&lt;/li&gt;

&lt;li&gt;
&lt;a href="http://www.turing.org.uk/"&gt;The Alan Turing Home Page&lt;/a&gt;.&lt;/li&gt;

&lt;li&gt;
&lt;a href="http://cm.bell-labs.com/cm/ms/what/shannonday/paper.html"&gt;A Mathematical
Theory of Communication by Claude E. Shannon&lt;/a&gt;.&lt;/li&gt;

&lt;li&gt;
&lt;a href="http://www.lucent.com/minds/infotheory/" lang="en"&gt;Information
Theory&lt;/a&gt; (p&amp;aacute;gina monogr&amp;aacute;fica de &lt;a href="http://www.lucent.com/" lang="en"&gt;Lucent
Technologies&lt;/a&gt; - &lt;a href="http://www.bell-labs.com/" lang="en"&gt;Bell Laboratories&lt;/a&gt;).&lt;/li&gt;

&lt;li&gt;
&lt;a href="http://carbon.cudenver.edu/~mryder/itc/comm_theory.html"&gt;Communication
Theory&lt;/a&gt; (colecci&amp;oacute;n de enlaces).&lt;/li&gt;

&lt;li&gt;
&lt;a href="http://www.cultsock.ndirect.co.uk/MUHome/cshtml/introductory/sw.html" lang="en"&gt;The
Shannon-Weaver Model&lt;/a&gt; (en &lt;a href="http://www.ccms-infobase.com" lang="en"&gt;CCMS
- Communication studies, cultural studies, media studies infobase&lt;/a&gt;).&lt;/li&gt;

&lt;li&gt;
&lt;a href="http://www.afirstlook.com/bigdisp3.cfm?pass=archdet.cfm?id=43&amp;pass1=thernav.cfm?fid=2043"&gt;Information
Theory of Claude Shannon &amp;amp; Warren Weaver&lt;/a&gt; (&lt;abbr title="cap&amp;iacute;tulo"&gt;cap.&lt;/abbr&gt;
4 de "&lt;a href="http://www.afirstlook.com/main.htm"&gt;A First Look at Communication
Theory&lt;/a&gt;"; E. Griffin; McGraw-Hill, 1997).&lt;/li&gt;

&lt;li&gt;
&lt;a href="http://www.inference.phy.cam.ac.uk/mackay/itprnn/book.html"&gt;Information
Theory, Inference, and Learning Algorithms&lt;/a&gt; (&lt;a href="http://www.inference.phy.cam.ac.uk/mackay/" lang="en"&gt;D.
MacKay&lt;/a&gt;).&lt;/li&gt;

&lt;li&gt;
&lt;a href="http://www.inference.phy.cam.ac.uk/mackay/info-theory/course.html"&gt;A
Short Course in Information Theory&lt;/a&gt;, 8 lectures by &lt;a href="http://www.inference.phy.cam.ac.uk/mackay/"&gt;David
J.C. MacKay&lt;/a&gt;.&lt;/li&gt;

&lt;li&gt;
&lt;a href="http://www.maxwellian.demon.co.uk/art/ipd/concept.html" lang="en"&gt;Information:
the concept&lt;/a&gt;; &lt;a href="http://www.maxwellian.demon.co.uk/art/ipd/concept.html"&gt;Information
and Probability Distributions&lt;/a&gt;; &lt;a href="http://www.maxwellian.demon.co.uk/art/ipd/discrete.html" lang="en"&gt;Information
in discrete distributions&lt;/a&gt; (&lt;a href="http://www.maxwellian.demon.co.uk/" lang="en"&gt;Marijke
van Gans&lt;/a&gt;).&lt;/li&gt;

&lt;li&gt;
&lt;a href="http://www.lecb.ncifcrf.gov/~toms/paper/primer/"&gt;Information Theory
Primer&lt;/a&gt; (T. Schneider).&lt;/li&gt;

&lt;li&gt;
&lt;a href="http://www.capurro.de/cottinf.htm"&gt;On the Genealogy of Information&lt;/a&gt;
(R. Capurro).&lt;/li&gt;

&lt;li&gt;
&lt;a href="http://cscs.umich.edu/~crshalizi/notebooks/information-theory.html"&gt;Information
Theory&lt;/a&gt; (forma parte de una serie de peque&amp;ntilde;os ensayos y entradas,
"&lt;a href="http://cscs.umich.edu/~crshalizi/notebooks/" lang="en"&gt;Notebooks&lt;/a&gt;",
sobre temas muy diversos, realizadas por &lt;a href="http://cscs.umich.edu/~crshalizi/" lang="en"&gt;C.
Rohilla Shalizi&lt;/a&gt;, complementadas cada una con una selecci&amp;oacute;n de
enlaces; tiene un "&lt;a href="http://cscs.umich.edu/~crshalizi/weblog/" lang="en"&gt;weblog&lt;/a&gt;"
en el que escribe sobre temas as&amp;iacute; mismo muy diversos).&lt;/li&gt;

&lt;li&gt;
&lt;a href="http://omega.math.albany.edu:8008/ETJ-PS/cc27d.ps"&gt;Communication
Theory&lt;/a&gt; (formato &lt;acronym title="PostScript" lang="en"&gt;PS&lt;/acronym&gt;;
cap&amp;iacute;tulo 27 de la obra "&lt;a href="http://omega.math.albany.edu:8008/JaynesBook.html"&gt;Probability
Theory: the logic of science&lt;/a&gt;", E. T. Jaynes).&lt;/li&gt;

&lt;li&gt;
&lt;a href="http://www.cs.auckland.ac.nz/CDMTCS/chaitin/nv.html" lang="en"&gt;A
New Version of Algorithmic Information Theory&lt;/a&gt; (&lt;a href="http://www.cs.auckland.ac.nz/CDMTCS/chaitin/" lang="en"&gt;G.
J. Chaitin&lt;/a&gt;).&lt;/li&gt;

&lt;li&gt;
&lt;a href="http://www.aber.ac.uk/media/Documents/short/trans.html"&gt;The Transmission
Model of Communication&lt;/a&gt; (D. Chandler).&lt;/li&gt;

&lt;li&gt;
&lt;a href="http://www.well.com/user/hlr/texts/tftindex.html"&gt;Tools For Thought:
The People and Ideas of the Next Computer Revolution&lt;/a&gt; (Howard Rheingold;
Simon &amp;amp; Schuster, 1985).&lt;/li&gt;

&lt;li&gt;
&lt;a href="http://pespmc1.vub.ac.be/CYBSHIST.html"&gt;History of Cybernetics
and Systems Science&lt;/a&gt; (en &lt;a href="http://pespmc1.vub.ac.be/"&gt;Principia
Cybernetica Web&lt;/a&gt;).&lt;/li&gt;

&lt;li&gt;
&lt;a href="http://blog.infoaragon.com/tiopetrus/index.php?idarticulo=200309191"&gt;La
entrop&amp;iacute;a de Kolmogorov&lt;/a&gt; (sobre el concepto de Entrop&amp;iacute;a
en el contexto de la Teor&amp;iacute;a de la informaci&amp;oacute;n de Shannon; en &lt;a href="http://www.blogia.com/tiopetrus/"&gt;Tio Petros&lt;/a&gt;).&lt;/li&gt;

&lt;li&gt;
&lt;a href="http://matematicos.net/mt/archives/000009.html#more"&gt;La definici&amp;oacute;n
de entrop&amp;iacute;a&lt;/a&gt; (en &lt;a href="http://matematicos.net/mt/"&gt;Bit&amp;aacute;cora
de matem&amp;aacute;ticas&lt;/a&gt;).&lt;/li&gt;

&lt;li&gt;
&lt;a href="http://delta.cs.cinvestav.mx/~schapa/red/intro_lm/logica1.html"&gt;Introducci&amp;oacute;n
a la L&amp;oacute;gica Matem&amp;aacute;tica&lt;/a&gt; (S. V. Chapa Vergara).&lt;/li&gt;

&lt;li&gt;
&lt;a href="http://lambenor.free.fr/mlog/index.php?op=historia&amp;sid=318"&gt;De
representaci&amp;oacute;n, velocidad, capacidad y prefijos binarios&lt;/a&gt; (sobre
el sistema binario y sus unidades de medida).&lt;/li&gt;

&lt;li&gt;
&lt;a href="http://serbal.pntic.mec.es/~cmunoz11/page35.html"&gt;&amp;Aacute;lgebra
de Boole: Del Silogismo Aristot&amp;eacute;lico a los Circuitos Integrados&lt;/a&gt;
(J. Borge Holthoefer. En &lt;a href="http://serbal.pntic.mec.es/~cmunoz11/"&gt;A
Parte Rei. Revista de filosof&amp;iacute;a&lt;/a&gt;, n&amp;ordm; 25, enero 2003; en
formato &lt;acronym title="Portable Document Format" lang="en"&gt;PDF&lt;/acronym&gt;).&lt;/li&gt;
&lt;/ul&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5454882-107395732842307963?l=programacionlogica.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://programacionlogica.blogspot.com/feeds/107395732842307963/comments/default' title='Enviar comentarios'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=5454882&amp;postID=107395732842307963&amp;isPopup=true' title='0 comentarios'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5454882/posts/default/107395732842307963'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5454882/posts/default/107395732842307963'/><link rel='alternate' type='text/html' href='http://programacionlogica.blogspot.com/2004/01/teorn.html' title='Teor&amp;iacute;a Matem&amp;aacute;tica de la Informaci&amp;oacute;n'/><author><name>etxe</name><uri>http://www.blogger.com/profile/10987668917577281087</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5454882.post-107305187280426010</id><published>2004-01-02T14:57:00.000+01:00</published><updated>2004-02-27T18:06:15.466+01:00</updated><title type='text'>Varios sobre Recuperación de Información</title><content type='html'>&lt;p&gt;Uno de los cl&amp;aacute;sicos de la literatura cient&amp;iacute;fica
sobre recuperaci&amp;oacute;n de informaci&amp;oacute;n (RI), es sin duda la obra
"Information Retrieval" de C. J. van Rijsbergen (&lt;a href="http://www.dcs.gla.ac.uk/"&gt;Department
of Computing Science&lt;/a&gt;, Universidad de Glasgow). El texto completo de
la &lt;a href="http://www.dcs.gla.ac.uk/Keith/Preface.html" title="Information Retrieval, a book by C. J. van Rijsbergen" lang="en"&gt;segunda
edici&amp;oacute;n&lt;/a&gt; (1979) est&amp;aacute; disponible en Internet y se puede
consultar en dos formatos, &lt;acronym title="HyperText Markup Language" lang="en"&gt;HTML&lt;/acronym&gt;
y &lt;a href="http://www.adobe.com/products/acrobat/readstep2.html" lang="en"&gt;&lt;acronym title="Portable Document Format" lang="en"&gt;PDF&lt;/acronym&gt;&lt;/a&gt;,
siendo este &amp;uacute;ltimo el m&amp;aacute;s recomendable, ya que al tratarse
de un facs&amp;iacute;mil del original impreso, mantiene la integridad y por
tanto la legibilidad de las f&amp;oacute;rmulas y algoritmos descritos, muy
dif&amp;iacute;ciles de representar correctamente en &lt;acronym title="HyperText Markup Language" lang="en"&gt;HTML&lt;/acronym&gt;
puro hasta que, &lt;em&gt;plugins&lt;/em&gt; de todo tipo aparte, &lt;a href="http://www.w3.org/Math/" lang="en"&gt;MathML&lt;/a&gt;
(est&amp;aacute;ndar del &lt;a href="http://www.w3.org/" title="World Wide Web Consortium" lang="en"&gt;W3C&lt;/a&gt;)
sea una realidad totalmente soportada por los navegadores m&amp;aacute;s extendidos;
en el caso que nos ocupa se recurre, en la versi&amp;oacute;n en &lt;acronym title="HyperText Markup Language" lang="en"&gt;HTML&lt;/acronym&gt;,
a simples im&amp;aacute;genes para solventar esta limitaci&amp;oacute;n.&lt;/p&gt;

&lt;p&gt;Hay que hacer notar a este respecto que &lt;a href="http://www.mozilla.org/" lang="en"&gt;Mozilla&lt;/a&gt;
soporta &lt;a href="http://www.mozilla.org/projects/mathml/" title="MathML in Mozilla" lang="en"&gt;razonablemente
bien&lt;/a&gt; el est&amp;aacute;ndar &lt;a href="http://www.w3.org/Math/" lang="en"&gt;MathML&lt;/a&gt;,
como nos demuestra el excelente "weblog" &lt;a href="http://matematicos.net/mt/"&gt;Bit&amp;aacute;cora
de matem&amp;aacute;ticas&lt;/a&gt;, si bien es preciso instalar previamente una
serie de fuentes especiales (como se explica en esta bit&amp;aacute;cora).&lt;/p&gt;

&lt;p&gt;A pesar de los a&amp;ntilde;os transcurridos desde la publicaci&amp;oacute;n
de la obra de van Rijsbergen, los fundamentos te&amp;oacute;ricos expuestos
son plenamente vigentes, no en vano es una obra de referencia en este campo
que, de forma condensada, pero al tiempo con el requerido nivel de complejidad
te&amp;oacute;rica, ofrece una visi&amp;oacute;n general de las principales t&amp;eacute;cnicas
y m&amp;eacute;todos involucrados en los procesos de &lt;acronym title="Recuperaci&amp;oacute;n de Informaci&amp;oacute;n"&gt;RI&lt;/acronym&gt;.
Los temas o campos de la &lt;acronym title="Recuperaci&amp;oacute;n de Informaci&amp;oacute;n"&gt;RI&lt;/acronym&gt;
que trata son los siguientes:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
Automatic Text Analysis.&lt;/li&gt;
&lt;li&gt;
Automatic Classification.&lt;/li&gt;
&lt;li&gt;
File Structures.&lt;/li&gt;
&lt;li&gt;
Search Strategies.&lt;/li&gt;
&lt;li&gt;
Probabilistic Retrieval.&lt;/li&gt;
&lt;li&gt;
Evaluation.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Otras t&amp;eacute;cnicas m&amp;aacute;s o menos novedosas de representaci&amp;oacute;n
y procesamiento, aplicadas con mayor o menor fortuna al campo de la &lt;acronym title="Recuperaci&amp;oacute;n de Informaci&amp;oacute;n"&gt;RI&lt;/acronym&gt;
(redes neuronales, conjuntos difusos, algoritmos gen&amp;eacute;ticos... en
el portal &lt;a href="http://www.generation5.org/" title="Artificial Intelligence site on the Internet" lang="en"&gt;generation5.org&lt;/a&gt;
existen una serie de &lt;a href="http://www.generation5.org/articles.asp" lang="en"&gt;art&amp;iacute;culos
e introducciones&lt;/a&gt; de car&amp;aacute;cter gen&amp;eacute;rico sobre estos m&amp;eacute;todos),
no se contemplan en el libro ya que eran pr&amp;aacute;cticamente desconocidas,
o a&amp;uacute;n estaban en una fase inicial de desarrollo en la fecha de publicaci&amp;oacute;n
original de la edici&amp;oacute;n actualmente disponible electr&amp;oacute;nicamente.
Tampoco creo que la intenci&amp;oacute;n del autor fuese abordar excesivas
complejidades te&amp;oacute;ricas y conceptuales, sino por el contrario ofrecer
un texto "asequible", a modo de "estado de la cuesti&amp;oacute;n", pero no
por ello carente de una m&amp;aacute;s que suficiente profundidad te&amp;oacute;rica.&lt;/p&gt;

&lt;p&gt;En un plano de menor nivel de complejidad
te&amp;oacute;rica, pero precisamente por ello m&amp;aacute;s asequible y adecuado
para las personas no excesivamente versadas en estos asuntos, encontramos
en &lt;a href="http://www.hipertext.net/"&gt;hipertext.net&lt;/a&gt;
una introducci&amp;oacute;n relacionada con el tema que nos ocupa, "&lt;a href="http://www.hipertext.net/web/pag188.htm" title="Autor: Raquel Gómez Díaz"&gt;La
evaluaci&amp;oacute;n en recuperaci&amp;oacute;n de la informaci&amp;oacute;n&lt;/a&gt;".
En este documento se describen los principales indicadores aceptados para
valorar los resultados obtenidos en los procesos de recuperaci&amp;oacute;n
de informaci&amp;oacute;n. Existe en el texto alguna falta de correspondencia
entre la f&amp;oacute;rmula descrita en la explicaci&amp;oacute;n y la representada
gr&amp;aacute;ficamente en la figura correspondiente, atenci&amp;oacute;n por tanto
a este punto. A destacar la consistente &lt;a href="http://www.hipertext.net/web/pag188.htm#f20921"&gt;bibliograf&amp;iacute;a&lt;/a&gt;
aportada.&lt;/p&gt;

&lt;p&gt;Y ya que mencionamos el portal &lt;a href="http://www.hipertext.net/"&gt;hipertext.net&lt;/a&gt;,
&lt;a href="http://www.hipertext.net/web/pag107.htm"&gt;concebido&lt;/a&gt;
como punto de encuentro virtual para las personas interesadas en el &amp;aacute;rea
de la Documentaci&amp;oacute;n digital, destacaremos otros tres interesantes
documentos, publicados en el &lt;a href="http://www.hipertext.net/web/pag102.htm"&gt;Anuario
n&amp;ordm; 1&lt;/a&gt; (mayo 2003):&lt;/p&gt;

&lt;blockquote&gt;
&lt;a href="http://www.hipertext.net/web/pag185.htm" title="Autor: Antonio de la Rosa"&gt;Introducci&amp;oacute;n
a XML para Documentalistas&lt;/a&gt;&lt;br /&gt;
Introducci&amp;oacute;n al lenguaje de marcado &lt;a href="http://www.w3.org/XML/" lang="en"&gt;&lt;acronym title="Extensible Markup Language" lang="en"&gt;XML&lt;/acronym&gt;&lt;/a&gt;
desde la perspectiva de su aplicaci&amp;oacute;n pr&amp;aacute;ctica a representaciones
documentales, sin olvidar su presentaci&amp;oacute;n mediante &lt;acronym title="Extensible Stylesheet Language: Transformations"&gt;XSLT&lt;/acronym&gt;.

&lt;p&gt;&lt;a href="http://www.hipertext.net/web/pag186.htm" title="Autor: José A. Senso Ruiz"&gt;Resource
Description Framework&lt;/a&gt; (RDF)&lt;br /&gt;
Introducci&amp;oacute;n al concepto y sintaxis de este lenguaje para la
representaci&amp;oacute;n, procesamiento y recuperaci&amp;oacute;n de metadatos
[&lt;a href="http://www.dcc.uchile.cl/%7Ecvasquez/meta_overview.html" title="Introducción a los metadatos"&gt;1&lt;/a&gt;]
[&lt;a href="http://www.metadatos.cl/" title="Grupo Metadatos, Universidad de Chile"&gt;2&lt;/a&gt;].&lt;/p&gt;

&lt;p&gt;&lt;a href="http://www.hipertext.net/web/pag182.htm" title="Autor: J.A. Moreiro; S. Sánchez Cuadrado; J. Morato"&gt;Panor&amp;aacute;mica
y tendencias en Topic Maps&lt;/a&gt;&lt;br /&gt;
Los Topics Maps o &lt;a href="http://www.mapasconceptuales.com/"&gt;mapas
conceptuales&lt;/a&gt;, son una forma de representaci&amp;oacute;n visual de la informaci&amp;oacute;n,
en este caso referida a formas de navegaci&amp;oacute;n hipertextual entre
contenidos y recursos electr&amp;oacute;nicos, muy similares, tanto en concepto como en
lo que a la forma de representaci&amp;oacute;n formal se refiere, a los denominados
"Mind Maps" o mapas mentales [&lt;a href="http://members.tripod.com/~hdo_zorrilla/creatividad/mapas_mentales.htm"&gt;1&lt;/a&gt;]
[&lt;a href="http://users.edte.utwente.nl/lanzing/cm_home.htm" lang="en"&gt;2&lt;/a&gt;]
[&lt;a href="http://www.mind-map.com/" lang="en"&gt;3&lt;/a&gt;].&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;Los mapas conceptuales que se describen en este &amp;uacute;ltimo art&amp;iacute;culo
se basan en la especificaci&amp;oacute;n &lt;a href="http://topicmaps.org/xtm/index.html" title="TopicMaps.Org Specification" lang="en"&gt;XML
Topic Maps&lt;/a&gt; (XTM; actualmente es un &lt;a href="http://topicmaps.org/xtm/index.html#ref_iso13250" lang="en"&gt;est&amp;aacute;ndar &lt;acronym title="International Organization for Standardization" lang="en"&gt;ISO&lt;/acronym&gt;&lt;/a&gt;),
consistente en una gram&amp;aacute;tica basada en el meta-lenguaje &lt;acronym title="Extensible Markup Language" lang="en"&gt;XML&lt;/acronym&gt;. Cito textualmente:&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;"Un mapa conceptual de navegaci&amp;oacute;n, es la representaci&amp;oacute;n
de un conjunto de relaciones conceptuales por medio de una estructura de
proposiciones formada por conceptos y palabras enlace. Cada concepto tiene
un listado de enlaces que permiten el acceso a todo tipo de documentos
con contenidos relacionados directamente con el concepto representado."
&lt;div class="cita"&gt;&lt;a href="http://www.hipertext.net/web/pag177.htm"&gt;Fuente&lt;/a&gt;&lt;/div&gt;&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;Podemos consultar sobre este particular, adem&amp;aacute;s del portal del consorcio
independiente &lt;a href="http://topicmaps.org/" lang="en"&gt;TopicMaps.Org&lt;/a&gt;
(encargado de la elaboraci&amp;oacute;n y mantenimiento de la especificaci&amp;oacute;n
antes rese&amp;ntilde;ada), la excelente introducci&amp;oacute;n "&lt;a href="http://www.xml.com/pub/a/2002/09/11/topicmaps.html" lang="en"&gt;What
Are Topic Maps?&lt;/a&gt;" publicada en &lt;a href="http://www.xml.com/" lang="en"&gt;XML.com&lt;/a&gt;,
y, a modo de marco te&amp;oacute;rico general, los ensayos "&lt;a href="http://ksi.cpsc.ucalgary.ca/articles/ConceptMaps/" lang="en"&gt;Concept
Maps as Hypermedia Components&lt;/a&gt;" y "&lt;a href="http://www.ramanarao.com/articles/2001-12-online-info/cviz.html" lang="en"&gt;Understanding
Information Collections with Maps and Visualizations&lt;/a&gt;", por citar algunas
posibles fuentes de referencia. En &lt;a href="http://deakialli.blogspot.com/"&gt;Deakialli&lt;/a&gt; tambi&amp;eacute;n
han &lt;a href="http://deakialli.blogspot.com/2003_12_01_deakialli_archive.html#107280972773088242"&gt;comentado&lt;/a&gt; este tema d&amp;iacute;as atrás,
a prop&amp;oacute;sito del buscador de pago &lt;a href="http://www.groxis.com/service/grok/" title="Knowledge management, data mining and information mapping" lang="en"&gt;Grokker&lt;/a&gt;.&lt;/p&gt;

&lt;p&gt;A fecha de hoy el &amp;uacute;nico navegador que soporta la representaci&amp;oacute;n
formal de los mapas conceptuales es &lt;acronym title="Internet Explorer" lang="en"&gt;IE&lt;/acronym&gt;.
Y esta puntualizaci&amp;oacute;n da pie a comentar un grave fallo de accesibilidad
del portal &lt;a href="http://www.hipertext.net/"&gt;hipertext.net&lt;/a&gt;,
s&amp;oacute;lo se puede acceder a sus contenidos mediante el navegador de &lt;acronym title="MicroSoft" lang="en"&gt;MS&lt;/acronym&gt;,
lo cual no es de recibo en el actual contexto de dise&amp;ntilde;o y usabilidad
web, en el que la tendencia es (o pretende ser) tratar de ofrecer &lt;a href="http://www.nosolousabilidad.com/"&gt;contenidos
y recursos abiertos&lt;/a&gt; a toda clase de usuarios y sistemas, sin (im)poner
a priori limitaciones de ning&amp;uacute;n tipo.&lt;/p&gt;

&lt;p&gt;Retomando el tema de la &lt;acronym title="Recuperaci&amp;oacute;n de Informaci&amp;oacute;n"&gt;RI&lt;/acronym&gt;
mencionaremos tambi&amp;eacute;n las siguientes monograf&amp;iacute;as:&lt;/p&gt;

&lt;ul class="conmargeninf"&gt;
&lt;li&gt;
&lt;a href="http://www.dcc.ufmg.br/irbook/" lang="en"&gt;Modern Information
Retrieval&lt;/a&gt; (R. Baeza-Yates y B. Ribeiro-Neto, 1999; &lt;a href="http://www.sims.berkeley.edu/~hearst/irbook/" lang="en"&gt;ubicaci&amp;oacute;n
alternativa&lt;/a&gt;); &amp;uacute;nicamente se pueden consultar a texto completo
(en formatos &lt;acronym title="HyperText Markup Language" lang="en"&gt;HTML&lt;/acronym&gt;, &lt;acronym title="Portable Document Format" lang="en"&gt;PDF&lt;/acronym&gt;
y &lt;acronym title="PostScript" lang="en"&gt;PS&lt;/acronym&gt;) los cap&amp;iacute;tulos
1 (&lt;a href="http://www.dcc.ufmg.br/irbook/chapters/chap1.html" lang="en"&gt;Introduction&lt;/a&gt;)
y 10 (&lt;a href="http://www.dcc.ufmg.br/irbook/chapters/chap10.html" lang="en"&gt;User
Interfaces and Visualization&lt;/a&gt;).&lt;/li&gt;

&lt;li&gt;
&lt;a href="http://www.db.dk/pi/iri/" lang="en"&gt;Information Retrieval Interaction&lt;/a&gt;
(Peter Ingwersen, 1992), disponible a texto completo en formato &lt;acronym title="Portable Document Format" lang="en"&gt;PDF&lt;/acronym&gt;,
bien en un &amp;uacute;nico documento, o por cap&amp;iacute;tulos. Peter Ingwersen
fue uno de los &lt;a href="http://www.fundacion.uc3m.es/jotri2003/programa.asp"&gt;ponentes&lt;/a&gt;
de las &lt;a href="http://www.fundacion.uc3m.es/jotri2003/"&gt;II Jornadas de
Tratamiento y Recuperaci&amp;oacute;n de la Informaci&amp;oacute;n&lt;/a&gt; (Jotri 2003)
celebradas en septiembre del a&amp;ntilde;o pasado en el marco de la &lt;a href="http://www.uc3m.es/"&gt;Universidad
Carlos III&lt;/a&gt; de Madrid, &lt;a href="http://programacionlogica.blogspot.com/2003_06_01_programacionlogica_archive.html#105603733771218246"&gt;mencionadas&lt;/a&gt;
en una ocasi&amp;oacute;n anterior.&lt;/li&gt;

&lt;li&gt;
&lt;a href="http://publish.uwo.ca/~craven/book1986/index.htm" lang="en"&gt;String
Indexing&lt;/a&gt; (T.C. Craven, 1986).&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Otros textos y art&amp;iacute;culos sobre &lt;acronym title="Recuperaci&amp;oacute;n de Informaci&amp;oacute;n"&gt;RI&lt;/acronym&gt;
y disciplinas conexas:&lt;/p&gt;

&lt;ul class="conmargeninf"&gt;
&lt;li&gt;
&lt;a href="http://www.um.es/gtiweb/fjmm/sarisite/tema1.html"&gt;Introducci&amp;oacute;n
a los Sistemas de Recuperaci&amp;oacute;n de Informaci&amp;oacute;n&lt;/a&gt; (F.J.
Mart&amp;iacute;nez M&amp;eacute;ndez, Departamento de Informaci&amp;oacute;n y Documentaci&amp;oacute;n.
Universidad de Murcia; ver tambi&amp;eacute;n el resto de temas de la asignatura
&lt;a href="http://www.um.es/gtiweb/fjmm/sarisite/"&gt;Sistemas
de Almacenamiento y Recuperaci&amp;oacute;n de Informaci&amp;oacute;n&lt;/a&gt;).&lt;/li&gt;

&lt;li&gt;
&lt;a href="http://pi0959.kub.nl/Paai/Onderw/V-I/Content/basics.html" lang="en"&gt;Basics
of Information Retrieval&lt;/a&gt; (&lt;a href="http://pi0959.kub.nl/Paai/"&gt;J.J.
Paijmans&lt;/a&gt;); de este mismo autor: "&lt;a href="http://pi0959.kub.nl/Paai/Onderw/V-I/Content/probabilistic.html" lang="en"&gt;Probabilistic
Approaches in Information Retrieval&lt;/a&gt;", "&lt;a href="http://pi0959.kub.nl/Paai/Onderw/V-I/Content/struc_doc_IR.html" lang="en"&gt;Structured
Document Retrieval&lt;/a&gt;" y "&lt;a href="http://pi0959.kub.nl/Paai/Onderw/V-I/Content/history.html" lang="en"&gt;The
retrieval of information from historical perspective&lt;/a&gt;".&lt;/li&gt;

&lt;li&gt;
&lt;a href="http://www.dcs.shef.ac.uk/~yorick/papers/irandai/" lang="en"&gt;&lt;acronym title="Information Retrieval" lang="en"&gt;IR&lt;/acronym&gt;
and &lt;acronym title="Artificial Intelligence" lang="en"&gt;AI&lt;/acronym&gt;:
traditions of representation and anti-representation in information processing&lt;/a&gt;
(&lt;a href="http://www.dcs.shef.ac.uk/~yorick/" lang="en"&gt;Y. Wilks&lt;/a&gt;; tambi&amp;eacute;n
&lt;a href="http://www.dcs.shef.ac.uk/~yorick/papers/irandai.ps" lang="en"&gt;en
formato &lt;acronym title="PostScript" lang="en"&gt;PS&lt;/acronym&gt;&lt;/a&gt;); de
este mismo autor: "&lt;a href="http://www.dcs.shef.ac.uk/~yorick/papers/iebeyonddr.ps" lang="en"&gt;Information
Extraction: Beyond Document Retrieval&lt;/a&gt;" (en formato &lt;acronym title="PostScript" lang="en"&gt;PS&lt;/acronym&gt;).&lt;/li&gt;

&lt;li&gt;
&lt;a href="http://ai.bpa.arizona.edu/papers/mlir93/mlir93.html" lang="en"&gt;Machine
Learning for Information Retrieval: Neural Networks, Symbolic Learning,
and Genetic Algorithms&lt;/a&gt; (&lt;a href="http://ai.bpa.arizona.edu/hchen/" lang="en"&gt;H. Chen&lt;/a&gt;; también en &lt;a href="http://ai.bpa.arizona.edu/go/intranet/papers/Machine-95.pdf" lang="en"&gt;formato &lt;acronym title="Portable Document Format" lang="en"&gt;PDF&lt;/acronym&gt;&lt;/a&gt;;
H. Chen es el fundador y responsable del &lt;a href="http://ai.bpa.arizona.edu/" lang="en"&gt;Artificial Intelligence Lab&lt;/a&gt; de la Universidad de Arizona;
gran parte de su producci&amp;oacute;n de &lt;a href="http://ai.bpa.arizona.edu/go/papers.html" lang="en"&gt;art&amp;iacute;culos y ensayos&lt;/a&gt; versa sobre la
aplicaci&amp;oacute;n de t&amp;eacute;cnicas de &lt;acronym title="Inteligencia Artificial"&gt;IA&lt;/acronym&gt; a la &lt;acronym title="Recuperación de Información"&gt;RI&lt;/acronym&gt;,
y sobre bibliotecas digitales).&lt;/li&gt;

&lt;li&gt;
&lt;a href="http://www.cs.jhu.edu/~weiss/glossary.html" lang="en"&gt;Glossary
for Information Retrieval&lt;/a&gt; (&lt;a href="http://www.cs.jhu.edu/~weiss/ir.html" lang="en"&gt;S.
Weiss&lt;/a&gt;; sin mantenimiento, la &amp;uacute;ltima actualizaci&amp;oacute;n data
de 1997).&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;a href="http://publish.uwo.ca/~craven/" lang="en"&gt;Tim Craven&lt;/a&gt;, cuya
obra "&lt;a href="http://publish.uwo.ca/~craven/book1986/index.htm" lang="en"&gt;String
Indexing&lt;/a&gt;" acabamos de referenciar, es profesor de la &lt;a href="http://www.fims.uwo.ca" lang="en"&gt;Facultad
de Informaci&amp;oacute;n y Estudios de Medios&lt;/a&gt;, Universidad &lt;a href="http://www.uwo.ca/" lang="en"&gt;Western
Ontario&lt;/a&gt; (Canad&amp;aacute;). En su p&amp;aacute;gina web encontramos recursos
relacionados con su actividad docente y profesional, destacando un tutorial
para la &lt;a href="http://instruct.uwo.ca/gplis/677/thesaur/main00.htm" lang="en"&gt;creaci&amp;oacute;n
de tesauros&lt;/a&gt;, y, especialmente, una serie de &lt;a href="http://publish.uwo.ca/~craven/freeware.htm" lang="en"&gt;programas&lt;/a&gt;
de car&amp;aacute;cter "freeware" (para la plataforma MS Windows &amp;uacute;nicamente)
orientados a prestar ayuda, fundamentalmente, en tareas relacionadas con
los procesos de indexaci&amp;oacute;n, resumen y &lt;acronym title="Recuperaci&amp;oacute;n de Informaci&amp;oacute;n"&gt;RI&lt;/acronym&gt;,
a saber: extracci&amp;oacute;n de palabras y frases (ExtPhr32), indexaci&amp;oacute;n
de a) cadenas de texto (NEPHIS32) y b) documentos web (XRefHT32), seguimiento
y ayuda automatizados en el proceso de elaboraci&amp;oacute;n de res&amp;uacute;menes
(TexNet32) y, por &amp;uacute;ltimo, creaci&amp;oacute;n y mantenimiento de tesauros (TheW32).&lt;/p&gt;

&lt;p&gt;Personalmente he probado el programa que sirve
como asistente y gestor en la tarea de elaborar y mantener tesauros (TheW32),
y mi intenci&amp;oacute;n es hacer lo propio con el resto de ellos. Su funcionamiento
es muy sencillo e intuitivo (ver las p&amp;aacute;ginas &lt;a href="http://instruct.uwo.ca/gplis/677/thew32/thew32.htm" lang="en"&gt;Documentation&lt;/a&gt;
e &lt;a href="http://instruct.uwo.ca/gplis/677/thew32/thew32in.htm" lang="en"&gt;Introduction&lt;/a&gt;),
siempre que se conozcan m&amp;iacute;nimamente los fundamentos te&amp;oacute;ricos
relativos a los lenguajes de indizaci&amp;oacute;n en general y los tesauros
en particular, y existen varias posibilidades de visualizaci&amp;oacute;n y
exportaci&amp;oacute;n de parte o la totalidad de los glosarios terminol&amp;oacute;gicos
confeccionados, tanto en lo que se refiere al formato de archivo capaz
de generar el programa (&lt;acronym title="HyperText Markup Language" lang="en"&gt;HTML&lt;/acronym&gt;, &lt;acronym title="Extensible Markup Language" lang="en"&gt;XML&lt;/acronym&gt;, &lt;acronym title="Rich Text Format" lang="en"&gt;RTF&lt;/acronym&gt;,
texto plano...), como en lo relativo a la presentaci&amp;oacute;n en s&amp;iacute;
de los t&amp;eacute;rminos y sus relaciones.&lt;/p&gt;

&lt;p&gt;Para obtener m&amp;aacute;s informaci&amp;oacute;n acerca de este tipo de programas,
recomiendo visitar la p&amp;aacute;gina "&lt;a href="http://www.willpower.demon.co.uk/thessoft.htm" lang="en"&gt;Software
for building and editing thesauri&lt;/a&gt;" en la que se recogen enlaces comentados
y fuentes de referencia sobre el particular. Comienza con una breve explicaci&amp;oacute;n
que versa sobre en qu&amp;eacute; consiste un tesauro, aunque tambi&amp;eacute;n
es posible acceder a una &lt;a href="http://www.willpower.demon.co.uk/thesprin.htm" title="Thesaurus principles and practice" lang="en"&gt;exposici&amp;oacute;n
m&amp;aacute;s detallada&lt;/a&gt;.&lt;/p&gt;

&lt;p&gt;Finalmente mencionar, dentro del &amp;aacute;mbito de la &lt;acronym title="Recuperaci&amp;oacute;n de Informaci&amp;oacute;n"&gt;RI&lt;/acronym&gt;,
el proyecto &lt;a href="http://www.dlsi.ua.es/projectes/srim/informacion.html"&gt;SRIM&lt;/a&gt;
("Construcci&amp;oacute;n de un sistema de recuperaci&amp;oacute;n de informaci&amp;oacute;n
multiling&amp;uuml;e en la web"; finalizado en diciembre de 2003), desarrollado
por investigadores procedentes de las universidades de Alicante, Ja&amp;eacute;n
y Sevilla, y cuyo objetivo es la construcci&amp;oacute;n de un sistema de recuperaci&amp;oacute;n
de informaci&amp;oacute;n multiling&amp;uuml;e (la pregunta de consulta y los documentos
recuperados no han de estar necesariamente en el mismo idioma), con capacidades
a&amp;ntilde;adidas de procesamiento del lenguaje natural (&lt;acronym title="Procesamiento del Lenguaje Natural"&gt;PLN&lt;/acronym&gt;
&amp;oacute; &lt;acronym title="Natural Language Processing" lang="en"&gt;NLP&lt;/acronym&gt;)
tales como an&amp;aacute;lisis l&amp;eacute;xico y sint&amp;aacute;ctico, entre otras.
Actualmente el sistema est&amp;aacute; formado por las siguientes herramientas,
operativas en l&amp;iacute;nea:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
Localizador geogr&amp;aacute;fico (sistema de consultas a una base de datos
geogr&amp;aacute;fica en lenguaje natural);&lt;/li&gt;

&lt;li&gt;
Sistema de &lt;acronym title="Recuperaci&amp;oacute;n de Informaci&amp;oacute;n"&gt;RI&lt;/acronym&gt;,
trabaja sobre una base de datos de documentos de prensa, consultable mediante
expresiones de b&amp;uacute;squeda en lenguaje natural, o mediante palabras
clave;&lt;/li&gt;

&lt;li&gt;
Aplicaci&amp;oacute;n para la desambig&amp;uuml;aci&amp;oacute;n de textos;&lt;/li&gt;

&lt;li&gt;
Sistema de &lt;acronym title="Procesamiento del Lenguaje Natural"&gt;PLN&lt;/acronym&gt;
orientado a la resoluci&amp;oacute;n del problema de la an&amp;aacute;fora (repetici&amp;oacute;n
de una o m&amp;aacute;s palabras al principio de enunciados sucesivos);&lt;/li&gt;

&lt;li&gt;
Herramienta de &lt;em&gt;pos tagging&lt;/em&gt; para anotar texto con informaci&amp;oacute;n
sobre el lema (entrada objeto de atenci&amp;oacute;n) y las partes de la oraci&amp;oacute;n
correspondientes (&lt;em&gt;part-of-speech&lt;/em&gt;).&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Sobre la t&amp;eacute;cnica &lt;em&gt;pos tagging&lt;/em&gt; de etiquetado de las categor&amp;iacute;as
gramaticales de las palabras -o etiquetado l&amp;eacute;xico de textos-, ver,
en el art&amp;iacute;culo "&lt;a href="http://www.imim.es/quark/num19/019026.htm"&gt;T&amp;eacute;cnicas
b&amp;aacute;sicas en el tratamiento inform&amp;aacute;tico de la lengua&lt;/a&gt;" (&lt;a href="http://www.imim.es/quark/num19/"&gt;Quark
n&amp;ordm; 19&lt;/a&gt;, julio-diciembre 2000, especial &lt;em&gt;Las tecnolog&amp;iacute;as
de la lengua&lt;/em&gt;), el apartado "Desambiguaci&amp;oacute;n morfosint&amp;aacute;ctica".&lt;/p&gt;

&lt;p&gt;Como material de apoyo, y adem&amp;aacute;s de la correspondiente ayuda y manuales
referidos a cada una de las herramientas, tambi&amp;eacute;n encontramos una
serie de art&amp;iacute;culos y ponencias (en formato &lt;acronym title="Portable Document Format" lang="en"&gt;PDF&lt;/acronym&gt;,
ver el apartado "Publicaciones derivadas del proyecto"), cuyo objeto de
estudio es la descripci&amp;oacute;n de los diversos aspectos del &lt;acronym title="Procesamiento del Lenguaje Natural"&gt;PLN&lt;/acronym&gt;
involucrados en el desarrollo del proyecto SRIM. En general se trata de
textos s&amp;oacute;lo aptos para personas muy metidas en estas cuestiones,
dado su car&amp;aacute;cter especializado y su considerable nivel de complejidad
te&amp;oacute;rica.&lt;/p&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5454882-107305187280426010?l=programacionlogica.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://programacionlogica.blogspot.com/feeds/107305187280426010/comments/default' title='Enviar comentarios'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=5454882&amp;postID=107305187280426010&amp;isPopup=true' title='0 comentarios'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5454882/posts/default/107305187280426010'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5454882/posts/default/107305187280426010'/><link rel='alternate' type='text/html' href='http://programacionlogica.blogspot.com/2004/01/varios-sobre-recuperacin.html' title='Varios sobre Recuperaci&amp;oacute;n de Informaci&amp;oacute;n'/><author><name>etxe</name><uri>http://www.blogger.com/profile/10987668917577281087</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5454882.post-107243847465296951</id><published>2003-12-26T12:34:00.000+01:00</published><updated>2004-02-27T15:45:01.763+01:00</updated><title type='text'>Obtención de estadísticas del sistema en Prolog</title><content type='html'>&lt;p&gt;D&amp;iacute;as atr&amp;aacute;s se plante&amp;oacute; en la lista de distribuci&amp;oacute;n
&lt;a href="https://listas.hispalinux.es/mailman/listinfo/prolog"&gt;Prolog
y programaci&amp;oacute;n l&amp;oacute;gica&lt;/a&gt; de &lt;a href="http://www.hispalinux.es/"&gt;Hispalinux&lt;/a&gt;,
la duda de c&amp;oacute;mo calcular el intervalo de tiempo transcurrido a fin
de comparar en Prolog la ejecuci&amp;oacute;n de dos programas.&lt;/p&gt;

&lt;p&gt;El actual est&amp;aacute;ndar &lt;a href="http://www.sju.edu/~jhodgson/prolog_proj/" lang="en"&gt;ISO
Prolog&lt;/a&gt; ("&lt;a href="http://www.iso.org"&gt;&lt;acronym title="International Organization for Standardization" lang="en"&gt;ISO&lt;/acronym&gt;&lt;/a&gt;/&lt;a href="http://www.iec.ch/" lang="en"&gt;&lt;acronym title="International Electrotechnical Commission" lang="en"&gt;IEC&lt;/acronym&gt;&lt;/a&gt;
13211-1:1995 Prolog -
&lt;a href="http://www.iso.org/iso/en/CatalogueDetailPage.CatalogueDetail?CSNUMBER=21413&amp;ICS1=35&amp;ICS2=60&amp;ICS3=" lang="en"&gt;Part
1: General core&lt;/a&gt;" e "ISO/IEC 13211-2:2000 Prolog - &lt;a href="http://www.iso.org/iso/en/CatalogueDetailPage.CatalogueDetail?CSNUMBER=20775&amp;ICS1=35&amp;ICS2=60&amp;ICS3=" lang="en"&gt;Part
2: Modules&lt;/a&gt;") no contempla ning&amp;uacute;n
procedimiento para obtener las estad&amp;iacute;sticas del sistema del usuario,
los tiempos de ejecuci&amp;oacute;n y otros procesos referidos al programa
o programas compilados, com&amp;uacute;n a todas las implementaciones de este
lenguaje, de modo que esta cuesti&amp;oacute;n queda a expensas de la soluci&amp;oacute;n
que cada sistema Prolog en particular halla implementado para dar soporte
a esta funcionalidad.&lt;/p&gt;

&lt;p&gt;Los borradores de trabajo, en formato TeX [&lt;a href="http://www.matematicas.net/paraiso/latex.php" title="LaTeX para Windows"&gt;1&lt;/a&gt;]
[&lt;a href="http://ltx.blogspot.com/" title="LaTeX y compañía"&gt;2&lt;/a&gt;] y &lt;a href="http://www.cs.wisc.edu/~ghost/" lang="en"&gt;&lt;acronym title="PostScript" lang="en"&gt;PS&lt;/acronym&gt;&lt;/a&gt;,
del est&amp;aacute;ndar ISO Prolog se pueden descargar desde &lt;a href="ftp://ftp.th-darmstadt.de/pub/programming/languages/prolog/standard/" lang="en"&gt;esta
direcci&amp;oacute;n &lt;acronym title="File Transfer Protocol" lang="en"&gt;FTP&lt;/acronym&gt;&lt;/a&gt;,
o bien desde el directorio &lt;a href="http://www-2.cs.cmu.edu/afs/cs/project/ai-repository/ai/lang/prolog/doc/standard/0.html" title="Prolog Standards Documents" lang="en"&gt;lang/prolog/doc/standard/&lt;/a&gt;
del &lt;a href="http://www-2.cs.cmu.edu/afs/cs.cmu.edu/project/ai-repository/ai/0.html" lang="en"&gt;CMU
Artificial Intelligence Repository&lt;/a&gt;. En la &lt;a href="ftp://ftp.th-darmstadt.de/pub/programming/languages/prolog/standard/" lang="en"&gt;primera
ubicaci&amp;oacute;n&lt;/a&gt; &amp;uacute;nicamente se puede descargar una versi&amp;oacute;n
de trabajo del est&amp;aacute;ndar ISO correspondiente a diciembre de 1991,
por lo que es m&amp;aacute;s recomendable acceder a los documentos localizados
en el &lt;a href="http://www-2.cs.cmu.edu/afs/cs/project/ai-repository/ai/lang/prolog/doc/standard/0.html" title="Prolog Standards Documents" lang="en"&gt;segundo
directorio&lt;/a&gt;. Concretamente, el archivo comprimido &lt;a href="http://www-2.cs.cmu.edu/afs/cs/project/ai-repository/ai/lang/prolog/doc/standard/d8.tgz"&gt;d8.tgz&lt;/a&gt;
contiene los documentos de la versi&amp;oacute;n preliminar del est&amp;aacute;ndar
ISO Prolog correspondiente a marzo de 1993.&lt;/p&gt;

&lt;p&gt;Indagando en el tema planteado, se muestran a continuaci&amp;oacute;n una
serie de sencillos ejemplos, relacionados con el uso de variables referidas
a la fecha y hora del sistema, utilizando a tal efecto una serie de predicados
predefinidos, soportados en este caso por la implementaci&amp;oacute;n
&lt;a href="http://www.swi-prolog.org/" lang="en"&gt;SWI-Prolog&lt;/a&gt;
(aunque mencionaremos de pasada alg&amp;uacute;n otro sistema), a los que nos
referiremos en primer lugar: cputime/0, statistics/0 y statistics/2, get_time/1,
convert_time/2 y convert_time/8, time_file/2 y time/1.&lt;/p&gt;

&lt;p&gt;Recordemos antes de nada que la notaci&amp;oacute;n &lt;a href="http://www.swi.psy.uva.nl/projects/SWI-Prolog/Manual/preddesc.html" title="Notation of Predicate Descriptions" lang="en"&gt;functor/aridad&lt;/a&gt;
representa un t&amp;eacute;rmino o predicado cuyo functor es el nombre expresado
en primer lugar, mientras que el n&amp;uacute;mero entero que figura tras la
barra oblicua (/) indica su aridad o n&amp;uacute;mero de argumentos (el 0
-cero- indica la inexistencia de argumentos).&lt;/p&gt;

&lt;p&gt;As&amp;iacute; mismo, en la menci&amp;oacute;n de la sintaxis de utilizaci&amp;oacute;n
de un predicado, el signo "+" (m&amp;aacute;s) expresa que el argumento
que sigue es una variable de entrada, mientras que el signo "-" (menos)
denota que se trata de un argumento o variable de salida. Un tercer signo,
"?" (interrogaci&amp;oacute;n), sirve para indicar que el argumento expresado
a continuaci&amp;oacute;n es reversible, es decir, puede funcionar tanto como
variable de entrada, como de salida.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;cputime/0&lt;/strong&gt; - esta &lt;a href="http://www.swi.psy.uva.nl/projects/SWI-Prolog/Manual/functions.html" title="Arithmetic Functions" lang="en"&gt;funci&amp;oacute;n
aritm&amp;eacute;tica&lt;/a&gt; proporciona el tiempo de la &lt;acronym title="Central Processing Unit" lang="en"&gt;CPU&lt;/acronym&gt;,
en segundos, transcurrido desde la carga del programa compilado. Su valor,
en formato de coma flotante, debe instanciarse con una variable para poder
ser manejado, para lo cual se puede utilizar, por ejemplo, el operador
infijo de evaluaci&amp;oacute;n aritm&amp;eacute;tica is/2:&lt;/p&gt;

&lt;blockquote class="codigo"&gt;?- X is cputime.
&lt;p&gt;X = 5.66&lt;/p&gt;&lt;/blockquote&gt;

&lt;p&gt;Un ejemplo muy sencillo e intrascendente de utilizaci&amp;oacute;n pr&amp;aacute;ctica
de cputime/0: si el tiempo transcurrido desde la carga del programa es
mayor a 0 segundos, cerrar/0 fuerza la salida del int&amp;eacute;rprete, funcionando
como un contador, que permite ejecutar el comando "halt" pasado un tiempo
predeterminado (en el ejemplo cualquiera mayor a 0 segundos); en este caso
la llamada se produce de forma inmediata, al realizarse la comparaci&amp;oacute;n
aritm&amp;eacute;tica del valor de cputime/0 (que ser&amp;aacute; siempre mayor
que 0) con el valor 0 (cero), por lo que viene a ser como ejecutar directamente
el predicado predeterminado halt/0 en el "shell" del int&amp;eacute;rprete:&lt;/p&gt;

&lt;blockquote class="codigo"&gt;cerrar :-
&lt;br /&gt;&amp;nbsp;&amp;nbsp; cputime &gt; 0, halt.&amp;nbsp;&amp;nbsp; % equivalente a ejecutar
la orden "?- halt."&lt;/blockquote&gt;

&lt;p&gt;Una variaci&amp;oacute;n de ese mismo planteamiento de uso de cputime/0 viene
definida por la siguiente regla, encargada de cerrar el int&amp;eacute;rprete
si han transcurrido m&amp;aacute;s de 15 segundos desde el inicio de la compilaci&amp;oacute;n
del archivo. En caso contrario, muestra un mensaje en pantalla.&lt;/p&gt;

&lt;blockquote class="codigo"&gt;cerrar :-
&lt;br /&gt;&amp;nbsp;&amp;nbsp; X is cputime,
&lt;br /&gt;&amp;nbsp;&amp;nbsp; X &gt; 15, !, halt;
&lt;br /&gt;&amp;nbsp;&amp;nbsp; nl, write('Todav&amp;iacute;a no han pasado 15 segundos.').&lt;/blockquote&gt;

&lt;p&gt;La regla tiempo/0 mostrada a continuaci&amp;oacute;n es otro ejemplo muy sencillo
de utilizaci&amp;oacute;n de la funci&amp;oacute;n cputime/0 para mostrar en pantalla
el tiempo transcurrido desde la compilaci&amp;oacute;n del programa de forma
"amigable":&lt;/p&gt;

&lt;blockquote class="codigo"&gt;tiempo :-
&lt;br /&gt;&amp;nbsp;&amp;nbsp; X is cputime, nl,
&lt;br /&gt;&amp;nbsp;&amp;nbsp; write('Tiempo transcurrido desde la carga del programa:
'),
&lt;br /&gt;&amp;nbsp;&amp;nbsp; write(X), write(' segundos').&lt;/blockquote&gt;

&lt;p&gt;La ejecuci&amp;oacute;n de tiempo/0 en el "shell" del int&amp;eacute;rprete presenta
el siguiente aspecto:&lt;/p&gt;

&lt;blockquote class="codigo"&gt;?- tiempo.
&lt;p&gt;Tiempo transcurrido desde la carga del programa: 22.46 segundos&lt;/p&gt;&lt;/blockquote&gt;

&lt;p&gt;Otro ejemplo, muy similar al anterior, es el que se muestra a continuaci&amp;oacute;n;
escribe en pantalla un mensaje indicando el tiempo, en segundos, que lleva
funcionando el programa.&lt;/p&gt;

&lt;blockquote class="codigo"&gt;tiempo :-
&lt;br /&gt;&amp;nbsp;&amp;nbsp; X is cputime,
&lt;br /&gt;&amp;nbsp;&amp;nbsp; Tiempo is X/60,
&lt;br /&gt;&amp;nbsp;&amp;nbsp; nl, write('Este programa lleva funcionando '),
&lt;br /&gt;&amp;nbsp;&amp;nbsp; write(Tiempo), write(' minutos '), write('('),
&lt;br /&gt;&amp;nbsp;&amp;nbsp; write(X), write(' segundos).').&lt;/blockquote&gt;

&lt;p&gt;N&amp;oacute;tese que para transformar el tiempo de segundos a minutos, se
ha utilizado una sencilla y poco depurada funci&amp;oacute;n aritm&amp;eacute;tica,
"Tiempo is X/60", ya que lo correcto ser&amp;iacute;a redondear el n&amp;uacute;mero
de decimales resultante.&lt;/p&gt;

&lt;blockquote class="codigo"&gt;?- tiempo.
&lt;p&gt;Este programa lleva funcionando 3.44483 minutos (206.69 segundos).&lt;/p&gt;&lt;/blockquote&gt;

&lt;p&gt;En todo caso es posible diferenciar la variable minutos de la variable
segundos, entre otras, utilizando otros predicados que se ver&amp;aacute;n
m&amp;aacute;s adelante.&lt;/p&gt;

&lt;p&gt;El valor del tiempo transcurrido desde la carga del programa en ejecuci&amp;oacute;n,
proporcionado por cputime/0 en segundos, puede ser tambi&amp;eacute;n instanciado
con una variable utilizando el predicado &lt;a href="http://www.swi.psy.uva.nl/projects/SWI-Prolog/Manual/statistics.html" title="Obtaining Runtime Statistics" lang="en"&gt;statistics/2&lt;/a&gt;,
que admite varias claves de uso, siendo cputime/0 una de ellas, de la siguiente
forma:&lt;/p&gt;

&lt;blockquote class="codigo"&gt;?- statistics(cputime,X).
&lt;p&gt;X = 42.29&lt;/p&gt;&lt;/blockquote&gt;

&lt;p&gt;El predicado statistics/2 permite obtener estad&amp;iacute;sticas tanto referidas
al sistema donde se ejecuta el int&amp;eacute;rprete, como a la ejecuci&amp;oacute;n
del programa compilado en particular, y presenta la siguiente sintaxis:&lt;/p&gt;

&lt;blockquote class="codigo"&gt;statistics(+Clave,-Valor)&lt;/blockquote&gt;

&lt;p&gt;Cada estad&amp;iacute;stica en particular se asocia con una clave, representada
por el primer argumento de entrada (Clave) del predicado, y su valor
se instancia con una variable de salida (Valor). Los valores de estas claves
se pueden visualizar en pantalla conjuntamente, mediante una presentaci&amp;oacute;n tabulada,
utilizando el predicado statistics/0 (sin argumentos):&lt;/p&gt;

&lt;blockquote class="codigo"&gt;?- statistics.
&lt;br /&gt;449.95 seconds cpu time for 210,774 inferences
&lt;br /&gt;4,831 atoms, 2,320 functors, 2,233 predicates, 53 modules, 82,144 VM-codes
&lt;p&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;
Limit&amp;nbsp;&amp;nbsp;&amp;nbsp; Allocated&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; In
use
&lt;br /&gt;Heap&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; :&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;
1,013,552 Bytes
&lt;br /&gt;Local&amp;nbsp; stack :&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 2,048,000&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;
12,288&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 704 Bytes
&lt;br /&gt;Global stack :&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 4,096,000&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;
20,480&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 2,156 Bytes
&lt;br /&gt;Trail&amp;nbsp; stack :&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 4,096,000&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;
8,192&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 588 Bytes&lt;/p&gt;
&lt;p&gt;1 threads, 0 finished threads used 0.00 seconds.&lt;/p&gt;&lt;/blockquote&gt;

&lt;p&gt;Este predicado no ofrece la posibilidad de instanciar cada uno de los valores de las claves
mencionadas con la correspondiente variable, como si permite hacer statistics/2.&lt;/p&gt;

&lt;p&gt;Las claves y su descripci&amp;oacute;n est&amp;aacute;n explicadas en el &lt;a href="http://www.swi.psy.uva.nl/projects/SWI-Prolog/Manual/statistics.html" title="Obtaining Runtime Statistics" lang="en"&gt;correspondiente
apartado&lt;/a&gt; del &lt;a href="http://www.swi.psy.uva.nl/projects/SWI-Prolog/Manual/index.html" lang="en"&gt;manual
de referencia&lt;/a&gt; de SWI-Prolog. &lt;a href="http://www.sics.se/isl/sicstus/" lang="en"&gt;SICStus
Prolog&lt;/a&gt; tambi&amp;eacute;n soporta el &lt;a href="http://www.sics.se/sicstus/docs/latest/html/sicstus.html/State-Info.html#State%20Info" title="Information about the State of the Program" lang="en"&gt;predicado
statistics/2&lt;/a&gt;, sin embargo las claves son diferentes; as&amp;iacute;, para
obtener el tiempo transcurrido de ejecuci&amp;oacute;n del programa, se usa
runtime/0 (tiempo transcurrido menos el invertido en ciertos procesos)
y walltime/0 (tiempo absoluto) en vez de cputime/0; el valor se obtiene
en milisegundos en vez de en segundos. Estas dos mismas claves de uso (runtime/0
y walltime/0), al objeto de obtener los tiempos de ejecuci&amp;oacute;n, dentro
de los modos existentes de utilizaci&amp;oacute;n del predicado statistics/2,
se utilizan en la implementaci&amp;oacute;n
&lt;a href="http://clip.dia.fi.upm.es/Software/Ciao/" lang="en"&gt;CIAO
Prolog&lt;/a&gt; (ver "&lt;a href="http://clip.dia.fi.upm.es/Software/Ciao/ciao_html/ciao_69.html#SEC267" lang="en"&gt;PREDICATE:
statistics/2 --&gt; Usage 1&lt;/a&gt;", y tambi&amp;eacute;n &lt;a href="http://clip.dia.fi.upm.es/Software/Ciao/ciao_html/ciao_69.html#SEC268" lang="en"&gt;time_option/1&lt;/a&gt;).&lt;/p&gt;

&lt;p&gt;El compilador &lt;a href="http://gnu-prolog.inria.fr/" lang="en"&gt;GNU Prolog&lt;/a&gt;
contempla as&amp;iacute; mismo el uso de los predicados predefinidos &lt;a href="http://pauillac.inria.fr/~diaz/gnu-prolog/manual/manual047.html#toc186" title="System statistics" lang="en"&gt;statistics/0
y statistics/2&lt;/a&gt;, variando en el caso del segundo los nombres utilizados
como claves de uso. De esta forma, cputime/0 es sustituido por cpu_time/0,
y se puede utilizar indistintamente runtime/0 o user_time/0 para el mismo
caso de uso. cpu_time/0 puede utilizarse como predicado, siendo en este
caso su sintaxis de uso cpu_time(Tiempo), donde la variable Tiempo se unifica
con el valor del tiempo de la CPU transcurrido, en milisegundos, desde
el comienzo de la ejecuci&amp;oacute;n del int&amp;eacute;rprete o de compilaci&amp;oacute;n
del programa en particular, seg&amp;uacute;n el caso.&lt;/p&gt;

&lt;p&gt;El predicado &lt;a href="http://www.swi.psy.uva.nl/projects/SWI-Prolog/Manual/statistics.html" title="Obtaining Runtime Statistics" lang="en"&gt;statistics/2
bajo SWI-Prolog&lt;/a&gt; soporta, por cuestiones de compatibilidad con la implementaci&amp;oacute;n
&lt;a href="http://www.sics.se/isl/quintus/" lang="en"&gt;Quintus
Prolog&lt;/a&gt;, (desarrollada, al igual que SICStus Prolog, por el &lt;a href="http://www.sics.se/" lang="en"&gt;&lt;acronym title="Swedish Institute of Computer Science" lang="en"&gt;SICS&lt;/acronym&gt;&lt;/a&gt;)
la utilizaci&amp;oacute;n, entre otras, de las claves runtime/0, system_time/0
y real_time/0 (equivalente esta &amp;uacute;ltima a walltime/0) para obtener
desde diversos enfoques de uso el tiempo de ejecuci&amp;oacute;n del programa
compilado, medido dicho tiempo en milisegundos en las dos primeras claves,
y en segundos en el caso de la tercera. Sin embargo, runtime/0 no puede
utilizarse, a diferencia de cputime/0, como funci&amp;oacute;n aritm&amp;eacute;tica
independiente para unificar su valor con una variable, fuera del predicado
statistics/2.&lt;/p&gt;

&lt;p&gt;Advi&amp;eacute;rtase que runtime/0 y walltime/0 proporcionan dos rangos de
tiempo en milisegundos, formando parte de una lista [X,Y] compuesta por
dos elementos, referidos a:&lt;/p&gt;

&lt;blockquote class="codigo"&gt;[tiempo desde la carga del programa, tiempo desde la &amp;uacute;ltima
estad&amp;iacute;stica]&lt;/blockquote&gt;

&lt;p&gt;como puede comprobarse en el siguiente objetivo lanzado en la interfaz
de consulta de SWI-Prolog:&lt;/p&gt;

&lt;blockquote class="codigo"&gt;?- statistics(runtime,X), length(X,Y).
&lt;p&gt;X = [653780, 28230]
&lt;br /&gt;Y = 2&lt;/p&gt;&lt;/blockquote&gt;

&lt;p&gt;&lt;strong&gt;get_time/1&lt;/strong&gt; - el predicado predefinido &lt;a href="http://www.swi.psy.uva.nl/projects/SWI-Prolog/Manual/system.html#get_time/1" lang="en"&gt;get_time/1&lt;/a&gt;,
presenta la siguiente sintaxis (recordemos que el signo "+" denota un argumento
de entrada y "-" de salida): get_time(-Tiempo), y devuelve el n&amp;uacute;mero
de segundos transcurridos desde las 0 horas del a&amp;ntilde;o 1970.&lt;/p&gt;

&lt;blockquote class="codigo"&gt;?- get_time(X).
&lt;p&gt;X = 1.07141e+009&lt;/p&gt;&lt;/blockquote&gt;

&lt;p&gt;Es posible convertir esta variable temporal en la fecha y hora actual del sistema
del usuario empleando los predicados convert_time/2 y convert_time/8, como
se explica a continuaci&amp;oacute;n.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;convert_time/2&lt;/strong&gt; y &lt;strong&gt;convert_time/8&lt;/strong&gt; - el predicado &lt;a href="http://www.swi.psy.uva.nl/projects/SWI-Prolog/Manual/system.html#convert_time/2" lang="en"&gt;convert_time/2&lt;/a&gt;,
presenta la siguiente sintaxis: convert_time(+Tiempo, -Cadena), y convierte
la variable obtenida mediante get_time/1 (Tiempo) en una representaci&amp;oacute;n
de la fecha y hora del sistema en formato de cadena de caracteres alfanum&amp;eacute;ricos
(Cadena). Por ejemplo:&lt;/p&gt;

&lt;blockquote class="codigo"&gt;?- get_time(X), convert_time(X,Y).
&lt;p&gt;X = 1.07141e+009
&lt;br /&gt;Y = "Sun Dec 14 14:10:15 2003"&lt;/p&gt;&lt;/blockquote&gt;

&lt;p&gt;Ejemplo de utilizaci&amp;oacute;n de este predicado en una regla:&lt;/p&gt;

&lt;blockquote class="codigo"&gt;fecha_y_hora01 :-
&lt;br /&gt;&amp;nbsp;&amp;nbsp; get_time(X),
&lt;br /&gt;&amp;nbsp;&amp;nbsp; convert_time(X,Fecha),
&lt;br /&gt;&amp;nbsp;&amp;nbsp; nl, write('Fecha: '), write(Fecha).&lt;/blockquote&gt;

&lt;p&gt;Proporciona la siguiente salida:&lt;/p&gt;

&lt;blockquote class="codigo"&gt;?- fecha_y_hora01.
&lt;p&gt;Fecha: Mon Dec 15 00:41:25 2003&lt;/p&gt;&lt;/blockquote&gt;

&lt;p&gt;Por su parte, &lt;a href="http://www.swi.psy.uva.nl/projects/SWI-Prolog/Manual/system.html#convert_time/8" lang="en"&gt;convert_time/8&lt;/a&gt;
consta de los siguientes argumentos:&lt;/p&gt;

&lt;blockquote class="codigo"&gt;convert_time(+Time, -Year, -Month, -Day, -Hour, -Minute, -Second,
-MilliSecond)&lt;/blockquote&gt;

&lt;p&gt;Este predicado convierte la variable Time obtenida mediante get_time/1
en una serie de variables independientes que representan de forma individualizada
el A&amp;ntilde;o, Mes, D&amp;iacute;a, Hora, Minuto, Segundo y Milisegundo de
la fecha y hora del sistema del usuario. El modo de utilizaci&amp;oacute;n
de este predicado est&amp;aacute; implementado en las reglas fecha_y_hora02/0
y fecha_y_hora03/0, definidas m&amp;aacute;s adelante; permiten representar
la fecha y hora del sistema, respectivamente, con el siguiente formato:&lt;/p&gt;

&lt;blockquote class="codigo"&gt;?- fecha_y_hora02.
&lt;p&gt;A&amp;ntilde;o: 2003
&lt;br /&gt;Mes: 12
&lt;br /&gt;D&amp;iacute;a: 15
&lt;br /&gt;Hora: 00
&lt;br /&gt;Minutos: 43
&lt;br /&gt;Segundos: 08&lt;/p&gt;
&lt;p&gt;Yes
&lt;br /&gt;?- fecha_y_hora03.&lt;/p&gt;
&lt;p&gt;Fecha: 15 de diciembre de 2003
&lt;br /&gt;Hora: 00:43:17&lt;/p&gt;&lt;/blockquote&gt;

&lt;p&gt;La funci&amp;oacute;n aritm&amp;eacute;tica cputime/0, procedente de las primeras
implementaciones Prolog derivadas del Prolog de Edimburgo (por ejemplo,
&lt;a href="http://kilo.ee.lsu.edu/koppel/ee4785/prolog.html" title="C-Prolog User's Manual" lang="en"&gt;C-Prolog&lt;/a&gt;),
tambi&amp;eacute;n es soportada por otros sistema Prolog, adem&amp;aacute;s de
SWI-Prolog, tal es el caso, por ejemplo, de &lt;a href="http://www.amzi.com/" lang="en"&gt;Amzi!
Prolog&lt;/a&gt; (ver, en la &lt;a href="http://www.amzi.com/manuals/amzi6/pro/prfrtop.htm" title="Prolog User's Guide &amp;amp; Reference" lang="en"&gt;referencia
y gu&amp;iacute;a del usuario&lt;/a&gt;, el apartado "&lt;a href="http://www.amzi.com/manuals/amzi6/pro/ref_math.htm#BuiltinAtoms" lang="en"&gt;Built-in
Mathematical Atoms&lt;/a&gt;").&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;time_file/2&lt;/strong&gt; - presenta la siguiente sintaxis: &lt;a href="http://www.swi.psy.uva.nl/projects/SWI-Prolog/Manual/files.html#time_file/2" lang="en"&gt;time_file(+Fichero,
-Tiempo)&lt;/a&gt;, y unifica la fecha de la &amp;uacute;ltima modificaci&amp;oacute;n
de un fichero Fichero con la variable Tiempo, que representa el tiempo
expresado en los segundos transcurridos desde el 1 de enero de 1970.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;time/1&lt;/strong&gt; - este predicado, cuya sintaxis de uso es &lt;a href="http://www.swi.psy.uva.nl/projects/SWI-Prolog/Manual/statistics.html#time/1" title="Obtaining Runtime Statistics" lang="en"&gt;time(+Objetivo)&lt;/a&gt;,
llama al objetivo Objetivo, imprimiendo adem&amp;aacute;s el tiempo invertido
en satisfacerlo, el n&amp;uacute;mero de inferencias l&amp;oacute;gicas
llevadas a cabo en el proceso de resoluci&amp;oacute;n, y el n&amp;uacute;mero de &lt;em&gt;lips&lt;/em&gt; o inferencias l&amp;oacute;gicas
por segundo.&lt;/p&gt;

&lt;blockquote class="codigo"&gt;?- time(write('Hola Mundo!')).
&lt;br /&gt;Hola Mundo!
&lt;br /&gt;% 1 inferences, 0.00 CPU in 0.00 seconds (?% CPU, Infinite Lips)&lt;/blockquote&gt;

&lt;p&gt;En el caso de objetivos muy sencillos como el del ejemplo anterior, el
tiempo de computaci&amp;oacute;n invertido es pr&amp;aacute;cticamente instant&amp;aacute;neo,
raz&amp;oacute;n por la cual se indican tiempos de proceso iguales a 0 ("0.00
CPU in 0.00 seconds") y tasas de ocupaci&amp;oacute;n de la CPU indeterminables
("?% CPU").&lt;/p&gt;

&lt;p&gt;A continuaci&amp;oacute;n mostraremos algunos ejemplos de reglas definidas
haciendo uso de los anteriores predicados. Las reglas sin cabeza, es decir,
aquellas que no contienen nombre de functor (ni sus correspondientes argumentos,
si hubiere lugar a ellos) antes del operador ":-", se cargan autom&amp;aacute;ticamente
al compilar el programa en el int&amp;eacute;rprete. As&amp;iacute; por ejemplo,
la siguiente regla:&lt;/p&gt;

&lt;blockquote class="codigo"&gt;:- get_time(X),
&lt;br /&gt;&amp;nbsp;&amp;nbsp; convert_time(X,Fecha),
&lt;br /&gt;&amp;nbsp;&amp;nbsp; nl, write('&amp;iexcl;Bienvenido!'),
&lt;br /&gt;&amp;nbsp;&amp;nbsp; nl, write('Fecha y hora de entrada: '), write(Fecha),
nl, nl.&lt;/blockquote&gt;

&lt;p&gt;Muestra en pantalla un saludo de bienvenida y a continuaci&amp;oacute;n la
fecha y hora de entrada en el int&amp;eacute;rprete:&lt;/p&gt;

&lt;blockquote class="codigo"&gt;&amp;iexcl;Bienvenido!
&lt;br /&gt;Fecha y hora de entrada: Sun Dec 14 20:36:49 2003&lt;/blockquote&gt;

&lt;p&gt;Una versi&amp;oacute;n m&amp;aacute;s elaborada de la regla que se acaba de mostrar,
tambi&amp;eacute;n sin cabeza (se carga por tanto autom&amp;aacute;ticamente al
inicio de la compilaci&amp;oacute;n del programa en el int&amp;eacute;rprete) es
la que se explica a continuaci&amp;oacute;n. Esta regla hace uso de otras que
definiremos m&amp;aacute;s adelante. Tras obtener la fecha del sistema, utilizando
get_time/1, y convertirla mediante el predicado convert_time/8 en una serie
de variables independientes, el programa escribe en pantalla un saludo,
diferente seg&amp;uacute;n se trate de la ma&amp;ntilde;ana, la tarde, la noche
o la noche-madrugada (llamando para ello al predicado escribir_saludo/1
al que pasa la variable Hour). La &amp;uacute;ltima variable de salida del predicado
convert_time/8, Milisegundos, la significamos como una variable an&amp;oacute;nima,
mediante la notaci&amp;oacute;n "_" (gui&amp;oacute;n bajo), ya que en este caso
no nos interesa su valor. A continuaci&amp;oacute;n, el programa llama al predicado
escribir_hora_y_fecha/6, al que pasa las variables Hour, Minute, Second,
Day, Month y Year, que es el que finalmente escribe en pantalla la fecha
y hora corriente del sistema, invocando a su vez a otras reglas.&lt;/p&gt;

&lt;blockquote class="codigo"&gt;:- get_time(X),
&lt;br /&gt;&amp;nbsp;&amp;nbsp; convert_time(X,Year,Month,Day,Hour,Minute,Second,_), nl, nl,
&lt;br /&gt;&amp;nbsp;&amp;nbsp; escribir_saludo(Hour), nl,
&lt;br /&gt;&amp;nbsp;&amp;nbsp; escribir_hora_y_fecha(Hour,Minute,Second,Day,Month,Year),
nl, nl, nl.&lt;/blockquote&gt;

&lt;p&gt;Para obtener m&amp;aacute;s informaci&amp;oacute;n sobre el funcionamiento de la
regla escribir_hora_y_fecha/6, se remite a la correspondiente explicaci&amp;oacute;n,
unas cuantas l&amp;iacute;neas m&amp;aacute;s adelante. En cualquier caso esta
nueva versi&amp;oacute;n de la regla sin cabeza muestra en pantalla un mensaje
como el que sigue:&lt;/p&gt;

&lt;blockquote class="codigo"&gt;&amp;iexcl;Buenas noches!
&lt;br /&gt;&amp;nbsp;Son las 20:42:10 horas del d&amp;iacute;a 14 de diciembre del a&amp;ntilde;o
2003&lt;/blockquote&gt;

&lt;p&gt;La regla saludo/0 ejecuta exactamente los mismos pasos que la que acabamos
de definir, pero en este caso se ejecuta lanzando desde la l&amp;iacute;nea
de &amp;oacute;rdenes del int&amp;eacute;rprete el objetivo "?- saludo.", siendo
id&amp;eacute;ntico el resultado mostrado en pantalla.&lt;/p&gt;

&lt;blockquote class="codigo"&gt;saludo :-
&lt;br /&gt;&amp;nbsp;&amp;nbsp; get_time(X),
&lt;br /&gt;&amp;nbsp;&amp;nbsp; convert_time(X,Year,Month,Day,Hour,Minute,Second,_), nl,
&lt;br /&gt;&amp;nbsp;&amp;nbsp; escribir_saludo(Hour), nl,
&lt;br /&gt;&amp;nbsp;&amp;nbsp; escribir_hora_y_fecha(Hour,Minute,Second,Day,Month,Year).&lt;/blockquote&gt;

&lt;p&gt;Los predicados invocados por la regla sin cabeza que utiliza el predicado
convert_time/8, y por saludo/0 (ambas id&amp;eacute;nticas en cuanto a su proceso
de inferencia) son, secuencialmente, escribir_saludo/1 y escribir_hora_y_fecha/6.&lt;/p&gt;

&lt;p&gt;La regla escribir_saludo/1, genera como resultado un saludo diferente
seg&amp;uacute;n de que hora del d&amp;iacute;a se trate en el momento de ser llamada
(ma&amp;ntilde;ana, tarde, noche y noche-madrugada), tomando como par&amp;aacute;metro
de entrada la variable Hour instanciada previamente por get_time/1.&lt;/p&gt;

&lt;blockquote class="codigo"&gt;escribir_saludo(Hour) :-
&lt;br /&gt;&amp;nbsp;&amp;nbsp; Hour &gt;= 0, Hour &amp;lt; 7, !, write('&amp;iexcl;Buenas noches
- madrugadas!');
&lt;br /&gt;&amp;nbsp;&amp;nbsp; Hour &gt;= 7, Hour =&amp;lt; 12, !, write('&amp;iexcl;Buenos d&amp;iacute;as!');
&lt;br /&gt;&amp;nbsp;&amp;nbsp; Hour &gt; 12, Hour &amp;lt; 20, !, write('&amp;iexcl;Buenas tardes!');
&lt;br /&gt;&amp;nbsp;&amp;nbsp; write('&amp;iexcl;Buenas noches!').&lt;/blockquote&gt;

&lt;p&gt;N&amp;oacute;tese la utilizaci&amp;oacute;n, al igual que se har&amp;aacute; posteriormente,
del predicado predefinido de &lt;a href="http://www.programacion.com/tutorial/prolog2/4/"&gt;el
corte&lt;/a&gt; (!/0), en conjunci&amp;oacute;n con el operador ";" (punto y coma,
equivalente al "or" l&amp;oacute;gico), corte que en este caso sirve para delimitar
condiciones mutuamente excluyentes y prevenir de esta forma posibles reevaluaciones
en el proceso de inferencia "hacia atr&amp;aacute;s" que Prolog lleva a cabo
por defecto (&lt;em&gt;&lt;a href="http://www.programacion.com/tutorial/prolog1/4/#backtracking"&gt;backtracking&lt;/a&gt;&lt;/em&gt;).&lt;/p&gt;

&lt;p&gt;Por su parte, la regla escribir_hora_y_fecha/6 escribe la hora, minuto,
segundo, d&amp;iacute;a, mes y a&amp;ntilde;o correspondientes a la hora y fecha
del sistema. Esas variables son instanciadas en este predicado por la regla
saludo/0 y la regla (sin cabeza) que se carga al inicio de la compilaci&amp;oacute;n
del programa, que a su vez obtienen la fecha y hora del sistema mediante
los predicados get_time/1 y convert_time/8, como ya dijimos anteriormente.
Adem&amp;aacute;s, se ha implementado un sistema de comprobaci&amp;oacute;n
para a&amp;ntilde;adir a las cifras de la hora del sistema un cero delante
cuando consten de un solo d&amp;iacute;gito. As&amp;iacute; por ejemplo, obtenemos
09 por 9, 02 por 2, etc.&lt;/p&gt;

&lt;blockquote class="codigo"&gt;escribir_hora_y_fecha(Hour,Minute,Second,Day,Month,Year) :-
&lt;br /&gt;&amp;nbsp;&amp;nbsp; write(' Son las '),
&lt;br /&gt;&amp;nbsp;&amp;nbsp; (
&lt;br /&gt;&amp;nbsp;&amp;nbsp; Hour =&amp;lt; 9, !, write('0'), write(Hour);
&lt;br /&gt;&amp;nbsp;&amp;nbsp; write(Hour)
&lt;br /&gt;&amp;nbsp;&amp;nbsp; ),
&lt;br /&gt;&amp;nbsp;&amp;nbsp; write(':'),
&lt;br /&gt;&amp;nbsp;&amp;nbsp; (
&lt;br /&gt;&amp;nbsp;&amp;nbsp; Minute =&amp;lt; 9, !, write('0'), write(Minute);
&lt;br /&gt;&amp;nbsp;&amp;nbsp; write(Minute)
&lt;br /&gt;&amp;nbsp;&amp;nbsp; ),
&lt;br /&gt;&amp;nbsp;&amp;nbsp; write(':'),
&lt;br /&gt;&amp;nbsp;&amp;nbsp; (
&lt;br /&gt;&amp;nbsp;&amp;nbsp; Second =&amp;lt; 9, !, write('0'), write(Second);
&lt;br /&gt;&amp;nbsp;&amp;nbsp; write(Second)
&lt;br /&gt;&amp;nbsp;&amp;nbsp; ),
&lt;br /&gt;&amp;nbsp;&amp;nbsp; write(' horas del d&amp;iacute;a '),
&lt;br /&gt;&amp;nbsp;&amp;nbsp; write(Day), write(' de '),
&lt;br /&gt;&amp;nbsp;&amp;nbsp; calcular_mes(Month),
&lt;br /&gt;&amp;nbsp;&amp;nbsp; write(' del a&amp;ntilde;o '), write(Year).&lt;/blockquote&gt;

&lt;p&gt;Como puede observarse, escribir_hora_y_fecha/6, hace uso a su vez de una
nueva regla, calcular_mes/1, que tiene un &amp;uacute;nico par&amp;aacute;metro
de entrada, la variable Month asociada al mes. En funci&amp;oacute;n del valor
concreto de esta variable, que puede tomar valores comprendidos entre 1
y 12, ambos inclusive, el predicado calcular_mes/1 transforma la notaci&amp;oacute;n
num&amp;eacute;rica del mes a una notaci&amp;oacute;n de car&amp;aacute;cter textual. As&amp;iacute;,
se obtiene "abril" por el mes 4, "agosto" por el 8, etc.&lt;/p&gt;

&lt;blockquote class="codigo"&gt;calcular_mes(Month) :-
&lt;br /&gt;&amp;nbsp;&amp;nbsp; Month =:= 1, !, write('enero');
&lt;br /&gt;&amp;nbsp;&amp;nbsp; Month =:= 2, !, write('febrero');
&lt;br /&gt;&amp;nbsp;&amp;nbsp; Month =:= 3, !, write('marzo');
&lt;br /&gt;&amp;nbsp;&amp;nbsp; Month =:= 4, !, write('abril');
&lt;br /&gt;&amp;nbsp;&amp;nbsp; Month =:= 5, !, write('mayo');
&lt;br /&gt;&amp;nbsp;&amp;nbsp; Month =:= 6, !, write('junio');
&lt;br /&gt;&amp;nbsp;&amp;nbsp; Month =:= 7, !, write('julio');
&lt;br /&gt;&amp;nbsp;&amp;nbsp; Month =:= 8, !, write('agosto');
&lt;br /&gt;&amp;nbsp;&amp;nbsp; Month =:= 9, !, write('septiembre');
&lt;br /&gt;&amp;nbsp;&amp;nbsp; Month =:= 10, !, write('octubre');
&lt;br /&gt;&amp;nbsp;&amp;nbsp; Month =:= 11, !, write('noviembre');
&lt;br /&gt;&amp;nbsp;&amp;nbsp; Month =:= 12, write('diciembre').&lt;/blockquote&gt;

&lt;p&gt;Otro ejemplo: la regla salir/1 permite mostrar en pantalla, en primer lugar,
el tiempo que lleva funcionando el programa compilado (para lo cual llama
a una segunda regla, tiempo_de_trabajo/0, que es la realmente encargada
de proporcionar ese tiempo) y a continuaci&amp;oacute;n preguntar al usuario
si desea salir o no del int&amp;eacute;rprete, leyendo la respuesta mediante
el predicado predefinido read/1, en funci&amp;oacute;n de la cual se cerrar&amp;aacute;
o bien continuar&amp;aacute; abierto.&lt;/p&gt;

&lt;blockquote class="codigo"&gt;salir :-
&lt;br /&gt;&amp;nbsp;&amp;nbsp; tiempo_de_trabajo, nl, nl,
&lt;br /&gt;&amp;nbsp;&amp;nbsp; write('&amp;iquest;Desea realmente salir del programa?'),
tab(1),
&lt;br /&gt;&amp;nbsp;&amp;nbsp; read(X),
&lt;br /&gt;&amp;nbsp;&amp;nbsp; (
&lt;br /&gt;&amp;nbsp;&amp;nbsp; X == si, !, halt;
&lt;br /&gt;&amp;nbsp;&amp;nbsp; X == no, !, nl, write('Continua la ejecuci&amp;oacute;n del
programa.');
&lt;br /&gt;&amp;nbsp;&amp;nbsp; nl, write('Por favor, responda si/no, '),
&lt;br /&gt;&amp;nbsp;&amp;nbsp; write_ln('escriba un punto y pulse "intro".'), salir
&lt;br /&gt;&amp;nbsp;&amp;nbsp; ).
&lt;p&gt;tiempo_de_trabajo :-
&lt;br /&gt;&amp;nbsp;&amp;nbsp; X is cputime,
&lt;br /&gt;&amp;nbsp;&amp;nbsp; Tiempo is X/60,
&lt;br /&gt;&amp;nbsp;&amp;nbsp; nl, write('Lleva trabajando con este programa '),
&lt;br /&gt;&amp;nbsp;&amp;nbsp; write(Tiempo), write(' minutos '), write('('),
&lt;br /&gt;&amp;nbsp;&amp;nbsp; write(X), write(' segundos).').&lt;/p&gt;&lt;/blockquote&gt;

&lt;p&gt;Por su parte, fecha_y_hora02/0, regla que mencion&amp;aacute;bamos anteriormente,
proporciona la fecha y hora del sistema diferenciando las variables, utilizando
de nuevo el predicado convert_time/8:&lt;/p&gt;

&lt;blockquote class="codigo"&gt;fecha_y_hora02 :-
&lt;br /&gt;&amp;nbsp;&amp;nbsp; get_time(X),
&lt;br /&gt;&amp;nbsp;&amp;nbsp; convert_time(X,Year,Month,Day,Hour,Minute,Second,_), nl,
&lt;br /&gt;&amp;nbsp;&amp;nbsp; write('A&amp;ntilde;o: '), write(Year), nl,
&lt;br /&gt;&amp;nbsp;&amp;nbsp; write('Mes: '), write(Month), nl,
&lt;br /&gt;&amp;nbsp;&amp;nbsp; write('D&amp;iacute;a: '), write(Day), nl,
&lt;br /&gt;&amp;nbsp;&amp;nbsp; write('Hora: '),
&lt;br /&gt;&amp;nbsp;&amp;nbsp; (
&lt;br /&gt;&amp;nbsp;&amp;nbsp; Hour =&amp;lt; 9, !, write('0'), write(Hour);
&lt;br /&gt;&amp;nbsp;&amp;nbsp; write(Hour)
&lt;br /&gt;&amp;nbsp;&amp;nbsp; ),
&lt;br /&gt;&amp;nbsp;&amp;nbsp; nl,write('Minutos: '),
&lt;br /&gt;&amp;nbsp;&amp;nbsp; (
&lt;br /&gt;&amp;nbsp;&amp;nbsp; Minute =&amp;lt; 9, !, write('0'), write(Minute);
&lt;br /&gt;&amp;nbsp;&amp;nbsp; write(Minute)
&lt;br /&gt;&amp;nbsp;&amp;nbsp; ),
&lt;br /&gt;&amp;nbsp;&amp;nbsp; nl, write('Segundos: '),
&lt;br /&gt;&amp;nbsp;&amp;nbsp; (
&lt;br /&gt;&amp;nbsp;&amp;nbsp; Second =&amp;lt; 9, !, write('0'), write(Second);
&lt;br /&gt;&amp;nbsp;&amp;nbsp; write(Second)).&lt;/blockquote&gt;

&lt;p&gt;El formato de salida queda de la siguiente forma:&lt;/p&gt;

&lt;blockquote class="codigo"&gt;?- fecha_y_hora02.
&lt;p&gt;A&amp;ntilde;o: 2003
&lt;br /&gt;Mes: 12
&lt;br /&gt;D&amp;iacute;a: 15
&lt;br /&gt;Hora: 01
&lt;br /&gt;Minutos: 18
&lt;br /&gt;Segundos: 39&lt;/p&gt;&lt;/blockquote&gt;

&lt;p&gt;Como &amp;uacute;ltimo ejemplo, la regla fecha_y_hora03/0 se define de la siguiente
manera:&lt;/p&gt;

&lt;blockquote class="codigo"&gt;fecha_y_hora03 :-
&lt;br /&gt;&amp;nbsp;&amp;nbsp; get_time(X),
&lt;br /&gt;&amp;nbsp;&amp;nbsp; convert_time(X,Year,Month,Day,Hour,Minute,Second,_), nl,
&lt;br /&gt;&amp;nbsp;&amp;nbsp; write('Fecha: '), write(Day),
&lt;br /&gt;&amp;nbsp;&amp;nbsp; write(' de '), calcular_mes(Month),
&lt;br /&gt;&amp;nbsp;&amp;nbsp; write(' de '), write(Year), nl,
&lt;br /&gt;&amp;nbsp;&amp;nbsp; tab(1), write('Hora: '),
&lt;br /&gt;&amp;nbsp;&amp;nbsp; (
&lt;br /&gt;&amp;nbsp;&amp;nbsp; Hour =&amp;lt; 9, !, write('0'), write(Hour);
&lt;br /&gt;&amp;nbsp;&amp;nbsp; write(Hour)
&lt;br /&gt;&amp;nbsp;&amp;nbsp; ),
&lt;br /&gt;&amp;nbsp;&amp;nbsp; write(':'),
&lt;br /&gt;&amp;nbsp;&amp;nbsp; (
&lt;br /&gt;&amp;nbsp;&amp;nbsp; Minute =&amp;lt; 9, !, write('0'), write(Minute);
&lt;br /&gt;&amp;nbsp;&amp;nbsp; write(Minute)
&lt;br /&gt;&amp;nbsp;&amp;nbsp; ),
&lt;br /&gt;&amp;nbsp;&amp;nbsp; write(':'),
&lt;br /&gt;&amp;nbsp;&amp;nbsp; (
&lt;br /&gt;&amp;nbsp;&amp;nbsp; Second =&amp;lt; 9, !, write('0'), write(Second);
&lt;br /&gt;&amp;nbsp;&amp;nbsp; write(Second)).&lt;/blockquote&gt;

&lt;p&gt;y muestra la fecha y hora del sistema del usuario con un formato m&amp;aacute;s
pr&amp;aacute;ctico y legible que el proporcionado por la regla fecha_y_hora02/0:&lt;/p&gt;

&lt;blockquote class="codigo"&gt;?- fecha_y_hora03.
&lt;p&gt;Fecha: 15 de diciembre de 2003
&lt;br /&gt;&amp;nbsp;Hora: 01:23:13&lt;/p&gt;&lt;/blockquote&gt;

&lt;p&gt;Para pasar la representaci&amp;oacute;n num&amp;eacute;rica de los meses a una
notaci&amp;oacute;n en forma de texto (enero, febrero, etc.), fecha_y_hora03/0
hace uso del predicado calcular_mes/1 definido anteriormente. Tambi&amp;eacute;n
incluye una serie de condiciones para a&amp;ntilde;adir un cero delante de
los n&amp;uacute;meros correspondientes a la hora, los minutos y los segundos
cuando estos tienen una sola cifra, y adem&amp;aacute;s se escriben dos puntos
entre horas/minutos y minutos/segundos, para que el formato de 24h presente
la forma "hh:mm:ss".&lt;/p&gt;

&lt;p&gt;Los ejemplos que se han expuesto son muy sencillos, y se pueden complicar tanto
como la imaginaci&amp;oacute;n y/o conocimientos del programador lo posibiliten,
y los requerimientos del programa lo precisen. Los nombres de las reglas,
muy largos en los ejemplos expuestos a fin de denotar de la forma m&amp;aacute;s
clara posible su funci&amp;oacute;n, y los de las variables, son arbitrarios,
por lo que pueden tomar la forma de otros m&amp;aacute;s cortos y manejables,
manteniendo en todo caso un criterio consistente en la asignaci&amp;oacute;n
de dichos nombres a lo largo de todo el programa.&lt;/p&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5454882-107243847465296951?l=programacionlogica.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://programacionlogica.blogspot.com/feeds/107243847465296951/comments/default' title='Enviar comentarios'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=5454882&amp;postID=107243847465296951&amp;isPopup=true' title='0 comentarios'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5454882/posts/default/107243847465296951'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5454882/posts/default/107243847465296951'/><link rel='alternate' type='text/html' href='http://programacionlogica.blogspot.com/2003/12/obtencisticas-del-sistema-en-prolog.html' title='Obtenci&amp;oacute;n de estad&amp;iacute;sticas del sistema en Prolog'/><author><name>etxe</name><uri>http://www.blogger.com/profile/10987668917577281087</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5454882.post-107123980550837692</id><published>2003-12-12T15:36:00.000+01:00</published><updated>2004-02-27T15:46:27.840+01:00</updated><title type='text'>Un breve apunte: dos clásicos de la ciencia ficción</title><content type='html'>&lt;p&gt;Philip K. Dick, &lt;a href="http://www.microsiervos.com/2003_11_01_archivo.html#106966857369410971" title="El resurgir de Philip K. Dick"&gt;pol&amp;eacute;mico y enigm&amp;aacute;tico&lt;/a&gt; autor de ciencia ficci&amp;oacute;n en cuyo relato corto
"&lt;a href="http://www.phildick.com.ar/htmsec/n17_sa.htm"&gt;&amp;iquest;Sue&amp;ntilde;an los androides con ovejas el&amp;eacute;ctricas?&lt;/a&gt;" se
inspirar&amp;iacute;a la visionaria y futurista cinta de Ridley Scott "&lt;a href="http://www.brmovie.com/" title="BRmovie.com - The Home of Blade Runner" lang="en"&gt;Blade
Runner&lt;/a&gt;" (1982), tiene &lt;a href="http://www.philipkdick.com/" title="philipkdick.com - The web site devoted to science fiction visionary Philip K. Dick" lang="en"&gt;su
propio espacio&lt;/a&gt; en Internet.&lt;/p&gt;

&lt;p&gt;"&lt;a href="http://www.palantir.net/2001/" title="2001: A Space Odyssey Internet Resource Archive" lang="en"&gt;2001,
una odisea del espacio&lt;/a&gt;" (1968), basada en la novela hom&amp;oacute;nima
de &lt;a href="http://www.lsi.usp.br/~rbianchi/clarke/" title="Arthur C. Clarke Unauthorized Homepage" lang="en"&gt;Arthur
C. Clarke&lt;/a&gt;, a su vez inspirada en otras de sus novelas y relatos previos ("El
fin de la inocencia", 1953, entre otros), es una de las pel&amp;iacute;culas
m&amp;aacute;s c&amp;eacute;lebres, y al tiempo &lt;a href="http://www.elcultural.es/historico_articulo.asp?c=2851" title="2001 La Odisea Cumplida"&gt;discutida
y pol&amp;eacute;mica&lt;/a&gt;, dentro de la filmograf&amp;iacute;a del director de origen estadounidense &lt;a href="http://uk.imdb.com/name/nm0000040/" lang="en"&gt;Stanley
Kubrick&lt;/a&gt;, y supone el inicio del cine de ciencia ficci&amp;oacute;n "moderno",
"serio", caracterizado no solo por la introducci&amp;oacute;n de evidentes
avances t&amp;eacute;cnicos y est&amp;eacute;ticos, a la hora de resolver las diversas
secuencias, sino tambi&amp;eacute;n por la introducci&amp;oacute;n de planteamientos
argumentales e interrogantes vitales de car&amp;aacute;cter ciertamente trascendente,
"profundo", referidos a cuestiones tales como el origen y destino del universo
y por ende de la humanidad, el sentido &amp;uacute;ltimo de la existencia,
la certeza (o incerteza...) de una entidad de car&amp;aacute;cter superior,
"responsable" &amp;uacute;ltima del universo, etc.&lt;/p&gt;

&lt;p&gt;Por otra parte, supone la
plasmaci&amp;oacute;n inicial, paradigm&amp;aacute;tica, en lo que se refiere al
mundo del s&amp;eacute;ptimo arte, de toda una corriente y disciplina cient&amp;iacute;fica,
tecnol&amp;oacute;gica, filos&amp;oacute;fica incluso, que se ha venido a denominar
como &lt;a href="http://www.aboutai.net/" title="aboutAI.net" lang="en"&gt;Inteligencia Artificial&lt;/a&gt; (IA), desde planteamientos plausibles y realistas,
que hacen ver en los avances en esta materia aplicada a la ciencia de la
&lt;a href="http://www.cs.bham.ac.uk/~axs/misc/turing-relevant.html" title="Are Turing machines relevant to AI?" lang="en"&gt;computaci&amp;oacute;n&lt;/a&gt;, simbolizados por el ordenador &lt;a href="http://mitpress.mit.edu/e-books/Hal/" title="HAL's Legacy: 2001's Computer as Dream and Reality" lang="en"&gt;HAL
9000&lt;/a&gt;, un futuro, quiz&amp;aacute;s no demasiado lejano pero &amp;iquest;deseable?,
en el que la m&amp;aacute;quina toma conciencia de si misma y act&amp;uacute;a
en consecuencia, aunque tampoco nos queda muy claro si en &amp;uacute;ltima
instancia inducida por una "inteligencia superior", dentro de una evoluci&amp;oacute;n
predeterminada de los acontecimientos... M&amp;aacute;s sobre la pel&amp;iacute;cula:
[&lt;a href="http://uk.imdb.com/title/tt0062622/" lang="en"&gt;1&lt;/a&gt;] [&lt;a href="http://www.underview.com/2001/2001.html" lang="en"&gt;2&lt;/a&gt;].&lt;/p&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5454882-107123980550837692?l=programacionlogica.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://programacionlogica.blogspot.com/feeds/107123980550837692/comments/default' title='Enviar comentarios'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=5454882&amp;postID=107123980550837692&amp;isPopup=true' title='0 comentarios'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5454882/posts/default/107123980550837692'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5454882/posts/default/107123980550837692'/><link rel='alternate' type='text/html' href='http://programacionlogica.blogspot.com/2003/12/un-breve-apunte-dos-cln.html' title='Un breve apunte: dos cl&amp;aacute;sicos de la ciencia ficci&amp;oacute;n'/><author><name>etxe</name><uri>http://www.blogger.com/profile/10987668917577281087</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5454882.post-107041316051455582</id><published>2003-12-03T01:59:00.000+01:00</published><updated>2004-02-27T15:48:03.530+01:00</updated><title type='text'>Selección de artículos</title><content type='html'>&lt;p&gt;Rese&amp;ntilde;o a continuaci&amp;oacute;n algunos de los art&amp;iacute;culos
que me han llamando la atenci&amp;oacute;n en los &amp;uacute;ltimos meses, dentro
de la ingente cantidad de referencias que se van tomando, y que en la mayor
parte de los casos acaban durmiendo el sue&amp;ntilde;o de los justos... en
cualquier caso la lista no pretende tener ning&amp;uacute;n tipo de car&amp;aacute;cter
representativo, m&amp;aacute;s all&amp;aacute; de relacionarse, de forma m&amp;aacute;s
o menos directa, con los temas que interesan desde la perspectiva de este
espacio desde el que escribo (el orden es de mayor a menor antig&amp;uuml;edad
cronol&amp;oacute;gica):&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
"&lt;a href="http://jefferson.blogs.com/jp/2003/06/haystack_a_smar.html" lang="en"&gt;Haystack,
a smart information manager?&lt;/a&gt;" (05/06/2003), en &lt;a href="http://jefferson.blogs.com/jp/" lang="en"&gt;Jefferson
Provost Blog&lt;/a&gt;.&lt;/li&gt;

&lt;li&gt;
"&lt;a href="http://www.mycgiserver.com/~gpiancastelli/archives.jsp?post=0050" lang="en"&gt;HTTP
support for Prolog implementations&lt;/a&gt;" (22/06/2003),
en
&lt;a href="http://www.mycgiserver.com/~gpiancastelli/" lang="en"&gt;Through
the blogging-glass&lt;/a&gt;.&lt;/li&gt;

&lt;li&gt;
"&lt;a href="http://60gp.ovh.net/~iokanaan/blog/archives/000307.php" lang="fr"&gt;Petit
topo sur la programmation&lt;/a&gt;" (26/09/03),
en &lt;a href="http://60gp.ovh.net/~iokanaan/blog/" lang="fr"&gt;IokanaaN - Blog
francophone d'un spectateur holistique&lt;/a&gt;.&lt;/li&gt;

&lt;li&gt;
"&lt;a href="http://blog.infoaragon.com/tiopetrus/index.php?idarticulo=200311031"&gt;Dios
es un lud&amp;oacute;pata (1)&lt;/a&gt;" (03/11/2003) y "&lt;a href="http://blog.infoaragon.com/tiopetrus/index.php?idarticulo=200311041"&gt;Dios
es un lud&amp;oacute;pata (y 2)&lt;/a&gt;" (04/11/2003); sobre la constante de &lt;a href="http://www.cs.auckland.ac.nz/CDMTCS/chaitin/" lang="en"&gt;Chaitin&lt;/a&gt;,
teor&amp;iacute;a de la complejidad de Kolmogorov, y soluci&amp;oacute;n algor&amp;iacute;tmica
de los problemas matem&amp;aacute;ticos; "&lt;a href="http://blog.infoaragon.com/tiopetrus/index.php?idarticulo=200311051"&gt;Atando
cabos complejos&lt;/a&gt;", continuaci&amp;oacute;n de los dos art&amp;iacute;culos anteriores (05/11/2003).
En &lt;a href="http://www.blogia.com/tiopetrus"&gt;Tio Petros - Historias matem&amp;aacute;ticas&lt;/a&gt;.&lt;/li&gt;

&lt;li&gt;
"&lt;a href="http://www.generation5.org/content/2003/lpainference.asp" lang="en"&gt;The
Shape of Inference: Using LPA's AI Toolkits&lt;/a&gt;" (09/11/2003),
en &lt;a href="http://www.generation5.org/" lang="en"&gt;Generation5.org&lt;/a&gt;.
Resumen: "In this document we contrast brittle production rule inference
with more sophisticated methods by setting up four separate &lt;acronym title="Knowledge Based System"&gt;KBS&lt;/acronym&gt;s
constructed using snippets of code from &lt;a href="http://www.lpa.co.uk/" title="Logic Programming Associates" lang="en"&gt;LPA&lt;/a&gt;'s
AI toolkits [&lt;a href="http://www.gamasutra.com/newswire/bit_blasts/20000815/index1.htm" title="LPA Announces New AI Tools" lang="en"&gt;1&lt;/a&gt;]
[&lt;a href="http://www.generation5.org/news.asp?Action=Full&amp;ID=182" title="LPA announce updated range of tools for building AI programs" lang="en"&gt;2&lt;/a&gt;]". Este art&amp;iacute;culo pertenece &lt;a href="http://www.generation5.org/articles.asp?Action=List&amp;Topic=Uncertainty%20Handling" title="Uncertainty Handling Articles" lang="en"&gt;a
una serie&lt;/a&gt; dedicada a la inferencia artificial y la manipulaci&amp;oacute;n de la incertidumbre. La continuaci&amp;oacute;n inmediata es "&lt;a href="http://www.generation5.org/content/2003/probmodulation.asp" lang="en"&gt;Probability Modulation and Non-linearity in Bayesian Networks&lt;/a&gt;".&lt;/li&gt;

&lt;li&gt;
"&lt;a href="http://www.barbol.com/archives/000146.html"&gt;Inteligencia Artificial...&lt;/a&gt;"
(11/10/2003), visi&amp;oacute;n muy general sobre el estado de la cuesti&amp;oacute;n,
en &lt;a href="http://www.barbol.com/"&gt;Barbol.com&lt;/a&gt;.&lt;/li&gt;

&lt;li&gt;
"&lt;a href="http://www.microsiervos.com/2003_11_01_archivo.html#106906978260323755"&gt;El
Universo Elegante&lt;/a&gt;" (18/10/2003), sobre la "teor&amp;iacute;a de las supercuerdas",
b&amp;uacute;squeda de una teor&amp;iacute;a unificada de las fuerzas que gobiernan
el universo, en &lt;a href="http://www.microsiervos.com/"&gt;Microsiervos&lt;/a&gt;.&lt;/li&gt;

&lt;li&gt;
"&lt;a href="http://www.shirky.com/writings/semantic_syllogism.html" lang="en"&gt;The
Semantic Web, Syllogism, and Worldview&lt;/a&gt;" (07/11/2003), en &lt;a href="http://www.shirky.com/" lang="en"&gt;Clay
Shirky’s Writings About the Internet&lt;/a&gt;.&lt;/li&gt;

&lt;li&gt;
"&lt;a href="http://www.xml.com/pub/a/2003/11/19/udell.html" lang="en"&gt;Working
with Bayesian Categorizers&lt;/a&gt;" (19/11/2003), en &lt;a href="http://www.xml.com/" lang="en"&gt;xml.com&lt;/a&gt;.
Sobre la base de lo comentado en este art&amp;iacute;culo, ver tambi&amp;eacute;n
&lt;a href="http://weblog.infoworld.com/udell/2003/11/20.html#a851" lang="en"&gt;esta
anotaci&amp;oacute;n&lt;/a&gt;.&lt;/li&gt;

&lt;li&gt;
"&lt;a href="http://www.mycgiserver.com/~gpiancastelli/archives.jsp?post=0060" lang="en"&gt;Using a Wiki to manage personal knowledge&lt;/a&gt;" (19/11/2003), en &lt;a href="http://www.mycgiserver.com/~gpiancastelli/" lang="en"&gt;Through
the blogging-glass&lt;/a&gt;.&lt;/li&gt;

&lt;li&gt;
"&lt;a href="http://7bytes.net/nota.php?id=1"&gt;Definici&amp;oacute;n y uso de clases
en PHP&lt;/a&gt;" (30/11/2003), en &lt;a href="http://7bytes.net/"&gt;7bytes.net&lt;/a&gt;.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Otras referencias:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
"&lt;a href="http://www.utm.edu/research/iep/a/artintel.htm" lang="en"&gt;Artificial
Intelligence&lt;/a&gt;", en &lt;a href="http://www.utm.edu/research/iep/" lang="en"&gt;The
Internet Encyclopedia of Philosophy&lt;/a&gt;.&lt;/li&gt;

&lt;li&gt;
"&lt;a href="http://www.science.uva.nl/~seop/entries/logic-fuzzy/" lang="en"&gt;Fuzzy
Logic&lt;/a&gt;", en &lt;a href="http://www.science.uva.nl/~seop/" lang="en"&gt;Stanford
Encyclopedia of Philosophy&lt;/a&gt;.&lt;/li&gt;

&lt;li&gt;
"&lt;a href="http://www.science.uva.nl/~seop/entries/logic-ai/" lang="en"&gt;Logic
and Artificial Intelligence&lt;/a&gt;", en
&lt;a href="http://www.science.uva.nl/~seop/" lang="en"&gt;Stanford
Encyclopedia of Philosophy&lt;/a&gt;.&lt;/li&gt;

&lt;li&gt;
"&lt;a href="http://www.science.uva.nl/~seop/entries/logic-provability/" lang="en"&gt;Provability
logic&lt;/a&gt;", en &lt;a href="http://www.science.uva.nl/~seop/" lang="en"&gt;Stanford
Encyclopedia of Philosophy&lt;/a&gt;.&lt;/li&gt;

&lt;li&gt;
"&lt;a href="http://www.x3dchess.com/press/historyofcomputerchess.htm" lang="en"&gt;A
short history of computer chess&lt;/a&gt;" (Frederic Friedel), en &lt;a href="http://www.x3dchess.com" lang="en"&gt;Kasparov
vs. X3D Fritz Page&lt;/a&gt;.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Muchos de los art&amp;iacute;culos tienen ya varios meses de antig&amp;uuml;edad,
pero no obstante me ha parecido interesante rese&amp;ntilde;arlos, y sirven
adem&amp;aacute;s como punto de acceso para conocer nuevos "weblogs" y p&amp;aacute;ginas.&lt;/p&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5454882-107041316051455582?l=programacionlogica.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://programacionlogica.blogspot.com/feeds/107041316051455582/comments/default' title='Enviar comentarios'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=5454882&amp;postID=107041316051455582&amp;isPopup=true' title='0 comentarios'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5454882/posts/default/107041316051455582'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5454882/posts/default/107041316051455582'/><link rel='alternate' type='text/html' href='http://programacionlogica.blogspot.com/2003/12/selecciculos.html' title='Selecci&amp;oacute;n de art&amp;iacute;culos'/><author><name>etxe</name><uri>http://www.blogger.com/profile/10987668917577281087</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5454882.post-106959733488129371</id><published>2003-11-23T15:22:00.000+01:00</published><updated>2004-02-27T18:08:33.000+01:00</updated><title type='text'>NLTK: Procesamiento del Lenguaje Natural con Python</title><content type='html'>&lt;p&gt;Las personas interesadas en la aplicaci&amp;oacute;n del lenguaje multiplataforma
de script Python [&lt;a href="http://www.python.org/" title="Python Programming Language web site" lang="en"&gt;1&lt;/a&gt;]
[&lt;a href="http://www.programacion.com/tutorial/python/" title="Guía de aprendizaje de Python"&gt;2&lt;/a&gt;]
[&lt;a href="http://desarrolloweb.com/articulos/1325.php" title="Qué es Python"&gt;3&lt;/a&gt;],
al procesamiento del lenguaje natural (PLN o &lt;a href="http://cslu.cse.ogi.edu/HLTsurvey/" title="Survey of the State of the Art in Human Language Technology" lang="en"&gt;&lt;acronym title="Natural Languaje Processing" lang="en"&gt;NLP&lt;/acronym&gt;&lt;/a&gt;),
pueden encontrar en &lt;a href="http://nltk.sourceforge.net/" lang="en"&gt;Natural
Language Toolkit&lt;/a&gt; (NLTK) un conjunto de herramientas de desarrollo,
de &lt;a href="http://nltk.sourceforge.net/license.html" title="NLTK: Open Source License" lang="en"&gt;uso
libre&lt;/a&gt;, de gran inter&amp;eacute;s y potencial. Este "kit" est&amp;aacute; formado
por varias librer&amp;iacute;as o m&amp;oacute;dulos, implementados en dicho lenguaje,
y orientados a la &lt;a href="http://nltk.sourceforge.net/tutorial/introduction/section-overview.html" title="Overview of NLTK" lang="en"&gt;manipulaci&amp;oacute;n&lt;/a&gt;
de los diversos aspectos involucrados en el &lt;acronym title="Procesamiento del Lenguaje Natural"&gt;PLN&lt;/acronym&gt;:
tokenizaci&amp;oacute;n, &lt;i&gt;parsing&lt;/i&gt;, clasificaci&amp;oacute;n, gram&amp;aacute;ticas
libres de contexto (&lt;acronym title="Context Free Grammars" lang="en"&gt;CFG&lt;/acronym&gt;),
representaci&amp;oacute;n y procesamiento de informaci&amp;oacute;n probabil&amp;iacute;stica,
visualizaci&amp;oacute;n gr&amp;aacute;fica de estructuras y procesos del lenguaje,
&lt;a href="http://www.lpsz.org/articulos/introduccion_expresiones_regulares.html" title="Introducción a las expresiones regulares"&gt;expresiones
regulares&lt;/a&gt;, lenguajes formales y &lt;a href="http://www.generation5.org/content/2003/FSM_Tutorial.asp" title="Finite State Machine Tutorial" lang="en"&gt;aut&amp;oacute;matas
de estados finitos&lt;/a&gt; (&lt;acronym title="Finite State Machine" lang="en"&gt;FSM&lt;/acronym&gt;,
un modelo te&amp;oacute;rico de representaci&amp;oacute;n de estados en n&amp;uacute;mero
finito o forma simplificada y sencilla de modelar lenguajes naturales;
&lt;a href="http://cs.wwc.edu/~aabyan/LogicPgmg/CODE/statemachines"&gt;ejemplo&lt;/a&gt;
de m&amp;aacute;quina de estados representada en Prolog), etc.&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;"NLTK [...] is a suite of Python libraries and programs for
symbolic and statistical natural language processing. [...] includes graphical
demonstrations and sample data. It is accompanied by extensive documentation,
including tutorials that explain the underlying concepts behind the language
processing tasks supported by the toolkit.&lt;/p&gt;

&lt;p&gt;[...] is ideally suited to students who are learning &lt;acronym title="Natural Languaje Processing" lang="en"&gt;NLP&lt;/acronym&gt;
or conducting research in &lt;acronym title="Natural Languaje Processing" lang="en"&gt;NLP&lt;/acronym&gt;
or closely related areas, including empirical linguistics, cognitive science,
artificial intelligence, information retrieval, and machine learning. &lt;acronym title="Natural Language Toolkit" lang="en"&gt;NLTK&lt;/acronym&gt;
has been used successfully as a teaching tool, as an individual study tool,
and as a platform for prototyping and building research systems."
&lt;div class="cita"&gt;&lt;a href="http://nltk.sourceforge.net/" lang="en"&gt;Fuente&lt;/a&gt;&lt;/div&gt;&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;&lt;acronym title="Natural Language Toolkit" lang="en"&gt;NLTK&lt;/acronym&gt; forma
parte de un &lt;a href="http://opennlp.sourceforge.net/projects.html" lang="en"&gt;conjunto
m&amp;aacute;s amplio&lt;/a&gt; de proyectos relacionados con el &lt;acronym title="Procesamiento del Lenguaje Natural"&gt;PLN&lt;/acronym&gt;
y en general con la ling&amp;uuml;&amp;iacute;stica computacional, agrupados bajo
la denominaci&amp;oacute;n gen&amp;eacute;rica &lt;a href="http://opennlp.sourceforge.net/" title="OpenNLP" lang="en"&gt;OpenNLP&lt;/a&gt;
a fin de adquirir una cierta consistencia y coordinaci&amp;oacute;n entre ellos
(ver al respecto el documento "&lt;a href="http://opennlp.sourceforge.net/about.html" lang="en"&gt;About&lt;/a&gt;"):&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;"OpenNLP provides the organizational structure for coordinating
several different projects which approach some aspect of Natural Language
Processing. [...] also defines a set of Java interfaces and implements
some basic infrastructure for &lt;acronym title="Natural Languaje Processing" lang="en"&gt;NLP&lt;/acronym&gt;
components."
&lt;div class="cita"&gt;&lt;a href="https://sourceforge.net/projects/opennlp/" lang="en"&gt;Fuente&lt;/a&gt;&lt;/div&gt;&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;En la p&amp;aacute;gina del proyecto &lt;acronym title="Natural Language Toolkit" lang="en"&gt;NLTK&lt;/acronym&gt;,
de aplicaci&amp;oacute;n inicialmente orientada a la &lt;a href="http://nltk.sourceforge.net/teach.html" title="Teaching with NLTK" lang="en"&gt;labor
docente y de investigaci&amp;oacute;n&lt;/a&gt; llevada a cabo en cursos universitarios
relacionados con t&amp;eacute;cnicas de &lt;acronym title="Procesamiento del Lenguaje Natural"&gt;PLN&lt;/acronym&gt;,
est&amp;aacute; disponible numerosa
&lt;a href="http://nltk.sourceforge.net/docs.html" lang="en"&gt;documentaci&amp;oacute;n&lt;/a&gt;
(tutoriales, documentaci&amp;oacute;n de la &lt;acronym title="Application Programming Interface" lang="en"&gt;API&lt;/acronym&gt;,
informes t&amp;eacute;cnicos, art&amp;iacute;culos, etc.), existiendo adem&amp;aacute;s
una
&lt;a href="http://lists.sourceforge.net/lists/listinfo/nltk-announce" title="nltk-announce - Public information and announcements" lang="en"&gt;lista
de correo&lt;/a&gt; para estar al tanto de las &amp;uacute;ltimas novedades al respecto,
as&amp;iacute; como &lt;a href="http://nltk.sourceforge.net/contrib.html" title="Contributing to NLTK" lang="en"&gt;otros
canales&lt;/a&gt; de colaboraci&amp;oacute;n y ayuda.&lt;/p&gt;

&lt;p&gt;Mencionaremos por &amp;uacute;ltimo, a modo de ejemplo de aplicaciones referidas
al &lt;acronym title="Procesamiento del Lenguaje Natural"&gt;PLN&lt;/acronym&gt;,
otra interesante herramienta, &lt;a href="http://odur.let.rug.nl/~vannoord/Hdrug/" lang="en"&gt;HDRUG&lt;/a&gt;
(&lt;a href="http://odur.let.rug.nl/~vannoord/" lang="en"&gt;Gertjan van Noord&lt;/a&gt;,
Universidad de Groningen, Holanda), entorno gr&amp;aacute;fico de usuario para
el desarrollo de gram&amp;aacute;ticas l&amp;oacute;gicas,
&lt;i&gt;parser&lt;/i&gt; y generadores
para el manejo del lenguaje natural. Este paquete de herramientas est&amp;aacute;
escrito para su ejecuci&amp;oacute;n en el entorno &lt;a href="http://www.sics.se/sicstus/" lang="en"&gt;Sicstus
Prolog&lt;/a&gt; (b&amp;aacute;sicamente una implementaci&amp;oacute;n de &lt;a href="http://pauillac.inria.fr/~deransar/prolog/docs.html" lang="en"&gt;ISO
Prolog&lt;/a&gt;, con extensiones adicionales; no es de uso gratuito, aunque
se puede obtener una copia de evaluaci&amp;oacute;n, &lt;a href="http://www.sics.se/isl/sicstuswww/site/eval.html" title="Evaluation License Request" lang="en"&gt;previa
petici&amp;oacute;n&lt;/a&gt;) y si bien parece un proyecto algo desactualizado,
tiene el inter&amp;eacute;s de mostrar la materializaci&amp;oacute;n pr&amp;aacute;ctica
de una plataforma de &lt;acronym title="Procesamiento del Lenguaje Natural"&gt;PLN&lt;/acronym&gt;,
utilizando el lenguaje Prolog en la parte referida al motor l&amp;oacute;gico
y de inferencia y la base de conocimientos.&lt;/p&gt;

&lt;p&gt;Por otro lado, &lt;a href="http://odur.let.rug.nl/~vannoord/" lang="en"&gt;Gertjan
van Noord&lt;/a&gt; es tambi&amp;eacute;n autor de &lt;a href="http://odur.let.rug.nl/~vannoord/software.html" title="Software by Gertjan van Noord" lang="en"&gt;otros
interesantes programas&lt;/a&gt;, la mayor parte relacionados con diversos aspectos
del &lt;acronym title="Procesamiento del Lenguaje Natural"&gt;PLN&lt;/acronym&gt;, entre otros:&lt;/p&gt;

&lt;ul class="conmargeninf"&gt;
&lt;li&gt;
&lt;a href="http://odur.let.rug.nl/~vannoord/Fsa/fsa.html" lang="en"&gt;FSA Utilities&lt;/a&gt;.
Colecci&amp;oacute;n de utilidades para construir (desde expresiones regulares),
manipular, visualizar, y aplicar, aut&amp;oacute;matas finitos (la interfaz
gr&amp;aacute;fica solo funciona bajo SICStus Prolog; existe una &lt;a href="http://odur.let.rug.nl/~vannoord/fsademo/" lang="en"&gt;demostraci&amp;oacute;n
en l&amp;iacute;nea&lt;/a&gt;).&lt;/li&gt;

&lt;li&gt;
&lt;a href="http://odur.let.rug.nl/~vannoord/TextCat/" lang="en"&gt;TextCat Language
Guesser&lt;/a&gt;. Este programa (implementaci&amp;oacute;n de un algoritmo de clasificaci&amp;oacute;n),
decide en qu&amp;eacute; lenguaje est&amp;aacute; escrito un texto, siendo unos
60 los idiomas reconocidos (&lt;a href="http://odur.let.rug.nl/~vannoord/TextCat/Demo/" lang="en"&gt;demostraci&amp;oacute;n
en l&amp;iacute;nea&lt;/a&gt;).&lt;/li&gt;

&lt;li&gt;
&lt;a href="http://odur.let.rug.nl/~vannoord/Elex/" lang="en"&gt;Elex with Prolog&lt;/a&gt;.
Herramienta para construir programas esc&amp;aacute;ner o tokenizadores, capaces
de reconocer s&amp;iacute;mbolos compuestos (palabras, n&amp;uacute;meros, espacios
en blanco, signos de puntuaci&amp;oacute;n, etc.), dentro de una cadena de
caracteres.&lt;/li&gt;

&lt;li&gt;
&lt;a href="http://odur.let.rug.nl/~vannoord/prolog-rx/" lang="en"&gt;SICStus
Prolog interface to ISO regular expression functions&lt;/a&gt;. Como el propio
nombre indica, se trata de una librer&amp;iacute;a de predicados para manejar
expresiones regulares bajo la implementaci&amp;oacute;n &lt;a href="http://www.sics.se/sicstus/" lang="en"&gt;SICStus Prolog&lt;/a&gt;, en sistemas
Unix y Linux.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;La interfaz gr&amp;aacute;fica de las herramientas &lt;a href="http://odur.let.rug.nl/~vannoord/Hdrug/" lang="en"&gt;HDRUG&lt;/a&gt; y &lt;a href="http://odur.let.rug.nl/~vannoord/Fsa/fsa.html" lang="en"&gt;FSA Utilities&lt;/a&gt;
est&amp;aacute; resuelta mediante &lt;a href="http://www.tcl.tk/" lang="en"&gt;&lt;acronym title="Tool Command Language/Tool Kit" lang="en"&gt;Tcl/Tk&lt;/acronym&gt;&lt;/a&gt;
(ver los enlaces que sobre este paquete para el desarrollo de &lt;acronym title="Graphical User Interfaces" lang="en"&gt;GUI's&lt;/acronym&gt;,
&lt;a href="http://www.sics.se/sicstus/docs/latest/html/sicstus.html/Tcl-Tk.html#Tcl%2fTk" title="Tcl/Tk Interface" lang="en"&gt;soportado&lt;/a&gt;
por la implementaci&amp;oacute;n &lt;a href="http://www.sics.se/sicstus/" lang="en"&gt;Sicstus
Prolog&lt;/a&gt;, se referenciaron en una &lt;a href="2003_09_01_programacionlogica_archive.html#106372354685361962" title="Programación de GUI's en Prolog: intérpretes para LOGO"&gt;anterior
anotaci&amp;oacute;n&lt;/a&gt;).&lt;/p&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5454882-106959733488129371?l=programacionlogica.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://programacionlogica.blogspot.com/feeds/106959733488129371/comments/default' title='Enviar comentarios'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=5454882&amp;postID=106959733488129371&amp;isPopup=true' title='0 comentarios'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5454882/posts/default/106959733488129371'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5454882/posts/default/106959733488129371'/><link rel='alternate' type='text/html' href='http://programacionlogica.blogspot.com/2003/11/nltk-procesamiento-del-lenguaje.html' title='NLTK: Procesamiento del Lenguaje Natural con Python'/><author><name>etxe</name><uri>http://www.blogger.com/profile/10987668917577281087</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5454882.post-106909157233989938</id><published>2003-11-17T18:52:00.000+01:00</published><updated>2004-02-27T16:08:39.200+01:00</updated><title type='text'>The Prolog Dictionary y otras referencias terminológicas</title><content type='html'>&lt;p&gt;Como su propio nombre indica, "&lt;a href="http://www.cse.unsw.edu.au/~billw/prologdict.html" lang="en"&gt;The
Prolog Dictionary&lt;/a&gt;" es un diccionario elaborado por &lt;a href="http://www.cse.unsw.edu.au/~billw/" title="Bill Wilson's Home Page" lang="en"&gt;Bill
Wilson&lt;/a&gt; (profesor del &lt;a href="http://www.cse.unsw.edu.au/~aishare/" lang="en"&gt;Grupo
de Inteligencia Artificial&lt;/a&gt;, &lt;a href="http://www.cse.unsw.edu.au/" lang="en"&gt;&lt;acronym title="University of New South Wales, School of Computer Science &amp; Engineering" lang="en"&gt;UNSW&lt;/acronym&gt;&lt;/a&gt;),
en el que se recogen t&amp;eacute;rminos, conceptos y definiciones relacionadas
con este lenguaje de programaci&amp;oacute;n l&amp;oacute;gica. Los conceptos analizados
(aridad, recursi&amp;oacute;n, corte, cl&amp;aacute;usula, &lt;em&gt;backtracking&lt;/em&gt;,
etc.), si bien no son muchos, vienen acompa&amp;ntilde;ados de una breve
pero clarificadora explicaci&amp;oacute;n, perfecta para entender, de forma
esquem&amp;aacute;tica, los principios esenciales que le sirven de fundamento.
Ser&amp;iacute;a interesante retomar esta iniciativa, realizando
una traducci&amp;oacute;n al castellano, con entradas adicionales, no referidas
&amp;uacute;nicamente a Prolog, sino en general a la programaci&amp;oacute;n l&amp;oacute;gica
y sus lenguajes, en aquellos aspectos comunes con aquel. Por ejemplo, se
podr&amp;iacute;an a&amp;ntilde;adir, entre otros muchos, los siguientes t&amp;eacute;rminos
y conceptos:&lt;/p&gt;

&lt;dl&gt;

&lt;dt&gt;
&lt;strong&gt;boundary condition&lt;/strong&gt;&lt;/dt&gt;

&lt;dd&gt;
Condici&amp;oacute;n l&amp;iacute;mite; se refiere al establecimiento de un mecanismo
de parada en la implementaci&amp;oacute;n de algoritmos recursivos, de forma
que estos no entren en un bucle infinito en un punto determinado de su proceso
de ejecuci&amp;oacute;n.&lt;/dd&gt;

&lt;dt&gt;
&lt;strong&gt;DCG&lt;/strong&gt;&lt;/dt&gt;

&lt;dd&gt;
&lt;em&gt;Definitive Clause Grammar&lt;/em&gt; o &lt;em&gt;Gram&amp;aacute;tica de Cl&amp;aacute;usulas
Definidas&lt;/em&gt;. Tipo de notaci&amp;oacute;n especial, extensi&amp;oacute;n sint&amp;aacute;ctica
de la sint&amp;aacute;xis ordinaria de Prolog, cuyo objeto es la creaci&amp;oacute;n
de gram&amp;aacute;ticas formales en forma abreviada, y en consecuencia simplificar
y hacer m&amp;aacute;s legibles los analizadores sint&amp;aacute;cticos. Por ejemplo,
la siguiente regla gramatical:

&lt;blockquote class="codigo"&gt;
oracion(S0,S):- sintagma_nominal(S0,S1), sintagma_verbal(S1,S).&lt;/blockquote&gt;

&lt;p&gt;se escribir&amp;iacute;a, atendiendo a este tipo de notaci&amp;oacute;n, como sigue:&lt;/p&gt;

&lt;blockquote class="codigo"&gt;
oracion --&gt; sintagma_nominal, sintagma_verbal.&lt;/blockquote&gt;&lt;/dd&gt;

&lt;dt&gt;
&lt;strong&gt;fact&lt;/strong&gt;&lt;/dt&gt;

&lt;dd&gt;
Hecho de la base de datos (o "base de conocimientos"), e.g.

&lt;blockquote class="codigo"&gt;
es_de_color(cielo,azul).&lt;br /&gt;
autor(nombre(robert), apellidos([kowalski])).&lt;/blockquote&gt;&lt;/dd&gt;

&lt;dt&gt;
&lt;strong&gt;&lt;em&gt;to&lt;/em&gt; fail&lt;/strong&gt;&lt;/dt&gt;

&lt;dd&gt;
Fracaso de un objetivo. El predicado predefinido (&lt;em&gt;built-in predicate&lt;/em&gt;)
"fail/0" hace fracasar siempre un objetivo, y se utiliza en combinaci&amp;oacute;n
con el predicado "repeat/0" para forzar procesos recursivos en
tanto no se cumpla determinada condici&amp;oacute;n.&lt;/dd&gt;

&lt;dt&gt;
&lt;strong&gt;infix operator&lt;/strong&gt;&lt;/dt&gt;

&lt;dd&gt;
Operador en posici&amp;oacute;n infija, e.g. "\=" en "X \= Y". El operador "\=" comprueba si dos variables X e Y cualesquiera son n&amp;uacute;meros distintos, fallando en caso contrario, es decir, si son iguales; para realizar la comparaci&amp;oacute;n entre cadenas de caracteres alfanum&amp;eacute;ricos o "&amp;aacute;tomos", se utilizan los operadores "==" y "\==".&lt;/dd&gt;

&lt;dt&gt;
&lt;strong&gt;leashed event&lt;/strong&gt;&lt;/dt&gt;

&lt;dd&gt;
Evento con sujecci&amp;oacute;n; esta expresi&amp;oacute;n se refiere a las cuatro
clases de eventos que permiten describir la ejecuci&amp;oacute;n de programas
en Prolog en modo de traza: CALL (llamada), EXIT (salida), REDO (reevaluaci&amp;oacute;n)
y FAIL (fracaso), cuando est&amp;aacute;n asociados a puntos de sujecci&amp;oacute;n
mediante puntos esp&amp;iacute;a (&lt;i&gt;spy points&lt;/i&gt;) decididos previamente
por el programador. Cuando se cumple un evento con sujecci&amp;oacute;n, el
int&amp;eacute;rprete permite modificar la ejecuci&amp;oacute;n posterior del proceso
de depuraci&amp;oacute;n del programa cuyo funcionamiento est&amp;aacute; siendo
analizado.

&lt;p&gt;Por otra parte, la asociaci&amp;oacute;n de los eventos con objetivos,
en este proceso, se realiza asociando a estos &amp;uacute;ltimos un n&amp;uacute;mero
entero que funciona como identificador un&amp;iacute;voco. El funcionamiento
por defecto del proceso de seguimiento de la ejecuci&amp;oacute;n de objetivos,
muestra en pantalla la sucesi&amp;oacute;n de los eventos sin sujecci&amp;oacute;n
alguna, y por tanto sin posibilidad de modificaci&amp;oacute;n de dicho proceso.&lt;/p&gt;&lt;/dd&gt;

&lt;dt&gt;
&lt;strong&gt;&lt;em&gt;to&lt;/em&gt; match&lt;/strong&gt;&lt;/dt&gt;

&lt;dd&gt;
Hacer coincidir, corresponder con; este significado se contextualiza en
los procesos de unificaci&amp;oacute;n de variables y consecuci&amp;oacute;n de
objetivos en las consultas.&lt;/dd&gt;

&lt;dt&gt;
&lt;strong&gt;parser&lt;/strong&gt;, &lt;strong&gt;parsing&lt;/strong&gt;&lt;/dt&gt;

&lt;dd&gt;
Analizador sint&amp;aacute;ctico, an&amp;aacute;lisis sint&amp;aacute;ctico; un analizador sint&amp;aacute;ctico se encarga de la construcci&amp;oacute;n de &amp;aacute;rboles de an&amp;aacute;lisis de las oraciones de una lengua, capaces de representar la estructura sintagm&amp;aacute;tica de las mismas, e.g. para la oraci&amp;oacute;n "John likes Mary":

&lt;blockquote class="codigo"&gt;
s(np(john),vp(v(likes),np(mary)))&lt;/blockquote&gt;

&lt;p&gt;Mediante el &lt;a href="http://www.sdsc.edu/~ludaesch/CSE232b-02/draw.swi"&gt;programa adecuado&lt;/a&gt;, es posible visualizar esta estructura gramatical en forma de &amp;aacute;rbol descendente:&lt;/p&gt;

&lt;pre&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; s
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; |
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; +-------------+
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; np&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; vp
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; |&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; |
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; |&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; +-------+
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; |&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; v&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; np
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; |&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; |&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; |
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; |&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; |&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; |
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; john&amp;nbsp;&amp;nbsp;&amp;nbsp; likes&amp;nbsp;&amp;nbsp;&amp;nbsp; mary&lt;/pre&gt;

&lt;/dd&gt;

&lt;dt&gt;
&lt;strong&gt;pattern matching&lt;/strong&gt;:&lt;/dt&gt;

&lt;dd&gt;
Mecanismo de comparaci&amp;oacute;n de patrones; tiene lugar cuando un objetivo coincide con la cabeza de una regla, que es la parte que se sit&amp;uacute;a antes del operador infijo ":-".&lt;/dd&gt;

&lt;dt&gt;
&lt;strong&gt;postfix operator&lt;/strong&gt;&lt;/dt&gt;

&lt;dd&gt;
Operador en posici&amp;oacute;n sufija, aquel que se coloca despu&amp;eacute;s de su argumento. Se entiende por tanto, en contraposición, que el operador prefijo (&lt;em&gt;prefix operator&lt;/em&gt;) se sit&amp;uacute;a delante del argumento. As&amp;iacute; por ejemplo, el operador infijo "+" puede tambi&amp;eacute;n funcionar en Prolog como operador prefijo, ya que "2+9" es equivalente a "+(2,9)".&lt;/dd&gt;

&lt;dt&gt;
&lt;strong&gt;satisfaction flow&lt;/strong&gt;&lt;/dt&gt;

&lt;dd&gt;
Flujo de resoluci&amp;oacute;n; representaci&amp;oacute;n gr&amp;aacute;fica de la resoluci&amp;oacute;n de objetivos mediante cajas distribuidas de arriba a abajo, unidas mediante flechas descendentes cuando los objetivos parciales representados por esas cajas ya han sido satisfechos.&lt;/dd&gt;

&lt;dt&gt;
&lt;strong&gt;shared variables&lt;/strong&gt;&lt;/dt&gt;

&lt;dd&gt;
Variables compartidas; dos variables, sin instanciar, est&amp;aacute;n compartidas cuando se hacen coincidir una con otra, de forma que cuanto una de ellas queda instanciada,
tambi&amp;eacute;n lo hace la otra.&lt;/dd&gt;

&lt;dt&gt;
&lt;strong&gt;&lt;em&gt;to&lt;/em&gt; sort&lt;/strong&gt;, &lt;strong&gt;sorting&lt;/strong&gt;&lt;/dt&gt;

&lt;dd&gt;
Ordenar, ordenaci&amp;oacute;n; la ordenaci&amp;oacute;n se lleva a cabo mediante diversos procedimientos algor&amp;iacute;tmicos: Bubble Sort, Selection Sort, Insertion Sort, Quicksort, Tree Sort, Merge Sort, etc. Estos procedimientos tratan de resolver el problema planteado por la b&amp;uacute;squeda de los caminos m&amp;aacute;s cortos (es decir, más eficientes en t&amp;eacute;rminos de tiempo y recursos de computaci&amp;oacute;n) entre los nodos de un grafo.&lt;/dd&gt;

&lt;dt&gt;
&lt;strong&gt;sorted-tree&lt;/strong&gt;&lt;/dt&gt;

&lt;dd&gt;
&amp;Aacute;rbol (de b&amp;uacute;squeda) ordenado. Los &lt;a href="http://www.cse.unsw.edu.au/~billw/cs9414/notes/ml/06prop/id3/id3.html" title="Induction of Decision Trees" lang="en"&gt;&amp;aacute;rboles
de b&amp;uacute;squeda o decisi&amp;oacute;n&lt;/a&gt; adoptan la estructura gr&amp;aacute;fica
de un &lt;em&gt;grafo&lt;/em&gt; (dirigido o no), y son una representaci&amp;oacute;n de
los procesos inherentes a las tareas de clasificaci&amp;oacute;n de datos.&lt;/dd&gt;

&lt;dt&gt;
&lt;strong&gt;spy point&lt;/strong&gt;&lt;/dt&gt;

&lt;dd&gt;
Punto esp&amp;iacute;a; referido a los procesos de depuraci&amp;oacute;n (&lt;em&gt;debugging&lt;/em&gt;)
del c&amp;oacute;digo.&lt;/dd&gt;

&lt;dt&gt;
&lt;strong&gt;trace&lt;/strong&gt;, &lt;strong&gt;tracing&lt;/strong&gt;&lt;/dt&gt;

&lt;dd&gt;
Seguir, seguimiento; hace referencia a un modo de ejecuci&amp;oacute;n en el
que se visualiza gr&amp;aacute;ficamente la &lt;em&gt;traza&lt;/em&gt; o forma en que se
resuelven los objetivos y se computan internamente las consultas por parte
del int&amp;eacute;rprete. Una vez que se lanza la orden "trace/0",
el resto de la resoluci&amp;oacute;n de objetivos sigue este modo gr&amp;aacute;fico
de ejecuci&amp;oacute;n, en tanto no se detenga con el predicado "notrace/0".&lt;/dd&gt;

&lt;/dl&gt;

&lt;p&gt;Parte de esta lista de conceptos se ha tomado de la obra de C.S. Clocksin
y W.F. Mellish, ya mencionada en otras ocasiones, "Programming in Prolog"
(Springer-Verlag, 1981), y por supuesto son una m&amp;iacute;nima parte de
los que podr&amp;iacute;an ser a&amp;ntilde;adidos a una versi&amp;oacute;n ampliada
del diccionario que venimos comentando.&lt;/p&gt;

&lt;p&gt;Por otro lado, "&lt;a href="http://www.cse.unsw.edu.au/~billw/prologdict.html" lang="en"&gt;The
Prolog Dictionary&lt;/a&gt;" forma parte de una serie formada por otros tres
diccionarios del mismo autor, referidos a la &lt;acronym title="Inteligencia Artificial"&gt;IA&lt;/acronym&gt;
en general y a dos de sus &amp;aacute;reas particulares de aplicaci&amp;oacute;n:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;a href="http://www.cse.unsw.edu.au/~billw/aidict.html" lang="en"&gt;The AI
Dictionary&lt;/a&gt;.&lt;/li&gt;
&lt;li&gt;
&lt;a href="http://www.cse.unsw.edu.au/~billw/mldict.html" lang="en"&gt;The Machine
Learning Dictionary&lt;/a&gt;.&lt;/li&gt;
&lt;li&gt;
&lt;a href="http://www.cse.unsw.edu.au/~billw/nlpdict.html" lang="en"&gt;The &lt;acronym title="Natural Language Processing" lang="en"&gt;NLP&lt;/acronym&gt;
Dictionary&lt;/a&gt;.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Destacan por la gran cantidad de conceptos definidos, y la
inclusi&amp;oacute;n de numerosas referencias cruzadas entre t&amp;eacute;rminos,
que sin duda enriquecen su utilidad pr&amp;aacute;ctica. Desafortunadamente
parecen llevar un cierto tiempo sin ser actualizados. En cualquier caso
contienen un bagaje de conceptos que hace m&amp;aacute;s que recomendable su
consulta, y por otra parte, al menos en lo que se refiere al lenguaje Prolog,
se trata de una iniciativa poco frecuente, la elaboraci&amp;oacute;n de un
glosario electr&amp;oacute;nico unificado de t&amp;eacute;rminos referidos a este
lenguaje, salvo indicaci&amp;oacute;n contraria por parte de alg&amp;uacute;n lector
que tenga conocimiento de otro trabajo de similares fines y caracter&amp;iacute;sticas.
As&amp;iacute; por ejemplo, &lt;a href="http://foldoc.doc.ic.ac.uk/foldoc/index.html" lang="en"&gt;&lt;acronym title="Free On-Line Dictionary Of Computing" lang="en"&gt;FOLDOC&lt;/acronym&gt;&lt;/a&gt;,
siendo un diccionario de tem&amp;aacute;tica muy relacionada, tiene sin embargo
un car&amp;aacute;cter m&amp;aacute;s introductorio y gen&amp;eacute;rico (no se incluye
c&amp;oacute;digo explicativo, como si encontramos en "&lt;a href="http://www.cse.unsw.edu.au/~billw/prologdict.html" lang="en"&gt;The
Prolog Dictionary&lt;/a&gt;"). En todo caso se trata de una referencia de consulta
tambi&amp;eacute;n m&amp;aacute;s que recomendable:&lt;/p&gt;

&lt;blockquote&gt;
"[...] is a searchable dictionary of acronyms, jargon, programming
languages, tools, architecture, operating systems, networking, theory,
conventions, standards, mathematics, telecoms, electronics, institutions,
companies, projects, products, history, in fact anything to do with computing."&lt;br /&gt;
&lt;div class="cita"&gt;&lt;a href="http://foldoc.doc.ic.ac.uk/foldoc/foldoc.cgi?Free+On-line+Dictionary" title="About the Dictionary" lang="en"&gt;Fuente&lt;/a&gt;&lt;/div&gt;
&lt;/blockquote&gt;

&lt;p&gt;La iniciativa est&amp;aacute; abierta a la &lt;a href="http://foldoc.doc.ic.ac.uk/foldoc/feedback.html" title="Feedback on the Dictionary of Computing" lang="en"&gt;colaboraci&amp;oacute;n&lt;/a&gt;
de cualquier usuario, mediante la aportaci&amp;oacute;n de definiciones
&lt;a href="http://foldoc.doc.ic.ac.uk/foldoc/missing.html" title="Frequently requested missing terms" lang="en"&gt;no
recogidas&lt;/a&gt; en el &amp;iacute;ndice, o la ampliaci&amp;oacute;n de aquellas no
suficientemente aclaradas o extensas. Adem&amp;aacute;s, el conjunto del diccionario
se puede &lt;a href="http://foldoc.doc.ic.ac.uk/foldoc/source.html" title="Getting FOLDOC source" lang="en"&gt;descargar&lt;/a&gt; comprimido en un &amp;uacute;nico archivo.&lt;/p&gt;

&lt;p&gt;Sin pretensi&amp;oacute;n alguna de exhaustividad, se pueden mencionar otros
diccionarios, glosarios y recopilaciones terminol&amp;oacute;gicas referidas
al &amp;aacute;rea de la computaci&amp;oacute;n, la programaci&amp;oacute;n, la &lt;acronym title="Recuperación de Información"&gt;RI&lt;/acronym&gt;,
etc., a saber:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;a href="http://www.research.att.com/~bs/glossary.html" lang="en"&gt;C++ Glossary&lt;/a&gt;
(por &lt;a href="http://www.research.att.com/~bs/" lang="en"&gt;Bjarne Stroustrup&lt;/a&gt;,
creador del &lt;a href="http://www.research.att.com/~bs/C++.html" title="The C++ Programming Language" lang="en"&gt;lenguaje
C++&lt;/a&gt;).&lt;/li&gt;

&lt;li&gt;
&lt;a href="http://www.telefonica.es/fat/elex.html" lang="en"&gt;Comparative CyberLexicon&lt;/a&gt;.&lt;/li&gt;

&lt;li&gt;
&lt;a href="http://www.nist.gov/dads/" lang="en"&gt;Dictionary of Algorithms and Data Structures&lt;/a&gt;.&lt;/li&gt;

&lt;li&gt;
&lt;a href="http://cgibin.erols.com/ziring/cgi-bin/cep/cep.pl" lang="en"&gt;Dictionary of Programming Languages&lt;/a&gt;.&lt;/li&gt;

&lt;li&gt;
&lt;a href="http://www.cs.jhu.edu/~weiss/glossary.html" lang="en"&gt;Glossary for Information Retrieval&lt;/a&gt;.&lt;/li&gt;

&lt;li&gt;
&lt;a href="http://www.earlham.edu/~peters/courses/logsys/glossary.htm" lang="en"&gt;Glossary of First-Order Logic&lt;/a&gt;.&lt;/li&gt;

&lt;li&gt;
&lt;a href="http://www.itu.int/sancho/" lang="en"&gt;ITU-T &lt;acronym title="Sector Abbreviations and defiNitions for a teleCommunications tHesaurus Oriented database" lang="en"&gt;SANCHO&lt;/acronym&gt;&lt;/a&gt;.&lt;/li&gt;

&lt;li&gt;
&lt;a href="http://orgwis.gmd.de/projects/explora/terms.html" lang="en"&gt;Machine Discovery Terminology&lt;/a&gt;.&lt;/li&gt;

&lt;li&gt;
&lt;a href="http://carbon.cudenver.edu/~hgreenbe/glossary/index.php" lang="en"&gt;Mathematical Programming Glossary&lt;/a&gt;.&lt;/li&gt;

&lt;li&gt;
&lt;a href="http://www.pcai.com/web/glossary/pcai_glossary.html" lang="en"&gt;PC AI Glossary of Terms&lt;/a&gt;.&lt;/li&gt;

&lt;li&gt;
&lt;a href="http://www.engin.umd.umich.edu/cis/course.des/cis400/" lang="en"&gt;The Language Guide&lt;/a&gt;.&lt;/li&gt;

&lt;li&gt;
&lt;a href="http://cui.unige.ch/cgi-bin/langlist/" lang="en"&gt;The Language List&lt;/a&gt;.&lt;/li&gt;

&lt;li&gt;
&lt;a href="http://people.ku.edu/~nkinners/LangList/Extras/langlist.htm" lang="en"&gt;The
Language List&lt;/a&gt; (otro sitio con la misma denominaci&amp;oacute;n que el anterior).&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;En castellano:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;a href="http://elvex.ugr.es/etexts/spanish/pl/index.htm"&gt;Desarrollo hist&amp;oacute;rico
de algunos lenguajes de programaci&amp;oacute;n&lt;/a&gt;.&lt;/li&gt;

&lt;li&gt;
&lt;a href="http://www.redcientifica.com/gaia/"&gt;GAIA&lt;/a&gt; - &lt;a href="http://www.redcientifica.com/gaia/def/defin_c.htm"&gt;Definiciones&lt;/a&gt;.&lt;/li&gt;

&lt;li&gt;
&lt;a href="http://pub.ufasta.edu.ar/ohcop/"&gt;Glosario de Bioingenier&amp;iacute;a
del Conocimiento&lt;/a&gt;.&lt;/li&gt;

&lt;li&gt;
&lt;a href="http://www.tugurium.com/gti/"&gt;Glosario de Terminolog&amp;iacute;a
Inform&amp;aacute;tica&lt;/a&gt;.&lt;/li&gt;

&lt;li&gt;
&lt;a href="http://eubd1.ugr.es/tony/risweb.isa"&gt;Recursos ling&amp;uuml;&amp;iacute;sticos
para profesionales de las bibliotecas y la documentaci&amp;oacute;n&lt;/a&gt; (&lt;acronym title="Universidad de Granada"&gt;UGR&lt;/acronym&gt;).&lt;/li&gt;

&lt;li&gt;
&lt;a href="http://www.ucm.es/BUCM/mat/Tesamat.htm"&gt;TESAMAT - Tesauro de Matem&amp;aacute;ticas&lt;/a&gt;.
(&lt;acronym title="Biblioteca de la Facultad de Ciencias Matemáticas"&gt;BFCM&lt;/acronym&gt;
- &lt;acronym title="Universidad Complutense de Madrid"&gt;UCM&lt;/acronym&gt;).&lt;/li&gt;

&lt;li&gt;
&lt;a href="http://pci204.cindoc.csic.es/tesauros/index.html"&gt;Tesauros CINDOC
(CSIC)&lt;/a&gt;.&lt;/li&gt;

&lt;li&gt;
&lt;a href="http://www.um.es/gtiweb/fjmm/tesauro/"&gt;Tesauro de Redes de Ordenadores&lt;/a&gt;
(&lt;acronym title="Universidad de Murcia"&gt;UM&lt;/acronym&gt;).&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Un proyecto bastante m&amp;aacute;s ambicioso, en tanto que pretende convertirse
en una encliclopedia general del conocimiento humano, fundamentada sobre
la base de una &lt;a href="http://en2.wikipedia.org/wiki/Wikipedia" lang="en"&gt;filosof&amp;iacute;a
abierta&lt;/a&gt;, es la Wikipedia: la versi&amp;oacute;n original, y m&amp;aacute;s
completa, est&amp;aacute; &lt;a href="http://en.wikipedia.org/" lang="en"&gt;en ingl&amp;eacute;s&lt;/a&gt;;
tambi&amp;eacute;n existe una versi&amp;oacute;n &lt;a href="http://es.wikipedia.org/"&gt;en
castellano&lt;/a&gt;, entre &lt;a href="http://en2.wikipedia.org/wiki/Wikipedia:Multilingual_coordination" lang="en"&gt;otros
idiomas&lt;/a&gt;. La entrada de la versi&amp;oacute;n inglesa dedicada &lt;a href="http://en.wikipedia.org/wiki/Prolog" lang="en"&gt;al
lenguaje Prolog&lt;/a&gt; es bastante decente. Todas las referencias proporcionadas son en cualquier caso un limitado reflejo de lo
que seguramente se puede localizar &lt;a href="http://www.i-une.com/" title="i-une, b&amp;uacute;squeda simultanea en los 7 mejores buscadores"&gt;buscando&lt;/a&gt; con un poco de paciencia.&lt;/p&gt;

&lt;p&gt;Volviendo al comentario de los diccionarios elaborados por &lt;a href="http://www.cse.unsw.edu.au/~billw/" title="Bill Wilson's Home Page" lang="en"&gt;Bill
Wilson&lt;/a&gt;, en la secci&amp;oacute;n "&lt;a href="http://www.cse.unsw.edu.au/~billw/cs9414/notes.html" lang="en"&gt;Lecture
Notes&lt;/a&gt;" -otras ubicaciones: [&lt;a href="http://www.cse.unsw.edu.au/~claude/teaching/AI/index.html" lang="en"&gt;1&lt;/a&gt;]
[&lt;a href="http://www.cse.unsw.edu.au/~cs9414/Intro/intro.html#resources" lang="en"&gt;2&lt;/a&gt;]-
enlazada desde los mismos, correspondiente a uno de los cursos impartidos
por dicho profesor, se localizan una serie de notas de curso e introducciones
relacionadas con la representaci&amp;oacute;n del conocimiento, el aprendizaje
de m&amp;aacute;quina (&lt;em&gt;machine learning&lt;/em&gt;), el procesamiento del lenguaje
natural (&lt;acronym title="Natural Language Processing" lang="en"&gt;NLP&lt;/acronym&gt;),
la visi&amp;oacute;n computerizada (&lt;em&gt;computer vision&lt;/em&gt;) y la programaci&amp;oacute;n
en Prolog, destacando, en este &amp;uacute;ltimo caso, como referencia de consulta,
el "&lt;a href="http://www.cse.unsw.edu.au/~claude/teaching/AI/notes/prolog/index.html" lang="en"&gt;iProlog
Programmer's Manual&lt;/a&gt;". Si bien referido a una implementaci&amp;oacute;n
particular de Prolog (&lt;a href="http://www.cse.unsw.edu.au/~claude/research/prolog.html" lang="en"&gt;iProlog&lt;/a&gt;,
que incluye extensiones del lenguaje orientadas fundamentalmente hacia
procesos de &lt;em&gt;&lt;a href="http://elvex.ugr.es/etexts/spanish/kdd/KDD.html"&gt;data mining&lt;/a&gt;&lt;/em&gt;), el manual contiene varias partes introductorias
dedicadas a los fundamentos b&amp;aacute;sicos de este lenguaje, bajo el ep&amp;iacute;grafe
"Introduction to Prolog Programming".&lt;/p&gt;

&lt;p&gt;N&amp;oacute;tese que el enlace al "&lt;a href="http://www.cse.unsw.edu.au/~claude/teaching/AI/notes/prolog/index.html" lang="en"&gt;iProlog
Programmer's Manual&lt;/a&gt;" desde "&lt;a href="http://www.cse.unsw.edu.au/~billw/prologdict.html" lang="en"&gt;The
Prolog Dictionary&lt;/a&gt;" es incorrecto, y que las figuras de algunas partes
del manual aparecen deformadas, seguramente por alg&amp;uacute;n problema a
la hora de trasladar el formato del documento original a &lt;acronym title="HyperText Markup Language" lang="en"&gt;HTML&lt;/acronym&gt;.
Las figuras correctas se pueden ver en una &lt;a href="http://www.cse.unsw.edu.au/~cs3411/prolog/doc/index.html" title="Introduction to Prolog Programming" lang="en"&gt;ubicaci&amp;oacute;n
alternativa&lt;/a&gt; del manual (si bien no incluye la parte referida a las
extensiones de iProlog). Las siguientes introducciones est&amp;aacute;n basadas
en partes del mismo: [&lt;a href="http://www.cse.unsw.edu.au/~cs9416/prolog/intro.html" lang="en"&gt;1&lt;/a&gt;]
[&lt;a href="http://www.cse.unsw.edu/~cs9414/Intro/notes/prolog/intro.html" lang="en"&gt;2&lt;/a&gt;]
[&lt;a href="http://www.cse.unsw.edu.au/~claude/teaching/AI/notes/prolog/intro.html" lang="en"&gt;3&lt;/a&gt;].&lt;/p&gt;

&lt;p&gt;Algunas de las disertaciones o "lecture notes" a las que hac&amp;iacute;amos referencia,
est&amp;aacute;n en formato &lt;a href="http://www.cs.wisc.edu/~ghost/" lang="en"&gt;&lt;acronym title="PostScript" lang="en"&gt;PS&lt;/acronym&gt;&lt;/a&gt;.
Por otro lado, muchas de ellas contienen en su cabecera o parte inicial
un campo de palabras clave que remiten, mediante hiperenlaces, a definiciones
del diccionario correspondiente, seg&amp;uacute;n la materia tratada.&lt;/p&gt;

&lt;p&gt;&lt;acronym title="Posdata"&gt;PD&lt;/acronym&gt;: Demian, en &lt;a href="http://www.gueb-estudio.info/index.php"&gt;GuebEstudio&lt;/a&gt;,
ha venido publicando desde hace bastantes d&amp;iacute;as un bloque de anotaciones
referidas a la &lt;acronym title="Inteligencia Artificial"&gt;IA&lt;/acronym&gt;
(ver la categor&amp;iacute;a &lt;a href="http://www.gueb-estudio.info/archivesum.php?view=category"&gt;Introducci&amp;oacute;n
a la inform&amp;aacute;tica&lt;/a&gt;), en el que podemos encontrar apuntes sobre
generalidades de este &amp;aacute;rea de la ciencia cognitiva y computacional,
sistemas expertos y representaci&amp;oacute;n del conocimiento, &lt;acronym title="Redes Neuronales Artificiales"&gt;RNA&lt;/acronym&gt;,
principales lenguajes de programaci&amp;oacute;n de aplicaci&amp;oacute;n espec&amp;iacute;fica
a la &lt;acronym title="Inteligencia Artificial"&gt;IA&lt;/acronym&gt; (Lisp,
Prolog, Smalltalk, ...), etc. No dejen de leerlos.&lt;/p&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5454882-106909157233989938?l=programacionlogica.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://programacionlogica.blogspot.com/feeds/106909157233989938/comments/default' title='Enviar comentarios'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=5454882&amp;postID=106909157233989938&amp;isPopup=true' title='0 comentarios'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5454882/posts/default/106909157233989938'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5454882/posts/default/106909157233989938'/><link rel='alternate' type='text/html' href='http://programacionlogica.blogspot.com/2003/11/prolog-dictionary-y-otras-referencias.html' title='The Prolog Dictionary y otras referencias terminol&amp;oacute;gicas'/><author><name>etxe</name><uri>http://www.blogger.com/profile/10987668917577281087</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5454882.post-106841108972361713</id><published>2003-11-09T21:51:00.000+01:00</published><updated>2004-02-27T16:57:03.733+01:00</updated><title type='text'>AI Meeting at Internet (AIMAI), 12-13 noviembre 2003</title><content type='html'>&lt;p&gt;Mediante un aviso publicado en la lista de distribuci&amp;oacute;n &lt;a href="http://www.rediris.es/list/info/int-artif.es.html"&gt;INT-ARTIF&lt;/a&gt;
de &lt;a href="http://www.rediris.es/"&gt;RedIris&lt;/a&gt;, nos enteramos de la celebraci&amp;oacute;n
los pr&amp;oacute;ximos d&amp;iacute;as 12 y 13 de noviembre del evento &lt;a href="http://aimai.icodsi.biz/"&gt;AIMAI&lt;/a&gt;,
"Artificial Intelligence Meeting at Internet". Como su nombre indica se
trata de un ciclo de charlas que versar&amp;aacute; sobre diversos aspectos de la &lt;acronym title="Inteligencia Artificial"&gt;IA&lt;/acronym&gt;, estando previsto su desarrollo a trav&amp;eacute;s del canal de &lt;acronym title="Internet Relay Chat, sistema de conversación en tiempo real"&gt;IRC&lt;/acronym&gt;
"#aimai" (servidor "irc.icodsi.biz"). Los temas que se abordar&amp;aacute;n
son los siguientes:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
Introducci&amp;oacute;n a la &lt;acronym title="Inteligencia Artificial"&gt;IA&lt;/acronym&gt;.&lt;/li&gt;
&lt;li&gt;
Aplicaciones de la &lt;acronym title="Inteligencia Artificial"&gt;IA&lt;/acronym&gt;
en la ingenier&amp;iacute;a: control de tr&amp;aacute;fico a&amp;eacute;reo.&lt;/li&gt;
&lt;li&gt;
Agentes.&lt;/li&gt;
&lt;li&gt;
Aplicaciones de la &lt;acronym title="Inteligencia Artificial"&gt;IA&lt;/acronym&gt;
en la educaci&amp;oacute;n.&lt;/li&gt;
&lt;li&gt;
T&amp;eacute;cnicas &lt;acronym title="Constraint Satisfaction Problems"&gt;CSP&lt;/acronym&gt;
para &lt;acronym title="programación, planificación"&gt;scheduling&lt;/acronym&gt; &lt;a name="scheduling_ref"&gt;&lt;/a&gt;(&lt;a href="#scheduling"&gt;*&lt;/a&gt;):
sistema para la planificaci&amp;oacute;n del tr&amp;aacute;fico ferroviario.&lt;/li&gt;
&lt;li&gt;
Sistemas de planificaci&amp;oacute;n en &lt;acronym title="Inteligencia Artificial"&gt;IA&lt;/acronym&gt;.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Para obtener m&amp;aacute;s detalles (ponentes, horarios, "abstracts" de las
ponencias, etc.), existe una &lt;a href="http://aimai.icodsi.biz/index.html?seccion=planning"&gt;p&amp;aacute;gina
espec&amp;iacute;fica&lt;/a&gt;, desde la que adem&amp;aacute;s es posible enlazar con
los sitios web de varios departamentos, grupos de trabajo universitarios,
y miembros participantes, cuyo &amp;aacute;mbito de investigaci&amp;oacute;n son
las tem&amp;aacute;ticas que centrar&amp;aacute;n el desarrollo de las charlas, ya que &amp;eacute;stas
estar&amp;aacute;n a cargo, en calidad de ponentes, de personal docente e investigador
de dichos departamentos (&lt;a href="http://www.giaa.inf.uc3m.es/" title="Grupo de Inteligencia Artificial Aplicada"&gt;Universidad
Carlos III de Madrid&lt;/a&gt;, &lt;a href="http://www.lcc.uma.es/" title="Dpto. Lenguajes y Ciencias de la Computaci&amp;oacute;n"&gt;Universidad
de M&amp;aacute;laga&lt;/a&gt;, &lt;a href="http://www.dsic.upv.es/" title="Departamento de Sistemas Informáticos y Computación (DSIC)"&gt;Universidad
Polit&amp;eacute;cnica de Valencia&lt;/a&gt;).&lt;/p&gt;

&lt;p&gt;A diferencia de las conferencias y actos de otra &amp;iacute;ndole enmarcados en la &lt;a href="http://www.fecyt.es/semanadelaciencia2003/home/inicio.htm"&gt;III
Semana de la Ciencia&lt;/a&gt;, de la que se daba cuenta en la &lt;a href="http://programacionlogica.blogspot.com/2003_11_01_programacionlogica_archive.html#106786559291454106" title="III Semana de la Ciencia: Madrid, noviembre 2003"&gt;anterior
anotaci&amp;oacute;n&lt;/a&gt;, en este caso la participaci&amp;oacute;n, si el horario
no es un impedimento, no requiere una presencia f&amp;iacute;sica, as&amp;iacute;
que no hay excusa para no dejarse caer... por otra parte no se exige ning&amp;uacute;n
requisito especial para intervenir en las charlas, m&amp;aacute;s all&amp;aacute;
de tener inter&amp;eacute;s por los temas tratados.&lt;/p&gt;

&lt;p&gt;&lt;a name="scheduling"&gt;&lt;/a&gt;(&lt;a href="#scheduling_ref"&gt;*&lt;/a&gt;) Las t&amp;eacute;cnicas de "scheduling" se ocupan de la generaci&amp;oacute;n,
mediante &lt;a href="http://geneura.ugr.es/~jmerelo/tutoriales/heuristics101/" title="T&amp;eacute;cnicas heur&amp;iacute;sticas de resoluci&amp;oacute;n de problemas: computaci&amp;oacute;n evolutiva y redes neuronales"&gt;t&amp;eacute;cnicas
heur&amp;iacute;sticas&lt;/a&gt;, de algoritmos matem&amp;aacute;ticos que resuelvan
la satisfacci&amp;oacute;n del problema general de la restricci&amp;oacute;n de
recursos en un tiempo dado, de cara a la planificaci&amp;oacute;n y resoluci&amp;oacute;n
de un n&amp;uacute;mero determinado de tareas (referidas por ejemplo a procesos
de contabilidad, control de inventarios, administraci&amp;oacute;n de personal,
control de producci&amp;oacute;n en la industria, etc.). Superando los m&amp;eacute;todos
algor&amp;iacute;tmicos tradicionales, en la actualidad se est&amp;aacute;n ensayando
aplicaciones basadas en algoritmos gen&amp;eacute;ticos y &lt;acronym title="Redes Neuronales Artificiales"&gt;RNA&lt;/acronym&gt; orientadas a la resoluci&amp;oacute;n de problemas de "scheduling". A nivel m&amp;aacute;s
general estas t&amp;eacute;cnicas pueden ser consideradas como un proceso de
toma de decisiones.&lt;/p&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5454882-106841108972361713?l=programacionlogica.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://programacionlogica.blogspot.com/feeds/106841108972361713/comments/default' title='Enviar comentarios'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=5454882&amp;postID=106841108972361713&amp;isPopup=true' title='0 comentarios'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5454882/posts/default/106841108972361713'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5454882/posts/default/106841108972361713'/><link rel='alternate' type='text/html' href='http://programacionlogica.blogspot.com/2003/11/ai-meeting-at-internet-aimai-12-13.html' title='AI Meeting at Internet (AIMAI), 12-13 noviembre 2003'/><author><name>etxe</name><uri>http://www.blogger.com/profile/10987668917577281087</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5454882.post-106786559291454106</id><published>2003-11-03T14:19:00.000+01:00</published><updated>2004-02-27T17:02:15.686+01:00</updated><title type='text'>III Semana de la Ciencia: Madrid, noviembre 2003</title><content type='html'>&lt;p&gt;Dentro del amplio conjunto de conferencias, cursos, talleres, exposiciones,
jornadas de puertas abiertas, etc., que del 3 al 16 de noviembre se van
a celebrar en el marco de la &lt;a href="http://www.fecyt.es/semanadelaciencia2003/home/inicio.htm"&gt;III
Semana de la Ciencia&lt;/a&gt;, organizada &lt;a href="http://www.madrimasd.org/semanaciencia/2003/index.htm"&gt;en la regi&amp;oacute;n de Madrid&lt;/a&gt; por la Consejer&amp;iacute;a de Educaci&amp;oacute;n
de la Comunidad Aut&amp;oacute;noma, queremos destacar, por su tem&amp;aacute;tica,
los siguientes eventos (se citan textualmente las convocatorias):&lt;/p&gt;

&lt;blockquote&gt;
"Nuevas tendencias de la Matem&amp;aacute;tica: Caos y Fractales" (jueves 6, 18:00h)&lt;br /&gt;
Conferencia cuyo objetivo es presentar a personas interesadas nuevas
tendencias de la Matem&amp;aacute;tica y especialmente c&amp;oacute;mo se pueden
utilizar los Fractales para modelizar aspectos muy distintos de la Biolog&amp;iacute;a,
Medicina, Econom&amp;iacute;a, etc. As&amp;iacute; como la relaci&amp;oacute;n de &amp;eacute;stos
con los Sistema Din&amp;aacute;micos Discretos y Continuos no lineales que
producen Caos.

&lt;ul&gt;
&lt;li&gt;Lugar: Paraninfo. Rectorado A de la UPM - Avda. Ramiro de Maeztu, 7 - Madrid.&lt;/li&gt;
&lt;li&gt;Ponentes: Adela Salvador Alcaide; Luis Garmendia Salvador; Maril&amp;oacute;
L&amp;oacute;pez Gonz&amp;aacute;lez.&lt;/li&gt;
&lt;li&gt;Informaci&amp;oacute;n y reserva: Secretar&amp;iacute;a del Adjunto al Vicerrector
de Investigaci&amp;oacute;n y Relaciones Institucionales de la UPM / Tel. 91
336 60 88 - Fax. 91 535 27 56 / email: &lt;a href="mailto:meneses@vi.upm.es"&gt;meneses@vi.upm.es&lt;/a&gt;.&lt;/li&gt;
&lt;li&gt;Organiza: &lt;a href="http://www.upm.es"&gt;Universidad Polit&amp;eacute;cnica de
Madrid&lt;/a&gt;.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;"Nuevas tendencias de la Matem&amp;aacute;tica: L&amp;oacute;gica Borrosa e IA" (jueves 6, 19:00h)&lt;br /&gt;
Conferencia cuyo objetivo es presentar a personas interesadas una introducci&amp;oacute;n
a la Inteligencia Artificial y especialmente a la aplicaci&amp;oacute;n de
la L&amp;oacute;gica Borrosa para hacer razonamiento aproximado del sentido
com&amp;uacute;n.&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Lugar: Paraninfo. Rectorado A de la UPM - Avda. Ramiro de Maeztu, 7 - Madrid.&lt;/li&gt;
&lt;li&gt;Ponentes: Adela Salvador Alcaide; Luis Garmendia Salvador; Maril&amp;oacute;
L&amp;oacute;pez Gonz&amp;aacute;lez.&lt;/li&gt;
&lt;li&gt;Informaci&amp;oacute;n y reserva: Secretar&amp;iacute;a del Adjunto al Vicerrector
de Investigaci&amp;oacute;n y Relaciones Institucionales de la UPM / Tel. 91
336 60 88 - Fax. 91 535 27 56 / email: &lt;a href="mailto:meneses@vi.upm.es"&gt;meneses@vi.upm.es&lt;/a&gt;.&lt;/li&gt;
&lt;li&gt;Organiza: &lt;a href="http://www.upm.es"&gt;Universidad Polit&amp;eacute;cnica de
Madrid&lt;/a&gt;.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;"Miner&amp;iacute;a de Datos" (martes 11, 12:30h a 14:30h)&lt;br /&gt;
La Miner&amp;iacute;a de Datos permite extraer conocimiento impl&amp;iacute;cito
en almacenes de datos. Se explicar&amp;aacute; la metodolog&amp;iacute;a de implantaci&amp;oacute;n
y sus aplicaciones para el apoyo de toma de decisiones de negocio y mejora
de procesos existentes.&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Lugar: Universidad Europea de Madrid. Auditorio Edificio B - C/ Tajo, s/n
- Villaviciosa de Od&amp;oacute;n.&lt;/li&gt;
&lt;li&gt;Ponente: Dr. Ignacio Gir&amp;aacute;ldez.&lt;/li&gt;
&lt;li&gt;Informaci&amp;oacute;n: Dr. Ignacio Gir&amp;aacute;ldez / Tel. 91 211 56 71 - Fax.
91 616 82 65 / email: &lt;a href="mailto:giraldez@uem.es"&gt;giraldez@uem.es&lt;/a&gt;.&lt;/li&gt;
&lt;li&gt;Organiza: &lt;a href="http://www.uem.es"&gt;Universidad Europea de Madrid&lt;/a&gt;
- OTRI. Oficina de Transferencia de Resultados de Investigaci&amp;oacute;n.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;"Inteligencia artificial conexionista" (mi&amp;eacute;rcoles 12, 12:00h a 14:30h)&lt;br /&gt; Conferencia sobre Inteligencia Artificial.&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Lugar: Escuela Polit&amp;eacute;cnica Superior - Urb. Montepr&amp;iacute;ncipe.
Ctra. Boadilla del Monte, km. 5,300 - Boadilla del Monte.&lt;/li&gt;
&lt;li&gt;Ponentes: Mariano Fern&amp;aacute;ndez; Daniel Manrique Gamo.&lt;/li&gt;
&lt;li&gt;Informaci&amp;oacute;n y reserva: Jezabel Pav&amp;oacute;n / Tel. 91 372 40 27
- Fax. 91 372 40 49 / email: &lt;a href="mailto:jpavon.eps@ceu.es"&gt;jpavon.eps@ceu.es&lt;/a&gt;.&lt;/li&gt;
&lt;li&gt;Organiza: &lt;a href="http://www.ceu.es"&gt;Universidad San Pablo-CEU&lt;/a&gt; - Vicerrectorado
de Investigaci&amp;oacute;n. OTRI / Escuela Polit&amp;eacute;cnica Superior.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;"La Raz&amp;oacute;n &amp;Aacute;urea en las ciencias y el arte" (jueves 13, 11:30h a 12:30h)&lt;br /&gt;
Se pretende de un modo sencillo ilustrar c&amp;oacute;mo aparece el n&amp;uacute;mero
&amp;aacute;ureo a lo largo de la historia, desde las sucesiones de Fibonacci
hasta la espiral logar&amp;iacute;tmica. Desde el n&amp;uacute;mero &amp;aacute;ureo
en el mundo griego hasta las proporciones de Oro en el arte.&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Lugar: Universidad Europea de Madrid. Sala de Grados. Edificio A - C/ Tajo,
s/n - Villaviciosa de Od&amp;oacute;n.&lt;/li&gt;
&lt;li&gt;Ponentes: Susana L&amp;oacute;pez; Joaqu&amp;iacute;n Tomas Valderrama.&lt;/li&gt;
&lt;li&gt;Informaci&amp;oacute;n: Susana L&amp;oacute;pez / Tel. 91 211 56 58 - Fax. 91 616
82 65 / email: &lt;a href="mailto:susana.lopez@mat.ind.uem.es"&gt;susana.lopez@mat.ind.uem.es&lt;/a&gt;.&lt;/li&gt;
&lt;li&gt;Organiza: &lt;a href="http://www.uem.es"&gt;Universidad Europea de Madrid&lt;/a&gt;
- OTRI. Oficina de Transferencia de Resultados de Investigaci&amp;oacute;n.&lt;/li&gt;
&lt;/ul&gt;
&lt;/blockquote&gt;

&lt;p&gt;Si se accede al buscador de actividades de esta Semana de la Ciencia (bajo
el ep&amp;iacute;grafe "&lt;a href="http://www.madrimasd.org/semanaciencia/2003/pag-actividades.htm"&gt;Actividades&lt;/a&gt;")
y se selecciona "Mesas redondas y conferencias" en el campo "Tipo de actividad",
y "Otros" o bien "Historia, Arte y Arqueolog&amp;iacute;a" en el campo "&amp;Aacute;rea
tem&amp;aacute;tica", se pueden localizar bastantes conferencias relacionadas con
el &amp;aacute;mbito de la Biblioteconom&amp;iacute;a, la Documentaci&amp;oacute;n
y la &lt;a href="http://www.cindoc.csic.es/cybermetrics/" title="Electronic Journal of Scientometrics, Informetrics and Bibliometrics" lang="en"&gt;Infometr&amp;iacute;a/Bibliometr&amp;iacute;a&lt;/a&gt;:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;La Biblioteca de la Universidad Complutense de Madrid: Innovaci&amp;oacute;n
y Conservaci&amp;oacute;n.&lt;/li&gt;
&lt;li&gt;La evaluaci&amp;oacute;n de la calidad en la investigaci&amp;oacute;n.&lt;/li&gt;
&lt;li&gt;La Biblioteca Digital Diosc&amp;oacute;rides.&lt;/li&gt;
&lt;li&gt;Conservaci&amp;oacute;n y preservaci&amp;oacute;n de fondos bibliogr&amp;aacute;ficos
en la Biblioteca Marqu&amp;eacute;s de Valdecilla.&lt;/li&gt;
&lt;li&gt;La Biblioteca de la Condesa de Campo Alange.&lt;/li&gt;
&lt;li&gt;Fondos del siglo XVIII sobre Historia Antigua en la Biblioteca de la Universidad
Complutense.&lt;/li&gt;
&lt;li&gt;Bibliotecas, Investigaci&amp;oacute;n y Ciencia en la era digital.&lt;/li&gt;
&lt;li&gt;Las encuadernaciones hist&amp;oacute;ricas de la Biblioteca de la Universidad
Complutense.&lt;/li&gt;
&lt;li&gt;El papel de la inferencia estad&amp;iacute;stica en la investigaci&amp;oacute;n
cient&amp;iacute;fica.&lt;/li&gt;
&lt;li&gt;El papel holand&amp;eacute;s, la vigencia de un soporte de calidad.&lt;/li&gt;
&lt;li&gt;El Libro de la Naturaleza: Los libros de texto de Ciencias Naturales desde
el siglo XVIII al XX... etc.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Se omite la descripci&amp;oacute;n detallada de cada una de las ponencias ya
que se extender&amp;iacute;a en exceso este comentario. No se queden solo con
estas referencias: hay much&amp;iacute;simo donde elegir y seguramente m&amp;aacute;s
interesante que lo recogido en estas l&amp;iacute;neas. As&amp;iacute; por ejemplo,
en "Cursos y Talleres" se encuentran tambi&amp;eacute;n actividades muy interesantes,
referidas a muchas &amp;aacute;reas del conocimiento, tanto de las ciencias
"exactas" y aplicadas, como de las humanidades y las ciencias sociales.&lt;/p&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5454882-106786559291454106?l=programacionlogica.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://programacionlogica.blogspot.com/feeds/106786559291454106/comments/default' title='Enviar comentarios'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=5454882&amp;postID=106786559291454106&amp;isPopup=true' title='0 comentarios'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5454882/posts/default/106786559291454106'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5454882/posts/default/106786559291454106'/><link rel='alternate' type='text/html' href='http://programacionlogica.blogspot.com/2003/11/iii-semana-de-la-ciencia-madrid.html' title='III Semana de la Ciencia: Madrid, noviembre 2003'/><author><name>etxe</name><uri>http://www.blogger.com/profile/10987668917577281087</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5454882.post-106761411060612995</id><published>2003-10-31T16:28:00.000+01:00</published><updated>2004-02-27T17:14:56.653+01:00</updated><title type='text'>Redes Neuronales Artificiales y computación distribuida: CCortex</title><content type='html'>&lt;p&gt;En la edici&amp;oacute;n del suplemento &lt;a href="http://www.elpais.es/suple/ciberpais/"&gt;Ciberp@&amp;iacute;s&lt;/a&gt;
de ayer 30 de octubre, se da cuenta (p&amp;aacute;gina 8) de la iniciativa empresarial
de Marcos Guill&amp;eacute;n en el campo de la Inteligencia Artificial (IA),
en tanto que fundador de &lt;a href="http://www.ad.com/" lang="en"&gt;Artificial
Development&lt;/a&gt; (AD). Esta empresa, radicada en Silicon Valley, trabaja
actualmente en el prototipo de superordenador
&lt;a href="http://www.ad.com/tech.html" lang="en"&gt;CCortex&lt;/a&gt;,
consistente en el desarrollo de un modelo particular de &lt;a href="ftp://ftp.sas.com/pub/neural/FAQ.html" title="Neural Network FAQ" lang="en"&gt;Red
Neuronal Artificial&lt;/a&gt; (RNA o &lt;acronym title="Artificial Neural Network" lang="en"&gt;ANN&lt;/acronym&gt;
por sus siglas en ingl&amp;eacute;s), que trata de emular las funciones cognitivas
presentes, de modo particular, en la regi&amp;oacute;n del c&amp;oacute;rtex cerebral
humano, con el soporte t&amp;eacute;cnico de un &lt;em&gt;cluster&lt;/em&gt; muy potente
de servidores:&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;"Artificial Development is building CCortex, a complete 20-billion
neuron emulation of the Human Cortex and peripheral systems, on a cluster
of 100 computers - the largest neural network created to date."
&lt;div class="cita"&gt;&lt;a href="http://www.ad.com/" lang="en"&gt;Fuente&lt;/a&gt;&lt;/div&gt;&lt;/p&gt;

&lt;p&gt;"CCortex is a massive spiking neuron network emulation and will mimic
the human cortex, the outer layer of gray matter at the cerebral hemispheres,
largely responsible for higher brain functions. The emulation covers up
to 20 billion layered neurons and 2 trillion 8-bit connections."
&lt;div class="cita"&gt;&lt;a href="http://www.ad.com/press/sept132003.html" lang="en"&gt;Fuente&lt;/a&gt;&lt;/div&gt;&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;A modo de aclaraci&amp;oacute;n conviene explicar que un cluster de ordenadores
es un sistema distribuido en paralelo, formado por servidores interconectados
de forma que comparten sus recursos, siendo considerados, a todos los efectos,
como un solo servidor. Adem&amp;aacute;s de aumentar la capacidad de c&amp;aacute;lculo
y de memoria, al combinarse las velocidades y caracter&amp;iacute;sticas individuales
de proceso, los cluster de ordenadores presentan la ventaja de mejorar
notablemente la disponibilidad general del sistema, al preverse de antemano,
estad&amp;iacute;sticamente, la tasa de inoperabilidad de cada uno de los servidores
que forman la red distribuida.&lt;/p&gt;

&lt;p&gt;Las caracter&amp;iacute;sticas t&amp;eacute;cnicas y l&amp;oacute;gicas de la red
distribuida que soporta al prototipo de emulaci&amp;oacute;n cognitiva y neuronal CCortex, sit&amp;uacute;an a este sistema,
por capacidad de c&amp;aacute;lculo, y atendiendo a los datos proporcionados
por &lt;acronym title="Artificial Development" lang="en"&gt;AD&lt;/acronym&gt;,
entre los 20 primeros superordenadores m&amp;aacute;s r&amp;aacute;pidos existentes
en la actualidad:&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;"The cluster being assembled at AD.com Data Center is a&amp;nbsp;
high-performance, parallel supercomputer, composed of 500 nodes
and one thousand processors, 1.5 terabytes of RAM, and 80 terabytes of
storage."&lt;/p&gt;

&lt;p&gt;"The low-cost software/hardware system runs on Linux, Intel and AMD processors.
When all sections are assembled, CCortex is expected to reach a theoretical
peak performance of 4,800 Gflops, making it one of the top 20 fastest computers
in the world. The cluster will be used as a test bed for beta versions
of CCortex."
&lt;div class="cita"&gt;&lt;a href="http://www.ad.com/press/sept132003.html"&gt;Fuente&lt;/a&gt;&lt;/div&gt;&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;La orientaci&amp;oacute;n de trabajo y desarrollo de este proyecto, con la
vista puesta en su aplicaci&amp;oacute;n pr&amp;aacute;ctica al mundo de los
negocios, se dirige hacia la investigaci&amp;oacute;n y la b&amp;uacute;squeda
de nuevas soluciones sobre algunos de los principales problemas que ha
enfrentado tradicionalmente la computaci&amp;oacute;n aplicada a la &lt;acronym title="Inteligencia Artificial"&gt;IA&lt;/acronym&gt;,
entendida &amp;eacute;sta como modelizaci&amp;oacute;n del pensamiento y el razonamiento
humanos: visi&amp;oacute;n y reconocimiento de patrones (&lt;em&gt;&lt;a href="http://www-etsi2.ugr.es/depar/ccia/rf/material.html"&gt;pattern
recognition&lt;/a&gt;&lt;/em&gt;), aprendizaje automatizado (&lt;em&gt;&lt;a href="http://www.aic.nrl.navy.mil/~aha/research/machine-learning.html" title="Machine Learning Resources" lang="en"&gt;machine
learning&lt;/a&gt;&lt;/em&gt;, espec&amp;iacute;ficamente aprendizaje cognoscitivo, aquel
que permite la creaci&amp;oacute;n de descripciones de clases, o generalizaciones
a trav&amp;eacute;s del an&amp;aacute;lisis de ejemplos particulares), reconocimiento
del lenguaje (&lt;em&gt;&lt;a href="http://www.generation5.org/articles.asp?Action=List&amp;Topic=Speech%20Recognition" title="Generation5 - Speech Recognition Articles" lang="en"&gt;speech
recognition&lt;/a&gt;&lt;/em&gt;), interacci&amp;oacute;n hombre-m&amp;aacute;quina a nivel
de habla, etc.&lt;/p&gt;

&lt;p&gt;El esquema de red neuronal del proyecto CCortex mejora y a&amp;ntilde;ade
nuevas caracter&amp;iacute;sticas al tipo b&amp;aacute;sico de red Hebbiana (descrita
inicialmente por el psic&amp;oacute;logo &lt;a href="http://www.psych.ualberta.ca/~bbcs99/hebb%20legacy.html" title="The Hebb Legacy" lang="en"&gt;D.O.
Hebb&lt;/a&gt; en "The organization of Behavior", 1949), modelo, algoritmo matem&amp;aacute;tico
o regla de aprendizaje asociativo, conceptualizada para emular, de manera
muy simplificada, el modelo conexionista neuronal presente en la forma de
operar del &lt;a href="http://www.ucm.es/info/pslogica/mente/index.htm" title="La Mente Inteligente"&gt;cerebro
humano&lt;/a&gt; respecto de los procesos de aprendizaje.&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;"[...] Hebb, introdujo [...] dos ideas fundamentales que han
influido de manera decisiva en el campo de las redes neuronales: la idea
de que una percepci&amp;oacute;n o un concepto se representa en el cerebro
por un conjunto de neuronas activas simult&amp;aacute;neamente; y la idea de
que la memoria se localiza en las conexiones entre las neuronas (sin&amp;aacute;psis).
Las hip&amp;oacute;tesis de Hebb, basadas en investigaciones psicofisiol&amp;oacute;gicas,
presentan de manera intuitiva el modo en que las neuronas memorizan informaci&amp;oacute;n,
y se plasman sint&amp;eacute;ticamente en la famosa regla aprendizaje de Hebb
[...]. Esta regla indica que las conexiones entre dos neuronas se refuerzan
si ambas son activadas. Muchos de los algoritmos actuales proceden de los
conceptos de este psic&amp;oacute;logo, y a pesar de las cr&amp;iacute;ticas recibidas
[...] sigue teniendo una gran influencia."
&lt;div class="cita"&gt;&lt;a href="http://www.iiia.csic.es/~mario/Tutorial/RNA_intro.htm#Hebb"&gt;Fuente&lt;/a&gt;&lt;/div&gt;&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;La ley o regla de Hebb se resume en la siguiente afirmación:&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;"Si un elemento de procesado simple recibe una entrada de otro
elemento de procesado y ambos est&amp;aacute;n activos, el peso correspondiente
a su conexi&amp;oacute;n deber&amp;iacute;a reforzarse (aumentar)".
&lt;div class="cita"&gt;&lt;a href="http://www.delegacion-fic.udc.es/apuntes/RN/apuntes/Tema5/nodo5-2.html"&gt;Fuente&lt;/a&gt;&lt;/div&gt;&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;En otras palabras, y a tenor de lo descrito por Hebb, la conexión entre dos neuronas se fortalecer&amp;aacute; si en la mayoría de las ocasiones las dos neuronas se "encienden" juntas.&lt;/p&gt;

&lt;p&gt;En "&lt;a href="http://www.generation5.org/content/2003/crhebbian.asp" lang="en"&gt;Character
Recognition with Hebbian Links&lt;/a&gt;" se describe, de forma breve e introductoria,
la aplicaci&amp;oacute;n pr&amp;aacute;ctica de una &lt;acronym title="Red Neuronal Artificial"&gt;RNA&lt;/acronym&gt;
basada en "enlaces Hebbianos", en este caso al reconocimiento de caracteres,
dise&amp;ntilde;ada para diferenciar dos posibles situaciones, y "recordar"
la diferencia encontrada, como parte del proceso de aprendizaje de la red.
Esas dos situaciones son la presencia o no de determinado estado de un
p&amp;iacute;xel, en su posici&amp;oacute;n dentro de la estructura reticular de
p&amp;iacute;xeles de una imagen o figura. Enti&amp;eacute;ndase por "p&amp;iacute;xel"
un punto en concreto de la rejilla cuadriculada de miles de puntos individuales,
formada en pantalla u otro medio de salida por la representaci&amp;oacute;n
binaria de una imagen.&lt;/p&gt;

&lt;p&gt;Del esquema b&amp;aacute;sico de la regla de aprendizaje asociativo de Hebb,
se derivan otros algoritmos y &lt;a href="http://www.permutationcity.co.uk/projects/neural/whatare.html#learningrules" lang="en"&gt;reglas
de aprendizaje&lt;/a&gt;: redes de adaptaci&amp;oacute;n probabil&amp;iacute;stica de
Hopfield (&lt;a href="http://neuron.princeton.edu/" lang="en"&gt;J.J. Hopfield&lt;/a&gt;, 1982), &lt;a href="http://www.shef.ac.uk/psychology/gurney/notes/l3/l3.html" lang="en"&gt;regla Delta&lt;/a&gt; (utilizada para el c&amp;aacute;lculo de los pesos en las estructuras neuronales conocidas como "Adaline"), etc. Se pueden localizar varios
enlaces relativos a las &lt;acronym title="Redes Neuronales Artificiales"&gt;RNA&lt;/acronym&gt;
en una &lt;a href="http://programacionlogica.blogspot.com/2003_07_01_programacionlogica_archive.html#105934890874196864" title="Inteligencia Artificial aplicada a la Documentación"&gt;anotaci&amp;oacute;n
anterior&lt;/a&gt;, en la que se hablaba de su aplicaci&amp;oacute;n a la Documentaci&amp;oacute;n,
a los que cabr&amp;iacute;a a&amp;ntilde;adir nuevas referencias, dentro de la
ingente cantidad de informaci&amp;oacute;n que sobre este particular se puede
localizar tanto en la &lt;a href="http://cisne.sim.ucm.es/search*spi/d?SEARCH=redes+neuronales"&gt;bibliograf&amp;iacute;a
en soporte impreso&lt;/a&gt; como en Internet:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;a href="http://www.generation5.org/articles.asp?Action=List&amp;Topic=Neural%20Networks" title="Neural Networks Articles" lang="en"&gt;Art&amp;iacute;culos&lt;/a&gt;
publicados sobre las &lt;acronym title="Redes Neuronales Artificiales"&gt;RNA&lt;/acronym&gt; en el portal &lt;a href="http://www.generation5.org/" lang="en"&gt;Generation5&lt;/a&gt;.&lt;/li&gt;

&lt;li&gt;
&lt;a href="http://www.dacs.dtic.mil/techs/neural/neural.title.html" lang="en"&gt;Artificial
Neural Networks Technology&lt;/a&gt; (informe b&amp;aacute;sico sobre las &lt;acronym title="Redes Neuronales Artificiales"&gt;RNA&lt;/acronym&gt; y sus
aplicaciones).&lt;/li&gt;

&lt;li&gt;
&lt;a href="http://www.iiia.csic.es/~mario/intro-rna.html"&gt;Redes Neuronales
Artificiales&lt;/a&gt; (tutorial elaborado por &lt;a href="http://www.iiia.csic.es/~mario/"&gt;Mario
G&amp;oacute;mez&lt;/a&gt;, del &lt;a href="http://www.iiia.csic.es/"&gt;&lt;acronym title="Institut d'Investigació en Intel.ligència Artificial - CSIC"&gt;IIIA&lt;/acronym&gt;&lt;/a&gt;).&lt;/li&gt;

&lt;li&gt;
En &lt;a href="http://ohm.utp.edu.co/neuronales/"&gt;Redes Neuronales&lt;/a&gt; - &lt;a href="http://ohm.utp.edu.co/neuronales/main2.htm"&gt;Tipos
de Redes&lt;/a&gt; - &lt;a href="http://ohm.utp.edu.co/neuronales/main2.htm"&gt;2.4
A&lt;/a&gt;&lt;a href="http://ohm.utp.edu.co/neuronales/Capitulo2/Asociativas/AntecedentesAs.htm"&gt;prendizaje
asociativo,&lt;/a&gt; se encuentra un explicaci&amp;oacute;n bastante detallada de
las redes de Hebb y su funcionamiento. &lt;a href="http://orbita.starmedia.
