Sobre este sitio
Espacio dedicado a la programación lógica y la recuperación de información, con una atención especial al lenguaje Prolog y otros lenguajes afines, pertenecientes al paradigma lógico y declarativo. También se tratará de hablar de estos temas desde la perspectiva de la Biblioteconomía y la Documentación.
21.12.04
Artículos, comentarios, y otros enlaces diversos
En estos últimos meses de ausencia de producción escrita por estos lares, he ido tomando nota de una serie
de artículos, comentarios en bitácoras, y otros enlaces de
diversa naturaleza, que han merecido mi interés por una u otra razón,
siempre en función de la temática sobre la que versa o pretende
versar este sitio. No se trata de una lista exhaustiva (de todo lo que
he leído y me ha interesado), ni ordenada con excesivo criterio o rigor...
Artículos, introducciones, anotaciones de "blogs":
-
A taste of Poplog (1)
y (2)
(sobre el entorno de desarrollo
Poplog; en Efectos
Especiales).
-
Pythologic
- Prolog syntax in Python (en Lambda
the Ultimate).
-
Description
Logics in Literate Haskell / SAT
3 Proof with E Prover via OWL (en Lambda
the Ultimate).
-
NewLisp:
A better Lisp/Scheme Fusion ("newLISP
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 Lambda
the Ultimate).
-
The
Science of Word Recognition (Kevin Larson - Advanced Reading Technology,
Microsoft Corporation).
-
Intelligent
library systems: artificial intelligence technology and library automation
systems (Bailey, Jr., Charles W., 1991).
-
What
is Artificial Intelligence? (por Jack Copeland en Catalogue
of Reference Articles - AlanTuring.net).
-
The
Calculus of Logic (Por George Boole, 1815-1864, lógico y matemático británico,
creador del primer sistema formal de lógica matemática o
simbólica, denominado álgebra de Boole o álgebra
lógica, cuyo ámbito es el estudio de las funciones lógicas).
-
Does
Fit fit your testing needs? ("I needed to perform some acceptance testing
on a Prolog parser, and found some sample Prolog text from the BinProlog
engine that I could use for the task at hand. To automate the process,
I decided to use Fit because
[...]"; en Through
the blogging-glass).
-
Natural
Language Processing Using Linux ("This article will discuss how to
perform simple textual analysis such as word counts, bigrams and trigrams,
using standard Linux tools. [...]"; en Generation5).
-
Self-Organizing
Nets ("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 Generation5).
-
Cómo NO realizar
una práctica de programación (vía Ceklog).
-
Functional
Programming in the Real World ("[...] a list of functional programs
applied to real-world tasks.").
-
Metadata?
Thesauri? Taxonomies? Topic Maps! (conocido a través del "blog"
K-Utopía).
-
A
CLP + CHR bibliography ("For future reference, here is a list of CLP
and CHR related works I?ve been reading in the last weeks. In memoriam
of a project I?m not going to pursue anymore."; en Through
the blogging-glass). Sobre Programación Lógica con Restricciones (CLP), ver por ejemplo la introducción Constraint Logic Programming (BYTE magazine, febrero 1995), o bien esta otra, en la que primero se hace un repaso general a la programación con restricciones. La última versión en desarrollo de SWI-Prolog, soporta clp(R): "Beta version of Constraint Logic Programming over Reals library". Por su parte, CHR son las siglas de Constraint
Handling Rules: "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. [...]" [fuente].
-
RDF and
Databases (en Lambda
the Ultimate).
-
Orientación
a objetos en Prolog (formato PDF; "La posibilidad de incorporar elementos
del paradigma de orientación a objetos en la programación
lógica parece, a priori, interesante, dado que permitiría
sumar lo mejor de ambos mundos. Los lenguajes de programación lógica
han tenido siempre como ventaja el permitir enfocar la atención
del programador en el problema a resolver y en el diseño de la solución,
más que en la mecánica de la misma. La incorporación
de orientación a objetos ayudaría en la reutilización
del código, ocultamiento de información y además permitiría
realizar un diseño más claro de las soluciones. En este trabajo
se estudia una aproximación al tema de la orientación a objetos
en Prolog, la realizada por el módulo Prolog
Objects de SICStus
Prolog. Se muestran las ideas principales del módulo, su sintaxis
y funcionamiento, para presentar finalmente algunos ejemplos de diseño
utilizando el paradigma."; D. Perovich y G. Moncecchi, 2002).
- Otro ejemplo de implementación de Prolog que soporta programación orientada
a objetos es Ciao
Prolog: "O'Ciao is a set of libraries which allows object-oriented
programming in Ciao Prolog. [...]" (fuente: Reference
Manual - Object
oriented programming).
-
Introducción
a la deducción natural (D. Clemente Laboreo; la deducción
natural consiste en un conjunto de procedimientos formales -lenguaje de
la lógica formal- cuyo fin es la demostración de la corrección
de determinado razonamiento, es decir, la validad de dicho razonamiento
-no su invalidez, sin embargo-; este documento también está
disponible en formato
PDF).
Páginas y sitios web:
-
TechBooksForFree.com
(Free Programming and Computer Science Books; vía
Ceklog).
-
Web Semántica Hoy.
-
Premise.org (selección
de enlaces sobre el campo de la Inteligencia Artificial).
-
Aprende
Lógica (esta página mereció uno de los segundos
premios en el concurso de la edición
2003 convocado por el Ministerio de Educación y Ciencia a través
del Centro Nacional de Investigación y Comunicación Educativa
-CNICE-).
-
Recuperación de Información
en la Web ("Bitácora dedicada a la recuperación de la
información en la Web, centrada no únicamente en los aspectos
tecnológicos de la misma, sino también en noticias de marcada
incidencia social."). Artículos y comentarios muy buenos, escritos por F.
J. Martínez Méndez -profesor de la Facultad
de Comunicación y Documentación de la Universidad de
Murcia- con mucho rigor y al tiempo amenidad sobre toda clase de temas
relacionados con las técnicas de recuperación de información,
con una particular atención en la incidencia de las mismas en los
entornos web. Ver a modo de ejemplo uno de los últimos comentarios: ¿Es
la "realimentación por relevancia" una técnica de recuperación
de información?.
-
Glosario de Recuperación
de Información Web (por Adriana Colino Tomé).
-
Prolog interpreter in Javascript.
-
Laboratorio
Digital del Máster Online en Documentación Digital (Universitat
Pompeu Fabra; Incluye, además de varias utilidades desarrolladas
con las API de Google, las herramientas: DigiDocMap -editor de mapas conceptuales-,
DigiDocMenu -editor de menús desplegables-, y DigiDocIndex -indexador
y generador de buscadores locales-).
-
X-Prolog:
a type-based system for XML processing in Prolog (J.
Coelho, M. Florido.
También de estos dos autores, la ponencia Type-based
XML Processing in Logic Programming -en PDF- ofrece una exposición
del funcionamiento y aplicación de X-Prolog en el procesamiento
de código XML. Para su funcionamiento necesita tener instalado SWI-Prolog
y cargada la librería
o módulo SGML. Con propósito general, comentar que en
el capítulo 5 -Using
Modules- del manual
de referencia de SWI-Prolog, se explica cómo usar módulos
externos. En el caso de la librería SGML, los predicados necesarios
para procesar XML se compilan al cargar el archivo "sgml.pl", localizado
en la carpeta "library" del directorio de instalación de SWI-Prolog
-generalmente y por defecto "Archivos de programa\pl\"-).
-
Diseñorama ("[...] es un
sitio de tutoriales, artículos y recursos para diseñadores
web sobre estándares, accesibilidad, usabilidad y programación.").
Conferencias, congresos:
-
AIED 2005 -
The 12th International Conference on Artificial Intelligence in Education
(18-22 de julio 2005, Amsterdam).
-
ECIR'05 - 27th
European Conference on Information Retrieval (21-23 de marzo 2005, Santiago
de Compostela).
-
7º Congreso ISKO-España
(6-8 de julio 2005, Barcelona).
-
PADL 05 - Seventh
International Symposium on Practical Aspects of Declarative Languages (10-11
de enero 2005, Long Beach, California).
Comentar por último que mi intención es ir publicando de aquí en adelante, y con
una periodicidad más o menos mensual, sucesivas listas de los artículos,
reseñas y otros textos y enlaces, que me parezcan más relevantes,
relacionados directa o indirectamente con los asuntos tratados por lo general
en este blog.
[1] comentarios | # | lista |
17.12.04
Una introducción general al lenguaje Prolog
A quienes busquen una introducción básica (muy básica
eso sí) al lenguaje Prolog, les recomiendo la lectura del artículo o "white paper" de Gerardo Rossel "Programación lógica":
"Un recorrido por la programación lógica y uno
de sus lenguajes más representativos: Prolog, clásico de
la inteligencia artificial, que se aplica de múltiples formas en
el desarrollo de software comercial"
[Fuente: entradilla del artículo]
En la introducción del artículo se define de forma muy clara
y concisa la famosa "ecuación" de Kowalski (a la que quizás recordarán
dediqué un comentario bastante extenso -no tan claro y conciso-, hace ya tiempo, en la
anotación "A
propósito de la fórmula de Kowalski"). Leemos lo siguiente en dicha introducción:
"[...] La ecuación de Robert Kowalski [...] establece
la idea esencial de la programación lógica: algoritmos
= lógica + control. Es decir, un algoritmo se construye especificando
conocimiento en un lenguaje formal (lógica de primer orden), y el
problema se resuelve mediante un mecanismo de inferencia (control) que
actúa sobre aquél."
Publicado en el número
7 de la revista .code,
el texto completo del artículo se puede localizar, en
formato PDF,
a través de la página de Amzi!,
empresa dedicada al desarrollo de aplicaciones y sistemas expertos sobre
la base de los fundamentos de la programación lógica en sinergia o conjunción con otras tecnologías y lenguajes:
"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. [...]"
Especialmente reputado es su entorno de desarrollo Amzi!
Prolog + Logic Server ("Embeddable, extendable Prolog for programmers
to build high-performance rule-based systems."). Por otra parte, en el
apartado "Articles &
Links" encontramos, en inglés, un buen número de introducciones,
tutoriales, artículos, y otras referencias, sobre el lenguaje Prolog
y sus múltiples aspectos prácticos, con una especial atención
a su aplicación en el desarrollo de sistemas expertos.
Para finalizar, comentar que, increíble e inmerecidamente (y
no es falsa modestia), se referencia a este espacio de publicación
con formato de bitácora desde el que escribo estas líneas,
en el apartado "Enlaces relacionados", que se puede encontrar al final del
artículo de Gerardo Rossel. La publicación de esta breve
reseña no tiene nada que ver con dicha circunstancia, de hecho reparé
en ella una vez que me puse a escribir y releí con mayor atención
el texto del artículo...
[0] comentarios | # | lista |