1

ウィキペディアで他の人へのリンクがあるすべての「人」のリストを引き出したいと思います。

たとえば、GeorgeHWBushは彼の略歴に次の文を持っています。

"Bush was born in Milton, Massachusetts, to Senator 
Prescott Bush and Dorothy Walker Bush."

現在、ドロシーブッシュは自分のページにハイパーリンクされています。次のようなリストを取得できますか?

George H. W. Bush | Dorothy Walker Bush
George H. W. Bush | Babe Ruth
George H. W. Bush | Bill Clinton

そしてこれを拡張するために..ウィキペディアのすべての人のために?これを出力するには、明らかにビットサイズのチャンクに分割する必要がありますが、リンクされた人だけを選択するようにこれをコーディングする方法がわかりません。ありがとう

4

1 に答える 1

2

開始する1つの方法は、Personタイプの両方である接続されたリソースを検索することです。dbpediaのWebベースのクエリフォームを使用できます。

SELECT ?person1 ?p ?person2
WHERE { 
   ?person1 ?p ?person2. 
   ?person1 a foaf:Person. 
   ?person2 a foaf:Person.
}
ORDER BY ?person1
LIMIT 10
OFFSET 0

ORDER BYキーワードを使用し、その後の値を反復処理することで、「このデータをチャンクに分割」できますOFFSET(例:10、20、30、...)。これらの個別のクエリのすべての結果を保存し、後でそれらを組み合わせて完全な結果を取得する必要があります。

dbpediaで特定の種類の対人関係のみを探している場合、次のクエリは2人を接続するために使用されるすべてのプロパティを提供します。

SELECT DISTINCT ?p
WHERE { 
   ?person1 ?p ?person2. 
   ?person1 a foaf:Person. 
   ?person2 a foaf:Person.
}

これらのプロパティの1つまたは複数を選択します。http://dbpedia.org/property/married、次のクエリを使用して、このプロパティに関連する人物のリストを取得します。

SELECT ?person1 ?person2
WHERE { 
   ?person1 <http://dbpedia.org/property/married> ?person2. 
   ?person1 a foaf:Person. 
   ?person2 a foaf:Person.
}
ORDER BY ?person1
LIMIT 10
OFFSET 0

ご覧のとおり、dbpediaでのプロパティの使用法はかなり異質であるため、必要なものを取得するには多少の努力が必要になる場合があります。

これが出発点として役立つことを願っています。

于 2012-12-19T02:33:19.297 に答える