FOIL
Estructuras de datos
Variable
case Libre(nombre: String)
case Unificada(valor: String)
Literal
Igualdad(a: Libre, b: Libre)
Desigualdad(a: Libre, b: Libre)
Clausula(nombre: String, parametros: List[Variable])
Regla(nombre: String, parametros: List[Libre], cuerpo: List[Literal])
Hecho(nombre: String, parametros: List[Unificada])
Termino(nombre: String, parametros: List[Libre]) extends Clausula with Literal
Estructuras Utilizadas
Implementacion
Puntos Principales
- Generación literales: Combinatoria de todas las posibles sustituciones
- Unificación: Combinatoria => ¿Existe alguna en la base de conocimiento?
- Calculo de ganancia: Aplicación directa de la expresión.
Predicados Recursivos
- Generación literales: Misma idea, pero con restricciones (No puede existir recursión con los mismos parámetros que la cabeza de la regla)
- Unificación: Para poder unificar recursión, buscamos existencia de predicados recursivos en los ejemplos positivos.
Predicados Recursivos
- El primer término añadido a una regla no puede ser recursivo.
- Si le último término añadido a una regla es recursivo, no puede contener variables libres que no aparezcan en otro término de la regla (Controlado mediante recursividad y prohibiciones).
Restricciones Adicionales
Resultados
mother (X , Y ) : - daughter (Y , X ) , husband ( AUX1 , X ) .
¿Y las madres solteras?
¡No hay predicado para determinar el género!
Aplicaciones
Extración de conocimiento a partir de encuestas
Tests Psicológicos
preguntaX ( Individuo , Respuesta ) .
.
.
.
padeceAnsiedad(individuoX).
.
.
.
FOIL, ¿Que es padeceAnsiedad(X)?
FOIL
By truji92
FOIL
- 261