DB detailsProductsWordPressWordPress PluginsWP×LOD

[SPARQLアドベントカレンダー]DB Detailプラグインに使っているSPARQLクエリ

SPARQL Advent Calendar 2015 – Qiita1日目です。 DBPediaの説明文を表示するWordPressプラグインを作った話をしようかと思ってたのですが、WordCamp Tok […]

広告ここから
広告ここまで

SPARQL Advent Calendar 2015 – Qiita1日目です。

DBPediaの説明文を表示するWordPressプラグインを作った話をしようかと思ってたのですが、WordCamp Tokyo参加記事で紹介しちゃってたので予定を変更して内部の話でも。

プラグインの仕様としては結構シンプルで、ショートコードで囲ったキーワードを使ってDBPediaにSPARQLクエリを投げつけてるだけです。

GitHubのリポジトリからソースを見るとSPARQLが書かれてるのがわかるかなと思います。

で、このままだとURLエンコードされていて全く読めないのでデコードしてみるとこんな感じです。 [php] $url = “https://ja.dbpedia.org/sparql?default-graph-uri=https://ja.dbpedia.org&query=select distinct * where { <https://ja.dbpedia.org/resource/{$keyword}> <https://dbpedia.org/ontology/abstract> ?o . }&format=application/sparql-results+json&timeout=0&debug=on [/php]

「query=」から「&format」の手前までがSPARQLクエリで、その他は戻り値をJSONに指定したりGRAPH URIを指定したりしています。

SPARQL単体だとこうなります。 [sql] SELECT DISTINCT * WHERE { <https://ja.dbpedia.org/resource/{$keyword}> <https://dbpedia.org/ontology/abstract> ?o . } [/sql]

{$keyword}の部分にショートコードで囲った値が入るようになっていますので、例えば[db-detail]東京都[/db-detail]とした場合はこんなクエリになります。

[sql] SELECT DISTINCT * WHERE { <https://ja.dbpedia.org/resource/東京都> <https://dbpedia.org/ontology/abstract> ?o . } [/sql]

実行結果

『「https://ja.dbpedia.org/resource/東京都」内にある「https://dbpedia.org/ontology/abstract」の値を?oとして取得する』というようなイメージでいいかなと思います。

まぁ、これだけのSPARQLクエリからでもWordPressプラグインを1こ作れると思うと面白くないですか?

というわけで明日書く人もいないみたいなのでなんかネタ思いついたらこのまま2日目も自分やろうと思いますんでよろしくです。

ブックマークや限定記事(予定)など

WP Kyotoサポーター募集中

WordPressやフロントエンドアプリのホスティング、Algolia・AWSなどのサービス利用料を支援する「WP Kyotoサポーター」を募集しています。
月額または年額の有料プランを契約すると、ブックマーク機能などのサポーター限定機能がご利用いただけます。

14日間のトライアルも用意しておりますので、「このサイトよく見るな」という方はぜひご検討ください。

広告ここから
広告ここまで

Related Category posts