【问题标题】:In OWL, is it possible to assert that a class is not "empty"?在 OWL 中,是否可以断言一个类不是“空的”?
【发布时间】:2023-01-24 04:45:57
【问题描述】:

鉴于 OWL 中可用的不同类型的公理,是否可以断言一个类不是“空的”?或者换句话说,我们可以断言至少存在一个属于指定类别的个体吗?

所以,基本上我正在寻找一个等价的:

ObjectAssertNotEmpty(a:SomeClass)

【问题讨论】:

  • 这样的公理会产生什么影响?
  • a:SomeClass SubClassOf not owl:Nothing - 我觉得很奇怪

标签: logic owl semantic-web description-logic


【解决方案1】:

在 RDF 序列化中,所要做的就是识别这样一个人:

[] a a:SomeClass .

我认为 OWL 语法应该能够以这种方式指定它:

ClassAssertion( a:SomeClass a:SomeIndividual )

您在这里称呼个人a:SomeIndividual 并不重要,它很可能是owl:sameAs 任何其他个人。一旦你声明类中有东西,那么类就不是空的。

【讨论】:

  • OWL 中可以使用匿名个体:ClassAssertion( a:SomeClass _:x )(另外,你将类表达式和个体倒置)。使用 IRI 不仅会说“这个类不为空”(就像您提到的第一个三元组一样),它还会说“这个特定的命名事物在类中”。然后其他人可以谈论这个实体,这可能不符合你的口味。
  • @AntoineZimmermann 感谢您的更正和补充信息。
【解决方案2】:

这正是描述逻辑的模型理论基础旨在做的是假设所有概念(或 OWL 类)都不为空。当一个推理器运行在一个本体上时,如果发现一个类是空的,它将给出一个错误。这样的类被认为是不可满足的。这是可满足性检查的基础。

有关详细信息,请参阅An introduction to Description Logics text

【讨论】:

  • 恕我直言,您关于 DL 中的概念不为空的说法是错误的,您复制的文本不支持这种说法。另外,你应该引用你引用的内容,因为说某人在某处写了一些东西并不能提供证据。
  • @AntoineZimmermann 已更新以反映您的痛点。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2021-02-12
  • 2016-01-18
  • 2011-09-24
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多