SPARQL1.1使用Wikidata查询服务的替代品带有后备

问题描述 投票:0回答:0
如何获得使用Wikidata查询服务(或带有来自Wikidata的数据的另一个SPARQL端点)的SPARQL 1.1替代方案? 我正在考虑此查询的替代方案

SELECT ?item ?itemLabel WHERE { BIND(wd:Q133262867 AS ?item) SERVICE wikibase:label { bd:serviceParam wikibase:language "[AUTO_LANGUAGE],mul,en,da". } }

没有插值的标准SPARQL似乎是不可能的。我想?

对于其余语言的后备标签('mul','en','da'),我能想到的模式将是具有多种选择性的一种,而cocce则像

[AUTO_LANGUAGE]

这种模式看起来效率低下和冗长。如果我们想要描述和更多语言

SELECT ?item ?itemLabel WHERE { BIND(wd:Q133262867 AS ?item) OPTIONAL { ?item rdfs:label ?label_mul . FILTER (LANG(?label_mul) = 'mul') } OPTIONAL { ?item rdfs:label ?label_en . FILTER (LANG(?label_en) = 'en') } OPTIONAL { ?item rdfs:label ?label_da . FILTER (LANG(?label_da) = 'da') } BIND(COALESCE(?label_mul, ?label_en, ?label_da) AS ?itemLabel) }

...这仅适用于一个变量。
应该有更好的解决方案吗?

SELECT 
  ?item ?itemLabel ?itemDescription
WHERE {
  BIND(wd:Q133262867 AS ?item)
  SERVICE wikibase:label { bd:serviceParam wikibase:language "[AUTO_LANGUAGE],mul,en,cz,da,fr". }
}

sparql wikidata wikidata-query-service
最新问题
© www.soinside.com 2019 - 2025. All rights reserved.