SPARQL
dbpedia

SPARQL で「う」のつく食べ物

丑の日ですね。絶滅危惧種のアイツ以外に何か「う」のつく適当な食べ物がないか SPARQL でやってみました。

SPARQL

u.rq
PREFIX dct:  <http://purl.org/dc/terms/>
PREFIX skos: <http://www.w3.org/2004/02/skos/core#>
PREFIX rdfs: <http://www.w3.org/2000/01/rdf-schema#>
PREFIX category-ja: <http://ja.dbpedia.org/resource/Category:>

SELECT DISTINCT ?s WHERE {
  ?s dct:subject/skos:broader* category-ja:食品 ;
  rdfs:label ?label .
  FILTER (strstarts(?label,"う") || strstarts(?label,"ウ"))
}

これを http://ja.dbpedia.org/sparql のフォームに貼り付けて実行します。

結果

DBpedia Japanese で結果を見る

2017-07-25 時点では以下の 189件が見つかりました。

解説

?s dct:subject/skos:broader* category-ja:食品 という指定で、分類が食品であるか、分類の親を任意回数たどると食品 であるようなリソースを取得することができます。詳しくは以前に書いた こちら をどうぞ。

ただ、Wikipedia のカテゴリ編成によっては必ずしも食品らしくないものがヒットすることには注意が必要です。たとえばウェルニッケ脳症(病名)はこんな経路で食品カテゴリに到達してました。

ウェルニッケ脳症 > アルコール乱用 > 酒 > 飲料 > 食品

あとは FILTER (strstarts(?label,"う") || strstarts(?label,"ウ")) ではじまるリソースに絞込みをしています。ここで strstarts のかわりに strends を使えば後方一致、contains を使えば部分一致ですね。 はじまりでなくてもいいや、という方はどうぞ。