0

我在 RDF/XML 中有一个本体实体实例,如下所示:

<owl:NamedIndividual rdf:about="http://example.org#x1">
    <rdf:type rdf:resource="http://example.org/Example"/>
    <ex:amount rdf:datatype="http://www.w3.org/2001/XMLSchema#float">uuid-v4</ex:amount>
    <rdfs:label xml:lang="en">An example instance</rdfs:label>
</owl:NamedIndividual>

我需要选择这个实例,只给出它的<ex:amount>值,在这种情况下,它是一个字符串。我的 SPARQL 查询如下所示:

SELECT * WHERE {
    ?s ?p "uuid-v4" .
}

可以看到,指定的值"uuid-v4"是字符串,但<ex:amount>属性的数据类型是float.

问题:

  1. 为什么结果是空的?是因为数据类型不匹配吗?
  2. 我应该怎么做才能使这个查询工作?我无法将 更改rdf:datatypehttp://www.w3.org/2001/XMLSchema#string。有什么选择?

看起来指定数据类型有帮助。

SELECT * WHERE {
    ?s ?p "uuid-v4"^^xsd:float .
}

但在我选择实例之前,我对该属性一无所知。唯一可用的信息是"uuid-v4"

4

0 回答 0