Wikidata SPARQL查询在筛选英文标签后返回不同的结果
我对Wikidata SPARQL查询的理解是,您可以在中筛选英文标签的结果Wikidata SPARQL查询在筛选英文标签后返回不同的结果,sparql,wikidata,Sparql,Wikidata,我对Wikidata SPARQL查询的理解是,您可以在中筛选英文标签的结果 添加服务wikibase:label{bd:serviceParam wikibase:language“en”}以调用标签服务;或 为每个输出标签添加?thing rdfs:label?thingLabel过滤器(lang(?thingLabel)=“en”) 我正在运行一个查询,试图以英语获取实体的所有属性。我遵循了一个原则,提出了两个问题 查询1:获取返回的47结果 SELECT?itemLabel?propLa
服务wikibase:label{bd:serviceParam wikibase:language“en”}
以调用标签服务;或?thing rdfs:label?thingLabel过滤器(lang(?thingLabel)=“en”)
SELECT?itemLabel?propLabel?语句\u属性\u对象标签
在哪里{
值(?项){(wd:Q24)}
项目属性[?声明属性?声明属性对象]。
?道具维基库:索赔?财产。
?prop wikibase:statementProperty?语句属性。
#呼叫标签服务。
服务wikibase:标签{bd:serviceParam wikibase:语言“en”}
}订购人?propLabel
查询2:返回35个结果
SELECT?itemLabel?propLabel?语句\u属性\u对象标签
在哪里{
值(?项){(wd:Q24)}
项目属性[?声明属性?声明属性对象]。
?道具维基库:索赔?财产。
?prop wikibase:statementProperty?语句属性。
#为每个标签调用标签服务。
?项目rdfs:label?项目标签过滤器(lang(?itemLabel)=“en”)。
语句属性对象rdfs:标签?语句属性对象过滤器(lang(?语句属性对象过滤器)=“en”)。
?PropRDFS:label?propLabel过滤器(lang(?propLabel)=“en”)。
}订购人?propLabel
为什么第二个查询返回的行更少?感谢您的帮助。我认为原因是
wikibase:label
服务返回?statement\u property\u obj
任何值的标签结果,即使该值没有定义实际的rdfs:label
(它似乎只返回?statement\u property\u obj
本身的实际值)
例如,请参见查询1中的第一个结果,其中?statement\u property\u objLabel
绑定到主题/Jack\u Bauer
。这不是数据中实际的rdfs:label
属性的值,而是标签服务提供的“回退”值。因此,明确查询rdfs:label
属性的查询2不会返回这个(和类似的)结果