2016-05-01 5 views
2

ハーバード大学のすべての講師に氏名と学位を問い合わせたいと思います。SPARQLを使用してWikidataのハーバード大学の講師をすべて列挙してください

SELECT ?item ?degree WHERE { 
    ?item <http://www.wikidata.org/prop/direct/P803> <http://www.wikidata.org/entity/Q13371>. 
    ?degree <http://www.wikidata.org/prop/direct/P512> <http://www.wikidata.org/entity/Q13371>. 
} 

残念ながら、それはすべてのレコードを見つけることができません:

これは私がこれまで持っているものです。

一つはhereの周りに再生することができます。

答えて

2

は、いくつかの試みの後には、ウィキデータは、あなたが探しているデータが含まれていないように私には思えます。

まず、?degreeのためのあなたのトリプルパターンが間違っているようです。関係は人である必要があります "度があります" ;あなたが持っているものは "度があります" ハーバード大学です。あなたが試すことができます

クエリが

SELECT ?person ?degree ?relationship WHERE { 
    ?person <http://www.wikidata.org/prop/statement/P512> ?degree . 
    ?person ?relationship <http://www.wikidata.org/entity/Q13371>. 
} 

これは程度が知られており、ハーバード大学との関係されているすべての人が選択されます。返される唯一の関係は「授与される」または「教育された」ということです。どちらも、あなたが探している関係者ではありません。 <http://www.wikidata.org/entity/Q13371> ?rel ?personに戻っても役に立ちません。

だから我々は逃した学位のための別のプロパティがありますしない限り、私はウィキデータはまだあなたに答えを与えることができるとは思いません。

1

私はウィキデータは、必要な情報を持っている疑いがありますが、少なくともウィキデータは、ハーバード大学で採用されていると考える人々のリストを取得することができます。彼らの "ノーダビリティ"ルールが与えられれば、(おそらくいくつかの上級管理者が投げ込まれた)ほぼすべての教授である可能性が高い。

このクエリは、3,000人以上のあなたに少しを与える:

SELECT ?itemLabel WHERE { 
    ?item <http://www.wikidata.org/prop/direct/P108> <http://www.wikidata.org/entity/Q13371>. 

    SERVICE wikibase:label { 
     bd:serviceParam wikibase:language "en" . 
    } 
} 
関連する問題