所以我有此页面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/

10-13 01:12