La programacin lgica es un tipo de paradigmas de programacin dentro del
paradigma de programacin declarativa. El resto de los subparadigmas de programacin dentro de la programacin declarativa son: programacin funcional, programacin con restricciones, programas DSL (de dominio especfico) e hbridos. La programacin funcional se basa en el concepto de funcin (que no es ms que una evolucin de los predicados), de corte ms matemtico. La programacin lgica gira en torno al concepto de predicado, o relacin entre elementos.
4.2. Unificacin y resolucin
Para probar la existencia de algo:
Suponer lo opuesto y usar modus ponens y la regla de
eliminacin del cuanticador universal, para encontrar un contra ejemplo al supuesto.
4.3. Clusulas de Horn. Resolucin SLD
Seleccionar una literal, usando una estrategia Lineal, restringido a
clusulas Definitivas
Un caso especial de resolucin lineal
Resolucin lineal: el ltimo resolvente se toma como clusula padre
La otra clusula padre se toma de otro resolvente o del conjunto original
Una forma especial de resolucin lineal es: input resolution. En esta estrategia, cada paso de resolucin, exceptuando el primero, se toma del ltimo resolvente (clusulas metas) y del conjunto original (clusulas de entrada)
Input resolution es completa para clusulas de Horn, pero no para clusulas en
general
Una variante de resolucin de entrada es resolucin SLD para clusulas de Horn.
Resolucin de entrada se extiende con una regla de seleccin que determina en cada paso que literal de la clusula meta es seleccionada.
e.g.,
, Meta:
Resolucin SLD es sound y complete para clusulas de Horn
La estrategia de bsqueda afecta el resultado
e.g., depth-first con diferente orden de clusulas:
Meta:
Aunque resolucin SLD es sound y complete para clusulas de Horn, en la
prctica (por razones de eficiencia) se hacen variantes
eliminar el ``occur check'' de unificacin
usar un orden especfico 4.4. Programacin lgica con clusulas de Horn
En lgica proposicional, una frmula lgica es una clusula de Horn si es una
clusula (disyuncin de literales) con, como mximo, un literal positivo. Se llaman as por el lgico Alfred Horn, el primero en sealar la importancia de estas clusulas en 1951.
Esto es un ejemplo de una clusula de Horn:
Una frmula como esta tambin puede reescribirse de forma equivalente como una implicacin:
Una clusula de Horn con exactamente un literal positivo es una clusula
"definite"; en lgebra universal las clusulas "definites" resultan (aparecen) como cuasi-identidades. Una clusula de Horn sin ningn literal positivo es a veces llamada clusula objetivo (goal) o consulta (query), especialmente en programacin lgica.
Una frmula de Horn es una cadena textual (string) de cuantificadores
existentiales o universales seguidos por una conjuncin nde clusulas de Horn.
4.5. Semntica de los programas lgicos
Observen que resolucion (incluso la SLD) no prescribe una
forma particular deresponder estas preguntas :
Qu tomo en una clausula objetivo debemos usar en la
resolucin? Cul clusula denida se debe usar para la resolucin?
4.6. Representacin clausada del conocimiento
La representacin del conocimiento y el razonamiento es un rea de la inteligencia artificial cuyo
objetivo fundamental es representar el conocimiento de una manera que facilite la inferencia (sacar conclusiones) a partir de dicho conocimiento. Analiza cmo pensar formalmente - cmo usar un sistema de smbolos para representar un dominio del discurso (aquello de lo que se puede hablar), junto con funciones que permitan inferir (realizar un razonamiento formal) sobre los objetos. Generalmente, se usa algn tipo de lgica para proveer una semntica formal de como las funciones de razonamiento se aplican a los smbolos del dominio del discurso, adems de proveer operadores como cuantificadores, operadores modales, etc. Esto, junto a una teora de interpretacin, dan significado a las frases en la lgica.
Cuando diseamos una representacin del conocimiento (y un sistema de representacin del
conocimiento para interpretar frases en la lgica para poder derivar inferencias de ellas) tenemos que hacer elecciones a lo largo de un nmero de mbitos de diseo. La decisin ms importante que hay que tomar es la expresividad de la representacin del conocimiento. Cuanto ms expresiva es, decir algo es ms fcil y ms compacto. Sin embargo, cuanto ms expresivo es un lenguaje, ms difcil es derivar inferencias automticamente de l. Un ejemplo de una representacin del conocimiento poco expresiva es la lgica proposicional. Un ejemplo de una representacin del conocimiento muy expresiva es la lgica autoepistmica. Las representaciones del conocimiento poco expresivas pueden ser tanto completas como consistentes (formalmente menos expresivas que la teora de conjuntos). Las representaciones del conocimiento ms expresivas pueden ser ni completas ni consistentes.
El principal problema es encontrar una representacin del conocimiento y un sistema de
razonamiento que la soporte que pueda hacer las inferencias que necesite tu aplicacin dentro de los lmites de recursos del problema a tratar. Los desarrollos recientes en la representacin del conocimiento han sido liderados por la web semntica, y han incorporado el desarrollo de lenguajes y estndares de representacin del conocimiento basados en XML, que incluyen Resource Description Framework (RDF), RDF Schema, DARPA Agent Markup Language (DAML), y Web Ontology Language (OWL). 4.7. Consulta de una base de clusulas
4.8. Espacios de bsqueda
4.9. Programacin lgica con nmeros, listas y rboles.
4.10. Control de bsqueda en programas lgicos
4.11. Manipulacin de trminos. Predicados metagicos.