对于熟悉 SPARQL 的人(我不是)来说,这应该相当容易。我试图在此查询中返回“score_by”的限定符/属性值,但它显示为空白:
SELECT ?item ?itemLabel ?IMDb_ID ?_review_score ?_score_by WHERE {
?item wdt:P345 "tt3315342".
SERVICE wikibase:label { bd:serviceParam wikibase:language "en". }
OPTIONAL { ?item wdt:P345 ?IMDb_ID. }
OPTIONAL { ?item wdt:P444 ?_review_score. }
OPTIONAL { ?item ps:P447 ?_score_by. }
}
Run Code Online (Sandbox Code Playgroud)
如何提取给定项目标签的描述?例如,对于 Barack Obama (Q76)链接,有一个列出的描述:“美国第 44 任总统”。我该如何检索这个?我可以使用以下方法提取“标签”:
PREFIX rdfs: <http://www.w3.org/2000/01/rdf-schema#>
PREFIX wd: <http://www.wikidata.org/entity/>
#Cats
SELECT ?label
WHERE
{
wd:Q76 rdfs:label ?label .
FILTER (langMatches( lang(?label), "EN" ) )
SERVICE wikibase:label { bd:serviceParam wikibase:language "[AUTO_LANGUAGE],en". }
}
Run Code Online (Sandbox Code Playgroud)
(虽然这给了我 3 次相同的结果......)我如何获得描述?
这是我的 SPARQL 查询,用于列出数学家及其维基百科链接和图像:
SELECT DISTINCT ?pers ?persLabel ?nameLabel ?persDescription ?link ?img
WHERE {
?pers wdt:P31 wd:Q5.
{?pers wdt:P101* wd:Q395} union {?pers wdt:P106* wd:Q170790}.
?pers wdt:P734 ?name.
optional {?link schema:about ?pers; schema:isPartOf <https://en.wikipedia.org/>. }
optional {?pers wdt:P18 ?img. }
SERVICE wikibase:label { bd:serviceParam wikibase:language "en". }
}
limit 100
Run Code Online (Sandbox Code Playgroud)
现在我接下来想要的是使用某种流行度索引按最著名/流行的条目过滤列表。在 Wikimedia Action API 查询中,我将使用页面查看计数属性来获取一段时间内(例如 60 天)的平均查看次数,从而估算出文章的用户受欢迎程度,例如
但我不知道维基数据是否也存在这样的指标,或者是否有任何其他索引可用于此目的。
我正在尝试使用API从维基数据ID获取不同的维基百科URL(即en.wikipedia.org/wiki/Page_Name).
例如,给定URL http://www.wikidata.org/wiki/Q7349我希望获得所有语言的维基百科文章的链接(en.wikipedia.org/wiki/Joseph_Haydn,es.wikipedia.org/wiki/Joseph_Haydn等).ATM我正在使用https://github.com/freearhey/wikidata:
$wdAPI = new \Wikidata\Wikidata();
$resp = $wdAPI->entities('Q7349');
Run Code Online (Sandbox Code Playgroud)
但后来我不知道如何从实体()给出的对象中获取WP URL.我想这应该是一个简单的任务,但几个小时后我仍然无法弄清楚如何做到这一点,如果有以前使用WP API经验的人能指出我正确的方向,我将非常感激:)
这个关于wikidata的sparql查询显示德国(Q183)的所有地方,其名称以-ow或-itz结尾.
我想扩展它以寻找德国和奥地利的地方.
我尝试将第8行修改为:
wdt:P17 (wd:Q183 || wd:Q40);
Run Code Online (Sandbox Code Playgroud)
为了寻找奥地利的地方(Q40),但这不是一个有效的查询.
有什么方法可以将查询扩展到包含其他国家/地区?
如何查询远程端点(如DBPedia或Wikidata的端点)并在本地图形中插入生成的三元组?到目前为止,我知道有INSERT,ADD,COPY等命令可用于此类任务.我不明白的是如何在更新本地图表时寻址远程端点.有人可以提供最低限度的例子或主要步骤吗?
我在Windows上使用Apache Jena Fuseki v2,这是我目前的查询:
PREFIX wdt: <http://www.wikidata.org/prop/direct/>
PREFIX p: <http://www.wikidata.org/prop/>
PREFIX wd: <http://www.wikidata.org/entity/>
INSERT
{ GRAPH <???> { ?s ?p ?o } } #don't know what to insert here for "GRAPH"
WHERE
{ GRAPH <???> #don't know what to insert here for "GRAPH" either
{ #a working example query for wikidata:
?s wdt:P31 wd:Q5. #humans
?s wdt:P54 wd:Q43310. #germans
?s wdt:P1344 wd:Q79859. #part of world cup 2014
?s ?p ?o.
}
}
Run Code Online (Sandbox Code Playgroud)
我正在查询的本地端点是 …
我正在使用Wikidata查询服务(https://query.wikidata.org)获得有关电影和电视节目的详细信息。
我知道我可以查询属于电影实例的所有项目的类型(在下面查询),但是我只想查找特定的电影。
SELECT ?item ?itemLabel ?genreLabel
WHERE
{
?item wdt:P31 wd:Q11424 .
OPTIONAL {
?item wdt:P136 ?genre
}
SERVICE wikibase:label { bd:serviceParam wikibase:language "[AUTO_LANGUAGE],en" }
} LIMIT 10
Run Code Online (Sandbox Code Playgroud)
我有电影的Wikidata项目编号(Q ###)的列表,电视节目我想获取其属性。我需要查询这些特定的电影或电视节目。例如,如果我知道Wikidata中的《星球大战第四集:新希望》是Q17738,那么如何查询其特定属性?
我尝试根据其名称的一部分找到一个城市(通常是https://en.wikipedia.org/wiki/Lavo%C3%BBte-sur-Loire,一个法国城市)
我找到的唯一方法是首先通过以下请求请求"Lavoute"(没有重音).
它返回5个链接,然后使用此信息通过所有结果请求通过具有良好价值的具有类似结果的所有结果(具有属性P281意味着它是一个城市)
有更简单的方法吗?
我正在遍历users
大约 1000 个条目的列表,如下所示:
def wikidata_user_lookup(id_str):
q = f'''
SELECT ?item ?itemLabel ?kind ?kindLabel
WHERE
{{
?item p:P2002 ?twitter .
?item wdt:P31 ?kind .
?twitter pq:P6552 "{id_str}" .
SERVICE wikibase:label {{ bd:serviceParam wikibase:language "[AUTO_LANGUAGE],en". }}
}}
'''
sparql.setQuery(q)
sparql.setReturnFormat(JSON)
results = sparql.query().convert()
results_df = pd.io.json.json_normalize(results['results']['bindings'])
return results_df
for user in users:
res = wikidata_user_lookup(user)
Run Code Online (Sandbox Code Playgroud)
所以我提交了大约 1000 个查询,一个接一个。据我所知,我没有并行运行多个查询,所以不应该允许这样做吗?我得到HTTPError: HTTP Error 429: Too Many Requests
. 处理这种情况的正确方法是什么?
我正在寻找使用维基数据按人口重新创建德克萨斯州城市列表。
我看到我可以用这个查询按人口做状态:
SELECT DISTINCT ?state ?stateLabel ?population
{
?state wdt:P31 wd:Q35657 ;
wdt:P1082 ?population .
SERVICE wikibase:label { bd:serviceParam wikibase:language "en" }
}
GROUP BY ?state ?population ?stateLabel
ORDER BY DESC(?population)
Run Code Online (Sandbox Code Playgroud)
德克萨斯州的 id 是 wd:Q1439
所以我尝试了以下方法:
SELECT ?country ?countryLabel ?state ?stateLabel ?city ?cityLabel ?population
WHERE
{
# ?state wdt:P31 wd:Q35657 . # Give me an american state
?state wdt:P31 wd:Q1439 . # that state is is Texas
?city wdt:P31 wd:Q515 . # it is …
Run Code Online (Sandbox Code Playgroud)