即使使用DISTINCT子句,以下SPARQL查询也会在Virtuoso中提供重复项。您可以在DBpedia public endpoint中测试查询。查询的问题是什么?
PREFIX rdf: <http://www.w3.org/1999/02/22-rdf-syntax-ns#>
PREFIX owl: <http://www.w3.org/2002/07/owl#>
PREFIX xsd: <http://www.w3.org/2001/XMLSchema#>
PREFIX dbpedia:<http://dbpedia.org/resource/>
PREFIX dbpedia-owl:<http://dbpedia.org/ontology/>
PREFIX dbpprop: <http://dbpedia.org/property/>
PREFIX vrank:<http://purl.org/voc/vrank#>
SELECT DISTINCT ?person1 ?person1_id ?person2 ?person2_id ?person2_rank
FROM <http://dbpedia.org>
FROM <http://people.aifb.kit.edu/ath/#DBpedia_PageRank>
WHERE {
?person1 rdf:type dbpedia-owl:Person.
?person2 rdf:type dbpedia-owl:Person.
?person1 ?link ?person2.
?person1 dbpedia-owl:wikiPageID ?person1_id.
?person2 dbpedia-owl:wikiPageID ?person2_id.
?person2 vrank:hasRank/vrank:rankValue ?person2_rank.
FILTER (?person1_id != ?person2_id).
FILTER (?person1_id = 308)
} ORDER BY DESC(?person2_rank) ASC(?person2_id)
结果包括看似重复的行,例如:
http://dbpedia.org/resource/Aristotle 308 http://dbpedia.org/resource/Democritus 8211 27.281
http://dbpedia.org/resource/Aristotle 308 http://dbpedia.org/resource/Democritus 8211 27.281
http://dbpedia.org/resource/Aristotle 308 http://dbpedia.org/resource/Heraclitus 13792 26.6914
http://dbpedia.org/resource/Aristotle 308 http://dbpedia.org/resource/Heraclitus 13792 26.6914
http://dbpedia.org/resource/Aristotle 308 http://dbpedia.org/resource/Parmenides 23575 19.6082
http://dbpedia.org/resource/Aristotle 308 http://dbpedia.org/resource/Parmenides 23575 19.6082
答案 0 :(得分:5)
我可以确认结果中似乎有重复。我不完全确定重复项的问题是什么,但我想知道它是否可能与浮点数的不精确相等有关。如果,而不是直接选择浮点数,则选择它们的词汇表格(注意(str(...)as?rank)结尾处) :
SELECT DISTINCT
?person1 ?person1_id
?person2 ?person2_id
(str(?person2_rank) as ?rank)
我没有重复。这可能值得向Virtuoso人员报告错误。对于它的价值,如果你想要排名的浮点值,你可以使用 xsd:float 作为函数将该字符串转换回浮点值,当我这样做时,使用<如下所示强>选择,我仍然可以得到预期的不同结果。
SELECT DISTINCT
?person1 ?person1_id
?person2 ?person2_id
(xsd:float(str(?person2_rank)) as ?rank)
答案 1 :(得分:0)
尽管这对您的dbpedia查询无济于事,但是通过搜索标题来控制模型和数据的人可能想要知道以下信息:
virtuoso double 似乎不受 float
出现的SELECT DISTINCT问题的困扰