私はこれらのトピックに非常に慣れていません。私は sparql ドキュメントを読み、特定の人の性別を取得しようとしています。たとえば、Larry_Page の性別が必要だとします。lary_page のすべてのプロパティを取得できました (次のページに基づく: http://dbpedia.org/resource/Larry_Page
) が、Gender というプロパティはありません。では、特定の人の性別を取得するにはどうすればよいでしょうか...??? 誰か答えを教えてください。
1 に答える
DBpedia は特に完全なデータセットではありません。このスレッドの回答で概説されている状況と同様に、あなたが見ている人には、いかなる種類の性別プロパティも定義されていない可能性が十分にあります。
ある場合でも、さまざまなプロパティと値で表現できることに注意してください。少なくとも、定義されているデータを使用するには、それらすべてをチェックする必要があります。簡単なチェックで、少なくとも次のプロパティが表示されます。これらのプロパティには、関心のある情報が保存されている可能性があります。
これらの一部はMale
またはなどの他のリソースにリンクしている可能性があることに注意してくださいFemale
。一方、他のものは単にmale
またはなどの文字列を含んでいるだけですfemale
(FOAF 仕様では明示的に
通常、必ずしも「男性」または「女性」であるとは限りません
)。
たとえば、次のクエリは、Scheherazadeの性別を返します。
SELECT ?gl
WHERE {
dbpedia:Scheherazade dbpedia-owl:gender ?g.
?g rdfs:label ?gl.
FILTER(lang(?gl) = "en").
}
同様に、次のクエリは、多数の人の名前と性別を一覧表示します。
SELECT ?pn ?gl
WHERE {
?person dbpedia-owl:gender ?g.
?person a dbpedia-owl:Person.
?person dbpprop:name ?pn.
{
?person dbpedia-owl:gender dbpedia:Male.
} UNION {
?person dbpedia-owl:gender dbpedia:Female.
}.
?g rdfs:label ?gl.
FILTER(lang(?gl) = "en").
}
ただし、このクエリで取得できるのは、それぞれのタイプと性別の属性が設定されている人物のみです。ラリー ペイジは、現在のデータセットにはそれぞれの性別プロパティがないため、そのリストに表示されることはありません。別の実用的な例として、次の非常によく似たクエリを参照してください。これは、別の (空ではない) リストを返します。
SELECT ?pn ?gl
WHERE {
?person dbpedia-owl:gender ?g.
?person a dbpedia-owl:Person.
?person dbpprop:name ?pn.
{
?person dbpedia-owl:gender dbpedia:Man.
} UNION {
?person dbpedia-owl:gender dbpedia:Woman.
}.
?g rdfs:label ?gl.
FILTER(lang(?gl) = "en").
}
さらに別のクエリは、さらに別のリストを返します。
SELECT ?pn ?gl
WHERE {
?person ?gender ?gl.
?person a dbpedia-owl:Person.
?person dbpprop:name ?pn.
FILTER((?gl = "Female"@en) || (?gl = "Male"@en)).
}
編集: DBpedia のデフォルトの名前空間プレフィックスは、この回答を書いてから変更されました。マッピングは次のとおりです。
dbpedia
->http://dbpedia.org/resource/
(現在dbr
)dbpedia-owl
->http://dbpedia.org/ontology/
(現在dbo
)dbpprop
->http://dbpedia.org/property/
(現在dbp
)