【问题标题】:Blank nodes generating when adding object properties to the ontology向本体添加对象属性时生成的空白节点
【发布时间】:2021-07-01 20:51:39
【问题描述】:

我在 Protege 中有一个本体。

当我添加像 X worksFor Y 这样的对象属性,然后将 rdf 加载到 graphdb 时,它会生成 3 个三元组,分别是 subject = blank nodeproperty = owl:someValuesFrom, owl:onProperty, owl:rdfType,然后它添加一个声明 X rdf:subClassOf Y 的三元组。

这对吗?

这背后的逻辑是什么?


这是我正在做的一个例子:

这是 Protege 中的本体。我制作了一个小版本来解决这个特定问题。我将其保存为 rdf,然后将其加载到 GraphDb 中

这是我从本体加载 rdf 后在 GraphDb 中得到的结果。

我希望这有助于更好地理解这个问题。

【问题讨论】:

  • 对我来说这没有意义。请发布整个本体或其中最相关的部分。
  • 嗨,我用本体的截图和 Graphdb 中的查询更新了问题。谢谢!

标签: ontology graphdb blank-nodes object-property


【解决方案1】:

您获得的查询输出非常有意义。

通过声明personaCliente(主语)是SubClass Of(谓语)worksFor some empresaCliente(宾语),您是说如果p 是客户,那么它必须适用于某些客户公司。 注意对象不是简单的超类,而是用property restriction表示的复杂类。

换句话说,您说每个客户人p 都为某个空白节点_ 工作,因此_ 是一家客户公司。如果您知道description logics,请将其读作persona ⊑ ∃worksFor.empresaCliente

现在,通过查询 ?s ?p ?o,您正在搜索您的本体的所有可能三元组。

让我们关注以下结果子集:

row  s                p                   o
1    _:node31         owl:someValuesFrom  :empresaCliente
2    _:node31         owl:onProperty      :worksFor
3    _:node31         rdf:type            owl:Restriction
9    :personaCliente  rdfs:subClassOf     _:node31

这串三元组的意思同上:每一个personaCliente是一个subClassOf某个空白节点[9],这样这个空白节点就是一个subclassOfowl:Restriction(这是一个特定的OWL类) [3]。此限制涉及属性worksFor [2] 并声明其范围,在这种特殊情况下,必须是empresaCliente [1]。

进一步阅读:

【讨论】:

  • 非常感谢您的解释!!没有办法以更清晰的方式表达这一点。我完全明白这个想法,而且我也很清楚我应该在背后的理论中加强我的背景知识。
  • 唯一困扰我的是,在没有自然子类/超类(例如汽车的汽车子类)的两个不同类之间建立关系会变成其中之一在另一个的子类中,通过空白节点。但我想这就是它的工作原理,因为当我指定限制时,Protege 将它放在子类槽中,就像直接子类关系一样。再次感谢您!
猜你喜欢
  • 2021-01-06
  • 2015-06-22
  • 1970-01-01
  • 2017-12-31
  • 1970-01-01
  • 2012-04-19
  • 1970-01-01
  • 1970-01-01
  • 2023-03-14
相关资源
最近更新 更多