Descrición xeral |
Aunque en la introducción se parte de la sintaxis y la semántica procedural de Prolog, el curso está orientado hacia una interpretación más declarativa de la programación lógica, haciendo especial hincapié en las distintas semánticas para la negaciónpor defecto. Estas semánticas permiten una mayor independencia respecto a aspectos de control de ejecución típicos de Prolog (tales como el orden de evaluación o el operador de corte). Como resultado, los programas lógicos se pueden utilizar como una herramienta práctica para la representación del conocimiento, proporcionando capacidad para resolución de problemas de razonamiento no monótono y de satisfacción de restricciones. En el curso se describen las principales semánticas de negación por defecto, estudiando dos de ellas con mayor detalle: stable models y well-founded semantics. Además, se describen distintas ampliaciones que permiten un uso más cómodo o incluso aumentar la capacidad expresiva de los programas lógicos, siempre con el objeto de su aplicación para representación del conocimiento. El curso pretende proporcionar simultáneamente un bagaje teórico, incluyendo un tema de estudio de propiedades y de transformación de programas, como una fuerte componente práctica, fomentando la aplicación de herramientas de programación lógica declarativa de última generación en las áreas en que están mostrando mayor éxito, tales como resolución de restricciones, diagnosis, razonamiento sobre acciones, planificación y robótica cognitiva. |