当前位置: 首页 > 知识库问答 >
问题:

如何区分推断的公理和明确的公理?

谢誉
2023-03-14

我有一个关于使用OWL API和推理器的基本问题。

我已经尝试了JFact推理器,成功运行了它并得到了大量公理(有些是推断出来的,有些是在原始本体中明确陈述的)。

我需要把它们区分开来,但我实在找不到什么方法来做这件事。

共有1个答案

微生嘉
2023-03-14

断言公理与推断公理的区别仅仅是因为它们明确地存在于本体论中。

您可以通过以下方式检查本体中是否存在公理:

OWLOntology o = ...
OWLAxiom ax = ...
boolean asserted = o.containsAxiom(ax);

注意:如果一个公理有注释,有可能它不会被theis方法匹配:语义等价但注释不同的公理彼此之间不是equals()(这是W3C规范,不是OWL API决定)。在这种情况下,您可以找到是否使用o.ContainsaXiomIgnoreAnnotations(ax)断言了一个公理。

 类似资料:
  • 这种传递性关系在Protege中非常有效。我用黄色可以看出A类相当于C类,反之亦然。 我想从Protege工具导出这个推断的公理。我转到“文件->导出推断公理为本体”,在第一个屏幕上选择所有选项,在第二个屏幕上不选择任何选项。最后,我以RDF/XML语法将文件保存为OWL。 现在当我打开这个新文件时,我没有看到任何关于推断公理的三元组,即A类等同于C类,事实上,它与我最初的本体论是完全相同的本体论

  • 我对比特币和区块链技术相当陌生,最近开始阅读相关文章。所以我的理解和下面的问题可能不是很准确。 据我所知,到目前为止,工作证明是比特币区块链的基本构建块,正因为如此,攻击者必须产生超过50%的总计算能力(即控制超过50%的节点)才能通过能够一致地产生最长的区块链来操纵区块链。 现在比特币的人有点幸运,因为他们是第一个,早期没有人注意到。一旦比特币势头增强,诚实节点的数量就占主导地位,系统就变得内在

  • 问题内容: 我已经在javaworld.com上阅读了两篇文章(1)(2),有关所有类字段应如何为私有,并且getter / setter方法同样糟糕。对象应该对它拥有的数据进行操作,而不是允许对其进行访问。 我目前正在为Connect Four 进行大学作业。在设计程序时,玩游戏的特工需要访问董事会的状态(以便他们可以决定移动的方向)。他们还需要将此举动传递给游戏,以便可以将其确认为合法举动。在

  • 我想从reasoner[隐士]那里得到推断出的公理,以及它的适当解释。我在Protege中创建了以下本体论。 A.OWL 以下是我的Java代码:- 门生形象:-

  • null 我使用的是Protege 5.0.0、Reasoner Hermit 1.3.8和OWL API 5.0.5(尽管不同的Reasoner获得了相同的结果:Fact++、Pellet;以及不同的OWL API和Protege版本:4.x) 我会很高兴有任何评论,即使是一个简单的解释也会对我有很大帮助。

  • 问题内容: ReentrantReadWriteLock具有公平和不公平(默认)模式,但是文档对我来说很难理解。 我怎么理解?如果有一些代码示例对其进行演示,那就太好了。 更新 如果我有一个写线程,而有许多读线程,哪种模式更好?如果我使用非公平模式,写线程是否有机会获得锁? 问题答案: 不公平 是指当准备好通过新线程获取锁时,该锁不能保证谁获得了该锁的公平性(假设当时有多个线程在请求​​该锁)。换