我有一个庞大的语义网络,它有特定的Java API来查询数据(存储在几个Lucene索引中的数据)。
我想要一些比它更具交互性(比Java编程)来查询它,比如Datalog接口(或者你可以建议的其他东西!),这样我就可以暴露一些关系,然后使用{{3}提取我需要的数据,一切都很简单,可以在虚拟交互式shell中编写。
有什么可能实现这一目标而不重新发明轮子的大部分? (即我自己没有编写数据记录应答系统)
集成Datalog前端以提取数据(假设存在这种可能性)是否更好? 或者最好在conjunctive queries中导出数据,并使用一些可用的查询/推理工具?哪一个?
答案 0 :(得分:3)
我知道你说你不一定想做很多Java编程,但Jena的general purpose rule engine包括一个反向链接规则推理器,它是一个数据记录引擎。规则语言非常简单,如果需要,可以使用Java扩展它。如果编写一组规则,可以将它们提供给推理器,将推理器与RDF模型绑定以生成推理模型,然后可以使用Java API查询推理模型,或使用SPARQL公开推理模型终点(例如,使用耶拿的Fuseki)。
如果规则不是静态的并且提前修复,您可以将webabb界面扩展到Fuskei,以提供“规则编辑”部分,您可以在其中提供规则集并在数据集上运行它们。