Creativity Sharing and
Entrepreneurial Support

Linked Open処理の実装

License : CC0
下記URLで投稿したアイデア「Linked Open Dataの価値を高めるLinked Open処理」の実装のアイデアを投稿します。 http://idea.linkdata.org/idea/idea1s1645i (当初は実装を行い、基盤技術部門で投稿する予定でしたが、開発が期限に間に合わなかったため、アイデア部門に投稿させてください)
Update: Jan 18, 2016

Text detail
【エントリー部門】 アイディア部門 【応募者属性】 社会人 【応募者名】 Linked Open処理の実装 【エントリー作品のURL】 http://www.slideshare.net/zuhitoslide/20160117lod-challenge-bluemix-57174977 【エントリー作品の権利指定】 CC0 【利用しているオープンデータ】 Wikipediaのダンプデータを使うことを検討 http://dumps.wikimedia.org 【利用しているパートナーリソース】 IBM Bluemix 【エントリー作品の詳細説明】 (図を用いて分かりやすくしたスライドも作成しましたので、上記スライドもご参照ください) [Linked Open処理の概要]  今回提案したLinked Open処理とは、ボランティア同士でRDF化処理とデータを共有し、データを自由に加工できる処理である。本サービスのポイントは3つある。  1つ目は、RDF処理プログラムをオープンにする点である。これによってボランティア同士が、プログラムの内容を修正し、より適切なRDFデータに加工できる。またデータを多段階でクレンジングする場合、前の処理仕様が把握できるため、以降の処理で重複した不要な処理をなくせる等の改善ができる。  2つ目は、RDF化処理を実行する環境をオープンにする点である。大量のデータをRDF化するには、個人で所有しているPCでは不可能である。そのため、クラウドサービスとして実行する環境を提供し、大量のデータを加工できるようにする。また、大量のデータをインターネット越しにダウンロードとアップロードを行い、他のユーザと共有することも個人の回線では困難である。クラウドサービスとして提供することで、異なるユーザが行った処理においても同一のデータセンタ内または高速なネットワークでつながれたデータセンタ間内でコピーが行われるため、処理効率が高くなる。  3つ目は、RDF化処理後のデータもオープンにする点である。異なるユーザが同じ処理を行うことはコンピューティングリソース活用効率が悪い。そのため、RDF化処理後のデータも共有することで、ユーザ間で重複した処理をなくすことができる。他者が加工したRDFデータをさらに2次、3次加工するためにもこの特徴は、重要である。もちろん、データ利用者にとっては、公開されているRDFデータを用いることで、自ら加工処理を行う必要なく、アプリケーション開発に用いることができる。 ※その他、課題、効果などは下記ページ参照 http://idea.linkdata.org/idea/idea1s1645i [Linked Open処理の実装アイデア]  今回は、IBM Bluemixでの実装を検討した。IBM Bluemixには今回のサービスを開発するために必要なミドルウェアが用意されている。具体的には、以下のミドルウェアが有用である。 ・RDF化処理(Node-RED)  RDF化処理実施者がRDF化処理を行う部分のミドルウェアとして、Node-REDが活用できる。今回、Node-REDをETLツールの様に用いる。しかし、Node-REDには従来のETLツールにない機能が数多く存在する。  1つ目は、外部APIとの連携である。Node-REDは元々IoT端末から取得したデータをGUI上で加工修正するために開発された開発環境であるが、現在はIoTの範疇にとどまらず、外部APIのマッシュアップ等さまざまな用途で活用されている。例えば、Watsonなど自然言語処理APIと連携する機能も盛んに開発されている。高度な処理を行うサービスは、外部のAPIとして提供されているケースも多いため、Node-REDの特徴を活用して取り込むことができる。  2つ目は、ソースコードの共有の手軽さである。Node-REDでのソースコードの共有は、JSON形式のデータをコピー&ペーストするだけで完結する。本実装では、ウェブ上でRDF化処理をライブラリ化しやすいNode-REDの特徴を活用する。  3つ目は、データ送受信を行う軽量なプロトコルMQTTに対応している点である。本実装では、1つのデータソースを入力とし多数のRDF化処理を実行する必要がある。MQTTはこのような複数の処理にデータをブロードキャストする様な使い方ができるプロトコルである。また、2つ以上のRDF化処理をMQTTを経由してつなげることで、リアルタイムに2つ以上の処理を順序性を持たせて実行することも可能である。特に、データの送信元のIDを指定するのみでデータを取り込めるため、開発者や実行したユーザが異なるRDF化処理を連結する場合に有効である。 ・RDFストア(Graph Data Store)  RDF化後のデータを格納するには、Graph Data Storeを活用できる。本サービスは、Apache TinkerPopをベースとしたグラフデータベースであり、RDFストアと同等の機能を提供している。実装では、RDF化処理後のデータを本データベースに格納する。データを2次、3次加工する場合は、本データベースからデータを取り出して、RDF処理を行い、再度処理結果のRDFデータを書き戻す。またアプリケーションがRDFデータを参照したい場合は、本データベースのREST APIを用いてデータを参照する。 ・データ加工サービス  データ加工サービスが新規に開発する必要がある部分である。本サービスは主に以下の機能を提供する。 - RDF化処理実施者にRDF化処理コードをウェブライブラリとして提供する機能 - RDF化処理実施者がGraph Data Store上のデータと、RDF化処理を指定すると、MQTT経由でデータのURIをNode-RED上のRDF化処理に渡し、RDF化処理を実行する機能 - 上記RDF化処理が出力したデータをMQTT経由で取得し、Graph Data Storeに格納できるようRDF形式と同等のデータに整形して格納する機能 [クラウドサービスで提供する理由]  本サービスは、Bluemixに代表されるようなクラウドサービスと相性が良いと考える。  1つ目として、データとコンピューティングとのネットワーク上の距離が近い方が、処理効率が良い点が挙げられる。近年のクラウドサービスは、世界中のデータセンタ間を高速なネットワークで接続されている。そのため、純粋なインターネット上のバックボーンを利用するよりも遥かにネットワーク転送効率が良い。これは、大規模なデータを扱うために必須の条件である。また、世界各地に点在するデータ提供者は、自分と近いデータセンタを選択することで、効率よくデータを提供できる。  2つ目は、コンピューティングリソースが豊富な点である。クラウドサービスの様な提供方法は、大量の計算を行う際に有効である。また、一般的な法則として、よく使われるデータや処理は実コンピューティングリソースやストレージリソースのほんの一部であることが多い。自前でサーバを用意するとこのようなケースは、費用がかかるが、クラウドサービスでは費用を最小限にできる。  3つ目はストレージが低価格である点である。料金上はペタバイト級のデータを現実的な費用で(かつ個人によるハードディスクメンテナンス不要で)、利用できる。
Update: Jan 18, 2016 (Kazuhito Yokoi)

Grant Information

Suggested fund information for realizing the idea.

Comments