Consola de consulta
backtracking bajo demandaAtajos: ; siguiente · . detener · ↵ re-ejecutar
Sistema experto · Programación lógica · Unitrópico
AgroLógica cruza clima, suelo y temporada para calcular cuándo sembrar en el Casanare — y entrega cada recomendación como una respuesta computada: con su árbol de derivación SLD, su traza de puertos y su justificación agronómica. Nada de cajas negras: un razonamiento que el productor puede auditar.
01 · Consulta
Elija un caso de la propuesta o arme el suyo. Los hechos del predio se cargan
con la petición y viven solo durante ella (thread_local +
setup_call_cleanup/3).
?- ventana_siembra(arroz_riego, la_esperanza, Mes, Conf).
02 · Respuesta computada
Cuatro paneles sincronizados sobre la misma derivación: la consola enumera soluciones bajo demanda —replicando el retroceso—, el árbol y la traza muestran el cálculo, y la justificación lo traduce al lenguaje del productor. Pase el cursor por un nodo del árbol y verá iluminarse su línea en la traza.
Atajos: ; siguiente · . detener · ↵ re-ejecutar
Calendario llanero · viable riesgo descartado
hoja de éxito → una respuesta computada hoja de fallo → la rama no aporta respuesta \+ negación por fallo
Ejecute una consulta para ver la justificación.
03 · Pregunta contrafactual
Cuando un cultivo no tiene ventana, la respuesta útil no es el rechazo sino la
ruta para habilitarlo: manejo_habilitante/4 combina negación por fallo con las
prácticas aplicadas y responde qué intervención abre el calendario.
Se simula sobre: —
Ejemplo: maíz tecnificado en El Triunfo (altillanura, Al 48 %) no tiene ventana; con encalado pasa a 4 meses viables. Actívelo y compruébelo.
04 · Base de conocimiento
Los hechos del Nivel 1: parámetros de cultivo y series climatológicas mensuales de referencia por zona agroecológica. Incorporar un cultivo o una zona es agregar hechos — el motor de inferencia no se toca.
05 · Bajo el capó
El dominio se expresa en cláusulas de Horn: “un cultivo es apto si la lluvia del ciclo está en su rango y el suelo tolera su acidez y no existe riesgo”. La consulta del productor entra por el Nivel 4 y la resolución SLD desciende hasta los hechos.
El componente distintivo es el metaintérprete: un intérprete de Prolog escrito en Prolog que resuelve la consulta y, a la vez, construye el árbol de la derivación. La explicación no es un módulo aparte: es un subproducto del cálculo.
% Metainterprete: resuelve y devuelve el arbol
resolver(true, exito) :- !.
resolver((A,B), y(TA,TB)) :- !,
resolver(A,TA), resolver(B,TB).
resolver(\+ A, nafd(A)) :- !, \+ A.
resolver(M, nodo(M,Sub)) :-
transparente(M), !, % predicado del dominio
clause(M, Cuerpo), % se abre la clausula
resolver(Cuerpo, Sub).
resolver(M, hecho(M)) :- call(M).
# El motor jamás se publica a Internet
nginx (TLS) ─→ Node.js :3129 ─→ SWI-Prolog
│ 127.0.0.1:4129
└─ caché por cultivo + suelo