我已经使用 SWRLAPI 的 SWRLBuiltInBridge 组件完成了这项工作: https ://github.com/protegeproject/swrlapi/wiki/SWRLBuiltInBridge
但是,在我的 Java 代码中,我还将 Pellet Reasoner 与 OWLAPI 一起使用。每当我使用推理器时,它会在发现内置未知的 SWRL 规则时生成警告。我知道我可以在推理器中禁用规则检查,并在我想运行规则时使用 SWRLAPI。
但这似乎不切实际......因为在我使用推理器之前,我必须在每次修改本体之后运行规则。
我看过一个深入研究这个问题的博客页面,但可能已经过时: https ://semwebguy.wordpress.com/2011/01/04/how-to-extend-pellet2-2-2s-swrl-built-支持您的自定义内置/
此外,与 SWRLAPI(例如 Abox 对象是一个参数)相比,创建内置的方式(根据博客)是不同的。
还有另一种方法可以做到这一点吗?或者是否可以将 Pellet 与 SWRLBuiltInBridge 连接起来?