所以我有此页面ID 12517871:https://fr.wikipedia.org/wiki?curid=12517871
我想从这里https://www.wikidata.org/wiki/Q64007200的底部获取标识符
使用sparql,但我不知道该怎么做。
我知道我必须使用类似
SELECT ?sitelink ?itemLabel ?sitelinkLabel ?article ?cid WHERE {
?sitelink schema:isPartOf <https://fr.wikipedia.org/>.
}
但是然后我不知道如何通过页面ID搜索以及如何获取标识符(imdb,allocine ..)
谢谢
编辑:我正在使用此查询https://w.wiki/GD5,但它随机不返回任何内容。要测试此随机性,请更改“限制”上的数字
SELECT ?propertyclaim ?value ?item WHERE {
hint:Query hint:optimizer "None" .
SERVICE wikibase:mwapi {
bd:serviceParam wikibase:endpoint "fr.wikipedia.org" .
bd:serviceParam wikibase:api "Generator" .
bd:serviceParam mwapi:generator "revisions" .
bd:serviceParam mwapi:pageids "12148688" .
?item_ wikibase:apiOutputItem mwapi:item .
bd:serviceParam wikibase:limit 3
}
BIND (COALESCE(?item_, " ") AS ?item)
?item ?propertyclaim ?value .
?property wikibase:directClaim ?propertyclaim .
?property wikibase:propertyType wikibase:ExternalId .
SERVICE wikibase:label { bd:serviceParam wikibase:language "fr,en". }}
最佳答案
由于您有一个pageid而不是文章标题,因此查询有点麻烦。
您需要使用Mediawiki API Service从SPARQL调出Mediawiki API,以获得Wikipedia页面ID的Wikidata项目ID。
获得商品ID后,您可以查询该商品的所有外部标识符。
在一起,查询看起来像这样:
SELECT ?propertyLabel ?value WHERE {
SERVICE wikibase:mwapi {
bd:serviceParam wikibase:endpoint "fr.wikipedia.org" .
bd:serviceParam wikibase:api "Generator" .
bd:serviceParam mwapi:generator "revisions" .
bd:serviceParam mwapi:pageids "12517871" .
?item wikibase:apiOutputItem mwapi:item .
}
?property wikibase:propertyType wikibase:ExternalId .
?property wikibase:directClaim ?propertyclaim .
?item ?propertyclaim ?value
SERVICE wikibase:label { bd:serviceParam wikibase:language "fr,en". }
}
关于sparql - Wikidata API如何基于Wikipedia页面ID获取一些属性,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/59900180/