2016-07-12 1 views
1

DBpediaで利用可能なすべてのPersonを取得するSPARQLクエリを作成しています。私のクエリがある - >DBPediaで利用可能なPersonをすべて取得するSPARQLクエリはすべてではなく、一部のPersonデータのみを表示しています

PREFIX rdf: <http://www.w3.org/1999/02/22-rdf-syntax-ns#> 
PREFIX dbo: <http://dbpedia.org/ontology/> 
PREFIX dbp: <http://dbpedia.org/property/> 

SELECT ?resource ?name 
WHERE { 
    ?resource rdf:type dbo:Person; 
       dbp:name ?name. 
    FILTER (lang(?name) = 'en') 
    } 
ORDER BY ASC(?name) 

私はHTML/CSV /スプレッドシート形式として出力を取っているときには、周りに10000行を与えています。 しかし、私は、クエリを与えているとき、それは与えて

PREFIX rdf: <http://www.w3.org/1999/02/22-rdf-syntax-ns#> 
PREFIX dbo: <http://dbpedia.org/ontology/> 
PREFIX dbp: <http://dbpedia.org/property/> 

SELECT COUNT(*) 
WHERE{ 
    ?resource rdf:type dbo:Person; 
       dbp:name ?name. 
    FILTER (lang(?name) = 'en') 
} 

合計数を取得する - > 1783404

は、誰もがDBpediaので利用可能な人のすべての行を取得するためのソリューションを提案することはできますか?

答えて

2

DBPediaはサーバーの負荷が大きく、負荷が大きいクエリをサーバーにオーバーロードしないように十分にスマートになっています。結果を注文すると、LIMITOFFSETを使用して10000の結果を得ることができます。 10000の結果の第2のセットを取得し、これを使用します。

PREFIX rdf: <http://www.w3.org/1999/02/22-rdf-syntax-ns#> 
PREFIX dbo: <http://dbpedia.org/ontology/> 
PREFIX dbp: <http://dbpedia.org/property/> 

SELECT ?resource ?name 
WHERE { 
    ?resource rdf:type dbo:Person; 
      dbp:name ?name. 
    FILTER (lang(?name) = 'en') 
} 
ORDER BY ASC(?name) 
LIMIT 10000 OFFSET 10000 

実は、DBpediaのはLIMITが本当に必要ではありません10000試合に結果を制限しているため。

+0

@allここではこれが有効です:これがどのくらいの頻度でここに質問の理由があるのか​​わかりませんが、何かを粘着性にする方法はありますか?たぶん、人々はこの答えを見つけやすくなります。 – AKSW

関連する問題