SWI Prolog程序可以从外部数据库获取其事实吗?

Tom*_*omR 3 database prolog swi-prolog tinkerpop

我正在计划SWI Prolog程序(语义自然语言解析器),它具有庞大而动态的事实集(具有大约30.000个条目的词典).是否可以将这些事实存储在外部数据库中.由于其他要求,我正在考虑Apache TinkerPop/JanusGraph/Cassandra作为我的数据库,但我也对SQL/JDBC/ODBC数据库支持感到满意.

mat*_*mat 5

是的,这当然是可能的,甚至可以通过几种不同的方法:

一种直接的方法是使用套接字管道与外部数据库进行通信.

另一种方法是使用SWI-Prolog 的C接口和外部数据库的API.

另一种方法是使用CQL,一种高级约束接口,自然地与Prolog代码混合.

除此之外,一个有30 000个条目的数据库什么都不是,所以你很可能只是简单地使用Prolog事实并完全保留在Prolog中,没有任何外部依赖.