【发布时间】:2011-11-17 18:58:07
【问题描述】:
在做了一些研究之后,我对 Prolog 以非常简单的方式表达查询的能力感到惊讶,就像口头告诉机器该做什么一样。发生这种情况是因为我对工作中的 Propel 和 PHP 感到非常厌烦。
所以,我一直想知道是否有办法将数据库表行(例如 Postgres)转换为 Prolog 事实。这样一来,我就可以停止使用这么多无聊的连接并使用 ORM,而是编写类似这样的东西来获得我想要的东西:
mantenedora_ies(ID_MANTENEDORA, ID_IES) :-
papel_pessoa(ID_PAPEL_MANTENEDORA, ID_MANTENEDORA, 1),
papel_pessoa(ID_PAPEL_IES, ID_IES, 6),
relacionamento_pessoa(_, ID_PAPEL_IES, ID_PAPEL_MANTENEDORA, 3).
要了解我为何感到无聊,请查看this post。前面的这些简单行将替换那里的代码,更容易阅读和理解。我只是对此感到好奇,因为这里不可能更换东西。
如果可以在 PHP 中完成类似的事情,那也太酷了。有谁知道这样的事情吗?
【问题讨论】:
-
谢谢@starblue,语言也是重点。但是,它能否与真实数据库集成,将最后一个数据库变成事实数据库?
-
最新版本的 DES (fdi.ucm.es/profesor/fernan/des) 可以访问 ODBC 并提供 Datalog/SQL 之间的互操作性
-
谢谢@chac。我周末去看看。
标签: database postgresql prolog