<?xml version="1.0" encoding="ISO-8859-1"?><article xmlns:mml="http://www.w3.org/1998/Math/MathML" xmlns:xlink="http://www.w3.org/1999/xlink" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
<front>
<journal-meta>
<journal-id>2227-1899</journal-id>
<journal-title><![CDATA[Revista Cubana de Ciencias Informáticas]]></journal-title>
<abbrev-journal-title><![CDATA[Rev cuba cienc informat]]></abbrev-journal-title>
<issn>2227-1899</issn>
<publisher>
<publisher-name><![CDATA[Editorial Ediciones Futuro]]></publisher-name>
</publisher>
</journal-meta>
<article-meta>
<article-id>S2227-18992017000200003</article-id>
<title-group>
<article-title xml:lang="es"><![CDATA[Modelo de agente lógico con inferencia basada en hechos]]></article-title>
<article-title xml:lang="en"><![CDATA[Model of logic agent with facts-based inference]]></article-title>
</title-group>
<contrib-group>
<contrib contrib-type="author">
<name>
<surname><![CDATA[Coca Bergolla]]></surname>
<given-names><![CDATA[Yuniesky]]></given-names>
</name>
<xref ref-type="aff" rid="A01"/>
</contrib>
<contrib contrib-type="author">
<name>
<surname><![CDATA[Rosell Acosta]]></surname>
<given-names><![CDATA[Leduan Bárbaro]]></given-names>
</name>
<xref ref-type="aff" rid="A02"/>
</contrib>
<contrib contrib-type="author">
<name>
<surname><![CDATA[Velázquez Ramírez]]></surname>
<given-names><![CDATA[Arletis]]></given-names>
</name>
<xref ref-type="aff" rid="A02"/>
</contrib>
</contrib-group>
<aff id="A01">
<institution><![CDATA[,Universidad de las Ciencias Informáticas Dirección docente metodológica ]]></institution>
<addr-line><![CDATA[ La Habana]]></addr-line>
</aff>
<aff id="A02">
<institution><![CDATA[,Universidad de las Ciencias Informáticas Facultad 4 Departamento de Programación y Sistemas Digitales]]></institution>
<addr-line><![CDATA[ La Habana]]></addr-line>
</aff>
<pub-date pub-type="pub">
<day>00</day>
<month>06</month>
<year>2017</year>
</pub-date>
<pub-date pub-type="epub">
<day>00</day>
<month>06</month>
<year>2017</year>
</pub-date>
<volume>11</volume>
<numero>2</numero>
<fpage>29</fpage>
<lpage>45</lpage>
<copyright-statement/>
<copyright-year/>
<self-uri xlink:href="http://scielo.sld.cu/scielo.php?script=sci_arttext&amp;pid=S2227-18992017000200003&amp;lng=en&amp;nrm=iso"></self-uri><self-uri xlink:href="http://scielo.sld.cu/scielo.php?script=sci_abstract&amp;pid=S2227-18992017000200003&amp;lng=en&amp;nrm=iso"></self-uri><self-uri xlink:href="http://scielo.sld.cu/scielo.php?script=sci_pdf&amp;pid=S2227-18992017000200003&amp;lng=en&amp;nrm=iso"></self-uri><abstract abstract-type="short" xml:lang="es"><p><![CDATA[RESUMEN La programación lógica se ha mantenido como uno de los principales paradigmas dentro de las investigaciones en el área de la inteligencia artificial. Por otro lado, la inferencia basada en casos es muy utilizada para la creación de sistemas expertos, sobre todo en problemas de clasificación o diagnóstico, donde se puede determinar fácilmente un objetivo o variable dependiente y un conjunto de atributos condicionalmente independientes entre sí, dado el objetivo. En el presente trabajo se utilizan las potencialidades declarativas de la programación lógica y las ventajas del razonamiento basado en casos para elaborar un modelo de agente lógico con inferencia basada en hechos. El mismo fue implementado mediante el desarrollo de una herramienta de código abierto para la enseñanza de la Inteligencia Artificial en la Universidad de las Ciencias Informáticas. El modelo de agente propuesto determina, a partir de sus creencias, el peso de cada atributo aplicando elementos de la teoría de la información, el cálculo de la incertidumbre mediante la teorí­a de las probabilidades y siguiendo un enfoque de Bayes Ingenuo, y brinda información útil para la toma de decisiones en la incorporación de nuevos casos a la base de conocimiento. Además, realiza el aprendizaje mediante la actualización de los valores de creencia de cada valor al realizar nuevas inferencias y al incorporar nuevos casos a la base. El modelo fue implementado y probado, alcanzando resultados de rendimiento favorables.]]></p></abstract>
<abstract abstract-type="short" xml:lang="en"><p><![CDATA[ABSTRACT Logic programming has remained as one of the main paradigms in research in the area of artificial intelligence. Furthermore the case-based inference is very used for creating expert systems, especially in problems about classification or diagnosis, which can easily determine a target or dependent variable and a set of conditionally independent attributes each other, given the objective. In this paper is proposed a logical agent model with inference based on facts, using the declarative potential of logic programming and the advantages of the case-based reasoning. The model was implemented by developing an open source tool for teaching Artificial Intelligence at the University of Informatics Science. The proposed agent determines, based on their beliefs, the weight of each attribute using elements of information theory, also calculates uncertainty following a Naive Bayes approach, and provides useful information for decision-making in the incorporation of new cases to the knowledgebase. It also performs learning by updating the belief values of each value to make new inferences and incorporate new cases to the base. The model was implemented and tested, the performance results achieved were favorable.]]></p></abstract>
<kwd-group>
<kwd lng="es"><![CDATA[Agente lógico]]></kwd>
<kwd lng="es"><![CDATA[Prolog]]></kwd>
<kwd lng="es"><![CDATA[Razonamiento basado en casos]]></kwd>
<kwd lng="en"><![CDATA[Case-based reasoning]]></kwd>
<kwd lng="en"><![CDATA[logic agent]]></kwd>
<kwd lng="en"><![CDATA[Prolog]]></kwd>
</kwd-group>
</article-meta>
</front><body><![CDATA[ <p align="right"><font face="Verdana, Arial, Helvetica, sans-serif" size="2"><B>ART&Iacute;CULO  ORIGINAL</B></font></p>     <p>&nbsp;</p>     <p><font size="4" face="Verdana, Arial, Helvetica, sans-serif"><strong>Modelo de agente l&oacute;gico con inferencia basada en  hechos</strong></font></p>     <p>&nbsp;</p>     <p><font size="3"><strong><font face="Verdana, Arial, Helvetica, sans-serif">Model  of logic agent with facts-based inference</font></strong></font></p>     <p>&nbsp;</p>     <p>&nbsp;</p>     <P><font size="2"><strong><font face="Verdana, Arial, Helvetica, sans-serif">Yuniesky Coca Bergolla<strong><sup>1*</sup></strong>, <strong>Leduan B&aacute;rbaro Rosell  Acosta<sup>2</sup></strong>, Arletis Vel&aacute;zquez Ram&iacute;rez</font></strong><font face="Verdana, Arial, Helvetica, sans-serif"><strong><sup>2</sup></strong></font></font></p>     <p><font size="2" face="Verdana, Arial, Helvetica, sans-serif"><sup>1</sup></font> <font size="2" face="Verdana, Arial, Helvetica, sans-serif">Direcci&oacute;n docente  metodol&oacute;gica, Universidad de las Ciencias Inform&aacute;ticas. Carretera a San Antonio  de los Ba&ntilde;os km 2 &frac12; Reparto Torrens. La Habana. <a href="mailto:ycoca@uci.cu">ycoca@uci.cu</a></font> <font size="2" face="Verdana, Arial, Helvetica, sans-serif">    <br> <sup>2</sup></font> <font size="2" face="Verdana, Arial, Helvetica, sans-serif">Departamento de  Programaci&oacute;n y Sistemas Digitales, Facultad 4, Universidad de las Ciencias  Inform&aacute;ticas. Carretera a San Antonio de los Ba&ntilde;os km 2 &frac12; Reparto Torrens. La  Habana. <u>{</u><a href="mailto:leduanb,%20arlette%7d@uci.cu">leduanb, arlette}@uci.cu</a></font>    ]]></body>
<body><![CDATA[<br> </p>     <p>&nbsp;</p>     <P><font face="Verdana, Arial, Helvetica, sans-serif"><span class="class"><font size="2">*Autor para la correspondencia: </font></span></font><font size="2" face="Verdana, Arial, Helvetica, sans-serif"> <a href="mailto:ycoca@uci.cu">ycoca@uci.cu</a><a href="mailto:valery@electrica.cujae.edu.cu"></a><a href="mailto:rtrujillo@edistancia.uo.edu.cu"></a><a href="mailto:jova@uci.cu"></a></font><font face="Verdana, Arial, Helvetica, sans-serif"><a href="mailto:losorio@ismm.edu.cu"></a> </font>     <p>&nbsp;</p>     <p>&nbsp;</p> <hr>     <P><font size="2" face="Verdana, Arial, Helvetica, sans-serif"><b>RESUMEN</b> </font>     <P><font size="2" face="Verdana, Arial, Helvetica, sans-serif">La programaci&oacute;n l&oacute;gica se ha mantenido como uno de  los principales paradigmas dentro de las investigaciones en el &aacute;rea de la  inteligencia artificial. Por otro lado, la inferencia basada en casos es muy  utilizada para la creaci&oacute;n de sistemas expertos, sobre todo en problemas de  clasificaci&oacute;n o diagn&oacute;stico, donde se puede determinar f&aacute;cilmente un objetivo o  variable dependiente y un conjunto de atributos condicionalmente independientes  entre s&iacute;, dado el objetivo. En el presente trabajo se utilizan las  potencialidades declarativas de la programaci&oacute;n l&oacute;gica y las ventajas del  razonamiento basado en casos para elaborar un modelo de agente l&oacute;gico con  inferencia basada en hechos. El mismo fue implementado mediante el desarrollo  de una herramienta de c&oacute;digo abierto para la ense&ntilde;anza de la Inteligencia  Artificial en la Universidad de las Ciencias Inform&aacute;ticas. El modelo de agente  propuesto determina, a partir de sus creencias, el peso de cada atributo  aplicando elementos de la teor&iacute;a de la informaci&oacute;n, el c&aacute;lculo de la  incertidumbre mediante la teor&iacute;&shy;a de las probabilidades y siguiendo un enfoque  de Bayes Ingenuo, y brinda informaci&oacute;n &uacute;til para la toma de decisiones en la  incorporaci&oacute;n de nuevos casos a la base de conocimiento. Adem&aacute;s, realiza el  aprendizaje mediante la actualizaci&oacute;n de los valores de creencia de cada valor  al realizar nuevas inferencias y al incorporar nuevos casos a la base. El  modelo fue implementado y probado, alcanzando resultados de rendimiento  favorables. </font>     <p><font size="2" face="Verdana, Arial, Helvetica, sans-serif"><b><span lang=EN-GB>Palabras clave:</span></b></font> <font size="2" face="Verdana, Arial, Helvetica, sans-serif">Agente l&oacute;gico, Prolog,  Razonamiento basado en casos<em>.</em></font></p> <hr>     <p><font size="2" face="Verdana, Arial, Helvetica, sans-serif"><b><span lang=EN-GB>ABSTRACT</span></b> </font></p>     <p><font size="2" face="Verdana, Arial, Helvetica, sans-serif">Logic programming has remained as one of the main paradigms in research  in the area of artificial intelligence. Furthermore the case-based inference is  very used for creating expert systems, especially in problems about  classification or diagnosis, which can easily determine a target or dependent  variable and a set of conditionally independent attributes each other, given  the objective. In this paper is proposed a logical agent model with inference  based on facts, using the declarative potential of logic programming and the  advantages of the case-based reasoning. The model was implemented by developing  an open source tool for teaching Artificial Intelligence at the University of  Informatics Science. The proposed agent determines, based on their beliefs, the  weight of each attribute using elements of information theory, also calculates  uncertainty following a Naive Bayes approach, and provides useful information  for decision-making in the incorporation of new cases to the knowledgebase. It  also performs learning by updating the belief values of each value to make new  inferences and incorporate new cases to the base. The model was implemented and  tested, the performance results achieved were favorable.</font></p>     ]]></body>
<body><![CDATA[<p><font size="2" face="Verdana, Arial, Helvetica, sans-serif"><b><span lang=EN-GB>Key words: </span></b>Case-based reasoning, logic agent, Prolog.</font></p> <hr>     <p>&nbsp;</p>     <p>&nbsp;</p>     <p><font size="3" face="Verdana, Arial, Helvetica, sans-serif"><b>INTRODUCCI&Oacute;N</b></font></p>     <p><font size="2" face="Verdana, Arial, Helvetica, sans-serif">El poder expresivo de la l&oacute;gica de primer orden (LPO) le ha permitido ser  tomada muy en serio por los investigadores en el &aacute;rea de la inteligencia  artificial. La inferencia hacia atr&aacute;s en la LPO permiti&oacute; la aparici&oacute;n de la  programaci&oacute;n l&oacute;gica, esta representa la base de Prolog (Bratko, 1990), uno de  los lenguajes declarativos m&aacute;s reconocidos y utilizado todav&iacute;a hoy. A pesar de  ser visto por algunos como poco pr&aacute;ctico por sus limitantes en eficiencia  computacional, se han llevado a cabo investigaciones, buscando mejoras a sus  compiladores. Estas han permitido la obtenci&oacute;n de resultados comparables con  lenguajes reconocidos por su eficiencia como el C++ (Russell y Norving, 2010a). </font></p>     <p><font size="2" face="Verdana, Arial, Helvetica, sans-serif">Algunos de los sistemas expertos m&aacute;s recientes desarrollados con Prolog son  los referenciados en (Atanasova and Krupka, 2013) (Zhang, et al. 2011) (Kerdprasop  and Kerdprasop, 2011), (Kadhim, et al. 2011). Pero las investigaciones no se  han limitado a construir sistemas basados en este lenguaje, tambi&eacute;n se han  dedicado esfuerzos para facilitar el trabajo de los desarrolladores, sobre todo  a trav&eacute;s del v&iacute;nculo con lenguajes imperativos. JPL (Ali, et al. 2016) es una biblioteca  que permite integrar de forma f&aacute;cil y eficiente el Swi-Prolog con Java, C++ y  otros lenguajes imperativos, lo que hace mucho m&aacute;s atractiva la utilizaci&oacute;n de  este lenguaje declarativo en la construcci&oacute;n de sistemas expertos. En cuanto a  arquitecturas, Guoqi presenta un patr&oacute;n de dise&ntilde;o basado en la comunicaci&oacute;n entre  procesos para aprovechar la inferencia de Prolog con aplicaciones o sistemas  embebidos (Guoqi, et al. 2014). Tambi&eacute;n, Dunstan &nbsp;propone una arquitectura h&iacute;brida para sistemas  expertos basados en web, la cual convierte informaci&oacute;n XML en c&oacute;digo Prolog  para realizar inferencia l&oacute;gica (Dunstan, 2012). Otras investigaciones han  aprovechado las potencialidades de Prolog para mejorar algoritmos cl&aacute;sicos como  las b&uacute;squedas (Ali, et al. 2014); en dicho trabajo se presenta un sistema de  revisi&oacute;n de creencias que permite no volver a evaluar nodos que son previamente  visitados. </font></p>     <p><font size="2" face="Verdana, Arial, Helvetica, sans-serif">Por otra parte, la programaci&oacute;n l&oacute;gica ha evolucionado, lo cual ha  permitido el desarrollo de extensiones del Prolog como JavaLog (Zunino, et al.  2001) para la creaci&oacute;n de agentes l&oacute;gicos; el ProbLog (de Raet, 2015) para crear programas de l&oacute;gica  probabil&iacute;stica, el B-prolog (Zhou, 2012) que combina los paradigmas de  programaci&oacute;n l&oacute;gica y basada en restricciones. Estos permiten ampliar  significativamente el &aacute;rea de impacto de la programaci&oacute;n l&oacute;gica dentro de la  Inteligencia Artificial (IA).</font></p>     <p><font size="2" face="Verdana, Arial, Helvetica, sans-serif">La IA se ha definido de varias formas, sin embargo, la m&aacute;s aceptada en  nuestros d&iacute;as la asume como la rama de las ciencias de la computaci&oacute;n encargada  de la construcci&oacute;n de sistemas que act&uacute;en racionalmente.</font></p>     <p><font size="2" face="Verdana, Arial, Helvetica, sans-serif">Esta idea ha llevado  al desarrollo de un nuevo paradigma: la programaci&oacute;n basada en agentes. Se  puede definir el t&eacute;rmino agente como un sistema que percibe informaci&oacute;n y act&uacute;a  de forma aut&oacute;noma sobre un entorno espec&iacute;fico. Por tanto, el objetivo de la IA  es dise&ntilde;ar un programa agente que implemente una funci&oacute;n que transforma un  conjunto de percepciones en acciones. Estas acciones del agente definen su  comportamiento y a trav&eacute;s de este modifica el entorno. La arquitectura interna  del agente puede tener varias formas, sin embargo se tiene consenso en cuanto a  las funciones b&aacute;sicas de percibir el entorno y accionar en el mismo. El modelo  BDI (creencias, deseos e intenciones por sus siglas en ingl&eacute;s) es uno de los  m&aacute;s difundidos y aceptados por la comunidad cient&iacute;fica (Henderson-Sellers, et  al. 2005). Seg&uacute;n este modelo, el agente puede ser representado como un conjunto  de creencias, asumidas luego de percibir el entorno; un conjunto de intenciones,  establecidas a partir de sus acciones; y uno o varios deseos que definen el  objetivo del agente y le permite comportarse de manera aut&oacute;noma en el entorno. </font></p>     <p><font size="2" face="Verdana, Arial, Helvetica, sans-serif">El entorno determina en gran medida el dise&ntilde;o interno del agente, si es  completamente observable no se necesita hacer un seguimiento, o sea, tener una  memoria. Como generalmente los entornos no son completamente observables, entonces,  las acciones del agente dependen de una secuencia de percepciones que requieren  tener alg&uacute;n tipo de memoria. Russell y Norving (2010b) proponen una tipolog&iacute;a  de agentes en base a su complejidad interna. Seg&uacute;n estos autores los agentes  reflexivos simples responden directamente a la percepci&oacute;n del entorno; los  agentes reflexivos basados en modelos mantienen una memoria que permite dar  seguimiento a elementos del entorno no evidentes en la percepci&oacute;n de cada  instante; los agentes basados en metas analizan los posibles estados a los  cuales llegar&iacute;an, si seleccionan determinada acci&oacute;n; y los agentes basados en  utilidad tratan de maximizar su utilidad, a partir de su rendimiento en el  entorno. Todos ellos pueden ser agentes aprendices, en la medida que mejoren su  comportamiento en el entorno.</font> </p>     ]]></body>
<body><![CDATA[<p><font size="2" face="Verdana, Arial, Helvetica, sans-serif">En cuanto al  entorno estos autores refieren varias formas de representar lo que el agente  hace, en tanto definen como tipos de estados del entorno:</font></p> <ul type="disc">       <li>         <p><font size="2" face="Verdana, Arial, Helvetica, sans-serif"><strong>At&oacute;micos:</strong> Se asume el estado como indivisible, sin estructura       interna. </font></p>   </li>       <li>         <p><font size="2" face="Verdana, Arial, Helvetica, sans-serif"><strong>Factorizados:</strong> Asume los estados como un conjunto de pares       variable-valor. Esta representaci&oacute;n permite el an&aacute;lisis de la       incertidumbre. </font></p>   </li>     </ul> <ul>       <li>         <p><font size="2" face="Verdana, Arial, Helvetica, sans-serif"><strong>Estructurados:</strong> Los estados son representados  por objetos y sus relaciones. Es utilizada en las m&aacute;s avanzadas t&eacute;cnicas de  Inteligencia Artificial, incluida la LPO. </font></p>   </li>     </ul>     <p><font size="2" face="Verdana, Arial, Helvetica, sans-serif">Precisamente la LPO, y m&aacute;s espec&iacute;ficamente la programaci&oacute;n l&oacute;gica, es muy  utilizada para la construcci&oacute;n de sistemas expertos por su forma declarativa de  representar el conocimiento.</font></p>     ]]></body>
<body><![CDATA[<p><font size="2" face="Verdana, Arial, Helvetica, sans-serif">Generalmente se realiza la representaci&oacute;n en forma  de reglas, lo cual exige de expertos en el dominio para definirlas. Por su  parte, los sistemas de aprendizaje basados en casos son deseables en muchas ocasiones,  pues solo reciben hechos del mundo y a partir de ellos el sistema o agente  resuelve nuevos problemas.</font></p>     <p><font size="2" face="Verdana, Arial, Helvetica, sans-serif">En la bibliograf&iacute;a  consultada no se ha encontrado una arquitectura general para el dise&ntilde;o de un  agente l&oacute;gico que utilice una base de ejemplos para realizar la inferencia con  un an&aacute;lisis aut&oacute;nomo de la incertidumbre. Un agente con estas caracter&iacute;sticas  ser&iacute;a de inter&eacute;s para la ense&ntilde;anza de temas de la Inteligencia Artificial, como  el lenguaje Prolog, los sistemas basados en conocimiento y el tratamiento de la  incertidumbre. El presente trabajo se traza como objetivo proponer un modelo de  agente aprendiz basado en utilidad para entornos con estados estructurados en  forma de predicados de l&oacute;gica de primer orden, espec&iacute;ficamente hechos definidos  en lenguaje <u>P</u>rolog. El agente realiza la  inferencia l&oacute;gica basada en hechos, asigna a partir de sus creencias los pesos  a cada rasgo, utilizando el an&aacute;lisis de ganancia de informaci&oacute;n y un an&aacute;lisis probabil&iacute;stico,  basado en Bayes Ingenuo, para el tratamiento de la incertidumbre. Se realiza el  aprendizaje mediante la actualizaci&oacute;n de los valores de creencia del agente,  tanto a la hora de incorporar nuevos casos a la base de conocimiento, como en  cada nueva inferencia realizada. El modelo propuesto se implementa mediante el  desarrollo de un sistema para la ense&ntilde;anza y aprendizaje de la Inteligencia  Artificial en la Universidad de las Ciencias Inform&aacute;ticas. </font></p>     <p>&nbsp;</p>     <p><font face="Verdana, Arial, Helvetica, sans-serif"><strong><font size="3">METODOLOG&Iacute;A COMPUTACIONAL </font></strong></font></p>     <p><font size="2" face="Verdana, Arial, Helvetica, sans-serif">El agente se dise&ntilde;&oacute; siguiendo el modelo BDI. Las creencias del agente se definieron  a partir de las percepciones del entorno y la base de conocimiento interna. Se  asumi&oacute; como deseo del agente la soluci&oacute;n de un nuevo caso y se definieron las  intenciones a partir de cada una de las acciones que lleva a cabo, tanto de  cara al usuario como internamente.</font></p>     <p><font size="2" face="Verdana, Arial, Helvetica, sans-serif"><strong>Definici&oacute;n del agente l&oacute;gico basado en ejemplos </strong></font></p>     <p><font size="2" face="Verdana, Arial, Helvetica, sans-serif">Un agente l&oacute;gico debe  contar con una base de conocimiento que guarde sus creencias. Estas se pueden  representar como un conjunto de expresiones arbitrarias, conocidas como  cl&aacute;usulas. Cada cl&aacute;usula puede expresarse de la forma: </font></p>     <p align="center"><font size="2" face="Verdana, Arial, Helvetica, sans-serif">q: -p1, p2,...,pn </font>  <font size="2" face="Verdana, Arial, Helvetica, sans-serif">(1) </font></p>     <p><font size="2" face="Verdana, Arial, Helvetica, sans-serif">Esta sentencia expresa que q ser&aacute; verdadera si cada una de las pj(j=1, ..., n) son verdaderas.  Las expresiones a la izquierda y la derecha del operador - &nbsp;deben ser &aacute;tomos o expresiones de la forma:</font></p>     <p align="center"><font size="2" face="Verdana, Arial, Helvetica, sans-serif">h(t1, t2, t3,..., tm)</font>  <font size="2" face="Verdana, Arial, Helvetica, sans-serif">(2) </font></p>     ]]></body>
<body><![CDATA[<p><font size="2" face="Verdana, Arial, Helvetica, sans-serif">Donde h es una relaci&oacute;n constante y cada ti(1=1, 2,..., m) es un t&eacute;rmino. Un t&eacute;rmino puede ser un objeto constante, una variable o  una estructura de la forma:</font></p>     <p align="center"><font size="2" face="Verdana, Arial, Helvetica, sans-serif"><em>e</em>(s1, s2, s3,..., sq)</font> <font size="2" face="Verdana, Arial, Helvetica, sans-serif">(3) </font></p>     <p><font size="2" face="Verdana, Arial, Helvetica, sans-serif">Donde <em>e </em>es una funci&oacute;n  constante y cada</font> s<font size="2" face="Verdana, Arial, Helvetica, sans-serif">k(1=1, 2,..., q)</font> <font size="2" face="Verdana, Arial, Helvetica, sans-serif">es un t&eacute;rmino. Existen cl&aacute;usulas que no tienen parte derecha y son  siempre verdaderas, son llamadas hechos y tienen la forma: </font></p>     <blockquote>       <p align="center"><font size="2" face="Verdana, Arial, Helvetica, sans-serif">q. (4) </font></p> </blockquote>     <p><font size="2" face="Verdana, Arial, Helvetica, sans-serif">Un ejemplo <em>E </em>se define como un  par (X, f(X)), donde X es un vector de entrada, y f(X) es la salida de la  funci&oacute;n f aplicada al vector X. En problemas de clasificaci&oacute;n, diagn&oacute;stico y  muchos otros, X representa el conjunto de rasgos predictores o independientes  (atributos en lo adelante) y f(X) el rasgo dependiente (objetivo en lo  adelante). Para la construcci&oacute;n de &aacute;rboles de decisi&oacute;n a partir de ejemplos  (Mitchel, 1997) se calcula la ganancia de informaci&oacute;n de cada atributo de X hacia f(X), pero no  se asume una interdependencia entre ellos. Por otro lado el modelo de Bayes Ingenuo  (Russell y Norving, 2010c) asume que los atributos son condicionalmente independientes  entre s&iacute;, dado el objetivo. A partir de estos elementos en lo sucesivo se asume  que el agente guardar&aacute; ejemplos y resolver&aacute; problemas con atributos de X  condicionalmente independientes entre s&iacute;, dada f(X). Para simplificar la  exposici&oacute;n, se asumen los atributos discretizados. En caso de necesitarse, el  agente puede realizarlo de forma aut&oacute;noma mediante un algoritmo como CAIM  (Kurgan and Cios, 2004) o Ameva (Gonz&aacute;lez-Abril, et al. 2009). </font></p>     <p><font size="2" face="Verdana, Arial, Helvetica, sans-serif">Para facilitar  los c&aacute;lculos y tomando en cuenta la representaci&oacute;n recursiva que hace la  programaci&oacute;n l&oacute;gica de las listas, se propone una estructura para los ejemplos  de la forma:</font></p>     <p align="center"><img src="/img/revistas/rcci/v11n2/fo0103217.jpg" alt="fo01" width="528" height="21"></p>     <p><font size="2" face="Verdana, Arial, Helvetica, sans-serif">Donde el primer  rasgo es el objetivo y los siguientes son los atributos.</font></p>     <p><font size="2" face="Verdana, Arial, Helvetica, sans-serif">Una representaci&oacute;n usual  para este tipo de sistema es a trav&eacute;s de una matriz donde cada fila representa  un ejemplo y cada columna un rasgo, se asume que la primera columna es el objetivo. <a href="#t01" target="_blank">Ver tabla 1</a> </font></p>     ]]></body>
<body><![CDATA[<p align="center"><img src="/img/revistas/rcci/v11n2/t0103217.jpg" alt="t01" width="331" height="228"><a name="t01"></a></p>     <p><font size="2" face="Verdana, Arial, Helvetica, sans-serif">Donde cada v(r<sub>i</sub>e<sub>j</sub>) representa un valor del conjunto de valores posibles del atributo r<sub>i</sub> y cada v(r0) representa un valor del conjunto de valores posibles del objetivo r0.</font></p>     <p><font size="2" face="Verdana, Arial, Helvetica, sans-serif">Algunos elementos necesarios para el trabajo posterior del agente ser&aacute;  guardar la informaci&oacute;n necesaria acerca de cada uno de los rasgos, tanto los atributos  como el objetivo. La representaci&oacute;n de cada rasgo debe respetar el orden en que  aparecer&aacute;n en la estructura <em>ejemplo</em> creada, ya que la programaci&oacute;n l&oacute;gica realiza la inferencia siguiendo un orden  de primero en profundidad. Los hechos tendr&aacute;n la forma siguiente:</font></p>     <p align="center"><font size="2" face="Verdana, Arial, Helvetica, sans-serif">rasgo(i, r<sub>i</sub>, t, D, wi) </font></p>     <p><font size="2" face="Verdana, Arial, Helvetica, sans-serif">Donde:</font></p>     <p><font size="2" face="Verdana, Arial, Helvetica, sans-serif">i: N&uacute;mero consecutivo para identificar la posici&oacute;n de cada rasgo en el  ejemplo.</font></p>     <p><font size="2" face="Verdana, Arial, Helvetica, sans-serif">r<sub>i</sub>: Nombre del rasgo.</font></p>     <p><font size="2" face="Verdana, Arial, Helvetica, sans-serif">t: Tipo de dato, el cual puede ser nominal, real o entero.</font></p>     <p><font size="2" face="Verdana, Arial, Helvetica, sans-serif">D: Dominio. Para el caso de los nominales tiene un conjunto de valores  posibles, aqu&iacute; se incluyen los dicot&oacute;micos. Los num&eacute;ricos tienen el m&iacute;nimo y el  m&aacute;ximo valor.</font></p>     <p><font size="2" face="Verdana, Arial, Helvetica, sans-serif">wi: Peso del rasgo.&nbsp; </font></p>     ]]></body>
<body><![CDATA[<p><font size="2"><strong><font face="Verdana, Arial, Helvetica, sans-serif">C&aacute;lculo de los pesos</font></strong></font></p>     <p><font size="2" face="Verdana, Arial, Helvetica, sans-serif">En el razonamiento basado  en casos los atributos no aportan de la misma manera al objetivo. En muchas  ocasiones se asignan pesos a los atributos a partir del criterio de expertos. Sin  embargo, un agente debe ser capaz de comportarse de forma aut&oacute;noma, sin  depender de la intervenci&oacute;n del usuario. El uso de la teor&iacute;a de la informaci&oacute;n  para el c&aacute;lculo de la entrop&iacute;a, definida por Shanon y Weaver en 1949 (DMITRIEV,  1991) utilizada en la construcci&oacute;n de &aacute;rboles de decisi&oacute;n, puede utilizarse  para asignar un peso o importancia a cada atributo a partir de la informaci&oacute;n  que tiene el agente, es decir, a partir de sus creencias. </font></p>     <p><font size="2" face="Verdana, Arial, Helvetica, sans-serif">La teor&iacute;a de la informaci&oacute;n mide el contenido de informaci&oacute;n en bits. Un  bit de informaci&oacute;n es suficiente para responder una pregunta de tipo s&iacute;/no  sobre la que no se sabe nada. En general, si las respuestas posibles vi tienen probabilidades P(vi), el contenido de informaci&oacute;n <em>I</em> de la respuesta actual viene dado por:</font></p>     <p align="center"><img src="/img/revistas/rcci/v11n2/fo0203217.jpg" alt="fo03" width="364" height="32"></p>     <p><font size="2" face="Verdana, Arial, Helvetica, sans-serif">Donde <em>k </em>es la cantidad de  respuestas posibles. Como P(vi) toma valores entre 0 y 1, el valor resultante de informaci&oacute;n est&aacute;  acotado entre 0 y log<sub>2</sub>k.</font></p>     <p><font size="2" face="Verdana, Arial, Helvetica, sans-serif">En los sistemas basados en casos la tarea m&aacute;s com&uacute;n es saber cu&aacute;l es el  valor del objetivo en un nuevo problema <em>nc</em>. De ah&iacute; que  se calcule la informaci&oacute;n <em>I</em> para el objetivo r<sub>0</sub> en los ejemplos de la base de conocimiento <em>C</em>. Luego cualquier atributo r<sub>i</sub> divide el conjunto de ejemplos <em>C</em> en subconjuntos C1,...,Cp de acuerdo con sus valores para r<sub>i</sub>, donde r<sub>i</sub> puede tener <em>p</em> valores distintos.  Para cada subconjunto Cj se calcula nuevamente la necesidad de Informaci&oacute;n <em>I</em> del objetivo r<sub>0</sub>. En general para calcular la informaci&oacute;n a partir del an&aacute;lisis del atributo r<sub>i</sub> se tiene: </font></p>     <p align="center"><img src="/img/revistas/rcci/v11n2/fo0303217.jpg" alt="fo03" width="361" height="41"></p>     <p><font size="2" face="Verdana, Arial, Helvetica, sans-serif">Donde n(Cj) es la cardinalidad del subconjunto Cj, n(C) es la cardinalidad del conjunto de ejemplos <em>C</em> y <img src="/img/revistas/rcci/v11n2/fo0403217.jpg" alt="fo04" width="110" height="24"> es la probabilidad de cada respuesta del rasgo objetivo r<sub>0</sub> dentro del subconjunto Cj.</font> </p>     <p><font size="2" face="Verdana, Arial, Helvetica, sans-serif">La ganancia de informaci&oacute;n del atributo r<sub>i</sub> es la diferencia entre la necesidad de informaci&oacute;n original (7) y la  nueva necesidad de informaci&oacute;n (8):</font></p>     <p align="center"><img src="/img/revistas/rcci/v11n2/fo0503217.jpg" alt="fo05" width="399" height="25"></p>     ]]></body>
<body><![CDATA[<p><font size="2" face="Verdana, Arial, Helvetica, sans-serif">El inconveniente fundamental de este c&aacute;lculo es cuando los valores  posibles de un atributo son muchos, en ocasiones pueden llegar a ser diferentes  para cada caso, ejemplo los atributos identificadores. En esos casos el  resultado de <em>(9)</em> asignar&iacute;a el mayor  peso a dicho atributo, cuando realmente no aporta al valor del objetivo. Para lograr  un mayor aporte de los atributos con similar cantidad de valores posibles al objetivo,  se divide el valor obtenido entre el m&oacute;dulo de la diferencia de los valores  posibles del atributo (r<sub>i</sub>) y el rasgo objetivo (r<sub>0</sub>):</font></p>     <p align="center"><img src="/img/revistas/rcci/v11n2/fo0603217.jpg" alt="fo06" width="314" height="59"></p>     <p><font size="2" face="Verdana, Arial, Helvetica, sans-serif">Donde<em> p</em> es la cantidad de valores  posibles para el atributo (r<sub>i</sub>) y <em>k</em> es la cantidad de valores  posibles para el rasgo objetivo r<sub>0</sub>. Este resultado  es mucho m&aacute;s aceptable, pero a&uacute;n los rasgos identificadores tendr&aacute;n valores  superiores a otros atributos. Para eliminar cualquier posibilidad de estar  analizando un rasgo identificador, se adiciona una regla dura de manera que  asigne:</font></p>     <p align="center"><img src="/img/revistas/rcci/v11n2/fo0703217.jpg" alt="fo07" width="234" height="37"></p>     <p><font size="2" face="Verdana, Arial, Helvetica, sans-serif">Es decir que  la Ganancia del atributo ser&aacute; 0 si la cantidad de valores posibles <em>p</em> es igual a la cantidad de ejemplos. </font></p>     <p><font size="2" face="Verdana, Arial, Helvetica, sans-serif">Con este valor y para  garantizar que </font><img src="/img/revistas/rcci/v11n2/fo0803217.jpg" alt="fo08" width="34" height="22"> <font size="2" face="Verdana, Arial, Helvetica, sans-serif">wi = 1, se calcula la sumatoria de las ganancias de los atributos </font></p>     <p align="center"><img src="/img/revistas/rcci/v11n2/fo0903217.jpg" alt="fo09" width="161" height="58"></p>     <p><font size="2" face="Verdana, Arial, Helvetica, sans-serif">y a partir de este valor se calcula el peso de cada atributo:</font> <img src="/img/revistas/rcci/v11n2/fo1003217.jpg" alt="fo10" width="130" height="35"> </p>     <p><font size="2"><strong><font face="Verdana, Arial, Helvetica, sans-serif">Tratamiento de la incertidumbre</font></strong></font></p>     <p><font size="2" face="Verdana, Arial, Helvetica, sans-serif">En los sistemas de razonamiento basados en casos pueden estar presente  diversas fuentes de incertidumbre. El agente puede determinar un grado de creencia  de cada valor de los atributos, a partir de los ejemplos guardados en su base  de conocimiento. A pesar de ser cuestionada, debido al uso simplificado de las  hip&oacute;tesis de independencia, la teor&iacute;a de la probabilidad sigue siendo la m&aacute;s  aceptada para el tratamiento de la incertidumbre (Russell y Norving, 2010c). Soporta  este criterio el hecho de ser la menos dependiente del factor humano y brindar facilidades  para el c&aacute;lculo aut&oacute;nomo por el agente, lo cual la hace superior a otras  teor&iacute;as como los factores de certeza, la credibilidad, la plausibilidad,  necesidad o posibilidad. Para la presente propuesta se seguir&aacute; un an&aacute;lisis  similar al modelo Bayes Ingenuo, para lo cual se calcula el nivel de creencia  del agente sobre cada valor de los atributos, tomando en cuenta dos magnitudes:</font></p> <ul>       ]]></body>
<body><![CDATA[<li>         <p><font size="2" face="Verdana, Arial, Helvetica, sans-serif">Cree<sub>p</sub> Creencia calculada a partir de la  probabilidad a priori de la existencia de dicho valor para ese atributo en la  base de conocimiento.</font></p>   </li>       <li>         <p><font size="2" face="Verdana, Arial, Helvetica, sans-serif">Cree<sub>c</sub> Creencia que toma en cuenta la relaci&oacute;n de dicho valor para ese atributo con el  valor del rasgo objetivo en ese mismo caso.</font></p>   </li>     </ul>     <p><font size="2" face="Verdana, Arial, Helvetica, sans-serif">Para cada uno de los valores de los atributos en cada ejemplo de la base  de conocimiento se define formalmente cada una de las creencias como:</font></p>     <p align="center"><img src="/img/revistas/rcci/v11n2/fo1103217.jpg" alt="fo11" width="320" height="67"></p>     <p><font size="2" face="Verdana, Arial, Helvetica, sans-serif">Para calcular la creencia total de cada se utiliza una funci&oacute;n para combinarlas, se asume que cada una aporta  positivamente a la creencia total, tanto una alta probabilidad de ocurrencia de  un valor Cree<sub>p </sub></font><font size="2" face="Verdana, Arial, Helvetica, sans-serif"></font><font size="2" face="Verdana, Arial, Helvetica, sans-serif">, como una alta probabilidad de que ese valor aporte a una conclusi&oacute;n</font> <font size="2" face="Verdana, Arial, Helvetica, sans-serif">Cree<sub>c</sub></font> , <font size="2" face="Verdana, Arial, Helvetica, sans-serif">brinda  elementos para creer que el valor tiene menos incertidumbre:</font></p>     <p align="center"><img src="/img/revistas/rcci/v11n2/fo1203217.jpg" alt="fo12" width="377" height="31"></p>     <p><font size="2" face="Verdana, Arial, Helvetica, sans-serif">De esta forma Cree<sub>t  </sub>= Cree<sub>p</sub> + Cree<sub>c</sub> -Cree<sub>p</sub> * Cree<sub>c</sub></font></p>     ]]></body>
<body><![CDATA[<p><font size="2" face="Verdana, Arial, Helvetica, sans-serif">Luego se debe  obtener un valor de creencia para el rasgo objetivo, dada la creencia de cada  uno de los valores de los rasgos predictores:</font></p>     <p align="center"><img src="/img/revistas/rcci/v11n2/fo1303217.jpg" alt="fo13" width="381" height="47"></p>     <p><font size="2" face="Verdana, Arial, Helvetica, sans-serif">La creencia del valor del atributo r<sub>i</sub></font> <font size="2" face="Verdana, Arial, Helvetica, sans-serif">ya incluye en su c&aacute;lculo la probabilidad condicional</font> <img src="/img/revistas/rcci/v11n2/fo1403217.jpg" alt="fo14" width="98" height="23">.</p>     <p><font size="2" face="Verdana, Arial, Helvetica, sans-serif">Un algoritmo general para recuperar los casos semejantes se propone en  (Coca, 2003), donde se utiliza una medida <img src="/img/revistas/rcci/v11n2/fo1503217.jpg" alt="fo15" width="8" height="11">i. Esta brinda un valor de semejanza en el rango [0,1] entre los valores  del atributo r<sub>i</sub> del caso nuevo <em>nc</em> y el caso  con que se compara en la base de conocimiento e<sub>j</sub>. Algunas de las medidas</font> <font size="2" face="Verdana, Arial, Helvetica, sans-serif"><img src="/img/revistas/rcci/v11n2/fo1503217.jpg" alt="fo15" width="8" height="11"> m&aacute;s utilizadas  son:</font></p>     <p><font size="2" face="Verdana, Arial, Helvetica, sans-serif">Para atributos con valores  dicot&oacute;micos: </font></p>     <p align="center"><img src="/img/revistas/rcci/v11n2/fo1603217.jpg" alt="fo16" width="272" height="51"></p>     <p><font size="2" face="Verdana, Arial, Helvetica, sans-serif">Para atributos  con valores num&eacute;ricos:</font></p>     <p align="center"><img src="/img/revistas/rcci/v11n2/fo1703217.jpg" alt="fo17" width="271" height="48"></p>     <p><font size="2" face="Verdana, Arial, Helvetica, sans-serif">En muchas ocasiones, sobre todo tomando como base la teor&iacute;a de los  conjuntos borrosos, los valores num&eacute;ricos son discretizados asumiendo valores  nominales, para los cuales se definen funciones de semejanza m&aacute;s espec&iacute;ficas. Asumiendo  que la vecindad entre los conjuntos determina la semejanza entre ellos, se  pueden asignar valores num&eacute;ricos consecutivos a los conjuntos, lo cual permite  aplicar la funci&oacute;n <em>(15)</em>.</font></p>     <p><font size="2" face="Verdana, Arial, Helvetica, sans-serif">Adem&aacute;s, se requiere de una  funci&oacute;n de semejanza <em>f</em> para combinar  los valores de las semejanzas entre los atributos ponderados por el peso. </font></p>     ]]></body>
<body><![CDATA[<p align="center"><img src="/img/revistas/rcci/v11n2/fo1803217.jpg" alt="fo18" width="459" height="57"></p>     <p><font size="2" face="Verdana, Arial, Helvetica, sans-serif">Algunos autores incluyen en la funci&oacute;n de semejanza entre casos el  tratamiento de la incertidumbre para obtener un valor de semejanza <em>&beta;</em> que incluye en su resultado dicho valor.  Sin embargo en la presente propuesta el tratamiento de la incertidumbre se hace  aparte del valor de semejanza calculado. Se realiza toda la inferencia de forma  paralela, esto permite brindar un valor de semejanza en base a las creencias  del agente y un valor de creencia que tiene el propio agente sobre el resultado  obtenido. De esta forma la salida del agente incluir&aacute; para cada caso semejante  un par (Valor, Creencia). Quedando <a href="/img/revistas/rcci/v11n2/fo1903217.jpg" target="_blank">el algoritmo espec&iacute;fico utilizado</a> de la  siguiente manera.</font></p>     <p><font size="2"><strong><font face="Verdana, Arial, Helvetica, sans-serif">Adaptar la soluci&oacute;n</font></strong></font></p>     <p><font size="2" face="Verdana, Arial, Helvetica, sans-serif">La adaptaci&oacute;n en los SBC puede  hacerse compleja en problemas de dise&ntilde;o y planificaci&oacute;n u otros similares, sin  embargo en el tipo de problemas num&eacute;ricos que se presenta, la adaptaci&oacute;n se  limita a encontrar una soluci&oacute;n final al problema, a partir de los resultados  obtenidos en los casos recuperados. Las v&iacute;as para encontrar la soluci&oacute;n  definitiva son diversas, pero en todo caso depender&aacute; del dominio del objetivo r<sub>0</sub> . Este c&aacute;lculo no se realiza de la misma manera para valores nominales,  num&eacute;ricos enteros o num&eacute;ricos reales. Varios autores incluyen en el resultado  final el an&aacute;lisis de los valores de incertidumbre, en la presente propuesta se  realiza el c&aacute;lculo del valor final y la creencia que tiene el agente sobre  dicho resultado de forma separada. La lista de casos recuperados &nbsp;debe ser considerada por el  agente para obtener una propuesta de soluci&oacute;n al problema. Esta soluci&oacute;n ser&aacute;  dependiente del tipo de datos que guarde el objetivo r<sub>0</sub>: </font></p> <ul>       <li>         <p><font size="2" face="Verdana, Arial, Helvetica, sans-serif"><strong>Rasgo nominal:</strong> Se utiliza la moda, es  decir, el valor del objetivo r<sub>0</sub> que m&aacute;s se repite dentro de la lista Ls. Para obtener el valor de creencia se combinan los valores de cada caso  que tiene por valor objetivo la moda, seg&uacute;n la f&oacute;rmula<em> (13)</em>. </font></p>   </li>       <li>         <p><font size="2" face="Verdana, Arial, Helvetica, sans-serif"><strong>Rasgo num&eacute;rico real:</strong> Se calcula el promedio de  los valores de los objetivos r<sub>0</sub> de toda la lista Ls. Como los valores de creencia est&aacute;n asociados a valores que ser&aacute;n  promediados, el nuevo valor de creencia se calcular&aacute; de la misma manera, o sea,  calculando el promedio de las creencias de cada valor.</font></p>   </li>       <li>         <p><font size="2" face="Verdana, Arial, Helvetica, sans-serif"><strong>Rasgo num&eacute;rico entero:</strong> Se calcula el promedio  truncado para el valor&nbsp; final, mientras  el valor de creencia se calcula similar a los rasgos num&eacute;ricos reales.</font></p>   </li>     ]]></body>
<body><![CDATA[</ul>     <p><font size="2"><strong><font face="Verdana, Arial, Helvetica, sans-serif">Aprendizaje y explicaci&oacute;n</font></strong></font></p>     <p><font size="2" face="Verdana, Arial, Helvetica, sans-serif">El aprendizaje m&aacute;s com&uacute;n en  este tipo de sistemas se logra mediante la incorporaci&oacute;n de nuevos casos a la  base de conocimiento. Este proceso puede hacerse de forma autom&aacute;tica, ya sea  directamente adicionando cada nuevo caso resuelto o analizando si tiene  elementos que aporten de forma significativa a nuevos posibles casos a  resolver. Un agente debe ser capaz de decidir cu&aacute;ndo un caso aporta significativamente  al sistema, o al menos tener elementos para tomar la decisi&oacute;n. Algunos de los  m&aacute;s significativos pueden ser:</font></p> <ul>       <li>         <p><font size="2" face="Verdana, Arial, Helvetica, sans-serif"><strong>Tama&ntilde;o n de  la base de conocimiento: </strong>Mientras  mayor sea, el sistema debe ser m&aacute;s restrictivo en la adici&oacute;n de nuevos casos</font></p>   </li>       <li>         <p><font size="2" face="Verdana, Arial, Helvetica, sans-serif"><strong>Cantidad de casos semejantes recuperados  (longitud de Ls)</strong>: Si es baja, es muy probable que el nuevo caso tenga  elementos de inter&eacute;s en la soluci&oacute;n de futuros problemas.</font></p>   </li>       <li>         <p><font size="2" face="Verdana, Arial, Helvetica, sans-serif"><strong>Valor de semejanza entre el nuevo caso y el caso  m&aacute;s semejante de la base </strong> (<img src="/img/revistas/rcci/v11n2/fo2003217.jpg" alt="fo20" width="62" height="18">): Si este valor es bajo se puede asumir que el nuevo  caso es significativamente diferente a los guardados.</font></p>   </li>       <li>         ]]></body>
<body><![CDATA[<p><font size="2" face="Verdana, Arial, Helvetica, sans-serif"><strong>Valor de creencia obtenido del rasgo objetivo  del nuevo caso (Cree(r<sub>0</sub>nc)):</strong> Si se obtiene un valor bajo puede que la soluci&oacute;n  no sea tan buena, por tanto su incorporaci&oacute;n a la base pudiera afectar en  alguna medida las soluciones posteriores.</font></p>   </li>     </ul>     <p><font size="2" face="Verdana, Arial, Helvetica, sans-serif">Se  pueden tomar en cuenta otros elementos, pero encontrar una funci&oacute;n donde el  agente pueda tomar la decisi&oacute;n correcta, requiere aplicar alg&uacute;n m&eacute;todo de  optimizaci&oacute;n que complejizar&iacute;&shy;a el proceso, lo cual no es objetivo en este  trabajo. Por otro lado una de las ventajas de los sistemas basados en casos est&aacute;  en la posibilidad de tener un m&oacute;dulo de explicaci&oacute;n, donde se ofrecen al  usuario los elementos fundamentales que permitieron al sistema llegar a un resultado.  A partir de lo anterior se propone brindar al usuario los elementos expuestos con  anterioridad, de esta forma puede determinar la incorporaci&oacute;n o no del nuevo  caso a la base de conocimiento. </font></p>     <p><font size="2" face="Verdana, Arial, Helvetica, sans-serif">El aprendizaje del sistema no termina con la  incorporaci&oacute;n del caso, a partir de ah&iacute; se deben actualizar las creencias del  agente. Adem&aacute;s, con la soluci&oacute;n de cada nuevo caso el sistema puede aprender de  los valores que trae cada atributo. A partir de lo cual se asume el aprendizaje  del agente en dos momentos:</font></p> <ol>       <li>         <p><font size="2"><strong><font face="Verdana, Arial, Helvetica, sans-serif">Al realizar una inferencia: </font></strong><font face="Verdana, Arial, Helvetica, sans-serif">Se actualizan los valores de Cree<sub>p</sub> . Se asume el valor de  cada atributo del nuevo caso v(r<sub>i</sub>nc) como informaci&oacute;n para la actualizaci&oacute;n de dicho  valor de creencia a priori de cada ejemplo de la base.</font></font></p>   </li>       <li>         <p><font size="2" face="Verdana, Arial, Helvetica, sans-serif"><strong>Al incorporar nuevo ejemplo a la base: </strong>Se actualizan los valores de creencia Cree<sub>c</sub> y Cree<sub>t</sub> , para este &uacute;ltimo se  utiliza el ya actualizado Cree<sub>p</sub>.</font></p>   </li>     </ol>     <p>&nbsp;</p>     ]]></body>
<body><![CDATA[<p><font face="Verdana, Arial, Helvetica, sans-serif"><strong><font size="3">RESULTADOS Y DISCUSI&Oacute;N </font></strong></font></p>     <p><font size="2" face="Verdana, Arial, Helvetica, sans-serif">El modelo de agente l&oacute;gico con inferencia basada en hechos se implement&oacute;  en el desarrollo de un sistema inteligente para la resoluci&oacute;n pr&aacute;ctica de  problemas en la disciplina Inteligencia Artificial de la Universidad de las  Ciencias Inform&aacute;ticas. Para el desarrollo del mismo se utiliz&oacute; la plataforma de  desarrollo Java FX 2.2 con Netbeans 8.0 y el SWI-Prolog 6.2.6 con JPL como  enlace entre Prolog y Java. Se propuso una arquitectura basada en el modelo BDI  (<a href="#f01">Figura 1</a>), dejando bien definida la interfaz independiente del agente, el cual  intercambia acciones y percepciones del entorno y realiza el procesamiento  mediante el acceso a dos ficheros, uno donde se encuentra la base de hechos y  los elementos espec&iacute;ficos del dominio y otro con el resto de la base de  conocimiento necesario para el procesamiento de todo el sistema. </font></p>     <p align="center"><img src="/img/revistas/rcci/v11n2/f0103217.jpg" alt="f01" width="365" height="291"><a name="f01"></a></p>     <p><font size="2"><strong><font face="Verdana, Arial, Helvetica, sans-serif">Implementaci&oacute;n</font></strong></font></p>     <p><font size="2" face="Verdana, Arial, Helvetica, sans-serif">La programaci&oacute;n l&oacute;gica  mediante su mecanismo de unificaci&oacute;n compara los valores de las variables e  instancia si son iguales, en caso de que alguna de las variables est&eacute; vac&iacute;a toma  el valor de la otra variable. Este aspecto se debe tomar en cuenta en el  desarrollo de cada uno de los predicados. La recuperaci&oacute;n de los casos se  realiza utilizando un cuantificador universal (<img src="/img/revistas/rcci/v11n2/fo2103217.jpg" alt="fo21" width="9" height="10">), generalmente est&aacute;n predefinidos, uno de los m&aacute;s utilizados es el <em>findall</em>. Este predicado permite guardar,  en una lista, las variables solicitadas cuando se cumple una condici&oacute;n. Para  facilitar el trabajo conviene trabajar con listas y no con las estructuras, el  propio Prolog brinda uno de los predicados especiales (=..) para el tratamiento  de las estructuras, este permite convertir una lista en una estructura y  viceversa. </font></p>     <p><font size="2" face="Verdana, Arial, Helvetica, sans-serif"><strong>C&aacute;lculo de los pesos: </strong>El peso de cada rasgo puede  ser calculado mediante un predicado que convierte todos los ejemplos en una  lista de listas como se muestra a continuaci&oacute;n:</font></p>     <p><font size="2" face="Verdana, Arial, Helvetica, sans-serif"><em>calcularPesoRasgos:-  convertirBCenLL(LL),calcularPesosR(LL). </em></font></p>     <p><font size="2" face="Verdana, Arial, Helvetica, sans-serif"><em>convertirBCenLL(LL):- findall(LR,(hecho(E),E=..[_|[LR]]),LL). </em> </font></p>     <p><font size="2" face="Verdana, Arial, Helvetica, sans-serif">Para el predicado <em>calcularPesosR(LL)</em> se pueden seguir las ideas presentadas en (Favero, 2006) para el c&aacute;lculo de la  ganancia de informaci&oacute;n, adicionando los elementos presentados en el ep&iacute;grafe  sobre el c&aacute;lculo de los pesos. Sin embargo debido a la complejidad de esta  implementaci&oacute;n y la evidente afectaci&oacute;n al rendimiento del sistema se opt&oacute; por  hacer una consulta de todos los casos de la base de conocimiento y efectuar los  c&aacute;lculos en Java, lo cual arroj&oacute; resultados muy favorables. De esta forma solo  se realiza la llamada al predicado <em>convertirBCenLL/1</em> para ser utilizada la salida en Java.</font> </p>     <p><font size="2"><strong><font face="Verdana, Arial, Helvetica, sans-serif">Recuperaci&oacute;n de los casos:</font></strong><font face="Verdana, Arial, Helvetica, sans-serif"> Siguiendo el algoritmo  presentado para la recuperaci&oacute;n, primeramente, deben calcularse los valores de  creencia del nuevo caso a partir de la informaci&oacute;n que se tiene en la base de  conocimiento, para posteriormente realizar la recuperaci&oacute;n de los casos m&aacute;s  semejantes:</font></font></p>     ]]></body>
<body><![CDATA[<p><font size="2" face="Verdana, Arial, Helvetica, sans-serif"><em>findall(Ej, (hecho(Ej),  semejante(Ej, NuevoC, Crit, Par(VSemj, VCreencia))), ListaSemejantes).</em></font></p>     <p><font size="2" face="Verdana, Arial, Helvetica, sans-serif">El argumento <em>Crit</em> del predicado <em>semejante/4</em> se refiere al umbral de  semejanza proporcionado por el entorno, o sea, por el usuario que reciba los  servicios del agente.</font></p>     <p><font size="2" face="Verdana, Arial, Helvetica, sans-serif">Para la implementaci&oacute;n del predicado que calcula la semejanza se transforman  las estructuras <em>ejemplo</em> en listas, a continuaci&oacute;n,  se analiza el dominio de cada atributo y se selecciona una funci&oacute;n de semejanza  adecuada para el c&aacute;lculo.</font></p>     <p><font size="2"><em><font face="Verdana, Arial, Helvetica, sans-serif">semejante(Ej, NuevoC, Crit, Par(VSemj,  VCreencia)) :- Ej=..[_|LRE], NuevoC=..[_|LRNC],</font></em></font></p>     <p><font size="2" face="Verdana, Arial, Helvetica, sans-serif"><em>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;  &nbsp;&nbsp;&nbsp;&nbsp;comparar(LRE, LRNC, Crit,  Par(VSemj, VCreencia, 1)).</em></font><font size="2"><em></em></font></p>     <p><font size="2" face="Verdana, Arial, Helvetica, sans-serif">El valor 1 al final es para indicar al predicado recursivo <em>comparar</em> que se est&aacute; haciendo la primera  llamada. Este predicado adem&aacute;s acceder&aacute; a la lista de atributos almacenados con  sus pesos. </font></p>     <p><font size="2" face="Verdana, Arial, Helvetica, sans-serif"><strong>Adaptaci&oacute;n:</strong> Esta lista de casos similares es tratada con Java, donde se lleva a cabo  la adaptaci&oacute;n luego de que Prolog se haya encargado de realizar todo el proceso  de recuperaci&oacute;n. </font></p>     <p><font size="2" face="Verdana, Arial, Helvetica, sans-serif"><strong>Aprendizaje:</strong> El aprendizaje se ejecuta en Java, pero se guarda en  Prolog la informaci&oacute;n de la cantidad de valores de cada atributo, lo cual  optimiza los c&aacute;lculos. Estos valores se actualizan cada vez que se realiza una  inferencia, lo cual garantiza tener los valores actualizados a la hora de  calcular los valores de creencia a priori . Tambi&eacute;n se actualizan cuando se adiciona un caso a la base de  conocimiento, lo cual permite utilizar dicha informaci&oacute;n en la actualizaci&oacute;n de  los valores de creencia condicional Cree<sub>c</sub>.</font></p>     <p><font size="2"><strong><font face="Verdana, Arial, Helvetica, sans-serif">Pruebas y trabajo futuro</font></strong></font></p>     <p><font size="2" face="Verdana, Arial, Helvetica, sans-serif">Para validar los resultados del agente se realizaron pruebas de rendimiento  con bases de conocimiento de hasta 500 casos con 15 atributos. Los tiempos de  respuesta del sistema se muestran en la <a href="#f02">Figura 2</a>. Como se puede apreciar los  resultados en la inferencia son en tiempo real, sin embargo la visualizaci&oacute;n de  los datos se ve m&aacute;s afectada lo cual se debe tomar en cuenta a la hora de  implementar el modelo de agente propuesto. &nbsp;&nbsp;</font></p>     ]]></body>
<body><![CDATA[<p><font size="2" face="Verdana, Arial, Helvetica, sans-serif">Aunque el objetivo de la implementaci&oacute;n realizada fue mostrar el funcionamiento  del modelo de agente l&oacute;gico basado en hechos, se realizaron pruebas b&aacute;sicas  para determinar la calidad de las respuestas, obteni&eacute;ndose resultados  aceptables. Como trabajo futuro se propone realizar un estudio de la calidad de  los resultados obtenidos por el agente. Para ello se pretenden buscar bases de  datos reales e implementar varias funciones para realizar comparaciones entre  ellas, sobre todo para medir la efectividad en el c&aacute;lculo autom&aacute;tico de los  pesos y el resultado de los valores de creencia que se obtengan de las respuestas  finales.</font> </p>     <p align="center"><img src="/img/revistas/rcci/v11n2/f0203217.jpg" alt="f02" width="341" height="335"><a name="f02"></a></p>     <p>&nbsp;</p>     <p><font face="Verdana, Arial, Helvetica, sans-serif" size="3"><B>CONCLUSIONES</B></font></p>     <p><font size="2" face="Verdana, Arial, Helvetica, sans-serif">A partir de la investigaci&oacute;n realizada se puede afirmar que el modelo de  agente l&oacute;gico con inferencia basada en hechos es funcional y eficiente,  logr&aacute;ndose un prototipo funcional de un agente l&oacute;gico para la ense&ntilde;anza de la  Inteligencia Artificial en la Universidad de las Ciencias Inform&aacute;ticas. La  arquitectura es viable y permite aprovechar las ventajas declarativas del  Prolog, con las ventajas visuales y algor&iacute;tmicas de un lenguaje imperativo, as&iacute;  como las ventajas que incorpora el JPL. El modelo propuesto propone como  novedad el c&aacute;lculo autom&aacute;tico de los pesos de los atributos a partir de la teor&iacute;a  de la informaci&oacute;n y las creencias del agente. Adem&aacute;s el tratamiento de la  incertidumbre a partir de las creencias del agente tomando en cuenta las  probabilidades a priori y condicional. </font></p>     <p>&nbsp;</p>     <p align="left"><font face="Verdana, Arial, Helvetica, sans-serif" size="3"><B>REFERENCIAS    BIBLIOGR&Aacute;FICAS</B></font>     <!-- ref --><p><font size="2" face="Verdana, Arial, Helvetica, sans-serif">ALI, T. NAJEM, Z.  and SAPIYAN, M. A belief revision system for logic programs. Computer Science  &amp; Information Technology (CS &amp; IT), 2014: p. 227-231.    </font></p>     <!-- ref --><p><font size="2" face="Verdana, Arial, Helvetica, sans-serif">ALI, T. NAJEM, Z.  and SAPIYAN, M. JPL: Implementation of a Prolog system supporting incremental  tabulation. Computer Science and Information Technology (CS &amp; IT), 2016, p.  323-338.    </font></p>     <!-- ref --><p><font size="2" face="Verdana, Arial, Helvetica, sans-serif">ATANASOVA, I.  KRUPKA, J. Architecture and Design of Expert System for Quality of Life  Evaluation. Inform&aacute;tica Econ&oacute;mica, 2013, vol. 17 (3): p. 28-35.    </font></p>     <!-- ref --><p><font size="2" face="Verdana, Arial, Helvetica, sans-serif">BRATKO, I. Prolog  programming for artificial intelligence. Addison-Wesley. Second edition, 1990.     </font></p>     <!-- ref --><p><font size="2" face="Verdana, Arial, Helvetica, sans-serif">COCA,  Y. URS-HTA. Sistema para el diagn&oacute;stico de la Hipertensi&oacute;n Arterial usando  Razonamiento Basado en Casos en condiciones de incertidumbre. Trabajo de  diploma en opci&oacute;n al t&iacute;tulo de Licenciado en Ciencias de la Computaci&oacute;n, UCLV,  Santa Clara, 2003.    </font></p>     <!-- ref --><p><font size="2" face="Verdana, Arial, Helvetica, sans-serif">DE RAEDT, L.  Probabilistic programming and its applications. En: 9th International  MultiDisciplinary Workshop on Artificial Intelligence. Fuzhou,  China, 2015.    </font></p>     <!-- ref --><p><font size="2" face="Verdana, Arial, Helvetica, sans-serif">DMITRIEV,  V.I. Teor&iacute;a de informaci&oacute;n aplicada. Mosc&uacute;, Editorial MIR, 1991. p. 92-100.    </font></p>     <!-- ref --><p><font size="2" face="Verdana, Arial, Helvetica, sans-serif">DUNSTAN, N. A  Hybrid Architecture for Web-based Expert Systems. International Journal of  Artificial Intelligence and Expert Systems (IJAE), 2012, vol. 3(4): p. 70-79.    </font></p>     <!-- ref --><p><font size="2" face="Verdana, Arial, Helvetica, sans-serif">FAVERO,  E. L. Programacao em Prolog. Uma abordagem pr&aacute;tica. Departamento de  Inform&aacute;tica. CCEN - UFPA, 2006: p. 243-245.    </font></p>     <!-- ref --><p><font size="2" face="Verdana, Arial, Helvetica, sans-serif">GONZ&Aacute;LEZ-ABRIL,  L. CUBEOS, F.J. VELASCO, F. ORTEGA, J.A. Ameva: An autonomous discretization  algorithm. Expert Systems with Applications, 2009, vol. 36(3), Part 1: p. 5327-5332.    </font></p>     <!-- ref --><p><font size="2" face="Verdana, Arial, Helvetica, sans-serif">GUOQI, L.  YUANXUN, S. SHENG, H. BIN, L. An IPC-based Prolog design pattern for  integrating backward chaining inference into applications or embedded systems.  Chinese Journal of Aeronautics, 2014, vol. 27(6): p. 1571-1577.    </font></p>     <!-- ref --><p><font size="2" face="Verdana, Arial, Helvetica, sans-serif">HENDERSON-SELLERS,  B. NUMI TRAN, Q.N. DEBENHAM, J. An Etymological and Metamodel-Based Evaluation  of the Terms &quot;Goals and Tasks&iuml;n Agent-Oriented Methodologies. Journal of  Object Technology, 2005, vol. 4(2): p. 131-150.    </font></p>     <!-- ref --><p><font size="2" face="Verdana, Arial, Helvetica, sans-serif">KADHIM, M. A.  AFSHAR ALAM, M. KAUR, H. Design and Implementation of Fuzzy Expert System for  Back pain Diagnosis. International Journal of innovate Technology and creative  engineering, 2011, vol.1 (9): p. 16-22.    </font></p>     <!-- ref --><p><font size="2" face="Verdana, Arial, Helvetica, sans-serif">KERDPRASOP, N.  and KERDPRASOP, K. Higher Order Programming to Mine Knowledge for a Modern  Medical Expert System. IJCSI International Journal of Computer Science, 2011,  vol 8 (1): p.64-72.    </font></p>     <!-- ref --><p><font size="2" face="Verdana, Arial, Helvetica, sans-serif">KURGAN, L. A. and  CIOS, K. J. CAIM discretization algorithm. IEEE Transactions on Knowledge and  Data Engineering, 2004, vol. 16(2): p. 145-153.    </font></p>     <!-- ref --><p><font size="2" face="Verdana, Arial, Helvetica, sans-serif">MITCHEL, T.  Decision tree learning. En: Machine Learning. McGraw-Hill Science, 1997: p.  52-75.    &nbsp; </font></p>     <!-- ref --><p><font size="2" face="Verdana, Arial, Helvetica, sans-serif">RUSSELL, S. and  NORVING, P. Efficient implementation of logic programs. En: Michael Hirsch.  Artificial&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; Intelligence. A Modern  Approach. Third Edition. New Jersey: Prentice Hall, 2010a, p. 340-342.    </font></p>     <!-- ref --><p><font size="2" face="Verdana, Arial, Helvetica, sans-serif">RUSSELL, S. and  NORVING, P. The structure of agents. En: Michael Hirsch. Artificial  Intelligence. A Modern Approach. Third Edition. New Jersey: Prentice Hall,  2010b: p. 46-58.    </font></p>     <!-- ref --><p><font size="2" face="Verdana, Arial, Helvetica, sans-serif">RUSSELL, S. and  NORVING, P. Applying Bayes' rule: The simple case. En: Michael Hirsch.  Artificial Intelligence. A Modern Approach. Third Edition. New Jersey: Prentice  Hall, 2010c: p. 496-499.    </font></p>     <!-- ref --><p><font size="2" face="Verdana, Arial, Helvetica, sans-serif">ZHANG, Q. ZHONG,  S. and JIANG, G. Development of an Expert System for Dust Explosion Risk  Management Based on ASP.Net and Prolog. Journal of software, 2011, vol. 6 (9):  p. 1857-1865.    </font></p>     <!-- ref --><p><font size="2" face="Verdana, Arial, Helvetica, sans-serif">ZHOU, N. The  language features and architecture of B-Prolog. Theory and Practice of Logic  Programming, 2012, vol 12(1-2): p. 189-218.    </font></p>     <!-- ref --><p><font size="2" face="Verdana, Arial, Helvetica, sans-serif">ZUNINO, A. BERD&Uacute;N, L. AMANDI, A. JavaLog: un lenguaje  para la Programaci&oacute;n de Agentes. Revista Iberoamericana de Inteligencia Artificial, 2001, vol 13, p.  94-99.     </font></p>     <p name="_ENREF_1">&nbsp;</p>     <p name="_ENREF_1">&nbsp;</p>     <p><font size="2" face="Verdana, Arial, Helvetica, sans-serif">Recibido: 07/10/2016    <br> Aceptado: 24/02/2017</font></p>      ]]></body><back>
<ref-list>
<ref id="B1">
<nlm-citation citation-type="book">
<person-group person-group-type="author">
<name>
<surname><![CDATA[ALI]]></surname>
<given-names><![CDATA[T]]></given-names>
</name>
<name>
<surname><![CDATA[NAJEM]]></surname>
<given-names><![CDATA[Z]]></given-names>
</name>
<name>
<surname><![CDATA[SAPIYAN]]></surname>
<given-names><![CDATA[M]]></given-names>
</name>
</person-group>
<source><![CDATA[A belief revision system for logic programs]]></source>
<year>2014</year>
<page-range>227-231</page-range><publisher-name><![CDATA[Computer Science & Information Technology (CS & IT),]]></publisher-name>
</nlm-citation>
</ref>
<ref id="B2">
<nlm-citation citation-type="book">
<person-group person-group-type="author">
<name>
<surname><![CDATA[ALI]]></surname>
<given-names><![CDATA[T]]></given-names>
</name>
<name>
<surname><![CDATA[NAJEM]]></surname>
<given-names><![CDATA[Z]]></given-names>
</name>
<name>
<surname><![CDATA[SAPIYAN]]></surname>
<given-names><![CDATA[M]]></given-names>
</name>
</person-group>
<source><![CDATA[JPL: Implementation of a Prolog system supporting incremental tabulation]]></source>
<year>2016</year>
<page-range>323-338</page-range><publisher-name><![CDATA[Science and Information Technology (CS & IT]]></publisher-name>
</nlm-citation>
</ref>
<ref id="B3">
<nlm-citation citation-type="">
<person-group person-group-type="author">
<name>
<surname><![CDATA[ATANASOVA]]></surname>
<given-names><![CDATA[I]]></given-names>
</name>
<name>
<surname><![CDATA[KRUPKA]]></surname>
<given-names><![CDATA[J]]></given-names>
</name>
</person-group>
<article-title xml:lang="en"><![CDATA[Architecture and Design of Expert System for Quality of Life Evaluation]]></article-title>
<source><![CDATA[]]></source>
<year>2013</year>
<volume>17</volume>
<numero>3</numero>
<issue>3</issue>
<page-range>28-35</page-range></nlm-citation>
</ref>
<ref id="B4">
<nlm-citation citation-type="book">
<person-group person-group-type="author">
<name>
<surname><![CDATA[BRATKO]]></surname>
<given-names><![CDATA[I]]></given-names>
</name>
</person-group>
<source><![CDATA[Prolog programming for artificial intelligence]]></source>
<year>1990</year>
<edition>Second edition</edition>
<publisher-name><![CDATA[Addison-Wesley]]></publisher-name>
</nlm-citation>
</ref>
<ref id="B5">
<nlm-citation citation-type="book">
<person-group person-group-type="author">
<name>
<surname><![CDATA[COCA]]></surname>
<given-names><![CDATA[Y]]></given-names>
</name>
</person-group>
<source><![CDATA[URS-HTA. Sistema para el diagnóstico de la Hipertensión Arterial usando Razonamiento Basado en Casos en condiciones de incertidumbre.]]></source>
<year>2003</year>
<publisher-loc><![CDATA[Santa Clara ]]></publisher-loc>
<publisher-name><![CDATA[UCLV]]></publisher-name>
</nlm-citation>
</ref>
<ref id="B6">
<nlm-citation citation-type="">
<person-group person-group-type="author">
<name>
<surname><![CDATA[DE RAEDT]]></surname>
<given-names><![CDATA[L]]></given-names>
</name>
</person-group>
<source><![CDATA[Probabilistic programming and its applications]]></source>
<year>2015</year>
<publisher-loc><![CDATA[^eFuzhou Fuzhou]]></publisher-loc>
</nlm-citation>
</ref>
<ref id="B7">
<nlm-citation citation-type="book">
<person-group person-group-type="author">
<name>
<surname><![CDATA[DMITRIEV]]></surname>
<given-names><![CDATA[V.I]]></given-names>
</name>
</person-group>
<source><![CDATA[Teoría de información aplicada]]></source>
<year>1991</year>
<page-range>92-100</page-range><publisher-loc><![CDATA[^eMoscú Moscú]]></publisher-loc>
<publisher-name><![CDATA[Editorial MIR]]></publisher-name>
</nlm-citation>
</ref>
<ref id="B8">
<nlm-citation citation-type="">
<person-group person-group-type="author">
<name>
<surname><![CDATA[DUNSTAN]]></surname>
<given-names><![CDATA[N]]></given-names>
</name>
</person-group>
<article-title xml:lang="en"><![CDATA[A Hybrid Architecture for Web-based Expert Systems.]]></article-title>
<source><![CDATA[]]></source>
<year>2012</year>
<volume>3</volume>
<numero>4</numero>
<issue>4</issue>
<page-range>70-79</page-range></nlm-citation>
</ref>
<ref id="B9">
<nlm-citation citation-type="book">
<person-group person-group-type="author">
<name>
<surname><![CDATA[FAVERO]]></surname>
<given-names><![CDATA[E. L]]></given-names>
</name>
</person-group>
<source><![CDATA[Programacao em Prolog]]></source>
<year>2006</year>
<page-range>243-245</page-range><publisher-name><![CDATA[CCEN - UFPA]]></publisher-name>
</nlm-citation>
</ref>
<ref id="B10">
<nlm-citation citation-type="">
<person-group person-group-type="author">
<name>
<surname><![CDATA[GONZÁLEZ-ABRIL]]></surname>
<given-names><![CDATA[L]]></given-names>
</name>
<name>
<surname><![CDATA[CUBEOS]]></surname>
<given-names><![CDATA[F.J]]></given-names>
</name>
<name>
<surname><![CDATA[VELASCO]]></surname>
<given-names><![CDATA[F]]></given-names>
</name>
<name>
<surname><![CDATA[ORTEGA]]></surname>
<given-names><![CDATA[J.A]]></given-names>
</name>
</person-group>
<article-title xml:lang="en"><![CDATA[Ameva: An autonomous discretization algorithm]]></article-title>
<source><![CDATA[]]></source>
<year>2009</year>
<volume>36</volume>
<numero>3</numero>
<issue>3</issue>
<page-range>5327-5332</page-range></nlm-citation>
</ref>
<ref id="B11">
<nlm-citation citation-type="">
<person-group person-group-type="author">
<name>
<surname><![CDATA[GUOQI]]></surname>
<given-names><![CDATA[L]]></given-names>
</name>
<name>
<surname><![CDATA[YUANXUN]]></surname>
<given-names><![CDATA[S]]></given-names>
</name>
<name>
<surname><![CDATA[SHENG]]></surname>
<given-names><![CDATA[H]]></given-names>
</name>
<name>
<surname><![CDATA[BIN]]></surname>
<given-names><![CDATA[L]]></given-names>
</name>
</person-group>
<article-title xml:lang="en"><![CDATA[An IPC-based Prolog design pattern for integrating backward chaining inference into applications or embedded systems]]></article-title>
<source><![CDATA[]]></source>
<year>2014</year>
<volume>27</volume>
<numero>6</numero>
<issue>6</issue>
<page-range>1571-1577</page-range></nlm-citation>
</ref>
<ref id="B12">
<nlm-citation citation-type="">
<person-group person-group-type="author">
<name>
<surname><![CDATA[HENDERSON-SELLERS]]></surname>
<given-names><![CDATA[B]]></given-names>
</name>
<name>
<surname><![CDATA[NUMI TRAN]]></surname>
<given-names><![CDATA[Q.N]]></given-names>
</name>
<name>
<surname><![CDATA[DEBENHAM]]></surname>
<given-names><![CDATA[J]]></given-names>
</name>
</person-group>
<article-title xml:lang="en"><![CDATA[An Etymological and Metamodel-Based Evaluation of the Terms Goals and Tasksïn Agent-Oriented Methodologies]]></article-title>
<source><![CDATA[]]></source>
<year>2005</year>
<volume>4</volume>
<numero>2</numero>
<issue>2</issue>
<page-range>131-150.</page-range></nlm-citation>
</ref>
<ref id="B13">
<nlm-citation citation-type="">
<person-group person-group-type="author">
<name>
<surname><![CDATA[KADHIM]]></surname>
<given-names><![CDATA[M. A]]></given-names>
</name>
<name>
<surname><![CDATA[AFSHAR ALAM]]></surname>
<given-names><![CDATA[M]]></given-names>
</name>
<name>
<surname><![CDATA[KAUR]]></surname>
<given-names><![CDATA[H]]></given-names>
</name>
</person-group>
<article-title xml:lang="en"><![CDATA[Design and Implementation of Fuzzy Expert System for Back pain Diagnosis]]></article-title>
<source><![CDATA[]]></source>
<year>2011</year>
<volume>1</volume>
<numero>9</numero>
<issue>9</issue>
<page-range>16-22</page-range></nlm-citation>
</ref>
<ref id="B14">
<nlm-citation citation-type="">
<person-group person-group-type="author">
<name>
<surname><![CDATA[KERDPRASOP]]></surname>
<given-names><![CDATA[N]]></given-names>
</name>
<name>
<surname><![CDATA[KERDPRASOP]]></surname>
<given-names><![CDATA[K]]></given-names>
</name>
</person-group>
<article-title xml:lang="en"><![CDATA[Higher Order Programming to Mine Knowledge for a Modern Medical Expert System.]]></article-title>
<source><![CDATA[]]></source>
<year>2011</year>
<volume>8</volume>
<numero>1</numero>
<issue>1</issue>
<page-range>p.64-72</page-range></nlm-citation>
</ref>
<ref id="B15">
<nlm-citation citation-type="">
<person-group person-group-type="author">
<name>
<surname><![CDATA[KURGAN]]></surname>
<given-names><![CDATA[L. A]]></given-names>
</name>
<name>
<surname><![CDATA[CIOS]]></surname>
<given-names><![CDATA[K. J.]]></given-names>
</name>
</person-group>
<source><![CDATA[]]></source>
<year></year>
</nlm-citation>
</ref>
<ref id="B16">
<nlm-citation citation-type="book">
<person-group person-group-type="author">
<name>
<surname><![CDATA[MITCHEL]]></surname>
<given-names><![CDATA[T]]></given-names>
</name>
</person-group>
<source><![CDATA[Decision tree learning]]></source>
<year>1997</year>
<page-range>52-75</page-range><publisher-name><![CDATA[McGraw-Hill Science]]></publisher-name>
</nlm-citation>
</ref>
<ref id="B17">
<nlm-citation citation-type="book">
<person-group person-group-type="author">
<name>
<surname><![CDATA[RUSSELL]]></surname>
<given-names><![CDATA[S]]></given-names>
</name>
<name>
<surname><![CDATA[NORVING]]></surname>
<given-names><![CDATA[P]]></given-names>
</name>
</person-group>
<source><![CDATA[Efficient implementation of logic programs.]]></source>
<year>2010</year>
<month>a</month>
<edition>Third Edition</edition>
<page-range>340-342</page-range><publisher-loc><![CDATA[^eNew Jersey New Jersey]]></publisher-loc>
<publisher-name><![CDATA[Prentice Hall]]></publisher-name>
</nlm-citation>
</ref>
<ref id="B18">
<nlm-citation citation-type="book">
<person-group person-group-type="author">
<name>
<surname><![CDATA[RUSSELL]]></surname>
<given-names><![CDATA[S]]></given-names>
</name>
<name>
<surname><![CDATA[NORVING]]></surname>
<given-names><![CDATA[P]]></given-names>
</name>
</person-group>
<source><![CDATA[The structure of agents]]></source>
<year>2010</year>
<month>b</month>
<edition>Third Edition</edition>
<publisher-loc><![CDATA[^eNew Jersey New Jersey]]></publisher-loc>
<publisher-name><![CDATA[Prentice Hall]]></publisher-name>
</nlm-citation>
</ref>
<ref id="B19">
<nlm-citation citation-type="book">
<person-group person-group-type="author">
<name>
<surname><![CDATA[RUSSELL]]></surname>
<given-names><![CDATA[S]]></given-names>
</name>
<name>
<surname><![CDATA[NORVING]]></surname>
<given-names><![CDATA[P]]></given-names>
</name>
</person-group>
<source><![CDATA[Applying Bayes' rule: The simple case.]]></source>
<year>2010</year>
<month>c</month>
<edition>Third Edition</edition>
<page-range>496-499</page-range><publisher-loc><![CDATA[^eNew Jersey New Jersey]]></publisher-loc>
<publisher-name><![CDATA[Prentice Hall]]></publisher-name>
</nlm-citation>
</ref>
<ref id="B20">
<nlm-citation citation-type="book">
<person-group person-group-type="author">
<name>
<surname><![CDATA[ZHANG]]></surname>
<given-names><![CDATA[Q]]></given-names>
</name>
<name>
<surname><![CDATA[ZHONG]]></surname>
<given-names><![CDATA[S]]></given-names>
</name>
<name>
<surname><![CDATA[JIANG]]></surname>
<given-names><![CDATA[G]]></given-names>
</name>
</person-group>
<article-title xml:lang="en"><![CDATA[Development of an Expert System for Dust Explosion Risk Management Based on ASP]]></article-title>
<source><![CDATA[]]></source>
<year>2011</year>
<volume>6</volume>
<numero>9</numero>
<issue>9</issue>
<page-range>1857-1865</page-range><publisher-name><![CDATA[Journal of software]]></publisher-name>
</nlm-citation>
</ref>
<ref id="B21">
<nlm-citation citation-type="">
<person-group person-group-type="author">
<name>
<surname><![CDATA[ZHOU]]></surname>
<given-names><![CDATA[N]]></given-names>
</name>
</person-group>
<article-title xml:lang="en"><![CDATA[The language features and architecture of B-Prolog]]></article-title>
<source><![CDATA[]]></source>
<year>2012</year>
<volume>12</volume>
<numero>1-2</numero>
<issue>1-2</issue>
<page-range>189-218</page-range></nlm-citation>
</ref>
<ref id="B22">
<nlm-citation citation-type="book">
<person-group person-group-type="author">
<name>
<surname><![CDATA[ZUNINO]]></surname>
<given-names><![CDATA[A]]></given-names>
</name>
<name>
<surname><![CDATA[BERDÚN]]></surname>
<given-names><![CDATA[L]]></given-names>
</name>
<name>
<surname><![CDATA[AMANDI]]></surname>
<given-names><![CDATA[A]]></given-names>
</name>
</person-group>
<source><![CDATA[JavaLog: un lenguaje para la Programación de Agentes]]></source>
<year>2001</year>
<volume>vol 13</volume>
<page-range>94-99</page-range><publisher-name><![CDATA[Revista Iberoamericana de Inteligencia Artificial]]></publisher-name>
</nlm-citation>
</ref>
</ref-list>
</back>
</article>
