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

OWL:EquivalentClass的域&范围是RDFS:Class还是OWL:Class?

蓬新
2023-03-14

OWL:EquivalentClass的域和范围提出了一些我无法找到答案的问题。

首先,在OWL本身中,OWL:equivalentClass的域和范围被设置为rdfs:class。这个领域和范围似乎与规范(http://www.w3.org/tr/owl-ref/#equivalentclass-def)中给出的定义有些冲突,其中提到:

“这样一个类公理[即OWL:EquivalentClass]的含义是,所涉及的两个类描述具有相同的类扩展(即,两个类扩展都包含完全相同的个体集)。”

使用Jena的reasoner引擎,我注意到OWL推理规则包含以下有趣的元素:(1)说明OWL:EquivalentClass具有域和范围的公理OWL:Class(2)两个互为rdfs:subclass的资源必须互为OWL:EquivalentClass的规则。

所以,基本上,这里的域和范围被限制为owl:class,这似乎是可以理解的。如果它的域和范围像这样缩小,那么(2)中的规则难道不应该也被限制为声明这两个资源都应该是owl:class类型,以便产生owl:equivalentclass关系吗?毕竟,rdfs:subclassOf关系可以在rdfs:classes上非常好地工作。如果彼此是子类的类是rdfs:classes,那么如果(1)中对owl:equivalentclass的定义进行了缩小,那么规则不应该立即暗示rdfs:classes实际上是owl:classes。

有没有人知道OWL的正确解释是什么:EquivalentClass的答案,可能提供了一个权威的来源?

提前道谢!

共有1个答案

申屠宗清
2023-03-14

相关的文档是OWL2Web本体语言RDF的语义(第二版)。第6.4节给出了基于RDF的语义的公理化三元组,其中包括将OWL:EquivalentClass的域和范围指定为RDFS:Class:

owl:equivalentClass rdf:type rdf:Property .
owl:equivalentClass rdfs:domain rdfs:Class .
owl:equivalentClass rdfs:range rdfs:Class .

注意,OWL还有一个直接的语义,它根本没有使用RDF。它根据个体集(对于类)和个体对集(对于属性)定义语义。在这种情况下,owl:equivalentClass根本就不是一个包含rdfs:domain和rdfs:range的属性的概念。

关于使用Jena进行推理,Jena的推理器是围绕OWL1而不是OWL2设计的,因此如果规范的这一部分有显著差异,Jena可能更接近OWL1规范。据我所知,Jena的推理器更倾向于OWL Full而不是OWL DL,并且可能不太关心如何保留rdfs:class和OWL:class之间的任何差异。

 类似资料:
  • 问题内容: 能否解释一下为什么Spring为下面所示的bean配置创建两个对象,因为默认情况下spring的默认作用域是singleton? Spring配置在这里: 问题答案: Spring的默认范围是单例。仅仅是你对成为单身人士的含义的想法与Spring如何定义单身人士不匹配。 如果你告诉Spring制作两个具有不同ID和相同类的独立bean,那么你将获得两个独立bean,每个bean具有单例

  • 问题内容: 以下哪项将被认为是更好/更清晰/更快/更多的“ Pythonic”?我不在乎列表的内容,只关心它的持续时间。 要么 如果有什么不同,该函数也会利用。 问题答案: 一些快速的计时运行似乎使第二个选项略有优势: 只是为了好玩而已(Python v2.7.2) 我希望 首先 使用 可读代码 ,然后使用(如果可用)(例如,Python 3.x之前的版本),然后使用和。

  • 我正在处理一个使用Spring批处理的项目。在本项目中,我使用Spring批处理后期绑定,其中我使用JobParameters注入了一个参数(将用作SQL读取器查询的条件的字符串)。目前,我正在使用进行后期绑定,所有操作都非常正常。 这里我要问的是何时使用以及何时使用。我已经阅读了Spring批处理参考文件,并在谷歌上搜索了StepScope和jobscope。我得到的只是: a.StepScop

  • 问题内容: 如果我只想在循环中使用索引,则最好将函数与 还是?即使我根本不使用? 问题答案: 我会使用它,因为它更通用- 例如它将在可迭代对象和序列上工作,并且仅返回对对象的引用的开销并不算大-尽管(对我而言)按您的意图更易于阅读- 在不支持…的物体上折断

  • 问题内容: 我试图了解在多个JavaConfig上下文中放置注释的正确位置在哪里? 考虑以下情形:我在JPAConfig.java和AppConfig.java中具有服务bean集的JPA配置。然后,在RootConfig.java中编写整个应用程序配置。 我在JPAConfig.java中定义事务管理器,并启用对JPA存储库的扫描- 当这些暴露事务行为时,我将其放到JPAConfig上,并且它可

  • 我使用Tensorflow 1.14.0和Keras 2.2.4。以下代码实现了一个简单的神经网络: 20个时代后的最终val\u损失为0.7751。当我取消注释添加批处理规范化层的唯一注释行时,val\u损失变为1.1230。 我的主要问题要复杂得多,但同样的事情也会发生。因为我的激活是线性的,所以我把批处理规范化放在激活之后还是之前并不重要。 问题:为什么批处理规范化帮不上忙?是否有什么可以更