首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >恢复“原始”订单

恢复“原始”订单
EN

Stack Overflow用户
提问于 2017-02-22 17:37:32
回答 1查看 93关注 0票数 0

我正在尝试从维基数据中恢复电影的演员名单。我对Dr. No的sparql查询如下:

代码语言:javascript
复制
SELECT ?actor ?actorLabel WHERE {
  ?movie wdt:P161 ?actor .
  SERVICE wikibase:label { bd:serviceParam wikibase:language "en". }
  FILTER(?movie = wd:Q102754)
}
LIMIT 1000

我可以在query.wikidata.org上试用,但结果不是我想要的顺序。有“肖恩·康纳利”、“泽娜·马歇尔”、“乌苏拉·安德丝”。

正如您在https://www.wikidata.org/wiki/Q102754中看到的那样,数据库按要求的顺序包含了演员列表(Sean Connery,Ursula Andress,Joseph Wiseman)。通常,演员列表是按计费顺序给出的,这是我想要恢复的。

EN

回答 1

Stack Overflow用户

发布于 2017-02-22 20:19:33

SPARQL通过使用ORDER BY对结果进行排序,请参阅here

示例中的排序基于语句的引用次数。下面是一个未优化的版本,它可以实现您想要的功能:

代码语言:javascript
复制
SELECT ?actor ?actorLabel WHERE {
  ?movie p:P161 ?statement .
  ?statement ps:P161 ?actor .
  OPTIONAL {?statement prov:wasDerivedFrom ?ref . }
  SERVICE wikibase:label { bd:serviceParam wikibase:language "en". }
  FILTER(?movie = wd:Q102754)
}
group by ?movie ?actor ?actorLabel
ORDER BY DESC(count(?ref)) ASC(?actorLabel)
LIMIT 1000
票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/42387768

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档