SPARQL查询无法检索的Wikidata条目?

问题描述 投票:0回答:1

我正在尝试运行一个简单的查询,以其英文标签查找一个项目。由于某些原因,某些条目没有显示。多数都很好,但有些却不是。我无法查明原因。

示例:oyster bed。这是条目:https://www.wikidata.org/wiki/Q65953972

这是查询:

SELECT distinct ?item ?itemLabel ?itemDescription WHERE {  
        ?item ?label 'oyster bed'@en.  
        ?article schema:about ?item .
        ?article schema:inLanguage 'en' .
        SERVICE wikibase:label { bd:serviceParam wikibase:language 'en'. }
  }

而我一无所获。

oyster相同的查询会产生预期的结果。

我在做什么错?

sparql wikidata
1个回答
0
投票

@ UninformedUser的提示帮助。

作为SPARQL新手,我没有意识到?article是隐式的JOIN。

SELECT distinct ?item ?itemLabel ?itemDescription WHERE {  
        ?item ?label 'oyster bed'@en.  
        OPTIONAL { ?article schema:about ?item .
        ?article schema:inLanguage 'en' . }
        SERVICE wikibase:label { bd:serviceParam wikibase:language 'en'. }
  }

如果需要文章,则使用它,但是如果没有真正的需要,则可以将查询简化为:

SELECT distinct ?item ?itemLabel ?itemDescription WHERE {  
        ?item ?label 'oyster bed'@en.  
        SERVICE wikibase:label { bd:serviceParam wikibase:language 'en'. }
  }
© www.soinside.com 2019 - 2024. All rights reserved.