Question

Sans penser à beaucoup, il me semble qu'un grand nombre de fonctionnalités de Prolog pourrait être mise en œuvre en tant que calcul relationnel (SQL a.k.a.).

Quelqu'un at-il entendu parler de tous les outils pour convertir automatiquement Prolog à SQL?

Était-ce utile?

La solution

Autres conseils

Oui, bien sûr.

Une prémisse pour les sceptiques: un livre semi-décent sur la théorie de base de données mentionne Datalog (qui est Prolog-like) et théorèmes qui démontrent qu'il est possible de traduire en / de l'algèbre relationnelle (RA) (sous certaines conditions spécifiques).

SQL n'est pas fidèle à la PR ou relationnelle lithiase, mais il est suffisant pour soutenir Prolog:

La mise en correspondance est pas très bon. SQL, par exemple, ne fait pas faire marche arrière, l'unification, des listes ou des structures imbriquées adhoc.

Prolog ne traite pas bien avec des objets composites, index, etc.

Je dirais que c'est un no-go.

Il est plus logique de faire une requête SQL de Prolog, qui peut ensuite être traduit dans les faits Prolog. par exemple. Prolog ODBC Library

Cela supprime toutes les restrictions et conserve les deux langues séparées en leur place.

I a écrit un traducteur qui convertit un sous-ensemble de Prolog dans SQL fonctions définies par l'utilisateur.

Ce prédicat Prolog peut être traduit en SQL:

is_between(A,B,C) :- 
    A<B,B<C.

Ceci est la sortie en fonction MySQL du traducteur:

CREATE FUNCTION is_between(A double,B double,C double) RETURNS BIT BEGIN 
    RETURN A>B and B>C;
END

De même, il y a un Prolog à SQL compilateur compilateur pour SWI-Prolog et un autre traducteur qui convertit un sous-ensemble non récursif de Datalog en SQL.

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top