SWI Prolog 程序可以从外部数据库中获取事实吗?
Can SWI Prolog program get its facts from the external database?
我正在计划 SWI Prolog 程序(语义自然语言解析器),它具有大量动态的事实集(包含大约 30.000 个条目的词典)。是否可以将这些事实存储在外部数据库中。由于其他要求,我正在考虑将 Apache TinkerPop/JanusGraph/Cassandra 作为我的数据库,但我也对 SQL/JDBC/ODBC 数据库支持感到满意。
是,这当然是可能的,甚至可以通过几种不同的方法:
一种直接的方法是使用 sockets 或 pipes 与外部数据库通信。
另一种方法是使用 SWI-Prolog 的 C 接口和外部数据库的 API。
另一种方法是使用 CQL,一种与 Prolog 代码自然融合的高级 约束 接口。
除此之外,具有 30 000 个条目的数据库没什么,因此您很可能只需使用 Prolog facts 并保持完整在 Prolog 中,没有任何外部依赖。
我正在计划 SWI Prolog 程序(语义自然语言解析器),它具有大量动态的事实集(包含大约 30.000 个条目的词典)。是否可以将这些事实存储在外部数据库中。由于其他要求,我正在考虑将 Apache TinkerPop/JanusGraph/Cassandra 作为我的数据库,但我也对 SQL/JDBC/ODBC 数据库支持感到满意。
是,这当然是可能的,甚至可以通过几种不同的方法:
一种直接的方法是使用 sockets 或 pipes 与外部数据库通信。
另一种方法是使用 SWI-Prolog 的 C 接口和外部数据库的 API。
另一种方法是使用 CQL,一种与 Prolog 代码自然融合的高级 约束 接口。
除此之外,具有 30 000 个条目的数据库没什么,因此您很可能只需使用 Prolog facts 并保持完整在 Prolog 中,没有任何外部依赖。