人工知能学会研究会資料 SIG-SWO-045-01
ユーザの観点に基づいた
Linked Data
可視化手法
Standpoint-based Linked Data Visualization Approach
森川 裕章
1∗西野 文人
1Hiroaki Morikawa
1Fumihito Nishino
11
株式会社 富士通研究所
1
Fujitsu Laboratories Ltd
Abstract: In this paper, we propose a standpoint-based Linked Data visualization approach, with the main goal of developing a Linked Data browser that receives an entity and visualizes the data related to it in various ways based on multiple “standpoints”. Here, a standpoint means the data generated from a user’s perspective of interest in an entity and it’s visualization. For example, “volcano” and “World Heritage Site” are standpoints with respect to Mt. Fuji. Considering these standpoints, a user interested in “volcano” in our browser is shown types of volcanoes and the history of volcanic eruptions, while a user interested in “World Heritage Site” is shown a list of viewing spots and the list of visitor numbers per year. This feature is not found in existing Linked Data browsers that can be defined as “single” standpoint browsers. In this paper we present our proposed approach and describe a prototype system based on this approach.
1
はじめに
Linked Data[1] を活用したアプリケーションを開発 する際,開発者は一からプログラミングなどを行い, アプリケーションを構築する.そのため,RDF[2] や SPARQL[3] など Linked Data に関する知識のほか, データを可視化・分析のためのプログラミングの知識も 必要である.アプリケーション開発者は,このような スキルを持っていたとしても,要件が似たアプリケー ションや可視化部品は,毎回作成するのではなく,以 前作成したものを流用することが多い. Linked Data を利用した分析アプリケーションの場 合,一般的な BI ツールと同様に専門知識がなくても, 分析軸を柔軟に変えたり,オンデマンドで一時的なデー タ集合を作成し分析を行う.加えて,効率的な知識の 発見を支援するためには,検索キーワードに基づいて 検索対象を探すアプローチではなく,キーワードに関 係するエンティティから出発し,関連するエンティティ を横断しながら目的の知識を探し出す Linked Data の 長所を活かすアプローチを利用する [4]. ∗連絡先:株式会社 富士通研究所 〒 211-8588 川崎市中原区上小田中 4-1-1 E-mail:[email protected] 今回,Linked Data を活用した可視化・分析アプリ ケーションの構築作業や分析タスクの低減を目的とす る手法を提案する.提案手法では,アプリケーション を構築するための可視化・分析部品を管理,流用でき るようにし,アプリケーションの構築作業を効率化す る.さらに,ユーザが見たい視点を動的に構築できる ようにし,元データやデータストアに手を加えること なく,ユーザの観点に応じた可視化・分析を行うことが できる.加えて,Linked Data 上のエンティティを遷 移しながら,目的の情報を探索する機能を提供するこ とにより,Linked Data に対する分析作業を支援する. これらを実現するため,提案手法は,以下の 2 つの機 能をベースとし,さらに 3 つの特長を持つものである. 機能1 データ駆動によるLinked Dataの可視化とデータ ナビゲート 機能2 ガジェットによる可視化部品の管理と再利用 特長1 複数の観点に対応したビューを構築できる仕組み 特長2 仮想的な視点を動的に作成できる仕組み 特長3 視点移動によるガジェットの再利用性を高める仕組み ここで,視点とは,可視化・分析の起点となる Linked 01-1
Data 内のエンティティであり,観点とはその見せ方で ある.それぞれ 3 章で改めて説明する. 本稿の構成は以下のとおりである.まず,第 2 章で は,関連技術について説明する.第 3 章では,提案手法 について説明する.第 4 章では,プロトタイプシステ ムの機能とアーキテクチャについて述べる.第 5 章で は,プロトタイプシステムを利用した各種ユースケー スを説明し,第 6 章で本稿をまとめる.
2
関連技術
文献 [5] によると,Linked Data に対するさまざまな 可視化の手法が提案されている.Pubby[6], Tabulator[7], Marbles[8], Disco[9] のような Linked Data ブラウザは, HTML を直接記述するのではなく,テンプレートを適 用し,データ駆動による画面描画を行う.これらブラ ウザでは,入力したエンティティに対し,そのプロパ ティと値を表形式などで可視化したり,エンティティ の関係をグラフ構造として可視化する.Linked Data ブラウザは,前述の機能 1「データ駆動による Linked Data の可視化とデータナビゲート」を実現する技術で あるが,Linked Data 内を探索することが主な機能で あるため,表示する形式はシステム固定であり,ユー ザが自由に可視化したいデータを選んだり,可視化方 法を決めることができない. Sgvizler[10],D3SPARQL[11],SemwidgJS[12] は,ク エリと定義ベースもしくは javascript などのプログラミ ングによる可視化定義の組み合わせにより可視化パー ツを作成でき,再利用可能な Linked Data のためのウィ ジットとして利用できる仕組みを提供している. Information Workbench[13] は,多数のウィジットを 管理でき,そのウィジットを Semantic MediaWiki[14] の中に埋め込むことによって,Linked Data の可視化や さまざまなアプリケーションの構築を行うことができ る.Linked Data Reactor[15] は,Dataset, Resource, Property, Value ごとに (これを Scope と呼んでいる) ビューを構築でき,エンティティのタイプに応じた可 視化パーツを自動的もしくは手動で組み合わせて,目 的のアプリケーションを構築できる.Sgvizler,D3SPARQL,SemwidgJS,Information Work-bench,Linked Data Reactor で扱う可視化部品は,前 述の機能 2 の「ガジェットによる可視化部品の管理と再利 用」を実現している.Information Workbench,Linked Data Reactor は,可視化パーツを組み合わせて画面を 構築するアプローチであり,提案手法と同等である.ま た,これらは機能 1「データ駆動による Linked Data の可視化とデータナビゲート」も実現している.
3
提案手法
本章では,提案手法について概観する.3.1
複数の観点に対応したビューの構築
あるエンティティに対し,可視化方法が異なること を考える.このことは,人により見せ方が異なる,つ まり「観点」が異なるということである.観点の例と して,富士山というエンティティを可視化したい場合 を考える.富士山を「火山」という観点か「世界遺産」 という観点かによって見たい情報が異なる.「火山」と いう観点の場合は,噴火の歴史や富士山が所在する自 治体が出す警報,類似した火山の一覧などを表示した いだろうし,「世界遺産」という観点の場合は,世界遺 産の登録年,周辺の観光資源,毎年の入山者の推移な どを表示したいだろう.今回,我々が提案する手法は, Information Workbench や Linked Data Reactor 採用 している手法に「観点」を処理する仕組みを入れ,複 数の「観点」に対し,それぞれにビュー (見せ方) を定 義できるようにしたことである. 提案手法では,視点と観点を入力として受け,それ に対応する表示を行う.視点とは,探索の起点となる エンティティを意味し,例えば,「富士山」,「阿蘇山」, 「桜島」,「屋久島」のような山であり,Linked Data で はこれらは URI[16] として表現される.提案手法では, 視点を利用して SPARQL を実行し,可視化すべき項目 を取得する.SPARQL の中では,視点は変数で記述さ れており,その変数を視点となる URI に置き換えた後, SPARQL は実行される.Listing 1 は,エンティティの 「名前」「説明」「イメージ」を取得する SPARQL の例 である.視点に置き換わる変数は,%URI%で記述され ている. PREFIX r d f s : <h t t p : / /www . w3 . o r g / 2 0 0 0 / 0 1 / r d f−schema# > PREFIX f o a f : <h t t p : / / x m l n s . com/ f o a f /0.1/ > s e l e c t d i s t i n c t ? name ? comment ? i m a g e where { <%URI%> r d f s : l a b e l ? name ; r d f s : comment ? comment ; f o a f : d e p i c t i o n ? i m a g e . } Listing 1: 実行される SPARQL の例 観点とは,エンティティをどのように見るか示すも のであり,例えば,「火山」,「世界遺産」,「島」である. ユーザは,観点に対応するビューを定義することによ り,異なる観点による可視化を実現する. ビューの定義方法は,ソフトウェア工学におけるオ ブジェクト指向の考え方を参考にしており,ビューの 定義はオブジェクト指向プログラミングにおけるクラ ス設計にあたる.さらに,可視化の項目の決定は,ク ラスに対するメソッドの設計にあたり,オリジナルのデータをライブラリと考えた時,それらを選択し組み 合わせてビューを作成する作業は,オブジェクト指向 プログラミングにおけるクラスを実装する作業を模倣 しているとみなすことができる (図 1). 崒崾崠崏崗崰崿嵕崘嵑嵈 ੧ু১ 崗嵑崡 崻嵍嵤ଝ 嵉崥崫崱 ૭ଳ৲峘ඨ৯ ఏ嵑崌崾嵑嵒 崒嵒崠崲嵓峘崯嵤崧 崌嵛崡崧嵛崡 崻嵍嵤ৰ峘એ 図 1: オブジェクト指向プログラムと提案手法の比較 図 2 は,データとビューの関係を表した図であり,「富 士山」,「阿蘇山」,「桜島」,「屋久島」は,視点である. 「火山」,「世界遺産」,「島」は観点である.提案手法で は,観点に視点を与えることにより,ビューを生成す る.これは,オブジェクト指向プログラムにおけるコ ンストラクタにあたる処理である. ౌ峒峁峐峘୕ QHZౌ୕ ౌ峒峁峐峘 QHZౌ ౌ峒峁峐峘ਣ QHZౌਣ ⅆᒣ䛻㛵䛩䜛ྍど ୡ⏺㑇⏘䛻㛵䛩䜛ྍど ᓥ䛻㛵䛩䜛ྍど ᐩኈᒣ 㜿⸽ᒣ ᱜᓥ ᒇஂᓥ 䝡䝳䞊 䝕䞊䝍 ਣ峒峁峐峘ો୲ਣ QHZਣો୲ਣ ਼ੀਓ峒峁峐峘୕ QHZ਼ੀਓ୕ ਼ੀਓ峒峁峐峘ો୲ਣ QHZ਼ੀਓો୲ਣ 䜸䝤䝆䜵䜽䝖ᣦྥ䝥䝻䜾䝷䝮 䛻䛚䛡䜛䝁䞁䝇䝖䝷䜽䝍ฎ⌮ 䝁䞁䝇䝖䝷䜽䝍ฎ⌮䛻䜘 䜚⏕ᡂ䛧䛯䜲䞁䝇䝍䞁䝇 図 2: データとビューの関係を表す図
3.2
視点の動的な生成
提案手法では,データセットにない視点を動的に生 成できる.この動的に作成される視点は,データセッ ト内のエンティティを組み合わせて作られる.例えば, 「三大都市圏」という視点は,「東京都」,「名古屋市」, 「大阪市」の 3 つのエンティティの集合からなる.また, 動的に作成した視点を組み合わせて新たな視点を作る こともできる.例えば,特許に関するエンティティの 集合によって動的に作成した「教師あり学習」という 視点と「教師なし学習」という視点があった場合,そ れらをさらに組み合わせた「機械学習」という視点を 動的に作ることもできる. この動的に作成される視点の見せ方には,「比較」と 「集約」の 2 つがある.まず「比較」は,動的に作成さ れた視点を構成するエンティティを同じ見せ方で表示 する.これにより,エンティティ間の違いを見る,比 較することができる.図 4 左は「比較」ビューの例で あり,三大都市圏の比較を行っている.「集約」は,動 的に作成された視点を構成するエンティティを集約し て表示する.図 4 右は「集約」ビューの例であり,人 工知能の分野における特許に関するビューである.Linked Data Reactor にも,エンティティの集合を 定義し,集合内のエンティティを集約して表示する機 能を持っているが,Linked Data Reactor では,例え ば,Dataset 内のエンティティに対し,クエリベースで 絞り込みながら,目的のエンティティ集合を構築する トップダウンによる構築方法である.我々の手法では, このトップダウンによる構築方法に加え,任意のエン ティティをユーザが選択し集合を作っていくボトムアッ プによる構築方法も採用している.そのため,クエリ による 1 回の問い合わせでは取り出しが難しい複数の エンティティを集合として扱うことができる. 崯嵤崧 35(),;ODFRUS KWWSORGDOOQHWUHVRXUFHFRUSRUDWHMS! 35(),;IRDI KWWS[POQVFRPIRDI! 35(),;GEUMDKWWSMDGESHGLDRUJUHVRXUFH! ODFRUSIRDISULPDU\7RSLF GEUMD୕ৢ 35(),;GER KWWSGESHGLDRUJRQWRORJ\! VHOHFWGLVWLQFW"LPDJHZKHUH ^ 85,GERWKXPEQDLO "LPDJH ` GEUMD୕ৢ ODFRUS IRDISULPDU\7RSLF ガジェット⼊⼒ 崔崠崏崫崰峘63$54/ଝ ଳਡ ¼ 変更の必要がない ൸峼ં峃峵崔崠崏崫崰 図 3: 視点移動の例
3.3
視点移動
提案手法では,視点移動の仕組みを組み込んでおり, ガジェットの再利用性を高めている.図 3 を利用して,視 点移動の仕組みを説明する.例えば,DBpedia Japanese[17] 内のエンティティに関する画像 URL を表示するガジェッ トがあった場合,入力となる URI は,例えば「http: //ja.dbpedia.org/resource/富士通」であり,表示 される画像は富士通のロゴマークとなる.このガジ ェットを日本の法人 LOD[18][19] の富士通「http:// lod4all.net/resource/corporate/jp/1020001071491」 の可視化にも流用する.データには,述語「http:// xmlns.com/foaf/0.1/primaryTopic」によってエンテ ィティ間にリンクが貼られているとする.視点移動の仕 組みがなければ,ガジェット定義の SPARQL を Listing 2 のように書き換えなければならない.ガジェット定義 は,SPARQL の変更以外は同じであるため,これでは 似たようなガジェットが大量に作成されてしまう.そ こで,ガジェットに対し,視点移動の仕組みを適用す る.視点移動では,視点 x を,Linked Data 上のパスpath をたどることにより,Linked Data 上の別の視点 y に置き換える.図 3 では,視点「http://lod4all.
net/resource/corporate/jp/1020001071491」をパ ス「http://xmlns.com/foaf/0.1/primaryTopic」を
図 4: 比較ビュー (左) と集約ビュー (右) たどって,「http://ja.dbpedia.org/resource/富士 通」に置き換えた後,ガジェットを実行する例となって いる.この仕組みにより,ガジェットに手を加えず,他 のエンティティにも既存ガジェットをそのまま流用する ことができ,構築作業をさらに省力化できる. PREFIX dbo : <h t t p : / / d b p e d i a . o r g / o n t o l o g y /> PREFIX f o a f : <h t t p : / / x m l n s . com/ f o a f /0.1/ > s e l e c t d i s t i n c t ? i m a g e where { %URI% f o a f : p r i m a r y T o p i c ? d b p e d i a u r i . ? d b p e d i a u r i dbo : t h u m b n a i l ? i m a g e } Listing 2: 書き換えた SPARQL
4
プロトタイプシステム
本章では,プロトタイプシステムについて説明する. プロトタイプシステムは,LOD フロントエンドと呼 ぶ.LOD フロントエンドは,LOD4LL2に搭載してお り,https://lod4all.net/frontend/ にて,ビュー ア部分を一般公開中である.4.1
機能
4.1.1 視点へのアプローチ 視点へのアプローチは,視点となるエンティティに 対応する URI を直接入力するか,視点となるエンティ ティが関連するキーワードを入力することにより行う. キーワードによる視点の検索では,ユーザが視点と なるエンティティを知らなくても,候補となる視点を 探し出すことができる.図 5 は,キーワード検索の結 果であり,視点となるエンティティの補助情報として, ラベル,イメージ,説明文,タイプが表示される.こ れら補助情報を利用して,ユーザは探していた視点を 選択する.2https://lod4all.net/ja/ (accessed July 2018)
図 5: キーワード検索の結果 4.1.2 動的に作成される一時的な視点 LOD フロントエンドでは,データセットにないエン ティティを分析の対象とする仕組みを実現するため,一 時的な視点を作成できる.この一時的な視点を仮想エ ンティティと呼ぶ.仮想エンティティは,URI のリス トもしくは SPARQL により作成する.例えば,日本の 法人 LOD の中の「神奈川県川崎市中原区に所在する株 式会社の一覧」を定義した場合,Listing 3 の SPARQL により仮想エンティティを生成する. PREFIX o r g : <h t t p : / /www . w3 . o r g / n s / o r g#> PREFIX s k o s : <h t t p : / /www . w3 . o r g / 2 0 0 4 / 0 2 / s k o s / c o r e#> PREFIX l 4 a−geo : <h t t p : / / l o d 4 a l l . net / r e s o u r c e /geo>
s e l e c t d i s t i n c t ? u r i where { ? u r i a o r g : O r g a n i z a t i o n . ? u r i o r g : h a s R e g i s t e r e d S i t e ? h r s . ? h r s o r g : S i t e ? s i t e . ? s i t e s k o s : b r o a d M a t c h l 4 a−geo神奈川県川崎市中原区 : . } Listing 3: 仮想エンティティを生成する SPARQL の例 この SPARQL の取得結果に対し,例えば,「http:// lod4all.net/frontend/resource/collection/神奈 川県川崎市中原区にある株式会社の一覧」のような視 点を表現する URI を割り当てることができる.さら に,この仮想エンティティには,ユーザがタイプを与 えることができ,この例では,「http://lod4all.net/ ontology/MyCheckCompanies(私のチェックする会社
一覧)」のようなタイプを付与できる.ユーザは,自ら がつけたタイプに対し,ビューを定義することができ る.仮想エンティティを生成する仕組みにより,デー タセットにない任意のエンティティを作り,さらにそ れを可視化することができる. 4.1.3 観点の入力とビューの探索 LOD フロントエンドでは,観点の入力はユーザが行 わず,視点となるエンティティに付与されているタイ プを利用する.タイプは,rdf:type から取得する.具体 的には,Listing 4 の SPARQL が実行される.ここで, %URI%は,視点の探索で選んだエンティティの URI に置換される. s e l e c t d i s t i n c t ? t y p e where { <%URI%> a ? t y p e . } Listing 4: タイプを取得する SPARQL LOD フロントエンドは,エンティティに付与されて いるタイプを元に,そのタイプに対するビューを取り出 し,ビューの設定に応じてデータの可視化を行う.図 6 は,プロトタイプシステムにおける「川崎フロンターレ (http://ja.dbpedia.org/resource/川崎フロンター レ)」の表示例であり,「スポーツチーム (http://dbpedia. org/ontology/SportsTeam)」としてみた場合,本拠 地,所属リーグ,年齢構成,所属選手一覧が表示される. 「組織 (http://dbpedia.org/ontology/Organisation)」 としてみた場合,法人番号,オーナー企業,同一オー ナーの企業などが表示される.代表するイメージ画像 やラベル,説明文などは両方のビューが表示される.こ れら表示する項目をまとめた表示パーツをガジェット と呼び,ビューはガジェットを組み合わせて構築され る.ガジェットは再利用可能であるため,ユーザは,既 に定義済のガジェットを流用しながら,新たなビューを 早期に構築することが可能となる. LOD フロントエンドは,類似ビュー探索機能を持 っており,エンティティに付与されたタイプに対する ビューが存在しない場合,「http://www.w3.org/2002/ 07/owl#equivalentClass」や「http://www.w3.org/ 2000/01/rdf-schema#subClassOf」で同等のタイプ や,上位のタイプに対し,ビューが定義されていない か探索を行う.もしビューが見つかった場合,そのビュー 定義でエンティティの可視化を試みる.類似ビュー探索 機能でも定義されたビューが見つからない場合,LOD フロントエンド上に定義されたデフォルトのビュー定 義でエンティティを可視化する. 4.1.4 アプリケーション アプリケーションは,複数のビューの集合からなり, アプリケーションを定義することにより,ビューに表 示の目的を加えることができ,他のユーザによって定 義された全く別観点のビューの表示を抑制することが できる.例えば,スポーツ情報を表示するアプリケー ションを考えた場合,「スポーツチーム」としての「川 崎フロンターレ」は表示したいが,「法人」としての「川 崎フロンターレ」は表示したくない.逆に,企業情報 分析のアプリケーションを考えた場合は,「法人」とし ての「川崎フロンターレ」は表示したいが,「スポーツ チーム」としての「川崎フロンターレ」は表示したく ない. 図 7 は,LOD フロントエンドの TOP ページである. TOP ページでは,アプリケーションを選択する.選択 後,アプリケーションの TOP 画面に遷移する.図 8 は, アプリケーションの TOP 画面の例である. 先に示した図 5 のキーワード検索の結果画面では,ア プリケーションに設定されたビュー定義に関するタイ プに絞り込んだエンティティが表示されており,アプ リケーションを介すことにより,ユーザは目的のエン ティティをアプリケーション起点で探し出すことがで きる.
4.2
アーキテクチャ
ここでは,プロトタイプシステムのアーキテクチャ について述べる.図 9 は,プロトタイプシステムのシス テム構成図である.プロトタイプシステムは,Apache HTTP Server[20] 上で動作し,PHP[21] により実装さ れている.また,Smarty[22] テンプレートエンジンと Zend Framework[23] を利用している. 次に,このシステム構成図を用いて,ユーザのリクエ ストから実際の描画までの処理プロセスについて説明 する.ユーザ (LOD Frontend users) は,Input UI より リクエストを行う.Input UI は,例えば,図 8 である. 前節で述べたようにリクエストには 2 つあり,URI もし くは表示したい URI が関係するキーワードを入力する.Input UI からのユーザの入力が URI の場合,Entitiy searcher は,入力された URI を Request solver に送る.
入力がキーワードの場合,Entitiy searcher は,RDF ストアに対し,キーワードに関係する候補 URI を探索 し,Input UI 上に検索結果を表示する (図 5).ユーザは
Input UI 上の候補 URI の中から一つ URI を選択する.
選択された URI は Entitiy searcher によって Request
solver に送られ,以降直接 URI を入力した時と同じ処
理となる.Request solver は入力された URI を受信す ると,SPARQL executor を呼出し,入力された URI に対するタイプ (rdf:type) を取得し,取得したタイプ
মು嵣ਚര嵒嵤崘 年齢構成 ਚര৭ু༮ ১যಀ 崒嵤崲੫峒 崒嵤崲嵤峘੫ ৻൸ 嵑嵁嵓峒ହધ 嵑嵁嵓峒ହધ ৻൸ 図 6: 「スポーツチーム」として見た「川崎フロンターレ」(左) と「組織」として見た「川崎フロンターレ」(右) 図 7: LOD フロントエンドの TOP ページ 図 8: アプリケーションの TOP 画面
を Page creator に渡す.Page creator は,取得したタ イプに関するページ定義を検索する.もし,ページ定 義が見つからない場合は,デフォルトのページ定義が 返却される.次に,Page creator は,Gadget creator を 呼び出す.Gadget creator は SPARQL executor を呼び 出し,ガジェット定義に記述されている SPARQL を実 行する.次に,Gadget creator は,SPARQL executor の実行結果を受け取り,ガジェット定義に記述された データ描画設定に従って,描画処理を実行する.その 際,可視化関数が記述されていた場合,visualize.js ラ イブラリが呼び出され,可視化処理が行われる.visu-alize.js は,javascript で実装されており,可視化関数に 応じて,D3.js[24],C3.js[25],vis.js[26],leaflet.js[27] などのライブラリを呼び出す.ガジェットで利用でき る visualize.js で定義された可視化関数は,表 1 であり, Sgvizler や D3SPARQL とよく似た機能になっている. 最後に,Page creator は,生成したページをユーザに 返却する. 表 1: 可視化方法と可視化関数 カテゴリ 可視化方法 可視化関数
テーブル データテーブル drawDataTable (json, config) テーブル Key Value テーブル drawKeyValueTable (json, config) テーブル ピボットテーブル drawPivotTable (json, config) チャート 円グラフ drawPieChart (json, config) チャート ドーナツチャート drawDonutChart (json, config) チャート 棒グラフ drawBarChart (json, config) チャート 折れ線グラフ drawLineChart (json, config) チャート 時系列グラフ drawTimeSeriesChart (json, config) チャート バブルチャート drawBubbleChart (json, config) チャート レーダーチャート drawRadarChart (json, config) チャート ゲージチャート drawGaugeChart (json, config) 地図 地図 drawMap (json, config) ネットワーク ネットワーク drawNetwork (json, config) タイムライン タイムライン drawTimeline (json, config)
定義編集については,Management UI
5')6WRUH 63$54/H[HFXWRU *DGJHWFUHDWRU &MV 'MV YLVMV $SDFKH+7736HUYHU =HQG)UDPHZRUN 3+3 -4XHU\ 'HILQLWLRQ6WRUH 6PDUW\ OHDIOHWMV YLVXDOL]HMV 3DJHFUHDWRU 'HILQLWLRQ PDQDJHU /2')URQWHQG 5HTXHVWVROYHU /2'DSSOLFDWLRQGHYHORSHUV /2')URQWHQGXVHUV (QWLWL\ VHDUFKHU ,QSXW8, 0DQDJHPHQW8, 図 9: プロトタイプシステムのシステム構成図
5
適用事例
本章では,LOD フロントエンドを利用した活用事例 について述べる.5.1
法人番号活用
2015 年 12 月に,法人番号 [28] が公開された.公開サ イトによると,法人番号を導入する目的の一つは,「新 たな価値の創出」である. 法人番号は XML で公開されている.法人番号は,日 本に所在する全ての法人に付与されるため,網羅性が 高い一方で,公開されている情報は,法人番号,法人 名,登記上の住所の 3 情報のみである.そこで,富士通 研究所では,この XML を Linked Data 化,DBpedia や geonames など他のデータセットとリンクをし,「日 本の法人 LOD」として LOD4ALL 上で公開した.こ のデータセットを用い,LOD フロントエンドを使って 企業情報分析 Web アプリ [29] を作成した.作成した アプリケーションを第 1 回 RESAS アプリコンテスト [30] に応募,「法人インフォメーション賞」と「価値総合 研究所賞」を受賞した.このアプリケーションは,法 人インフォメーション [31] を運用している経済産業省 から,法人インフォメーションを利用した活用事例と してサイト上で紹介されている. 図 10 は,「富士通株式会社 (タイプ:http://dbpedia. org/ontology/Organisation)」の本アプリケーショ ンによる表示例である.この画面では,法人に関する 各種情報 (図 10 左) のほか,法人インフォメーション の API とリンクしており,法人インフォメーションか ら取得される法人の調達実績を把握することができる ようになっている (図 10 右).法人インフォメーション では,SPARQL を発行できるため,日本の法人 LOD に法人インフォの URI へのリンクを貼り,そのリンク 経由で法人インフォメーションの各種情報を取得して いる.図 11 は,「神奈川県川崎市中原区 (タイプ:http: //lod4all.net/ontology/Geo)」の本アプリケーショ ンによる表示例である.本アプリケーションでは,地 域に関する「地域の経済活動 (図 11 左)」と「地域の法 人活動 (図 11 右)」を見ることができる.「地域の経済活 動」のページでは,RESAS API[32] から取得できる産 業別特化係数,EvaCva[33] から求めた周辺地域の地域 内総生産,法人インフォメーションから取得した地域 の法人の調達ランキングなどを見ることができる.「地 域の法人活動」のページでは,その地域での法人の新 規設立,閉鎖,名称変更,吸収合併などの変化数など を見ることができる.このアプリケーションは,法人 番号をベースに,法人および地域について複数のデー タセットを統合し,複数の観点での見せ方を実装した 事例となっている.5.2
ナレッジグラフ推論チャレンジ
人工知能学会セマンティックウェブとオントロジー研 究会では, 人工知能技術による推論(推定)に関して, 認識の共有と必要な 技術の開発・促進を図ることを目 的としたコンテスト「ナレッジグラフ推論チャレンジ」 [34] を開催中である.このチャレンジのアプローチとし て,「検索によるアプローチ」,「推論アプローチ」,「機械 学習アプローチ」などが紹介されている.富士通研究 所では,「検索によるアプローチ」を支援すべく,LOD フロントエンドを用い,「まだらの紐」(SpeckledBand) のナレッジグラフを可視化するアプリケーションを作 成した (図 12).アプリケーションは,LOD フロンエ ンドの TOP ページで,「ナレッジグラフ推論チャレン ジ」アプリケーションを選択することにより起動でき る.LOD フロントエンドを利用した本アプリケーショ ンが,「ナレッジグラフ推論チャレンジ」の応募者を支 援できれば幸いである.5.3
課題
本節では,LOD フロントエンドを利用してアプリ ケーションを構築した際に見つかったデータセット側 の課題について述べる.'%SHGLD
১য/2'
'%SHGLD
JHRQDPHV
১য崌嵛崽崑
図 10: 法人に関するページ১য/2'
JHRQDPHV
5(6$6
(YD&YD
১য崌嵛崽崑
১য/2'ૐੑ
図 11: 地域の経済活動ページ (左) と地域の法人活動ページ (右)図 12: ナレッジグラフ推論チャレンジの表示例 5.3.1 タイプがついていないエンティティが存在する LOD フロントエンドでは,観点としてエンティティ のタイプを利用している.そのため,タイプがついて いないエンティティでは,適切なビューを探索するこ とができない.その結果,デフォルトのビューでエン ティティを可視化してしまうため,Linked Data ブラ ウザと同等の機能となってしまう.本技術のような形 で Linked Data を活用するアプリケーションを構築す る場合,エンティティのタイプが付与されていること が重要となる.富士通研究所では,DBpedia を対象に タイプがついていないエンティティに対しタイプを推 定し,付与する仕組みの研究を行っている [35]. 5.3.2 ラベルがないエンティティや語彙が存在する データセットの中にラベルがないエンティティや語 彙が存在する.ラベルやラベルの言語タグがない場合, LOD フロントエンドのキーワードによる視点の探索機 能によって,視点となるエンティティを見つけること ができなくなる.この課題に対し,LOD フロントエン ドでは,URI に含まれる文字列もキーワード検索の対 象としている.URI の一部にエンティティを表現する 文字列があれば,視点を見つけることができる. 5.3.3 言語タグがないもしくは誤っているリテラルが 存在する リテラルの言語タグが誤っている場合は,アプリケー ションの国際化 [36] に影響が出る.LOD フロントエン ドでは,ユーザのロケールに従って適切な言語を選択 して表示する仕組みがあり,言語タグがない,間違っ た言語タグが付与されていると正しく動作しなくなる. この課題に対し,LOD フロントエンドでは,言語タグ がないデータセットについて全てのリテラルを表示し ている.
6
おわりに
本稿では,ユーザの観点に基づいて Linked Data を 可視化する手法について説明した.提案手法では,あ るエンティティに対し,複数の観点を定義することが できるため,同じデータに対しさまざまな見せ方が可 能となる.さらに,動的に視点を作成する仕組みを持っ ており,これによりユーザは分析のためのデータセッ トを作成し RDF ストアに格納しなくても,可視化・分 析が可能になる.動的な視点の作成方法について,集 合による定義だけではなく,推論・機械学習などを利 用して作成することも可能であると考えており,他の 手法による動的な視点の作成方法も検討中である. また,各定義は流用可能であるため,Linked Data に 関する知識があまりないユーザでも定義を参照し設定 していくだけで,Linked Data を利用したアプリケー ションが早期に構築可能である.紙幅の都合上,詳細は 説明しなかったが,LOD フロントエンドはガジェット の配信機能を持っているため,Sgvizler や D3SPARQL のようにガジェットのみ利用することも可能である. 今後の課題として,さらなる活用のユースケースを 示すため,有用なアプリケーションを増やしながら,利 用価値の高い定義を増やしていくことがあげられる.こ れにより,ユーザが利用できる定義がさらに増え,よ り早く Linked Data を利用したアプリケーションを構 築できるようになる.Linked Data の知識があまりな いユーザが,自らが描くアプリケーションを定義ベー スでプログラミングすることなくすぐに構築できるよ うになることが目標である.このためには,LOD フロ ントエンドの運用管理機能の一般公開や,LOD フロン トエンドの貸し出しなどを考えている.さらに,操作 性向上も必要であり,現状は,SPARQL や可視化関数 などを記述ベースで行っているが,定義ウィザードや ドラッグアンドドロップなどを利用したインタラクティ ブな定義構築の機能も必要である. Linked Data の活用に関して,可視化だけではなく データアクセスの簡単化 (API 化) も必要だと考えて おり,LOD フロントエンドを利用したデータ配信基盤 の手法についても検討中である.例えば,LOD フロン トエンドのガジェット単位,ガジェットの組み合わせか らなるビューの粒度でデータを配信する.つまり,ガ ジェットやビューを定義することは,可視化設定だけで なく,API の設計も行っているとみなすことができる. 今後は,LOD フロントエンドの利用者のさらなる増 加を目指し活用事例を増やすとともに,LOD フロント エンドの考え方に基づいた Linked Data のデータ配信 の仕組みについて研究開発を進めていきたい.参考文献
[1] Bizer, Christian, Tom Heath, and Tim Berners-Lee. “Linked data-the story so far.” Semantic Services, In-teroperability and Web Applications: Emerging Con-cepts (2009): 205-227.
[2] Resource Description Framework https://www.w3. org/RDF/ (accessed July 2018)
[3] SPARQL Query Language for RDF https://www. w3.org/TR/rdf-sparql-query/ (accessed July 2018) [4] Bates, Marcia J. “The design of browsing and berryp-icking techniques for the online search interface.” On-line review 13.5 (1989): 407-424.
[5] Dadzie, Aba-Sah, and Matthew Rowe. “Approaches to visualising linked data: A survey.” Semantic Web 2.2 (2011): 89-124.
[6] Cyganiak, Richard, and Chris Bizer. “Pubby-a linked data frontend for sparql endpoints.” Retrieved from http://www4.wiwiss.fu-berlin.de/pubby/ at May 28 (2008): 2011.
[7] Berners-Lee, Tim, et al. “Tabulator: Exploring and analyzing linked data on the semantic web.” Proceed-ings of the 3rd international semantic web user inter-action workshop. Vol. 2006. 2006.
[8] Becker, Christian, and Christian Bizer. “DBpedia Mobile: A Location-Enabled Linked Data Browser.” Ldow 369 (2008): 2008.
[9] Bizer, C., Gaub, T. (2007). Disco. http: //www4.wiwiss.fu-berlin.de/bizer/ng4j/disco/. (accessed July 2018)
[10] Skjveland, Martin G. “Sgvizler: A javascript wrap-per for easy visualization of sparql result sets.” Ex-tended Semantic Web Conference. Springer, Berlin, Heidelberg, 2012.
[11] Katayama, Toshiaki. ”D3SPARQL: JavaScript Li-brary for Visualization of SPARQL Results.” SWAT4LS. 2014.
[12] Stegemann, Timo, and Jrgen Ziegler. “SemwidgJS: A Semantic Widget Library for the Rapid Develop-ment of User Interfaces for Linked Open Data.” GI-Jahrestagung. 2014.
[13] Haase, Peter, et al. “The information workbench in-teracting with the web of data.” (2009).
[14] Kr¨otzsch, Markus, Denny Vrandecic, and Max V¨olkel. “Semantic mediawiki.” International seman-tic web conference. Springer Berlin Heidelberg, 2006. [15] Khalili, Ali, Antonis Loizou, and Frank van Harme-len. “Adaptive linked data-driven web components: Building flexible and reusable semantic web in-terfaces.” International Semantic Web Conference. Springer, Cham, 2016.
[16] Universal Resource Identifier https://www.w3.org/ wiki/URI (accessed July 2018)
[17] DBpedia Japanese http://ja.dbpedia.org/ (ac-cessed July 2018)
[18] Shuya Abe, Yutaka Mitsuishi, Shinichiro Tago, Nobuyuki Igata, Seiji Okajima, Hiroaki Morikawa, Fumihito Nishino. Linked Corporations Data in Japan. In 15th International Semantic Web Confer-ence (ISWC), Posters & Demonstrations Track, 2016. [19] 日 本 の 法 人 LOD https://lod4all.net/ja/ datasetdetail.html?graph=http://lod4all.net/ graph/corporate (accessed July 2018)
[20] Apache HTTP Server https://httpd.apache.org/ (accessed July 2018)
[21] PHP: Hypertext Preprocessor https://php.net/ (accessed July 2018)
[22] Smarty: PHP Template Engine http://www. smarty.net/ (accessed July 2018)
[23] Zend Framework https://framework.zend.com/ (accessed July 2018)
[24] D3.js - Data-Driven Documents https://d3js.org/ (accessed July 2018)
[25] C3.js — D3-based reusable chart library http:// c3js.org/ (accessed July 2018)
[26] vis.js - A dynamic, browser based visualization li-brary. http://visjs.org/ (accessed July 2018) [27] Leaflet - a JavaScript library for interactive maps
http://leafletjs.com/ (accessed July 2018) [28] 国 税 庁 法 人 番 号 公 表 サ イ ト http://www.
houjin-bangou.nta.go.jp/ (accessed July 2018)
[29] オープンデータを活用し企業の営業活動を支援する 企業情報分析Webアプリの無償公開を開始http:// pr.fujitsu.com/jp/news/2017/06/15-1.html (ac-cessed July 2018) [30] 第1回RESASアプリコンテスト— RESAS-APIで変 わるミライがあるhttps://opendata.resas-portal. go.jp/contest/index.html (accessed July 2018) [31] 法 人 イ ン フォ https://hojin-info.go.jp/hojin/
TopPage (accessed July 2018)
[32] RESAS API https://opendata.resas-portal.go. jp/ (accessed July 2018)
[33] EvaCva https://evacva.net/ (accessed July 2018) [34] 川村 隆浩,江上 周作,長野 伸一,大向 一輝,森田 武
史,山本 泰智,古崎 晃司: 第1回ナレッジグラフ推論
チャレンジ2018∼解釈可能な人工知能を目指して∼,
2018年度人工知能学会全国大会(第32回), 1F1-01, (2018)
[35] Fang, Lu, Qingliang Miao, and Yao Meng. ”DBpe-dia Entity Type Inference Using Categories.” Inter-national Semantic Web Conference (Posters & De-mos). 2016.
[36] 国際化と地域化https://ja.wikipedia.org/wiki/国 際化と地域化(accessed July 2018)