[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日目も自分やろうと思いますんでよろしくです。

    広告ここから
    広告ここまで
    Home
    Search
    Bookmark