2

ウィキデータの SPARQL エンドポイントで、誰かが大学の教師として雇用されているすべての大学を見つけたいと考えています。これまでのところ、次のクエリを使用して、タイプ (人、役職、雇用者) のトリプルを取得することができました。

PREFIX bd: <http://www.bigdata.com/rdf#>
PREFIX wd: <http://www.wikidata.org/entity/>
PREFIX wikibase: <http://wikiba.se/ontology#>
PREFIX p: <http://www.wikidata.org/prop/>
PREFIX v: <http://www.wikidata.org/prop/statement/>
PREFIX wdt: <http://www.wikidata.org/prop/direct/>
PREFIX pq: <http://www.wikidata.org/prop/qualifier/>

SELECT DISTINCT ?s ?sp ?q ?sLabel ?spLabel ?qLabel WHERE {
  ?s p:P39 ?p .
  ?p v:P39 ?sp .
  ?p pq:P108 ?q .
  SERVICE wikibase:label {
    bd:serviceParam wikibase:language "en" .
  }
}

このクエリは、その人物が保持しているすべての役職を返します。私の場合は、大学教員の職に限定したいと考えています (wd:Q1622272)。

可能であれば、簡単なクエリをお願いします。

4

1 に答える 1

3

変数を、トリプル パターン内の?sp必要な特定の位置 (つまり) に置き換えます。wd:Q1622272?p v:P39 ?sp .

PREFIX bd: <http://www.bigdata.com/rdf#>
PREFIX wd: <http://www.wikidata.org/entity/>
PREFIX wikibase: <http://wikiba.se/ontology#>
PREFIX p: <http://www.wikidata.org/prop/>
PREFIX v: <http://www.wikidata.org/prop/statement/>
PREFIX wdt: <http://www.wikidata.org/prop/direct/>
PREFIX pq: <http://www.wikidata.org/prop/qualifier/>

SELECT DISTINCT ?s ?q ?sLabel ?qLabel WHERE {
  ?s p:P39 ?p .
  ?p v:P39 wd:Q1622272 . # Here
  ?p pq:P108 ?q .
  SERVICE wikibase:label {
    bd:serviceParam wikibase:language "en" .
  }
}
于 2016-09-14T06:32:44.483 に答える