将对象属性添加到 ontology 时生成的空白节点

Blank nodes generating when adding object properties to the ontology

我在 Protege 中有一个 ontology。

当我添加一个对象属性如X worksFor Y,然后将rdf加载到graphdb时,它生成了3个三元组subject = blank nodeproperty = owl:someValuesFrom, owl:onProperty, owl:rdfType,然后它添加一个声明 X rdf:subClassOf Y.

的三元组

这是正确的吗?

这背后的逻辑是什么?


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

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

这是从 ontology.

加载 rdf 后我在 GraphDb 中得到的结果

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

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

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

表示的复杂class

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

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

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

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 class)[3]。此限制涉及 属性 worksFor [2] 并声明其范围,在这种特殊情况下,必须是 empresaCliente [1].

延伸阅读: