2017-01-19 7 views
0

Datalog est un langage agréable pour interroger des données relationnelles. Il est simple, clair, compile bien et prend en charge les requêtes récursives sans syntaxe supplémentaire.Activer les requêtes Datalog dans les requêtes SQL (ite)

SQLite est une base de données intégrée fantastique avec ce qui semble être un powerful query engine capable de gérer les requêtes récursives - voir les exemples en bas de cette page pour générer des ensembles de Mandelbrot et de trouver toutes les solutions possibles à des puzzles sudoko!

Je suis intéressé de savoir s'il existe une manière assez standard de traduire d'une requête datalog en SQL récursif supporté par SQLite, ou s'il y a des bibliothèques qui fournissent cette facilité.

Répondre

2

DLVDB est un interprète pour Datalog récursive qui utilise une connexion de base de données ODBC pour leurs données extensionnelle: http://www.dlvsystem.com/dlvdb/

En dehors de cela, le papier

S. Ceri, G. Gottlob et L. Tanca. 1989. Ce que vous avez toujours voulu savoir sur Datalog (et jamais osé demander). IEEE Trans. sur Knowl. et Data Eng. 1, 1 (mars 1989), 146-166. http://dx.doi.org/10.1109/69.43410

fournit un arrière-plan théorique et quelques pointeurs pour traduire Datalog en algèbre relationnelle.

+0

Cool - merci. J'espérais que ce serait quelques centaines de lignes de Lua ou quelque chose comme ça. Tant pis! – Benjohn