query-baa42cf03af64143942ff830f9218433

rq turtle/ttl

私がこれを書いている2016年10月の時点では、上のクエリが返すのは2,815件の結果だけです。実際の芸術作品がこれより多いのは明らかです。問題は、このクエリの結果には、「芸術作品」ではなく「映画」にだけ分類されている『風と共に去りぬ』のような、そういった項目が欠けていることです。「映画」は「芸術作品」の下位クラスではあるのですが、SPARQLで検索するときには、これを考慮に入れて検索するよう明示的に指示しなければなりません。 のクラスに分類される、と表現するのです(練習のために実際にこのクエリを書いてみてください)。しかしこれにも問題があります。 何らか 構文を使うことがあります。『風と共に去りぬ』は「芸術作品」の下位クラスである[]ひとつの可能な解決策としては、すでに触れた 下位クラスに分類されている項目は含まれないままです。例えば「白雪姫」は「アニメ映画」に分類されていますが、これは「芸術作品」の下位クラスである「映画」のさらに下位クラスです。この場合、「下位クラス」であるという言明を2回繰り返さないと検索で到達することができません。しかし実際はこれは3回でもあり得ますし、4回や5回、いや何回でもあり得ます。それ以外のまた「芸術作品」の下位クラスであっても 今度は「芸術作品」に直接分類されている項目が含まれなくなります。 ——これが意味するのは、itemはある一つのクラスclassに分類されるが、そのクラスはclassだけでなくその下位クラスであってもよく、さらにその下の下の、どれだけ下のクラスでもあってもよい、ということです。 ?item wdt:P31/wdt:P279* ?class解決策はこうです。

Use at

PREFIX wikibase: <http://wikiba.se/ontology#>
PREFIX wdt: <http://www.wikidata.org/prop/direct/>
PREFIX wd: <http://www.wikidata.org/entity/>
PREFIX bd: <http://www.bigdata.com/rdf#>
SELECT ?work ?workLabel
WHERE
{
  ?work wdt:P31/wdt:P279* wd:Q838948. # 芸術作品のあらゆる下位クラスに分類されているもの
  SERVICE wikibase:label { bd:serviceParam wikibase:language "[AUTO_LANGUAGE]". }
}

Query found at

graph TD classDef projected fill:lightgreen; classDef literal fill:orange; classDef iri fill:yellow; v1("?work"):::projected a1((" ")) c3(["wd:Q838948"]):::iri c5(["bd:serviceParam"]):::iri c7(["#91;AUTO_LANGUAGE#93;"]):::literal v1 --"wdt:P31"--> a1 a1 --"wdt:P279"--> c3 subgraph s1["http://wikiba.se/ontology#label"] style s1 stroke-width:4px; c5 --"wikibase:language"--> c7 end