首页 > 解决方案 > 为什么我在结果中得到重复?(DBpedia sparql 查询)

问题描述

我以为我查询得很好,直到我看到结果出现了几次相同的事件。谁能解释为什么?

询问:

PREFIX  dbo:  <http://dbpedia.org/ontology/>

SELECT ?event ?eventLabel

WHERE
  { ?event  a             dbo:MilitaryConflict ;
    dbo:date  ?date   .

FILTER ( ?date >= "1918-01-01"^^xsd:date && ?date <= "2018-12-31"^^xsd:date ).
FILTER(LANG(?eventLabel) = "nl").
OPTIONAL { ?event rdfs:label ?eventLabel.}}

结果:

http://dbpedia.org/sparql?default-graph-uri=http%3A%2F%2Fdbpedia.org&query=PREFIX++dbo%3A++%3Chttp%3A%2F%2Fdbpedia.org%2Fontology%2F%3E%0D %0A%0D%0A%23SELECT+++++%28+COUNT+%28DISTINCT+%3Fevent%29+AS+%3Fcnt+%29%0D%0ASELECT+%3Fevent+%3FeventLabel%0D%0A%0D%0AWHERE%0D%0A++%7B+%3Fevent++ a+++++++++++++dbo%3AMilitaryConflict+%3B%0D%0A++++dbo%3Adate++%3Fdate+++.%0D%0A%0D%0A++++过滤器+%28+% 3Fdate+%3E%3D+%221918-01-01%22%5E%5Exsd%3Adate+%26%26+%3Fdate+%3C%3D+%222018-12-31%22%5E%5Exsd%3Adate+%29.%0D% 0A++++过滤器%28LANG%28%3FeventLabel%29+%3D+%22nl%22%29.%0D%0A+++可选+%7B+%3Fevent+rdfs%3Alabel+%3FeventLabel.%7D%7D&格式=文本% 2Fhtml&CXML_redir_for_subjs=121&CXML_redir_for_hrefs=&timeout=30000&debug=on&run=+运行+查询+

标签: sparqldbpedia

解决方案


消除重复行——

SELECT ?event ?eventLabel

——应该做——

SELECT DISTINCT ?event ?eventLabel

推荐阅读