LODを使ったサイトとプラグインを作ってみた話[WordBenchOsaka]

123 Views

September 20, 14

スライド概要

WordBenchOsakaで発表したスライドです。

シェア

またはPlayer版

埋め込む »CMSなどでJSが使えない場合

関連スライド

各ページのテキスト
1.

Wordpress×Linked Open Data LODを使ったサイトと プ ラ グイ ン を 作 っ て み た 話 WordBench Osaka

2.

自己紹介 ! 岡本 秀高 • 株式会社ロックウェーブ • aishipR/WordPress • 作ったプラグイン:1つ • http://wp-kyoto.net/

3.

WordPress公式テーマ紹介ブログ http://wp-kyoto.net/

4.

LODを使ったサイト

5.

びわ湖花火大会×LOD http://琵琶湖花火.com

6.

Code for Shiga/Biwako http://opendata.shiga.jp/

7.

使ったもの • ワークショップのサンプル • jQuery&SPARQL • TwitterBootstrap • WordPress • GoogleMapAPI

8.

周辺店舗や地図情報を表示

9.

カ ス タム フ ィ ー ル ド で 実 装

10.

JSを投稿画面で直接記入

11.

セキュリティ的に よろしくない

12.

NEXT

13.

L O D を 使 っ た プ ラ グイ ン

14.

WIKIPEDIAの寺情報を表示

15.

今度はショートコード

16.

もうWIKIPEDIAから 毎 回 コ ピペ す る 必 要 な し !

17.

BUT

18.

DBPEDIAに 存在し無い 情報は 取得できない ! DBpedia:http://ja.dbpedia.org/

19.

今回 参考にしたもの • Codex • プラグイン開発バイブル • DBpedia

20.
[beta]
ショートコードを使う
add_shortcode('db-temple', 'db_temple_shortcode');
function db_temple_shortcode($place){
$default_atts = array('text' => '');
$merged_atts = shortcode_atts( $default_atts, $place);
extract( $merged_atts);
<中略>
$.getJSON('" . get_sparql_data($text) . "',function(data) {

21.

詳細は

22.
[beta]
S PA R Q L を 使 う - 1 : 寺 名 を セ ッ ト
function get_sparql_data($place){
if (!empty($place)) {
$place = esc_html($place);
} else {
$place = ".*";
}

23.
[beta]
S PA R Q L を 使 う - 2 : ク エ リ を 作 る
$sparql_base_url ="PREFIX dbpedia-owl: <http://
dbpedia.org/ontology/>PREFIX rdfs: <http://www.w3.org/
2000/01/rdf-schema#>PREFIX dcterms:<http://purl.org/
dc/terms/>select distinct * where {?link dcterms:subject
<http://ja.dbpedia.org/resource/Category:西国三十三所
>;rdfs:comment ?cont;dbpedia-owl:thumbnail ?
thumb;dbpedia-owl:address ?address;rdfs:label ?
name.FILTER (REGEX (?name, '{$place}'))}";
$sparql_base_url = urlencode($sparql_base_url);

24.

SPARQLクエリのテスト http://ja.dbpedia.org/sparql

25.

HTMLで結果が見れる http://ja.dbpedia.org/sparql

26.
[beta]
S PA R Q L を 使 う - 2 : ク エ リ を 作 る
$sparql_base_url ="PREFIX dbpedia-owl: <http://
dbpedia.org/ontology/>PREFIX rdfs: <http://www.w3.org/
2000/01/rdf-schema#>PREFIX dcterms:<http://purl.org/
dc/terms/>select distinct * where {?link dcterms:subject
<http://ja.dbpedia.org/resource/Category:西国三十三所
>;rdfs:comment ?cont;dbpedia-owl:thumbnail ?
thumb;dbpedia-owl:address ?address;rdfs:label ?
name.FILTER (REGEX (?name, '{$place}'))}";
$sparql_base_url = urlencode($sparql_base_url);

27.
[beta]
S PA R Q L を 使 う - 3 : U R L を 返 す

$sparql_url = "http://ja.dbpedia.org/sparql?defaultgraph-uri=http%3A%2F
%2Fja.dbpedia.org&query={$sparql_base_url}
&format=application%2Fsparql-results
%2Bjson&timeout=0";
return $sparql_url;

28.

あ と は J S O N と して 扱 う だ け http://megane-blog.com/2014/09/09/1377

29.

GITHUBで公開中 https://github.com/hideokamoto/saigoku33data-by-sparql

30.

応用 「日本さくら名所100選」 VER

31.

SPARQLを書き換える Category:西国三十三所 ↓ Category:日本さくら名所100選

32.
[beta]
ここを・・・
$sparql_base_url ="PREFIX dbpedia-owl: <http://
dbpedia.org/ontology/>PREFIX rdfs: <http://www.w3.org/
2000/01/rdf-schema#>PREFIX dcterms:<http://purl.org/
dc/terms/>select distinct * where {?link dcterms:subject
<http://ja.dbpedia.org/resource/Category:西国三十三所
>;rdfs:comment ?cont;dbpedia-owl:thumbnail ?
thumb;dbpedia-owl:address ?address;rdfs:label ?
name.FILTER (REGEX (?name, '{$place}'))}";
$sparql_base_url = urlencode($sparql_base_url);

33.
[beta]
こうす る だ け
$sparql_base_url ="PREFIX dbpedia-owl: <http://
dbpedia.org/ontology/>PREFIX rdfs: <http://www.w3.org/
2000/01/rdf-schema#>PREFIX dcterms:<http://purl.org/
dc/terms/>select distinct * where {?link dcterms:subject
<http://ja.dbpedia.org/resource/Category:日本さくら名
所100選>;rdfs:comment ?cont;dbpedia-owl:thumbnail ?
thumb;dbpedia-owl:address ?address;rdfs:label ?
name.FILTER (REGEX (?name, '{$place}'))}";
$sparql_base_url = urlencode($sparql_base_url);

34.

PHPで処理する場合 ↓ wp_remote_getを使う

35.

プ ラ グイ ン に し て み て 思ったこと

36.

公 式 ディ レ ク ト リ に は 登録しづらい

37.

理由 ! 多言語(というか英語) に対応できない

38.

多言語対応された LODの登場を 期 待 して い ま す

39.

最後に

40.

LOD = API

41.

S PA R Q L さ え 覚 え れ ば 、 WIKIPEDIAや行政データを 簡単にサイトに取り込める

42.

観光ガイド ア フィ リ エイ ト 市民活動 等々…

43.

データの引用を よくされる方は、 是非お試しを

44.

ONE MORE THING

45.

実はGOOGLEにも 注 目 さ れて る

46.

JSON-LD http://json-ld.org/

47.

JSON-LD ! JSON形式で作る L I N K E D O P E N D ATA

48.

構 造 化 デ ー タ マー ク ア ップ 支 援 ツ ール https://www.google.com/webmasters/markup-helper/

49.

GOOGLEのロボットは JSON-LDを認識する

50.

JSON-LDがあると どうなる?

51.

こう な る

52.

ありがとうございました!

53.

Twitter:@motchi0214 Facebook:hideokamoto