1

我在 Protege 中有一个本体。

当我添加一个像 的对象属性X worksFor Y,然后将 rdf 加载到 graphdb 时,它会生成 3 个带有subject = blank node,的三元组property = owl:someValuesFrom, owl:onProperty, owl:rdfType,然后添加一个状态为 的三元组X rdf:subClassOf Y

这个对吗?

这背后的逻辑是什么?


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

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

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

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

4

1 回答 1

1

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

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

换句话说,您说每个客户都p为某个空白节点工作_,例如_客户公司。如果您知道描述逻辑,请将其阅读为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],因此这个空白节点是一个subclassOf owl:Restriction(它是一个特定的 OWL 类)[3]。此限制涉及属性worksFor[2] 并声明其范围在此特定情况下必须为empresaCliente[1]。

进一步阅读:

于 2021-04-10T09:37:25.567 回答