Características, limitaciones y extensiones del Datalog

La evaluación de consultas con datalog se basa en la lógica de primer orden , y por lo tanto el sonido y completa . Se puede hacer de manera eficiente, incluso para grandes bases de datos. evaluación de consultas se realizan normalmente usando en marcha estrategias de fondo.
A diferencia de Prolog, que
1.     complejos términos no permite que los argumentos de los predicados , por ejemplo, p (1, 2) es admisible, pero p (f1 (1), 2), no
2.     impone cierta estratificación restricciones sobre el uso de la negación y la recursividad , y
3.     sólo permite que las variables de alcance restringido, es decir, cada variable en la celebración de una norma también debe aparecer en una cláusula no niega en la premisa de esta regla.
Estas reglas hacen el conjunto de todos los finitos posibles pruebas, con la consecuencia de que todos los programas de datalog terminar (a diferencia de los programas de Prolog). Como consecuencia, las declaraciones y los predicados de un programa se puede expresar en cualquier orden (a diferencia de Prolog). Varios métodos han sido propuestos para desempeñar con eficiencia las consultas, por ejemplo, el algoritmo de Juegos de Magia, o la lógica de programación presentadas.
los motores de datalog especializados están detrás de los sistemas de bases de datos tales como Intellidimension base de datos de s 'para la web semántica . Por otra parte, algunos sistemas de base de datos ampliamente utilizado son las ideas y los algoritmos desarrollados para el datalog. Por ejemplo, el SQL: 1999 estándar incluye consultas recursivas, y el algoritmo de Juegos de Magia (inicialmente desarrollado para la evaluación rápida de las consultas de datalog) se implementa en IBM DB2 .
Dos extensiones que se hayan efectuado al datalog incluyen una extensión para permitir orientado a objetos de programación y una extensión para permitir disyunciones como jefes de las cláusulas . Ambas extensiones tienen un impacto importante en la definición de la semántica de datalog y sobre la aplicación de un intérprete de datalog correspondiente.