Articulo de referencia

HiLog

HiLog es una lógica de programación con sintaxis de orden superior, que permite que aparezcan términos arbitrarios en posiciones de predicados y funciones. [ 1 ] Sin embargo, la...

HiLog es una lógica de programación con sintaxis de orden superior, que permite que aparezcan términos arbitrarios en posiciones de predicados y funciones. [ 1 ] Sin embargo, la teoría de modelos de HiLog es de primer orden. Aunque sintácticamente HiLog extiende estrictamente la lógica de primer orden , puede integrarse en ella.

HiLog se describió por primera vez en 1989. [ 2 ] Posteriormente se extendió en la dirección de la lógica de múltiples tipos . [ 3 ]

El sistema XSB analiza la sintaxis de HiLog, pero la integración de HiLog en XSB es solo parcial. En concreto, HiLog no está integrado en el sistema de módulos XSB. Una implementación completa de HiLog está disponible en el sistema Flora-2 .

Se ha demostrado que HiLog puede integrarse en la lógica de primer orden mediante una transformación bastante simple. [ 1 ] Por ejemplo, p(X)(Y,Z(V)(W))se integra como el siguiente término de primer orden: apply(p(X),Y,apply(apply(Z,V),W)). [ 1 ]

El marco para dialectos basados ​​en lógica (RIF-FLD) del formato de intercambio de reglas (RIF) se basa en gran medida en las ideas subyacentes a HiLog y F-logic . [ 4 ]

Ejemplos

En todos los ejemplos siguientes, los símbolos en mayúscula denotan variables y la coma denota conjunción lógica , como en la mayoría de los lenguajes de programación lógica . El primer y el segundo ejemplo muestran que las variables pueden aparecer en posiciones de predicado. Los predicados pueden incluso ser términos complejos, como closure(P)o maplist(F)a continuación. El tercer ejemplo muestra que las variables también pueden aparecer en lugar de fórmulas atómicas, mientras que el cuarto ejemplo ilustra el uso de variables en lugar de símbolos de función. El primer ejemplo define un operador de cierre transitivo genérico , que se puede aplicar a un predicado binario arbitrario. El segundo ejemplo es similar. Define un operador de mapeo tipo LISP , que se aplica a un predicado binario arbitrario. El tercer ejemplo muestra que el metapredicado de Prologcall/1 se puede expresar en HiLog de forma natural y sin el uso de características extralógicas. El último ejemplo define un predicado que recorre árboles binarios arbitrarios representados como términos de primer orden .

cierre ( P )( X , Y ) <- P ( X , Y ). cierre ( P )( X , Y ) <- P ( X , Z ), cierre ( P )( Z , Y ).lista de mapas ( F )([],[]). lista de mapas ( F )([ X | R ],[ Y | Z ]) <- F ( X , Y ), lista de mapas ( F )( R , Z ).llamar ( X ) <- X .atravesar ( X ( L , R )) <- atravesar ( L ), atravesar ( R ).

Referencias

  1. 1 2 3 Chen, Weidong; Kifer, Michael; Warren, David S. (febrero de 1993). "HiLog: Una base para la programación lógica de orden superior" . Journal of Logic Programming . 15 (3): 187– 230. doi : 10.1016/0743-1066(93)90039-J .
  2. Chen, Weidong; Kifer, Michael; Warren, David S. (1989). «HiLog: una semántica de primer orden para construcciones de programación lógica de orden superior». Programación lógica: Actas de la conferencia norteamericana de 1989. MIT Press. ISBN 0262620642OCLC 1153667751 
  3. Chen, Weidong; Kifer, Michael (1995). "Sorted HiLog: ordenaciones en lenguajes de datos de lógica de orden superior". En Gottlob, Georg; Vardi, Moshe Y. (eds.). Teoría de bases de datos—ICDT '95: 5.ª Conferencia Internacional, Praga, República Checa, 11-13 de enero de 1995: actas . Notas de clase en ciencias de la computación. Vol. 893. Springer. pp. 252-265 . doi : 10.1007/3-540-58907-4_20 . ISBN   9780387589077OCLC 31740400 .​ 
  4. Kifer, Michael (2008). "Formato de intercambio de reglas: el marco". En Calvanese, Diego; Lausen, Georg (eds.). Razonamiento web y sistemas de reglas: segunda conferencia internacional, RR 2008, Karlsruhe, Alemania, 31 de octubre-1 de noviembre de 2008: actas . Lecture notes in computer science. Vol. 5341. Springer. pp. 1-11 . doi : 10.1007/978-3-540-88737-9_1 . ISBN   9783540887362OCLC 262884460 

Lecturas adicionales

  • Ross, Kenneth A. (enero de 1994). "Sobre la negación en HiLog". Journal of Logic Programming . 18 (1): 27– 53. doi : 10.1016/0743-1066(94)90040-X .
  • Bruijn, Jos; Heymans, Stijn (enero de 2008). "Sobre la relación entre ontologías basadas en lógica de descripción y basadas en lógica F" . Fundamentos de la informática . 82 (3): 213-236 .