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