{"id":303,"date":"2018-07-20T10:01:13","date_gmt":"2018-07-20T10:01:13","guid":{"rendered":"http:\/\/dectau.uclm.es\/Pascual.Julian\/?page_id=303"},"modified":"2021-02-10T10:27:24","modified_gmt":"2021-02-10T10:27:24","slug":"investigacion","status":"publish","type":"page","link":"https:\/\/dectau.uclm.es\/Pascual.Julian\/index.php\/investigacion\/","title":{"rendered":"Investigaci\u00f3n"},"content":{"rendered":"<h5><a href=\"http:\/\/dectau.uclm.es\/Pascual.Julian\/index.php\/research\/\"><img loading=\"lazy\" decoding=\"async\" class=\"alignnone wp-image-273 size-full\" src=\"http:\/\/dectau.uclm.es\/Pascual.Julian\/wp-content\/uploads\/2017\/06\/en.png\" alt=\"\" width=\"18\" height=\"12\" \/><\/a><\/h5>\n<p>Mi experiencia investigadora, est\u00e1 centrada en el \u00e1mbito de los lenguajes de programaci\u00f3n declarativos, la integraci\u00f3n de paradigmas (programaci\u00f3n l\u00f3gica, programaci\u00f3n funcional y l\u00f3gica difusa), as\u00ed como en la transformaci\u00f3n autom\u00e1tica de programas.<\/p>\n<p>Estas son las l\u00edneas en la que prioritariamente he trabajado o estoy trabajando:<\/p>\n<p><strong>PROGRAMACI\u00d3N L\u00d3GICA DIFUSA<\/strong><br \/>\nDurante m\u00e1s de una d\u00e9cada he impulsado el desarrollo del lenguaje de programaci\u00f3n l\u00f3gica difusa <a href=\"http:\/\/dectau.uclm.es\/bousi-prolog\/\"><strong>Bousi~Prolog<\/strong><\/a>, tanto en sus aspectos de dise\u00f1o como de implementaci\u00f3n, participando activamente en todas las etapas. Bousi~Prolog utiliza una sem\u00e1ntica operacional basada en lo que denominamos \u201cresoluci\u00f3n d\u00e9bil\u201d. La resoluci\u00f3n d\u00e9bil es un procedimiento en el que se sustituye el mecanismo de unificaci\u00f3n sint\u00e1ctico de la resoluci\u00f3n SLD cl\u00e1sica, por un algoritmo de unificaci\u00f3n d\u00e9bil. El algoritmo de unificaci\u00f3n d\u00e9bil que utilizamos se basa en el uso de relaciones proximidad (relaciones borrosas que cumplen las propiedades reflexiva y sim\u00e9trica, pero no necesariamente la transitiva) sobre un dominio sint\u00e1ctico. Las relaciones de proximidad permiten flexibilizar la b\u00fasqueda de respuestas y son \u00fatiles para modelar muchas situaciones reales.<br \/>\nEn los \u00faltimos a\u00f1os, hemos realizado un avance significativo en la l\u00ednea de fundamentar te\u00f3ricamente un marco de programaci\u00f3n basado en relaciones de proximidad, mediante la propuesta de un nuevo concepto de proximidad entre expresiones (t\u00e9rminos o formulas at\u00f3micas) y la definici\u00f3n de un nuevo algoritmo de unificaci\u00f3n d\u00e9bil capaz de tratar con relaciones de proximidad de forma conveniente. Se han demostrado las propiedades formales m\u00e1s relevantes que cumple el algoritmo de unificaci\u00f3n d\u00e9bil propuesto. Este algoritmo termina, es correcto (i.e., produce un unificador d\u00e9bil de dos expresiones, si \u00e9stas son unificables) y es completo (i.e.,es capaz de computar un unificador m\u00e1s general d\u00e9bil para dos expresiones unificables.). La importancia de estos resultados radica en que, por primera vez, nos acercan a una v\u00eda que puede permitir la definici\u00f3n de un mecanismo operacional basado en relaciones de proximidad correcto y completo. Recientemente, hemos conseguido implementar dicho algoritmo de unificaci\u00f3n d\u00e9bil basado en proximidad de forma eficiente, superando uno de los mayores impedimentos de este algoritmo.<br \/>\nBousi~Prolog puede contribuir a resolver diversos problemas extra\u00eddos de \u00e1reas de aplicaci\u00f3n donde resulta imprescindible tratar con la vaguedad y el conocimiento incierto, tal y como sucede con las bases de datos deductivas (flexibles), los sistemas basados en conocimiento, el control difuso, la recuperaci\u00f3n de informaci\u00f3n o el razonamiento aproximado. Mediante este lenguaje es posible modelar el conocimiento incierto mediante relaciones de proximidad y\/o conjuntos difusos (otra de las caracter\u00edsticas integradas en nuestro lenguaje) de una manera clara y sencilla de entender, sin el pesado componente sint\u00e1ctico de otros lenguajes de programaci\u00f3n l\u00f3gica borrosa. El uso de conjuntos difusos \u00a0conduce a un modelado m\u00e1s declarativo de la vaguedad, sin la necesidad de especificar los pesos de las entradas de una relaci\u00f3n de proximidad de forma &#8220;ad-hoc&#8221;.<\/p>\n<p>Para ampliar el rango de aplicaci\u00f3n de este lenguaje, hemos agregado reglas graduadas (es decir, reglas con anotaciones de grados de verdad) y acceso directo a WordNet (una base de datos l\u00e9xica del ingl\u00e9s). La imagen final que se traduce es la de un lenguaje bien posicionado para la b\u00fasqueda flexible de soluciones, procesamiento ling\u00fc\u00edstico y capaz de abordar aplicaciones de la vida real.<\/p>\n<p>&nbsp;<\/p>\n<p><strong>BASES DE DATOS DEDUCTIVAS DIFUSAS<\/strong><br \/>\nLas bases de datos deductivas han surgido del deseo de combinar la programaci\u00f3n l\u00f3gica con las bases de datos relacionales. Una base de datos deductiva es un sistema de base de datos que puede hacer deducciones (es decir, concluir hechos adicionales) en base a las reglas y hechos almacenados en la base de datos (deductiva). DATALOG es el lenguaje que generalmente se usa para especificar hechos, reglas y consultas en bases de datos deductivas.<\/p>\n<p>Recientemente, hemos desarrollado una propuesta para un sistema de base de datos deductivo con DATALOG borroso como lenguaje de consulta. Conceptos que dan soporte al lenguaje de programaci\u00f3n l\u00f3gica difusa Bousi~Prolog se han adaptado a las necesidades del <a href=\"http:\/\/www.fdi.ucm.es\/profesor\/fernan\/des\/\"><strong>Sistema DES<\/strong><\/a> (Datalog Educational System). El sistema DES es una base de datos deductiva dirigida a la ense\u00f1anza de las bases de datos y sus lenguajes de consulta que ha sido implementado por Fernando S\u00e1enz-P\u00e9rez.<\/p>\n<p>La unificaci\u00f3n d\u00e9bil y la resoluci\u00f3n SLD d\u00e9bil, utilizadas por Bousi~Prolog, se han adaptado y ampl\u00edado para permitir reglas anotadas con grados de verdad. De esta forma, proporcionamos una implementaci\u00f3n p\u00fablica, codificada en Prolog, de una base de datos deductiva difusa, de c\u00f3digo abierto, multiplataforma, port\u00e1til y en memoria, que presenta una interfaz gr\u00e1fica para el usuario.<\/p>\n<p>&nbsp;<\/p>\n<p><strong>PROGRAMACI\u00d3N L\u00d3GICA FUNCIONAL<\/strong><br \/>\nDurante las primeras etapas de mi carrera investigadora, mi inter\u00e9s se centr\u00f3 en el \u00e1rea de la programaci\u00f3n de l\u00f3gica funcional. El objetivo de la programaci\u00f3n l\u00f3gica funcional es integrar las mejores caracter\u00edsticas de la programaci\u00f3n funcional y l\u00f3gica. La programaci\u00f3n l\u00f3gica proporciona el uso de predicados y f\u00f3rmulas l\u00f3gicas. Los programas l\u00f3gicos tienen un gran poder expresivo gracias a la capacidad de los lenguajes l\u00f3gicos de computaci\u00f3n que usan variables l\u00f3gicas, estructuras de datos parciales y un mecanismo operacional que permite una b\u00fasqueda no determinista de respuestas. La programaci\u00f3n funcional se basa en el concepto de funci\u00f3n. En un programa funcional, las funciones se definen por medio de ecuaciones. La evaluaci\u00f3n determinista de las expresiones b\u00e1sicas aumenta la eficiencia de los programas funcionales. El concepto de estrategias de evaluaci\u00f3n, que tambi\u00e9n aumenta la eficiencia de los c\u00f3mputos funcionales, se relaciona con la existencia y manipulaci\u00f3n de t\u00e9rminos anidados. La combinaci\u00f3n de estas caracter\u00edsticas hacen que los lenguajes l\u00f3gico funcionales sean m\u00e1s expresivos que los lenguajes funcionales y m\u00e1s eficientes que los lenguajes l\u00f3gicos tradicionales.<\/p>\n<p>Los lenguajes l\u00f3gico funcionales usan sistemas de reescritura de t\u00e9rminos como programas y (alguna variante) del estrechamiento (narrowing) como sem\u00e1ntica operacional. El narrowing ampl\u00eda el principio de la reescritura reemplazando el ajuste de patrones por la unificaci\u00f3n, estas dos t\u00e9cnicas coinciden cuando se aplican a t\u00e9rminos b\u00e1sicos. El narrowing calcula una sustituci\u00f3n adecuada que cuando se aplica a un t\u00e9rmino, se puede reducir en un paso de reescritura. El narrowing proporciona completitud en el sentido de programaci\u00f3n l\u00f3gica (c\u00e1lculo de todas las respuestas -sustituciones- a una pregunta) y tambi\u00e9n en el sentido de programaci\u00f3n funcional (c\u00e1lculo de valores o formas normales). El narrowing es un procedimiento no determinista, ya que existen dos niveles de libertad: la elecci\u00f3n de un subt\u00e9rmino reducible y la elecci\u00f3n de una regla que se usa en la reducci\u00f3n. Por esta raz\u00f3n, genera un gran espacio de b\u00fasqueda. Se han definido muchas estrategias de narrowing para controlar el tama\u00f1o del espacio de b\u00fasqueda, eliminando algunas derivaciones in\u00fatiles. Una estrategia es una restricci\u00f3n que reduce la cantidad de posiciones que se explotar\u00e1n.<\/p>\n<p>Mi trabajo en esta \u00e1rea se centr\u00f3 en la formalizaci\u00f3n de una estrategia de narrowing dirigida por demanda y en el estudio de la relaci\u00f3n formal entre el narrowing necesario y esta estrategia de narrowing dirigida por demanda (no tan perezosa) que es la base de las implementaciones de los lenguajes l\u00f3gico funcionales no estrictos m\u00e1s populares. Adem\u00e1s, tambi\u00e9n me interes\u00e9 por los aspectos de implementaci\u00f3n de las estrategias de narrowing y las extensiones del narrowing (por ejemplo, para c\u00e1lculos no deterministas).<\/p>\n<p>&nbsp;<\/p>\n<p><strong>TRANSFORMACI\u00d3N DE PROGRAMAS Y EVALUACI\u00d3N PARCIAL<\/strong><br \/>\nEl objetivo de la transformaci\u00f3n del programa es derivar un programa sem\u00e1nticamente equivalente al programa original, pero con un mejor comportamiento w.r.t. algunas propiedades determinadas (por lo general, queremos que el programa transformado se pueda ejecutar m\u00e1s eficientemente que el inicial). M\u00e1s exactamente, dado un programa inicial, P, queremos obtener un nuevo programa, P &#8216;, que calcula los mismos resultados y respuestas que P para cualquier t\u00e9rmino de entrada. Desde un punto de vista te\u00f3rico, la propiedad m\u00e1s importante de una transformaci\u00f3n es su correcci\u00f3n. Decimos que una transformaci\u00f3n es muy s\u00f3lida cuando, dados un t\u00e9rmino, los resultados y respuestas calculados por P &#8216;son exactamente los mismos que los calculados por el programa original P para ese t\u00e9rmino. Por otro lado, decimos que una transformaci\u00f3n es d\u00e9bilmente sonora cuando para cada resultado y respuesta calculada por P &#8216;existe el mismo resultado pero una respuesta computada m\u00e1s general en P. Las definiciones de compleci\u00f3n (fuerte \/ d\u00e9bil) son las contrarias a la \u00faltimos conceptos.<br \/>\nLa evaluaci\u00f3n parcial es una t\u00e9cnica de transformaci\u00f3n de programa, tambi\u00e9n conocida como especializaci\u00f3n de programa, que tiene como objetivo derivar una instancia especializada de un programa w.r.t. un conjunto restringido de entradas. La evaluaci\u00f3n parcial se ha aplicado a todo tipo de lenguajes de programaci\u00f3n, incluidos los idiomas imperativos (consulte aqu\u00ed una referencia est\u00e1ndar).<\/p>\n<p>La evaluaci\u00f3n parcial de los lenguajes l\u00f3gicos funcionales fue formalizada por primera vez por Maria Alpuente y sus compa\u00f1eros del grupo ELP, fui coautora de algunos de estos documentos. De hecho, mi tesis doctoral consisti\u00f3 en una extensi\u00f3n perezosa del m\u00e9todo de evaluaci\u00f3n parcial manejada dirigido por narrowing (EPN) de los programas l\u00f3gico funcionales, introducido por Mar\u00eda Alpuente et al. Ese trabajo consisti\u00f3 en dar una definici\u00f3n formal de la estrategia de narrowing perezoso que sirviera de mecanismo operacional de la instancia perezosa del evaluador parcial y en demostrar la correcci\u00f3n formal del evaluador parcial perezoso obtenido.<\/p>\n<p>M\u00e1s tarde, investigu\u00e9 una t\u00e9cnica de transformaci\u00f3n de programas para mejorar c\u00e1lculos no deterministas.<\/p>\n<p>Adem\u00e1s, tambi\u00e9n estuve interesado en la aplicaci\u00f3n de t\u00e9cnicas de transformaci\u00f3n de programas en el marco de las implementaciones basadas en narrowing. La idea era introducir t\u00e9cnicas de transformaci\u00f3n dentro del proceso de compilaci\u00f3n para mejorar la calidad del c\u00f3digo compilado generado.<\/p>\n<p>M\u00e1s recientemente, he participado en la adaptaci\u00f3n de t\u00e9cnicas de transformaci\u00f3n de programas al \u00e1mbito de la programaci\u00f3n l\u00f3gica difusa. Principalmente, hemos formalizado la transformaci\u00f3n de desplegado para el marco de la programaci\u00f3n l\u00f3gica multiadjunta (MALP), un lenguaje de programaci\u00f3n l\u00f3gico borroso &#8211;desarrollado por Medina et. alt. (2004)&#8211;. Es importante hacer menci\u00f3n de que los resultados son pioneros en el \u00e1mbito de la programaci\u00f3n l\u00f3gica difusa y constituyen una base para el desarrollo de herramientas sofisticadas para la optimizaci\u00f3n de programas multiadjuntos, tales como son los sistemas de transformaci\u00f3n de plegado\/desplegado o los evaluadores parciales.<\/p>\n<p>Tambi\u00e9n he aplicado t\u00e9cnicas de evaluaci\u00f3n parcial para mejorar el mecanismo operacional del lenguaje MALP y t\u00e9cnicas de desplegado para analizar la equivalencia sem\u00e1ntica de programas l\u00f3gico difusos.<\/p>\n","protected":false},"excerpt":{"rendered":"<p>Mi experiencia investigadora, est\u00e1 centrada en el \u00e1mbito de los lenguajes de programaci\u00f3n declarativos, la integraci\u00f3n de paradigmas (programaci\u00f3n l\u00f3gica, programaci\u00f3n funcional y l\u00f3gica difusa), as\u00ed como en la transformaci\u00f3n autom\u00e1tica de programas. Estas son las l\u00edneas en la que prioritariamente he trabajado o estoy trabajando: PROGRAMACI\u00d3N L\u00d3GICA DIFUSA Durante m\u00e1s de una d\u00e9cada he &hellip; <\/p>\n<p class=\"link-more\"><a href=\"https:\/\/dectau.uclm.es\/Pascual.Julian\/index.php\/investigacion\/\" class=\"more-link\">Continue reading<span class=\"screen-reader-text\"> &#8220;Investigaci\u00f3n&#8221;<\/span><\/a><\/p>\n","protected":false},"author":1,"featured_media":0,"parent":0,"menu_order":0,"comment_status":"closed","ping_status":"closed","template":"","meta":{"footnotes":""},"class_list":["post-303","page","type-page","status-publish","hentry"],"_links":{"self":[{"href":"https:\/\/dectau.uclm.es\/Pascual.Julian\/index.php\/wp-json\/wp\/v2\/pages\/303","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/dectau.uclm.es\/Pascual.Julian\/index.php\/wp-json\/wp\/v2\/pages"}],"about":[{"href":"https:\/\/dectau.uclm.es\/Pascual.Julian\/index.php\/wp-json\/wp\/v2\/types\/page"}],"author":[{"embeddable":true,"href":"https:\/\/dectau.uclm.es\/Pascual.Julian\/index.php\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/dectau.uclm.es\/Pascual.Julian\/index.php\/wp-json\/wp\/v2\/comments?post=303"}],"version-history":[{"count":8,"href":"https:\/\/dectau.uclm.es\/Pascual.Julian\/index.php\/wp-json\/wp\/v2\/pages\/303\/revisions"}],"predecessor-version":[{"id":411,"href":"https:\/\/dectau.uclm.es\/Pascual.Julian\/index.php\/wp-json\/wp\/v2\/pages\/303\/revisions\/411"}],"wp:attachment":[{"href":"https:\/\/dectau.uclm.es\/Pascual.Julian\/index.php\/wp-json\/wp\/v2\/media?parent=303"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}