Logic Programming
in Cuba Luciano Garcia
Introduction
Logic Programming (LP) was introduced
in Cuba around 1988 by the Artificial Intelligence Group at the University of Havana
(AIG-UH). The group is pioneer in teaching and research in Artificial Intelligence (AI) in
Cuba and the introduction of LP was a direct cosequence of its earlier logic approach to
AI. Logic has been used for knowledge representation and inference in building intelligent
systems (ISs). Since then we have considered LP not only as the adequate programming
language for designing and implementing the core of ISs, but also as a worth didactical
paradigm for further instruction in programming. In the following we describe our modest,
but for our purposes relevant and satisfactory, concern with LP.
LP in Cuba Higher Education
Since 1988 a one-semester course on LP
is part of the curriculum in Computer Science in Cuban universities. The course is
attended by all computer science students in the sixth semester. Previously, students has
been trained in imperative and object-oriented programming. The principal aim is to teach
students a different computational paradigm for programming, emphasizing declarativeness
and recursiveness, likewise to introduce programming semantics by presenting the
interrrelated procedural and declarative semantics of Prolog programs. The course
emphasizes the foundations of LP, taking advantage of students' previous training in
mathematical logic. In parallel, students learn by themselves a particular Prolog
interpreter and compiler. Prolog is also used as a regular programming language for
implementation in students diploma works and its mastering is a requisite for a Master in
Science degree in AI.
LP and Expert Systems
Prolog has been used extensively by
AIG-UH and other AI groups in Cuba for programming Expert Systems (ESs). The roots of the
approach can be traced back to the work of Warren concerning "the rational
reconstruction'' of Mycin in Prolog. The AIG-UH has developed a version of MYCIN called
MYCINLOG [1] which is perhaps the most complete written in Prolog. Also the version has as
a distinguished feature an explanation subsystem which can answer why-not questions.
MYCINLOG has only been used with an ad hoc knowledge base for didactical purposes and for
the further development of Prolog programming tools for building ESs.
"The AIG-UH group has developed
several Prolog-based ESs particularly in the realm of medicine. The following ESs deserve
mention:
* SEEG: An ES for aiding in the interpretation of the EEG. SEEG was programmed in
an object-oriented extension of prolog designed and implemented by the group,
* SEDINIA: An ES for the diagnosis of arterial insuficiency [8],
* ES for electromyographic diagnosis presented at various international
conferences[2].
LP and the building of reasoning
systems
LP has been our platform for building
some special purpose reasoning systems. An example is AGORA, a reasoning system for
digraph conjecture solving. The core of Agora, i.e. its reasoning system, was written in
Prolog [4], [5], [6]. AGORA can refute, accept or suspend judgement when given a digraph
conjecture. AGORA is based on terminological logic and the constraint logic programming
paradigm: the AGORA knowledge base is a terminology of selected examples of digraphs,
invariant relations and theorems in digraph theory and the principal component of the
inference machine is a subsumption algorithm, which is a constraint solving mechanism for
solving cojectures presented as subsumption statements. The subsumption algorithm
garanties completeness with respect to the knowledge base.
Extensions of LP
The AIG-UH have developed some
extensions of Prolog. Our objective in this sense has been to provide standard Prolog with
more expressiveness for programming intelligent systems or to provide a setting for
teaching advanced programming. We would like to mention an object-oriented extension,
called OProlog, which has been used in building several ESs as mentioned before. Another
extension is called PEPS (Programming with Equations, Predicates and Sorts) [3]. PEPS
allows defining functions by rewriting rules, variables in PEPS are typed by a
polimorphically order-sorted signature allowing the typing of functions and predicates and
objectives with functional terms as arguments. PEPS has only been used for didactical
purposes, providing a setting for teaching rewriting, strong typed programming and the
interrelation between functional and relational programming.
Current and future work in LP
Currently the AIG-UH is developing a
Prolog interpreter and compiler, called UHProlog and based in a particular version of the
WAM written in C++. UHProlog will equipe us with a fundamental tool for continuing
research. We are also developing experimentally a concurrent Prolog interpreter and
compiler, called UHCPL, based on the concurrent constraint programming paradigm.
We would like to complete this brief
report by aknowledging the strong support and encouragement we have received in our work
from many scholars and institutions all over the world. At the same time some Cuban
educational institutions, in particular the University of Havana through the AIG-UH, have
made an essential contribution to the spreading of LP in Latin America and our professors
teach regularly Prolog related courses and seminars in Latin America Universities. Our web
page now in construction will keep informed the PL commnunity of our work in the near
future.
References
[1] L.Garcia, O. Padron.Construccion de
Sistemas Expertos en Prolog. Publicacion del Seminario por el Aniversario 30 de la
Computacion en Mexico, Facultad de Ciencias de la Universidad Autonoma de Mexico, Mexico
DF 1989.
[2] L. Garcia, O. Padron et al.
Artificial Intelligence in the electromyographic diagnosis of cervical roots and brachial
plexus lessions. EEG Journal 66 (5) , 1987.
[3] L.Garcia. PEPS: Programacion con
Ecuaciones, Predicados, Funciones y Tipos ordenados Polimorficamente. Proceedings
IBERAMIA'92, Editorial Limuza, Mexico 1992.
[4] L. Garcia. A CLP-Approach to Graph
Conjecture Problems. Technical Report, AIG-Universidad de la Habana, 1995.
[5] L. Garcia, E. Lastres AGORA: A
User's Guide. AIG, Universidad de la Habana, 1996.
[6] L Garcia , E. Lastres, F. Losavio,
O. Ordaz. A Reasoning System for Digraph Conjecture Solving. Proceedings of ISAS'96, N. C.
Callaos (editor), JULY, 22-26, 1996, Orlando, USA
[7] O. Padron. \newblock Metacontrol y
eliminacion de la redundancia en Bases de Conocimiento escritas en Prolog. Proceedings
IBERAMIA '90: 2do. Congreso Ibroamericano de Inteligencia Articial. Editorial Limusa,
Morelia Mexico, julio 1990, pp357-372.
[8] O. Padron. Arquitectura de un
Sistema Experto para el diagnostico de insuficiencia arterial. Memorias de la IX Reunion
Nacional de Inteligencia Artificial. Editorial Limusa, Veracruz, Mexico, julio1992,
pp61-72.
Luciano Garcia
Departamento de Ciencia de la
Computacion
Universidad de La Habana
E-mail: luciano@matcom.uh.cu |