我在 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
.
问题:
- 为什么结果是空的?是因为数据类型不匹配吗?
- 我应该怎么做才能使这个查询工作?我无法将 更改
rdf:datatype
为http://www.w3.org/2001/XMLSchema#string
。有什么选择?
看起来指定数据类型有帮助。
SELECT * WHERE {
?s ?p "uuid-v4"^^xsd:float .
}
但在我选择实例之前,我对该属性一无所知。唯一可用的信息是"uuid-v4"