2017-02-22 5 views
0

wikidataからムービーのキャストリストを回復しようとしています。 次のように007ドクター・ノオための私のSPARQLクエリは次のとおりです。「元の」注文を回復する

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から見ることができるよう

データベースが必要な順序でデータを持っているため(ショーン・コネリー、ウルスラ・アンドレス、ジョセフ・ワイズマン)でキャストリストを含んでいます。一般的に、キャストリストは請求の順序で与えられ、回復したいものです。

答えて

2

SPARQLはORDER BYを使用して結果の順序を提供し、あなたの例では順序が文の参照数に基づいてhere

を参照してください。

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 
+0

はい、それは私にアルファベット順の俳優を手に入れることができます - しかし、私はそれらをオリジナルのものと大雑把に並べる必要がありますデータ。 –

+0

結果が「重要度」でソートされていることを知る方法を教えてください。これはどんな措置ですか? – AKSW

+0

私の更新された回答を参照してください – AKSW

関連する問題