Creativity Sharing and
Entrepreneurial Support

サイバー・フィジカルLOD(Cyber-Physical LOD:CPLOD)の提案

License : Copyright © 2016 Advanced IT Consortium to Evaluate, Apply and Drive All Rights Reserved.
1.概要 従来のLODを物理世界とつなげるプラットフォーム「サイバー・フィジカルLOD:CPLOD」を提案します。CPLODは、LODにつぎの機能を加えたものです。 ・物理世界との双方向接続 ・リアルタイム性 ・秘密の制御 これらの機能によってLODを身の回りのあらゆる情報処理へ適用できるようにし、クラウド、モバイル、IoTをオープンな仕様で連携させ、少子高齢化、地球環境の変化などの課題にITを活用できるようにします。 2.セールスポイント:ITデバイスの総連携によりITの可能性を使い切る 現在のITデバイス(クラウド、モバイル、IoTなど)は、十分な発展をとげ、様々な問題を解決するツールとなる可能性を秘めています。たとえば、個人の身の回りのデバイスを連携させれば、社会や家族の負担を少なくしながら高齢者を見守り、介助するようなシステムを作れるでしょう。 あるいは、市町村、都道府県、国といった様々なレベルでリアルタイムに地域の状況のセンシングを行って情報を共有できるシステムや、全住民が参加するコラボレーションツールのようなシステムを作ることができるでしょう。縮小していく経済に対応しながら、資源やエネルギーを効率化し、拡大する失業、高齢化、少子化などの対策をとるツールとするといったことが可能となるはずです。 しかし、現在このようなシステムはまだありません。その原因は、任意のデバイスや人を連携させることができないという、分断化にあると考えます。ITの分断化には3種のタイプがあります。 (1)APIやプロトコルなどの、規格の乱立による分断 企業やグループによる囲い込みや、異なる目的のプロトコルの存在によって、ユーザが自分の使いたいデバイスを自由に連携させることができません。特定メーカーのデバイスとそのメーカーの認証を受けたデバイスを連携させてスマートハウスを実現するといった試みは存在します。しかし、あらゆるメーカーのあらゆるデバイスを連携させることはできません。 (2)規格の不在 IT化を推進するメーカーやユーザがいない分野や、異なる分野をつなぐ用途には、IT化のための規格を作る動きがありません。たとえば高齢者の生活を支えるために、介護サービス産業・行政・ボランティア・ご近所・出入り業者などの、地域社会の様々なステークホルダが現場で連携するようなITシステムを作ろうとしたとき、様々なシステムを連携させるための規格を作るのは誰でしょうか。本来は現場でシステムを作る人たちが規格を作ることができれば理想的です。しかし、規格を作るというスキルは現状では期待できません。 (3)世代交代(陳腐化)への対応 APIやプロトコルは新しい技術が生まれるたびに更新され、その周期は人の一生や人の世代交代といった時間軸に比べれば著しく短いものです。黎明期をとっくに過ぎたITですが、まだ数十年以上にわたる連続運用には耐えられません。過去と未来の連携を可能とする必要があります。 たとえば、つぎのようなユースケースを実現可能としなければなりません。 ・10年後のシステムに対して、家屋の10年点検時に確認すべき項目を指示する。 ・築20年のスマートハウスシステムに、新しいデバイスを接続する。 ・30年後のシステムが現在のセンシングデータを参照する。 そこで私たちは、LODのアーキテクチャを使って、この分断化の問題を解決し、あらゆるITデバイスを連携させることと、この目的のために、LODに不足している機能を追加することを提案します。 3.提案者 先端IT活用推進コンソーシアム(AITC) ビジネスAR研究部会(http://aitc.jp/wg/ar/) 連絡先:リーダー 大林勇人、サブリーダー 中川雅三、吉田光輝 4.実装方法 4.1.物理世界との双方向接続 CPLODでは、デバイス上のサービスをRDFデータにマッピングし、RDFデータを書いたり読んだりすることでサービスを利用できるようにします。 メモリマップドI/Oの考え方を、RDFデータに適用するというアイデアです。 ・サービスのユーザがサービスへのリクエストをあらわすデータをRDFストアへ書き込むと、サービスの提供者はそれを読み出して実行する。 ・サービスの提供者がサービスの結果をRDFストアへ書き込むと、サービスのユーザがそれを読み出して利用する。 単純な例を示します。 ・指定した場所の照明をオン・オフする 照明のユーザは、つぎのような形で居間の照明を"ON"とするリクエストをRDFストアに書き込みます。 DELETE{ ?sw :制御要求 ?current . } INSERT{ ?sw :制御要求 "ON" . } WHERE { ?sw :所在 :居間 . ?sw :種別 :照明スイッチ . OPTIONAL { ?sw :制御要求 ?current . } } 照明制御を提供するサービスは、制御要求データを監視し、値が変化したときに、その値を照明スイッチへ反映します。 ・指定した場所の温度を取得する。 温度計のユーザは、つぎのような形で温度データを取得します。 SELECT{ ?temp } WHERE { ?sensor :所在 :居間 . ?sensor :種別 :温度計 . ?sensor :測定値 ?temp . } 温度計のデータを提供するサービスは、温度データを取得するたびにRDFへ値を書き込みます。 語彙とデータ構造を定義してゆくことで、もっと複雑なサービスのインタフェースもRDFデータとして定義することもできます。たとえば、つぎのようなリクエストをSPARQLで表現できるだろうと考えています。 ・Aさんが歩いている付近の街灯を点灯する。 ・河川が氾濫の警戒水位に近づいている地域の低地にある家に住んでいる住人全員へ、警戒を促すメールを送信する。 4.2.APIにLODを使うメリット LODによってつぎのようなメリットが得られ、先に述べた3つの分断化をすべて解決することができます。 (1)プロトコル、データ構造、メタデータの記述方法を統一できる。 プロトコルはHTTP、語彙はRDFで統一できます。 メタデータを記述するオントロジーを定義することで、データ構造や機能の意味も機械可読な形で記述可能です。このことにより、つぎの利点が生まれます。 1)LODへアクセスするライブラリを用意するだけで、任意のOS、任意のプログラミング言語からAPIを利用することができる。 既存のAPIの多くは、特定のOSや特定の言語にしか対応していません。 2)世界中のすべての情報やサービスを扱える。 IRIを使って独自の語彙を作り、オントロジーを定義することで、あらゆる用途に応用できます。 既存のAPIについて、LOD へマッピングする語彙をそれぞれが衝突しないように定義することができます。 3)異なる用途のために作られたAPI群を同時に利用することができる。 既存のAPIはOSや言語に依存するため、異なるOSや言語で実装されたAPIを同時に使うことができません。    (2)現場からのボトムアップによる規格化が可能である。 これまでの規格は、少数の企業やグループが時間をかけて作るトップダウンな方式で作成されてきました。 このような作り方では、実社会の多様な活動分野それぞれに対応したり、必要なときに迅速に対応できるような規格化は不可能です。実際の問題解決を行う現場の人々が試行錯誤しながらAPIを作り、様々な提案から有力なものが進化していって「規格」となるという、ボトムアップな規格化(デファクトスタンダード)が現実的な手段となるはずです。 LODでは名前空間を厳格に区別し、語彙を厳密に定義できます。現場の人々は、LODでAPIを設計することで、規格の記述が完了します。LODを使うことによって、多様な規格の乱立という初期状態を整然と実現し、それらを統合したり、変換したりしていくつかの規格に収束させることができるようになります。 (3)IRIで名前空間を分けることができるため、世代によって変遷するAPIを共存させることができます。 機械可読なメタデータにより、異なるAPIや、異なる世代のAPIの間の自動変換技術を開発することもできるようになります。LODは十分に抽象化され、厳密に定義されているため、数十年後でも現在定義したデータを容易に扱うことができるはずです。 4.3.LODに欠けている機能の追加 これまでに述べたことを現在のLODで実現するには、つぎの課題があります。 (1)リアルタイム性 論理的には、上記の方法だけで、既存のRDFストアとSPARQLを使って任意のAPIを実現することができます。しかし、SPARQLクエリの処理オーバヘッドが大きく、システム負荷を抑えながら、リクエストへの応答性能を確保することが困難です。例えば、先述の「居間の照明制御」の例では、照明を制御するデバイスは、自分宛の制御要求が書き込まれるまで、SPARQLクエリを繰り返し実行しつづけなければなりません。 多数のデバイスをRDFストアに接続したとき、膨大な量のSPARQLクエリが繰り返し実行されることになり、大きな負荷が生じ、応答性能も低下することになります。 (2)アクセス権限の制御 LODでは、すべてのデータを公開します。しかしすべてを公開する前提では、あらゆるサービスをLOD化することはできません。プライバシー情報へのアクセスや、セキュリティ確保が必要なサービス利用では、個別のデータやサービスを、相手によって公開したり非公開としたりする制御をできるようにする必要があります。 CPLODでは、上記の課題をLODにふさわしい形でRDFストア機能を拡張します。 (1)WebSocketによる、RDFデータ変化の通知 RDFストアにWebSocketインタフェースを設けます。 ・読み出しインタフェース:指定したRDFデータ項目の変化を通知する。 ・書き込みインタフェース:指定したRDFデータの書き換えを通知する。 サービス提供デバイスは、WebSocketによってRDFストアへ接続し、リクエストの監視と、提供データの更新を行うことで、リアルタイム性を確保します (2)アクセス権限を制御するメタデータ設計及びSPARQLの改造 すべてのRDFストア内データについて、個別にアクセス権限を設定する語彙を定義し、その語彙にしたがってアクセス許可を制御する機能をSPARQLクエリエンジンに実装します。 具体的にはRDFデータにアクセス権限を示すデータを付加してアクセス制御します。アクセス権限を示すデータ自身もRDFで記述します。 ・クラスのプロパティに権限を設定 ・インスタンスのプロパティに権限を設定 ・IRIにアクセス権限を設定 といった記述方法を定めています。 アクセス権限はつぎの3レベルです。 ・レベル1:外部へ公開可 ・レベル2:推論に利用可だが、外部への公開不可 ・レベル3:推論に利用不可かつ、外部へも公開不可 5.進捗状況及び今後の予定 開発シナリオとして、2段階を予定しています。 (1)概念を実証するために、モックアップを作成する。 モックアップでは、既存のRDFストアをそのまま使い、RDFストアへのラッパーとしてCPLODの機能拡張を実装します。ラッパーによる実装はつぎの欠点がありますが、実装が比較的単純で、動作を短期間に評価できるメリットがあります。 ・最高のパフォーマンスを得られない:ラッパーが外部からのSPARQLリクエストを解釈し、既存のRDFストアへのSPARQLリクエストを自動生成します。SPARQLの解釈や生成のオーバヘッドが発生します。 ・完全なアクセス権限制御をできない:プロパティパスなどのRDFストア内部で多重のリンクをたどる処理が実行されるとき、途中のリンクに対する権限チェックを実装することができません。 (2)本格的な実装を行う。 SPARQLクエリの処理エンジンを、CPLOD仕様へ改造します。 現在は(1)のモックアップが、一部の動作を開始したところです。 詳細は以下の「6.現時点のモックアップ「空間OS」」に記します。
Update: Jan 17, 2016

Text detail
【エントリー部門】 アイディア部門 【応募者属性】 社会人 【応募者名】 先端IT活用推進コンソーシアム(AITC) ビジネスAR研究部会(http://aitc.jp/wg/ar/) 連絡先:リーダー 大林勇人、サブリーダー 中川雅三、吉田光輝 【エントリー作品のURL】 AITCビジネスAR研究部会では、本アイデアの実現像として「空間OS」を2012年9月から設計・開発し続け、毎年のAITCの成果発表会で報告している。 ・2013年度成果発表(2014年9月29日) http://aitc.jp/events/20140929-BizAR/20140929_BizAR-4.pdf ・2014年度成果発表(2015年9月16日。空間OS関連のパートは、87ページ〜126ページ) http://aitc.jp/events/20150916-Seika/%E6%B4%BB%E5%8B%95%E6%88%90%E6%9E%9C%E7%99%BA%E8%A1%A8%E4%BC%9A.pdf 【エントリー作品の権利指定】 Copyright © 2016 Advanced IT Consortium to Evaluate, Apply and Drive All Rights Reserved. 【利用しているオープンデータ】 モックアップ、実験段階では独自に作成する物理空間を表現するデータ。将来的には、適切にアクセス権限や匿名化がほどこされた上でオープン化される、物理空間のあらゆるオブジェクトを表現するデータ。 【利用しているパートナーリソース】 【エントリー作品の詳細説明】 本文を参照。 【関連する応募作品】 ・LODチャレンジ2014 プライベート情報のLOD公開(日本総合システム株式会社 中川雅三) http://lod.sfc.keio.ac.jp/challenge2014/show_status.php?id=i038
Update: Jan 17, 2016 (大林)
Text detail
アイコンは先端IT活用推進コンソーシアム(AITC)のイメージキャラクター『ハルミン』です。
Update: Jan 15, 2016 (大林)
Text detail
6.現時点のモックアップ「空間OS」 6.1.概要 CPLODの実証実装のためのモックアップシステムは、「家」を対象としたシステム構築実験のために実装を進めています。 家屋の中にある照明、空調、ドアロック、家電、ロボットなどの機器を連携させるシステムです。機器だけでなく、家族、親戚、ご近所、出入り業者、行政、ボランティアなどの人々をも連携させることを目指しています。 このように家などの物理空間全体を管理するシステムを、私たちは「空間OS」と呼んでいます。空間OSは、家屋のほか、集合住宅、オフィスビル、街、都道府県・市区町村・国家、仮想世界など、様々な空間を対象としてゆくことができると考えています。 空間OSは、これまで述べてきたCPLODを中心とし、プロトコルアダプタ、時系列データベースなどの要素を追加したものです。
Update: Jan 17, 2016 (大林)
Image detail
6.2.空間OSの構成図 RDFストアのラッパー(以下、「CPLODラッパー」と呼称)による現時点の実装の構成図を添付しました。LinuxとWindowsで動作しています。RDFストアにはJenaを採用しました。
Update: Jan 17, 2016 (大林)
Movie detail
6.3.空間OSを用いたサンプルアプリケーション 6.3.1.リアルタイム動作 (1)温度の表示 屋内の温度をリアルタイム表示するデモです。本物の温度計では変化がみえにくいため、この動画ではマウスの入力を温度にみたてています。 CPLODへ、WebSocketを通して温度計(マウス)のドライバが温度を書き込みます。表示しているWebページは、やはりWebSocketをCPLODへ接続して更新された温度を表示しています。 動画の最後の方で、SPARQLによるクエリで温度の値を表示しています。CPLODでRDFストアにリアルタイムの値更新ができているこ とを示しています。「1F居間温度」がこのときの画面キャプチャイメージです。
CPLODによる温度表示
Update: Jan 17, 2016 (大林)
Movie detail
(2)照明の点灯 Raspberry PIに接続したLEDを照明にみたてています。赤色LEDが1F居間の照明、緑色LEDが2F居間の照明をあらわします。 LEDの制御プログラムは、CPLODへWebSocketで接続し、点灯指示を示す値を監視しています。点灯指示の値が「ON」になると点灯します。 CPLODのラッパーはSPARQLを透過的(ユーザからは通常のSPARQLと区別できない)に処理しますが、値の更新については、言語仕様を拡張しています。WebSocketで外部と接続している値の更新を処理するためです。ラッパーではなく、SPARQL処理系自体をCPLOD用の仕様へ改造する場合には透過的な実装とすることもできると思われます。 リアルタイム値の更新は、現状ではつぎのようなクエリで実行しています。 APPLYというクエリの形式が拡張した部分です。デバイスを検索してデバイスのIDを抽出し、そのIDを持つデバイスの値を設定しています。
CPLODによる照明制御
Update: Jan 17, 2016 (大林)
Code detail
本クエリは、「1階居間の照明をONにする」です。
Click to Select
Update: Jan 17, 2016 (大林)
Text detail
6.3.2.アクセス制御 CPLODラッパーは、ユーザから受信したSPARQLクエリを構文解析して、つぎの操作を行います。 1)クエリに現れる変数すべてについて、そのデータに付随するアクセス権限レベルをOptionalに抽出するようにする。 2)WHERE要素やサブクエリに現れる変数については、アクセス権限レベル2(推論に利用可だが、外部への公開不可)以下のものをFilterする。アクセス権限レベル3(推論に利用不可かつ、外部へも公開不可)のデータは、CPLODラッパーを通したときには使用不可とする。 3)それぞれのサブクエリごとに上記の処理を行う。SELECTやCONSTRUCTに現れる変数については、アクセス権限レベル1(外部へ公開可)のものだけをFilterする。
Update: Jan 17, 2016 (大林)
Code detail
まずはオリジナルのクエリを記します。「ここ」という場所にいる人が持っているPCや携帯電話などのデバイスを探し、そのデバイスへテキストメッセージを送るWEBサービスのURLを取得します。
Click to Select
Update: Jan 17, 2016 (大林)
Code detail
次に、CPLODラッパーが生成したクエリです。
Click to Select
Update: Jan 17, 2016 (大林)
Code detail
対象となるRDFデータです。この例では、元のクエリが3個の値を返すのに対して、CPLODラッパーが生成したクエリは2個の値を返します。
Click to Select
Update: Jan 17, 2016 (大林)

Grant Information

Suggested fund information for realizing the idea.

Comments