Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/ionic-framework/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Sparql 如何从Wikidata获取笔名?_Sparql_Wikidata - Fatal编程技术网

Sparql 如何从Wikidata获取笔名?

Sparql 如何从Wikidata获取笔名?,sparql,wikidata,Sparql,Wikidata,想提取鲍勃·迪伦的笔名。他的维基数据页面是 一种方法是遍历以下树并解析P742(笔名)的值: 但这是很多工作,特别是鲍勃·迪伦;其他使用假名的人可能有不同的JSON结构 此查询适用于他的奖项: SELECT ?item ?itemLabel ?linkTo ?linkToLabel { ?item wdt:P166 wd:Q37922 ; wdt:P910 wd:Q8064684 . OPTIONAL { ?item wdt:P166 ?linkTo ;

想提取鲍勃·迪伦的笔名。他的维基数据页面是

一种方法是遍历以下树并解析
P742
(笔名)的值:

但这是很多工作,特别是鲍勃·迪伦;其他使用假名的人可能有不同的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". }
}
如所见

缺点是它使用“主题的主要类别”(
P910
)和目标“类别”(
Q8064684
)的组合来指定“Bob Dylan”

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

我不想像中建议的那样进行文本搜索,因为有不止一个Bob Dylan。而且,许多使用笔名的人不会有一个类别,所以这项技术无法推广

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

选择*{
服务{
wd:Q392 wdt:P31 wd:Q5;
wdt:P106?职业
服务维基库:标签{
bd:serviceParam wikibase:language“en”。
?职业RDF:标签?标签
}
}
}
如所见

但是我找不到正确的SPARQL查询来选择笔名(即文本),如下所示:


如何编写使用个人标识符(例如Bob Dylan的Q392)的Wikidata SPARQL查询,并且可以配置(轻松切换)以选择“获奖”(第166页)、“职业”(第106页)或“笔名”(第742页)?

另一个被语句弄糊涂的用户…请参阅语句排名,“最佳”首选:
SELECT*{SERVICE{wd:Q392 wdt:P31 wd:Q5;p:P742?语句。?语句ps:P742?值。?语句wikibase:rank?rank。可选{语句a?best.}}}
,因此您可以始终使用上面的查询来获取所有数据,而不仅仅是首选数据。查询的积分归StanislavKralin()是的,我不知道如何处理语句或truthy语句。让我研究一下您的评论,以确保我理解并能将其付诸实施-返回给您。@AKSW请发布您的答案,我将接受它
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
    }
  }
}