Del lenguaje al sistema que razona.
01Ya podemos escribir hechos y reglas.
02Ahora necesitamos almacenarlos, consultarlos y decidir cómo tratar lo que falta.
Qué sabe y cómo razona son piezas distintas.
01La base contiene sentencias sobre un dominio.
02El motor aplica mecanismos de inferencia.
03Podemos cambiar el conocimiento del dominio y reutilizar el motor.
Hechos + reglas del dominio
Mecanismo de razonamiento
TELL incorpora. ASK consulta.
01TELL agrega una sentencia a la base.
02ASK pregunta si algo se sigue de lo almacenado.
03Una respuesta puede apoyarse en reglas, aunque nadie haya cargado la conclusión directamente.
TELL(cable_ok) · ASK(reemplazar_fuente)
El punto de partida debe tener una fuente.
01no_enciende: una observación sobre el equipo.
02sin_luz_fuente: otra observación.
03cable_ok: un dato que alguien comprobó.
Una condición conecta lo conocido con lo nuevo.
01R1 exige no_enciende y sin_luz_fuente.
02Si se cumplen ambas, permite concluir problema_alimentacion.
03Una sola premisa no alcanza para una conjunción.
no_enciende ∧ sin_luz_fuente → problema_alimentacion
Una pregunta define qué queremos averiguar.
01Cerrada: «¿Se deduce reemplazar_fuente?».
02Abierta: «¿Qué acción podemos concluir?».
03La consulta no agrega su respuesta a los hechos por el solo hecho de formularla.
Tres hechos. Cinco reglas. Varias consultas.
Hechos observados
no_enciendesin_luz_fuentecable_ok
Reglas del apunte
- R1
no_enciende ∧ sin_luz_fuente→problema_alimentacion - R2
problema_alimentacion ∧ cable_ok→fuente_danada - R3
no_enciende ∧ hay_luz_fuente→problema_placa - R4
fuente_danada→reemplazar_fuente - R5
problema_placa ∧ pitidos→revisar_memoria
¿La respuesta estaba escrita o se deduce?
Hechos observados
no_enciendesin_luz_fuentecable_ok
Reglas del apunte
- R1
no_enciende ∧ sin_luz_fuente→problema_alimentacion - R2
problema_alimentacion ∧ cable_ok→fuente_danada - R3
no_enciende ∧ hay_luz_fuente→problema_placa - R4
fuente_danada→reemplazar_fuente - R5
problema_placa ∧ pitidos→revisar_memoria
Anticipá la respuesta y justificá antes de mostrarla.
Preguntar no es cargar un hecho.
Contamos signos, no palabras cotidianas.
01Un literal es un átomo o su negación.
02P es positivo; ¬P es negativo.
03Una cláusula es una disyunción de literales.
¬P ∨ ¬Q ∨ R
A lo sumo un literal positivo.
01P ∧ Q → R se reescribe como ¬P ∨ ¬Q ∨ R.
02Los antecedentes pasan a literales negativos en la cláusula.
03Con exactamente un positivo, la cláusula es Horn definida.
P ∧ Q → R ≡ ¬P ∨ ¬Q ∨ R
¿Cuántos literales positivos encontrás?
P ∧ Q → R ≡ ¬P ∨ ¬Q ∨ R
Anticipá la respuesta y justificá antes de mostrarla.
No todas las cláusulas de Horn agregan un hecho.
01R: un hecho positivo, con cero premisas.
02¬P ∨ ¬Q: Horn con cero positivos; prohíbe que P y Q sean ambos verdaderos.
03Nuestro motor didáctico procesa hechos y reglas definidas positivas.
¿Horn implica tener una conclusión positiva?
Una elección de ingeniería.
01Las reglas definidas sacrifican formas de expresión para facilitar la inferencia.
02Horn proposicional admite algoritmos lineales adecuados al tamaño de la base.
03Esta garantía no se extiende a cualquier programa Horn de primer orden con funciones.
¿Falso o todavía desconocido?
01Mundo cerrado: si no está ni se deriva, se trata como falso.
02Mundo abierto: la falta de prueba no autoriza concluir falsedad.
03La elección cambia cómo interpretamos una consulta sin respuesta positiva.
No registrado ≠ observado como falso
¿Qué sabemos sobre los pitidos?
Hechos observados
no_enciendesin_luz_fuentecable_ok
Reglas del apunte
- R1
no_enciende ∧ sin_luz_fuente→problema_alimentacion - R2
problema_alimentacion ∧ cable_ok→fuente_danada - R3
no_enciende ∧ hay_luz_fuente→problema_placa - R4
fuente_danada→reemplazar_fuente - R5
problema_placa ∧ pitidos→revisar_memoria
Anticipá la respuesta y justificá antes de mostrarla.
Fallar al probar no es observar lo contrario.
01La negación por fallo tiene éxito si el intento de probar la consulta termina sin éxito.
02Depende de la base y del procedimiento de búsqueda.
03Una búsqueda que no termina no es un fallo demostrado.
sin_luz_fuente no es un operador mágico.
01hay_luz_fuente y sin_luz_fuente son dos átomos del ejemplo.
02El motor no deduce automáticamente uno porque no encuentra el otro.
03La relación entre observaciones opuestas debe representarse y validarse explícitamente.
Una consulta sin filas habla de los datos cargados.
01SELECT busca coincidencias en el estado de la base de datos.
02Cero filas significa que no hay coincidencias en esos datos.
03Para concluir que no existen en el mundo real, necesitamos confiar en la cobertura del registro.