1

私はウィキデータに本当に慣れていません。ウィキデータは多くの具体化を使用していると思いました。

オバマに関するすべての情報を入手したいとします。DBpedia から実行する場合は、単純なクエリを使用します。 select * where {<http://dbpedia.org/resource/Barack_Obama> ?p ?o .}これにより、Obama をサブジェクトとするすべてのプロパティと値が返されます。基本的に、結果はこのページと同じですがhttp://dbpedia.org/page/Barack_Obama、クエリの結果は必要な形式になっています。

ウィキデータで同じことを行う方法を考えています。これはオバマのウィキデータ ページです: https://www.wikidata.org/wiki/Q76. このページのすべてのステートメントが必要だとしましょう。しかし、このページのほとんどすべてのステートメントは、ランクや資格などがあるという点で具体化されています。たとえば、「教育を受けた」部分については、学校だけでなく、「開始時間」と「終了時間」も含まれています。オバマはもうこれらの学校にいないので、すべての学校は通常としてランク付けされています.

( https://query.wikidata.orgを使用して)真実のステートメントを取得することで、すべての学校を取得できます。

SELECT ?school ?schoolLabel WHERE {
wd:Q76 wdt:P69 ?school .
   SERVICE wikibase:label {
    bd:serviceParam wikibase:language "en" .
   }
 }

上記のクエリは、単純にすべての学校を返します。

学校の開始時刻と終了時刻を取得したい場合は、次のようにする必要があります。

SELECT ?school ?schoolLabel ?start ?end WHERE {
wd:Q76 p:P69 ?school_statement .
?school_statement ps:P69 ?school .
?school_statement pq:P580 ?start .
?school_statement pq:P582 ?end .
   SERVICE wikibase:label {
    bd:serviceParam wikibase:language "en" .
   }
 }

しかし問題は、実際のページを見ずに、?school_statement に pq:P580 と pq:P582、つまり「開始時刻」と「終了時刻」があることをどうやって知るのでしょうか? そして、すべての情報 (具体化を含む) を から取得するにはどうすればよいかという問題に行き着きhttps://www.wikidata.org/wiki/Q76ます。

最終的には、次のようなテーブルが期待されます。 ||predicate||object||objectLabel||qualifier1||qualifier1Value||qualifier2||qualifier2Value||...

4

1 に答える 1