我有一个查询,我用年份分组来计算。在某些年份中,没有可计算的项目,因此没有结果。我想让 SPARQL 在这些年中返回零计数。
我正在使用 Wikidata 查询服务https://query.wikidata.org,我目前的解决方案是制作一系列值并与实际查询进行联合。对我来说看起来有点笨拙。有没有更好的办法?
#defaultView:BarChart
select ?year ?number_of_pages ?work_label where {
{
select ?year (sample(?pages) as ?number_of_pages) ?work_label
where {
{
select * where {
values (?year ?pages ?work_label) {
("2000" "0"^^xsd:integer "_")
("2001" "0"^^xsd:integer "_")
("2002" "0"^^xsd:integer "_")
("2003" "0"^^xsd:integer "_")
("2004" "0"^^xsd:integer "_")
("2005" "0"^^xsd:integer "_")
("2006" "0"^^xsd:integer "_")
("2007" "0"^^xsd:integer "_")
("2008" "0"^^xsd:integer "_")
("2009" "0"^^xsd:integer "_")
("2010" "0"^^xsd:integer "_")
("2011" "0"^^xsd:integer "_")
("2012" "0"^^xsd:integer "_")
("2013" "0"^^xsd:integer "_")
("2014" "0"^^xsd:integer "_")
("2015" …
Run Code Online (Sandbox Code Playgroud) 我知道如何获得指定电影的费用:
PREFIX xsd: <http://www.w3.org/2001/XMLSchema#>
SELECT ?item (GROUP_CONCAT( ?_cost; SEPARATOR = "~~~") AS ?budget)
WHERE {
VALUES ?selectedMovies { wd:Q24515019 wd:Q20762698 }
?item wdt:P31/wdt:P279* wd:Q11424 filter (?item = ?selectedMovies).
OPTIONAL {
?item wdt:P2130 ?_cost.
}
}
GROUP BY ?item
Run Code Online (Sandbox Code Playgroud)
但是当我尝试以成本换取货币时,我什么也没得到:
PREFIX xsd: <http://www.w3.org/2001/XMLSchema#>
SELECT ?item (GROUP_CONCAT( ?_cost; SEPARATOR = "~~~") AS ?budget)
(GROUP_CONCAT( ?_currency; SEPARATOR = "~~~") AS ?_currency)
WHERE {
VALUES ?selectedMovies { wd:Q24515019 wd:Q20762698 }
?item wdt:P31/wdt:P279* wd:Q11424 filter (?item = ?selectedMovies).
OPTIONAL {
?item wdt:P2130 ?_cost.
?_cost wdt:P2237 …
Run Code Online (Sandbox Code Playgroud) 自Freebase关闭以来,我尝试将基于Freebase的测验生成器改编为Wikidata。我这样做很麻烦,现在我陷入了一个简单的问题:
我如何获得获奖日期以及从人民开始?
例如:我想有2016
和The Revenant
的Leonardo Dicaprio
。我尝试了几次这样的请求:
SELECT ?id ?idLabel ?date ?forWork
WHERE {
wd:Q38111 wdt:P166 ?id .
?id wdt:P585 ?date .
?id wdt:1411 ?forWork .
SERVICE wikibase:label { bd:serviceParam wikibase:language "fr" }
}
Run Code Online (Sandbox Code Playgroud)
问题在于日期(wdt:P58
)与获得的奖励(P166
)相关联,而与Leonardo DiCaprio
nor无关Academy Award for Best Actor
。
这些信息可在Leonardo DiCaprio页面上获得(作为所获得奖项的一部分)
我的另一个问题是Leonardo
从他的名字访问的所有数据都是字符串而不是id。
如果有人可以帮助我,那就太好了!
如果我有文章 URL,如何获取文章元数据?特别是长度、类别和儿子上?我正在开发 Java 应用程序。
我在提取公司总部的位置属性时遇到问题。
我的查询:查找所有公司或子类,并返回一些基本属性,例如 ISIN 和 URL 以及总部位置。
我尝试使用此示例来扩展查询的 Headquarter 部分,以返回位置信息,例如城市、国家以及坐标 latitude 和 longitude。然而,我陷入了坚持价值观或标签的困境。
谢谢
SELECT
?item ?itemLabel ?web ?isin ?hq ?hqloc ?inception
# valueLabel is only useful for properties with item-datatype
WHERE
{
?item p:P31/ps:P31/wdt:P279* wd:Q783794.
OPTIONAL{?item wdt:P856 ?web.} # get item
OPTIONAL{?item wdt:P946 ?isin.} # get item
OPTIONAL{?item wdt:P571 ?inception.} # get item
OPTIONAL{?item wdt:P159 ?hq.}
OPTIONAL{?item p:P159 ?hqItem. # get property
?hqItem ps:P159 wd:Q515. # get property-statement wikidata-entity
?hqItem pq:P17 ?hqloc. # get …
Run Code Online (Sandbox Code Playgroud) 是否可以在SPARQL中反转字符串,所以“ abc”变为“ cba”。可替代地,可以基于相反的字符串排序。
我对在Wikidata Query Service上可以使用的解决方案特别感兴趣。