0

OWL中,是否可以查询没有属性的类?

假设我有一个对象属性 R,并且我想检索所有没有属性 R 的类。另外,假设我已经用闭包关闭了所有类。

我正在尝试这个:

假设有问题的属性是 hasProperty,我的查询是这样的

hasProperty only Nothing

但它不起作用

4

2 回答 2

0

“没有属性的类”是什么意思?

从语义上讲,一个类是一组个体,一个属性是一组个体对。鉴于这两组,“类有/没有属性”是什么意思?

关于您的示例查询

hasProperty only Nothing

让我们稍微重写一下,以便我们可以用自然语言来思考它。这可以更好地了解此查询的含义。

首先让我们重命名hasPropertyfollows(或任何英语动词),然后我们有:

follows only Nothing

这在语义上等价于

follows only (not Thing)

这在语义上等同于

not (follows some Thing)

现在我们已经摆脱了onlyOWL 中令人困惑的部分,最好避免使用。所以现在我们可以用英语将查询描述为:

those who do not follow anything

或者

who does not follow anything?

或更正式地

which individuals of the ontology are known
    not to have a follow relationship to any other individual

例如,如果您的本体声明

John does not follow Mary.
John does not follow himself.
Every individual in the ontology is either John or is Mary.

那么John将是上述查询的答案。如果要求的限制适用于(命名的)个人组,您还可以获得命名类作为查询答案。在任何情况下,必须满足以下条件:如果您断言答案(或其成员)确实与某个人有follow关系,那么它将使本体不一致。

于 2012-12-17T23:23:27.450 回答
0

OWL 没有任何方法可以查询数据。SPARQL 用于此目的。因此,查找所有不具有属性 :R 的类定义的 SPARQL 查询将是:

SELECT ?cls
WHERE {
   ?cls a owl:Class .
   FILTER NOT EXISTS {?cls :R ?o}
}
于 2016-03-16T18:23:44.303 回答