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

Can SWI Prolog program get its facts from the external database?

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

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

一种直接的方法是使用 socketspipes 与外部数据库通信。

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

另一种方法是使用 CQL,一种与 Prolog 代码自然融合的高级 约束 接口。

除此之外,具有 30 000 个条目的数据库没什么,因此您很可能只需使用 Prolog facts 并保持完整在 Prolog 中,没有任何外部依赖。