如何从Wikidata获取假名?

时间:2019-01-04 16:52:34

标签: sparql wikidata

想要提取Bob Dylan的假名。他的Wikidata页面为https://www.wikidata.org/wiki/Q392

一种方法是遍历以下树并解析P742(化名)的值:https://www.wikidata.org/w/api.php?action=wbgetentities&ids=Q392&format=json

但这是很多工作,而且是鲍勃·迪伦(Bob Dylan)所特有的;其他具有化名的人可能具有不同的JSON结构。

此查询适用于他的奖项:

SELECT ?item ?itemLabel ?linkTo ?linkToLabel {
  ?item wdt:P166 wd:Q37922 ;
        wdt:P910 wd:Q8064684 .
  OPTIONAL {
    ?item wdt:P166 ?linkTo ;
            wdt:P31 wd:Q5 } .
  SERVICE wikibase:label { bd:serviceParam wikibase:language "en". }
}

here

缺点是它使用“主题的主要类别”(P910)和目标“类别”(Q8064684)的组合来指定“鲍勃·迪伦”。

对于该查询,我找不到使用他的QID(Q392)的方法。

我不想像Group concat not working中所建议的那样进行文本搜索,因为有多个鲍勃·迪伦(Bob Dylan)。而且许多具有化名的人都没有类别,因此该技术无法推广。

此查询适用于职业,并使用其QID(Q392),而不是“奖励”查询中的Bob Dylan类别(Q8064684)。

SELECT * {
  SERVICE <https://query.wikidata.org/sparql> {
    wd:Q392 wdt:P31 wd:Q5 ;
            wdt:P106 ?occupation
    SERVICE wikibase:label {
      bd:serviceParam wikibase:language "en" .
      ?occupation rdfs:label ?label
    }
  }
}

here

,但是我找不到正确的SPARQL查询来选择假名(即文本),如下所示: https://www.wikidata.org/wiki/Q392

如何编写使用人的标识符(例如Bob Dylan的Q392)并可以配置(轻松切换)以选择“已收到的奖项”(P166),“职业”(P106)的Wikidata SPARQL查询或“假名”(P742)?

0 个答案:

没有答案