2

如果我在其 rdfs:range 中有任何具有某些 XMLSchema 数据类型的属性,Jena 推理器(在我的例子中为 OWL_MEM_RULE_INF 规范)会自动将 rdfs:Resource 添加到该范围。这是为什么?这是否意味着我可以从字面上使用任何东西作为该属性的值?

例如:

<rdf:RDF xmlns="http://mre.kiv.zcu.cz/ontology/2013/01/dasta.owl#"
    xml:base="http://mre.kiv.zcu.cz/ontology/2013/01/dasta.owl"
    xmlns:rdfs="http://www.w3.org/2000/01/rdf-schema#"
    xmlns:owl="http://www.w3.org/2002/07/owl#"
    xmlns:xsd="http://www.w3.org/2001/XMLSchema#"
    xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
    xmlns:ds="http://mre.kiv.zcu.cz/ontology/2013/01/dasta.owl#">

<owl:DatatypeProperty rdf:about="&ds;date">
    <rdfs:label>date</rdfs:label>
    <rdfs:label xml:lang="en">date</rdfs:label>
    <rdfs:range rdf:resource="&xsd;dateTime"/>
</owl:DatatypeProperty>

</rdf:RDF>

询问:

PREFIX ds:   <http://mre.kiv.zcu.cz/ontology/2013/01/dasta.owl#>
PREFIX rdfs: <http://www.w3.org/2000/01/rdf-schema#>
SELECT ?r
WHERE
{
    ds:date rdfs:range ?r
}

输出:

---------------------------------------------------
| r                                               |
===================================================
| <http://www.w3.org/2001/XMLSchema#dateTime>     |
| <http://www.w3.org/2000/01/rdf-schema#Resource> |
---------------------------------------------------
4

2 回答 2

2

首先,OWL_MEM_RULE_INF 是一个 OntModelSpec,它将使用一个推理器,它比 OWL DL 推理器 OntModelSpec 对 OWL 结构做更多的事情。这意味着您可能有一些超出您预期的推论,但这可能不是太大的问题。

不过,更重要的是,我认为您对某物成为属性的范围(或域)意味着什么存在误解。我的依据是:

Jena 推理器...将 rdfs:Resource 添加到该范围。……这是否意味着我可以将任何东西用作该属性的值?

我之前在answers.semanticweb.com 上的这个答案中写过这个话题,但这就是情况的本质。在 OWL 中,当我们说 R 是属性 P 的范围时,我们的意思是每当我们看到一个谓词为 P 的三元组时,我们就可以推断出该对象是 R 的一个元素。也就是说,我们有这个推断规则:

X P Y      P rdfs:range R
-------------------------
    Y rdf:type R

如果你有一些属性 P,并且 P 是一个对象属性,那么所有以 P 作为谓词的三元组都应该有一个 OWL 个体作为对象。因为每个 OWL 个体都是一个 rdfs:Resource,所以说 rdfs:Resource 是 P 的一个域是恰当的。

于 2014-04-09T20:24:35.990 回答
0

好的,我发现我误解了整个 rdfs:range 和 rdfs:domain 概念。

---------------------------------------------------
| r                                               |
===================================================
| <http://www.w3.org/2001/XMLSchema#dateTime>     |
| <http://www.w3.org/2000/01/rdf-schema#Resource> |
---------------------------------------------------

这个结果并不意味着我可以使用任何“作为值”的属性。这意味着该值将是 dateTime 和 Resource 类型——两者同时出现。属性的范围是其 rdfs:range 中提到的类型的交集(不是联合)。

于 2014-04-10T06:51:36.547 回答