1

我遇到了 Wikidata 查询服务的问题。https://query.wikidata.org/ 我想做的是检索所有拥有 GTAA ID 的人的列表。

?q wdt:P1741 ?GTAA_ID.

对于这些人,我想检索以下可选信息:

OPTIONAL{ ?q p:P166 ?award_received
OPTIONAL{ ?award_received pq:P585 ?point_in_time. }
OPTIONAL{ ?award_received pq:P1686 ?for_work.   }
  • 已获得奖励
  • 他们在什么时间获得了这个奖项
  • 他们因什么工作获得了这个奖项

到目前为止,我的查询大部分都有效。但是,例如,在“awards_received”列中,它显示以下文本:

wds:Q76343-ffa729dc-4d10-eb15-3a41-5fa6bf7ed80a

单击此按钮时,它会将我带到有关获得该奖项的人的 Wikidata 页面,而不是该奖项本身的名称。我想做的是检索收到的奖项的标题,而不是标题接收者的链接。

我的代码如下:

SELECT ?GTAA_ID ?award_received ?point_in_time ?for_workLabel
   WHERE
   {
       ?q wdt:P1741 ?GTAA_ID.
       OPTIONAL{ ?q p:P166 ?award_received
       OPTIONAL{ ?award_received pq:P585 ?point_in_time. }
       OPTIONAL{ ?award_received pq:P1686 ?for_work.   }
       . }
       SERVICE wikibase:label { bd:serviceParam wikibase:language "     
       [AUTO_LANGUAGE]". }
   }
4

1 回答 1

3

实际奖励作为ps:P166声明的财产给出:

SELECT ?GTAA_ID ?award ?awardLabel ?point_in_time ?for_workLabel {
  ?q wdt:P1741 ?GTAA_ID.
  OPTIONAL {
    ?q p:P166 ?award_received .
    ?award_received ps:P166 ?award # Here
    OPTIONAL { ?award_received pq:P585 ?point_in_time. }
    OPTIONAL { ?award_received pq:P1686 ?for_work. }
  }
  SERVICE wikibase:label {
    bd:serviceParam wikibase:language "[AUTO_LANGUAGE]".
  }
}

您可以通过DESCRIBE查询获取资源的描述,例如:

DESCRIBE wds:Q78217-3877ABD6-239F-47DA-A8BD-8035D3CBAA7A

于 2018-02-20T12:53:28.340 回答