以下に図面を参照して、本発明にかかる情報処理装置、情報処理システムおよび情報処理プログラムの実施の形態を詳細に説明する。
(実施の形態1)
図1は、実施の形態1にかかる情報処理装置101の一実施例を示す説明図である。図1において、情報処理装置101は、タスクの実行にかかるデータに対して、メタデータを設定するコンピュータである。タスクは、データを加工したり、演算したりして、新しいデータを出力する処理である。タスクの実行にかかるデータは、例えば、処理対象のデータに対してタスクを実行して得られる新たなデータである。
処理対象のデータは、タスクの入力となる1または複数のデータである。処理対象のデータは、例えば、CSV(Comma-Separated Value)ファイル、JSON(JavaScript Object Notation)ファイルなどである。JavaScriptは、登録商標である。メタデータは、データに対して設定される、データの意味を説明するための情報群である。
メタデータは、データの分析等を行うにあたり、処理対象のデータを判断するための有用な情報である。例えば、データに対してタスクを実行して新たなデータを出力するようなシステムにおいて、ユーザは、メタデータを頼りに、タスクに与えるデータを検索したり、選択したりすることが多い。
一方で、従来のシステムでは、タスクによってデータを加工し、新たなデータを生成するような処理を行った場合に、新たに生成されたデータにはメタデータは付与されていない。このため、例えば、新たに生成されたデータの中身を人手で確認してメタデータを付与することが考えられる。
しかし、人手によりデータの中身を一つ一つ確認してメタデータを作成するには、時間や手間がかかる。また、ユーザによっては、データの中身を見ても、どのような情報をメタデータとして付与すればよいか判断できない場合がある。また、データ中に出現する頻出語彙からメタデータを類推して付与することも考えられるが、タスクがどのような処理を行っているのかを反映した適切なメタデータを付与することは難しい。
そこで、本実施の形態では、タスクを実行して得られる新たなデータに対して、適切なメタデータを自動で設定する情報処理装置101について説明する。以下、情報処理装置101の処理例について説明する。
(1)情報処理装置101は、メタタスクmtを、タスクtkと対応付けて管理する。ここで、メタタスクmtは、処理対象のデータに対してタスクtkを実行して得られる新たなデータについて、処理対象のデータに設定されたメタデータに基づき、新たなメタデータを作成する処理である。
メタタスクmtは、例えば、タスクtkの設計者102によって作成される。設計者102は、タスクtkがどのような処理を行うかを把握しているため、タスクtkの処理内容を反映した適切なメタデータが作成されるように、メタタスクmtを設計することができる。
具体的には、例えば、情報処理装置101は、タスクtkに対応するメタタスクmtの登録を受け付ける。情報処理装置101は、メタタスクmtの登録を受け付けると、受け付けたメタタスクmtを、タスクtkと対応付けて管理する。メタタスクmtをタスクtkと対応付けて管理するとは、例えば、タスクtkの識別情報からメタタスクmtを特定可能に管理することである。
(2)情報処理装置101は、1または複数のデータに対してタスクtkを実行する際に、タスクtkに対応付けて管理されているメタタスクmtを実行して、1または複数のデータそれぞれに設定されたメタデータに基づき、新たなメタデータを作成する。1または複数のデータは、タスクtkに入力として与える処理対象のデータである。
図1の例では、タスクtkの実行依頼は、ユーザ103によって行われる。この際、タスクtkに入力として与える処理対象のデータの指定も行われる。ここでは、ユーザ103によって指定された処理対象のデータ111,112,113に対してタスクtkが実行された結果、新たなデータ114が生成された場合を想定する。
この場合、情報処理装置101は、タスクtkに対応付けて管理されているメタタスクmtを実行して、データ111,112,113それぞれに設定されたメタデータ121,122,123に基づき、新たなメタデータを作成する。ここでは、新たなメタデータ124が作成された場合を想定する。なお、タスクtkの実行は、情報処理装置101とは異なる他のコンピュータで実行することにしてもよい。
(3)情報処理装置101は、作成した新たなメタデータを、1または複数のデータに対してタスクtkを実行して得られた新たなデータに設定する。新たなメタデータを新たなデータに設定するとは、例えば、新たなメタデータと新たなデータとの対応関係を特定可能にすることである。
図1の例では、新たなメタデータ124が、データ111,112,113に対してタスクtkを実行して得られた新たなデータ114に設定される。
このように、情報処理装置101によれば、メタデータが設定されたデータに対してタスクtkを実行する際に、タスクtkを実行して得られる新たなデータのメタデータを、メタタスクmtにより作成して設定することができる。また、タスクtkがどのような処理を行うかを把握した上で、メタタスクmtを設計することができるため、タスクtkが持つデータ加工の意味をメタタスクmtとして明示的に設定可能となる。
これにより、ユーザの意図通りのメタデータを、データ加工と同期的に新しいデータに設定することが可能となり、タスクの実行にかかるデータに対する管理を容易にして、データの利活用を促進することができる。また、人手によりデータの中身を一つ一つ確認してメタデータを設定する場合に比べて、ユーザの手間や時間を削減することができる。
(情報処理システム200のシステム構成例)
つぎに、実施の形態1にかかる情報処理システム200のシステム構成例について説明する。情報処理システム200は、図1に示した情報処理装置101を含むコンピュータシステムであり、例えば、データ加工・分析での試行錯誤を通して生成される生産物を一元的に管理するシステムに適用される。
図2は、情報処理システム200のシステム構成例を示す説明図である。図2において、情報処理システム200は、情報処理装置101と、複数のクライアント装置201と、を含む。情報処理システム200において、情報処理装置101および複数のクライアント装置201は、有線または無線のネットワーク210を介して接続される。ネットワーク210は、例えば、LAN(Local Area Network)、WAN(Wide Area Network)、インターネットなどである。
ここで、情報処理装置101は、データレイク220、メタデータストア230、データ管理テーブル240、タスクリポジトリ250およびタスク管理テーブル260を有する。例えば、情報処理装置101は、サーバである。データレイク220は、処理対象のデータを格納する。処理対象のデータの具体例については、図4を用いて後述する。
メタデータストア230は、メタデータを格納する。メタデータストア230は、例えば、メタデータ(JSONオブジェクト)を格納するMongoDBなどのオブジェクトDBである。メタデータの具体例については、図5を用いて後述する。データ管理テーブル240は、処理対象のデータを管理するためのテーブルである。データ管理テーブル240の記憶内容については、図6を用いて後述する。
タスクリポジトリ250は、タスクやメタタスクの実体を格納するリポジトリである。タスクの具体例については、図8を用いて後述する。また、メタタスクの具体例については、図9および図10を用いて後述する。タスク管理テーブル260は、タスクやメタタスクを管理するためのテーブルである。タスク管理テーブル260の記憶内容については、図7を用いて後述する。
クライアント装置201は、情報処理システム200のユーザが使用するコンピュータである。ユーザは、例えば、データの分析、解析等を行うデータサイエンティストや、タスクやメタタスクの設計者などである。クライアント装置201は、例えば、PC(Personal Computer)、タブレットPC、スマートフォンなどである。
なお、ここでは、情報処理装置101とクライアント装置201とを別体に設けることにしたが、これに限らない。例えば、情報処理装置101は、クライアント装置201により実現されることにしてもよい。
また、情報処理システム200には、RDB(Relational Database)、ファイルシステム、クラウドストレージ、分散処理基盤などが含まれていてもよい。この場合、情報処理装置101は、例えば、RDB、ファイルシステム、クラウドストレージ等から各種データを取得したり、分散処理基盤を利用して各種タスクを実行したりすることができる。
(情報処理装置101のハードウェア構成例)
つぎに、図3を用いて、情報処理装置101のハードウェア構成例について説明する。
図3は、情報処理装置101のハードウェア構成例を示すブロック図である。図3において、情報処理装置101は、CPU(Central Processing Unit)301と、メモリ302と、ディスクドライブ303と、ディスク304と、通信I/F(Interface)305と、可搬型記録媒体I/F306と、可搬型記録媒体307と、を有する。また、各構成部は、バス300によってそれぞれ接続される。
ここで、CPU301は、情報処理装置101の全体の制御を司る。CPU301は、複数のコアを有していてもよい。メモリ302は、例えば、ROM(Read Only Memory)、RAM(Random Access Memory)およびフラッシュROMなどを有する。具体的には、例えば、フラッシュROMがOS(Operating System)のプログラムを記憶し、ROMがアプリケーションプログラムを記憶し、RAMがCPU301のワークエリアとして使用される。メモリ302に記憶されるプログラムは、CPU301にロードされることで、コーディングされている処理をCPU301に実行させる。
ディスクドライブ303は、CPU301の制御に従ってディスク304に対するデータのリード/ライトを制御する。ディスク304は、ディスクドライブ303の制御で書き込まれたデータを記憶する。ディスク304としては、例えば、磁気ディスク、光ディスクなどが挙げられる。
通信I/F305は、通信回線を通じてネットワーク210に接続され、ネットワーク210を介して外部のコンピュータ(例えば、図2に示したクライアント装置201)に接続される。そして、通信I/F305は、ネットワーク210と装置内部とのインターフェースを司り、外部のコンピュータからのデータの入出力を制御する。通信I/F305には、例えば、モデムやLANアダプタなどを採用することができる。
可搬型記録媒体I/F306は、CPU301の制御に従って可搬型記録媒体307に対するデータのリード/ライトを制御する。可搬型記録媒体307は、可搬型記録媒体I/F306の制御で書き込まれたデータを記憶する。可搬型記録媒体307としては、例えば、CD(Compact Disc)-ROM、DVD(Digital Versatile Disk)、USB(Universal Serial Bus)メモリなどが挙げられる。
なお、情報処理装置101は、上述した構成部のほかに、例えば、SSD(Solid State Drive)、入力装置、ディスプレイ等を有することにしてもよい。また、情報処理装置101は、上述した構成部のうち、例えば、ディスクドライブ303、ディスク304、可搬型記録媒体I/F306、可搬型記録媒体307を有していなくてもよい。また、図2に示したクライアント装置201についても、情報処理装置101と同様のハードウェア構成により実現することができる。ただし、クライアント装置201は、上述した構成部のほかに、入力装置およびディスプレイを有する。
(処理対象のデータの具体例)
つぎに、図4を用いて、処理対象のデータの具体例について説明する。
図4は、処理対象のデータの具体例を示す説明図である。図4において、データ400は、データレイク220(図2参照)に格納されるデータの一例であり、各区の出生、死亡、転入、転出の人数を示す。なお、図4の例では、データ400をテーブル形式で表記したが、データ400は、例えば、CSV形式のファイルである。
(メタデータの具体例)
つぎに、図5を用いて、メタデータの具体例について説明する。
図5は、メタデータの具体例を示す説明図である。図5において、メタデータ500は、メタデータストア230(図2参照)に格納されるメタデータの一例であり、図4に示したデータ400の意味を説明するための情報群(例えば、tags)である。
メタデータ500には、例えば、メタデータ500の識別子(id)や、メタデータ500が作成された日時(CreatedData)を示す情報が含まれる。また、メタデータ500には、メタデータ500が設定されたデータ400の識別子(file_id)や作成者(author)などを示す情報が含まれる。メタデータ500によれば、例えば、データ400が、平成28年度10月の川崎市の人口動態を区別にまとめた統計データであることがわかる。
(データ管理テーブル240の記憶内容)
つぎに、図6を用いて、情報処理装置101が有するデータ管理テーブル240の記憶内容について説明する。なお、図2に示した各種テーブル等220,230,240,250,260は、例えば、図3に示した情報処理装置101のメモリ302、ディスク304などの記憶装置により実現される。
図6は、データ管理テーブル240の記憶内容の一例を示す説明図である。図6において、データ管理テーブル240は、データID、パス、ユーザ名、グループ名およびcreated dataのフィールドを有する。各フィールドに情報を設定することで、データ管理情報(例えば、データ管理情報600-1,600-2)がレコードとして記憶される。
ここで、データIDは、処理対象のデータを一意に識別する識別子である。図5に示した「file_id」は、データIDに相当する。パスは、処理対象のデータの格納場所を示す。ユーザ名は、処理対象のデータを登録したユーザの名称である。グループ名は、ユーザが属するグループの名称である。created dataは、処理対象のデータが生成(登録)された日付を示す。
(タスク管理テーブル260の記憶内容)
つぎに、図7を用いて、タスク管理テーブル260の記憶内容について説明する。
図7は、タスク管理テーブル260の記憶内容の一例を示す説明図である。図7において、タスク管理テーブル260は、タスクID、タスク名、ディスクリプション、タイプ、in、outおよびメタタスクのフィールドを有する。各フィールドに情報を設定することで、タスク管理情報(例えば、タスク管理情報700-1~700-11)がレコードとして記憶される。
ここで、タスクIDは、タスクまたはメタタスクの処理を一意に識別する識別子である。タスク名は、タスクまたはメタタスクの処理の名称である。タスク名は、例えば、ユーザ名とリポジトリ名との組み合わせによって表現される。ディスクリプションは、タスクまたはメタタスクの処理の説明である。タイプは、タスクIDにより識別される処理が、タスクまたはメタタスクのいずれであるかを示す。タイプ「タスク」は、タスクであることを示す。タイプ「メタタスク」は、メタタスクであることを示す。
inは、タスクIDにより識別される処理に入力されるデータ形式を示す。outは、タスクIDにより識別される処理から出力されるデータ形式を示す。メタタスクは、タスクIDにより識別される処理に対応するメタタスクのタスクIDを示す。なお、タスクに対応するメタタスクが存在しない、あるいは、タスクIDにより識別される処理がメタタスクの場合、メタタスクフィールドには「null」が設定される。
(タスクの具体例)
つぎに、図8を用いて、タスクの具体例について説明する。
図8は、タスクの具体例を示す説明図である。図8において、タスク800は、タスクリポジトリ250に格納されるタスクの一例である。タスク800には、CSVファイルのリストを受け取り、CSVファイルを返す関数が記述されている。ただし、CSVファイルを取り扱うための処理は隠蔽されているものとする。
具体的には、タスク800には、区名をキーとして、各統計情報(出生、死亡、転入、転出の人数)を合計するための処理が記述されている。タスク800は、例えば、タスクID「T5」のタスクに相当する。
(メタタスクの具体例)
つぎに、図9および図10を用いて、メタタスクの具体例について説明する。
図9は、メタタスクの具体例を示す説明図(その1)である。図9において、メタタスク900は、タスクリポジトリ250に格納されるメタタスクの一例である。メタタスク900には、期間として最もふさわしそうなものを返す処理が記述されている。メタタスク900は、例えば、図8に示したタスク800(タスクID:T5)に対応する、タスクID「T8」のメタタスクに相当する。
図10は、メタタスクの具体例を示す説明図(その2)である。図10において、メタタスク1000は、タスクリポジトリ250に格納されるメタタスクの一例である。メタタスク1000には、県として最もふさわしそうなものを返す処理が記述されている。メタタスク1000は、例えば、図8に示したタスク800(タスクID:T5)に対応する、タスクID「T9」のメタタスクに相当する。
(情報処理装置101の機能的構成例)
つぎに、実施の形態1にかかる情報処理装置101の機能的構成例について説明する。
図11は、情報処理装置101の機能的構成例を示すブロック図である。図11において、情報処理装置101は、受付部1101と、管理部1102と、第1の実行制御部1103と、第2の実行制御部1104と、設定部1105と、表示制御部1106と、を含む。具体的には、例えば、受付部1101~表示制御部1106は、図3に示したメモリ302、ディスク304、可搬型記録媒体307などの記憶装置に記憶されたプログラムをCPU301に実行させることにより、または、通信I/F305により、その機能を実現する。各機能部の処理結果は、例えば、メモリ302、ディスク304などの記憶装置に記憶される。
受付部1101は、タスクの登録依頼を受け付ける。ここで、タスクの登録依頼とは、情報処理システム200へのタスクの登録を依頼するものである。タスクの登録依頼には、例えば、登録対象のタスク(例えば、図8に示したタスク800)と、タスク名、ディスクリプション、タイプ、入出力データなどを示す情報とが含まれる。
タスクの登録依頼は、例えば、タスクの設計者が使用するクライアント装置201(図2参照)において行われる。この場合、受付部1101は、例えば、クライアント装置201からタスクの登録依頼を受信することにより、当該タスクの登録依頼を受け付ける。登録依頼されたタスクは、例えば、タスクリポジトリ250に格納される。
また、受付部1101は、メタタスクの登録依頼を受け付ける。ここで、メタタスクの登録依頼とは、情報処理システム200へのメタタスクの登録を依頼するものである。メタタスクの登録依頼には、例えば、登録対象のメタタスク(例えば、図9、図10に示したメタタスク900,1000)と、タスク名、ディスクリプション、タイプ、入出力データなどを示す情報とが含まれる。また、メタタスクの登録依頼には、メタタスクに対応するタスクを特定する情報、例えば、タスクID、タスク名、ディスクリプションなどが含まれる。
メタタスクの登録依頼は、例えば、メタタスクの設計者が使用するクライアント装置201において行われる。この場合、受付部1101は、例えば、クライアント装置201からメタタスクの登録依頼を受信することにより、当該メタタスクの登録依頼を受け付ける。登録依頼されたメタタスクは、例えば、タスクリポジトリ250に格納される。
管理部1102は、メタタスクを、タスクと対応付けて管理する。ここで、タスクは、データを加工したり、演算したりして、新しいデータを出力する処理である。メタタスクは、処理対象のデータに対してタスクを実行して得られる新たなデータについて、処理対象のデータに設定されたメタデータに基づき、新たなメタデータを作成する処理である。
具体的には、例えば、管理部1102は、タスクの登録依頼に応じて、当該タスクのタスク管理情報を、図7に示したタスク管理テーブル260に格納する。この際、タスクには、当該タスクを一意に識別するタスクIDが付与される。また、タスク管理情報の各フィールドに設定される情報は、例えば、タスクの登録依頼に含まれる情報から特定される。ただし、この時点では、メタタスクフィールドは「null」である。
また、例えば、管理部1102は、メタタスクの登録依頼に応じて、当該メタタスクのタスク管理情報を、タスク管理テーブル260に格納する。この際、メタタスクには、当該メタタスクを一意に識別するタスクIDが付与される。また、タスク管理情報の各フィールドに設定される情報は、例えば、メタタスクの登録依頼に含まれる情報から特定される。ただし、メタタスクフィールドには「null」が設定される。
また、管理部1102は、メタタスクの登録依頼に含まれるタスクを特定する情報を参照して、当該メタタスクに対応するタスクを特定する。そして、管理部1102は、特定したタスクのタスク管理情報のメタタスクフィールドに、当該メタタスクのタスクIDを設定する。これにより、タスクのタスクIDから、当該タスクに対応するメタタスクを特定可能に管理することができる。
また、受付部1101は、タスク実行依頼を受け付ける。ここで、タスク実行依頼とは、タスクの実行を依頼するものである。タスク実行依頼には、例えば、実行対象のタスクを特定する情報(例えば、タスクID、タスク名など)と、処理対象のデータを特定する情報(例えば、データID)が含まれる。
以下の説明では、実行対象のタスクを「タスクtk」と表記する場合がある。また、タスクtkに対応するメタタスクを「メタタスクmt」と表記する場合がある。
第1の実行制御部1103は、タスク実行依頼に応じて、タスクtkを実行する。具体的には、例えば、第1の実行制御部1103は、タスクリポジトリ250から、タスク実行依頼から特定される実行対象となるタスクtkを取得する。また、第1の実行制御部1103は、図6に示したデータ管理テーブル240を参照して、データレイク220(図2参照)から、タスク実行依頼から特定される処理対象のデータを取得する。そして、第1の実行制御部1103は、取得した1または複数のデータに対して、取得したタスクtkを実行する。なお、1または複数のデータに対してタスクtkを実行して得られた新たなデータは、例えば、データレイク220に格納される。
第2の実行制御部1104は、第1の実行制御部1103によって1または複数のデータに対してタスクtkを実行する際に、タスクtkに対応付けて管理されているメタタスクmtを実行して、1または複数のデータそれぞれに設定されたメタデータに基づき、新たなメタデータを作成する。
具体的には、例えば、第2の実行制御部1104は、1または複数のデータに対してタスクtkを実行して新たなデータが得られた場合に、タスクtkに対応するメタタスクmtを特定する。より詳細に説明すると、例えば、第2の実行制御部1104は、タスク管理テーブル260を参照して、タスクtkのタスク管理情報から、タスクtkに対応するメタタスクmtのタスクIDを特定する。
つぎに、第2の実行制御部1104は、タスクリポジトリ250から、特定したタスクIDから特定されるメタタスクmtを取得する。また、第2の実行制御部1104は、メタデータストア230(図2参照)から、タスクtkの処理対象である1または複数のデータそれぞれのメタデータを取得する。各データに対応するメタデータは、例えば、各データのデータIDから特定される。
すなわち、第2の実行制御部1104は、メタデータストア230から、処理対象のデータそれぞれのデータIDを含むメタデータを、当該データのメタデータとして取得する。そして、第2の実行制御部1104は、取得した1または複数のメタデータを入力として、取得したメタタスクmtを実行して得られるメタデータを、新たなメタデータとする。なお、新たなメタデータに含まれるauthor(作成者)は、例えば、新たなデータのデータ管理情報(例えば、図6参照)をさらに参照して特定されることにしてもよい。また、新たなメタデータに含まれるdescriptionは、例えば、メタタスクmtのタスク管理情報(例えば、図7参照)をさらに参照して特定されることにしてもよい。
また、タスクtkに対応付けて管理されているメタタスクmtが複数取得された場合には、第2の実行制御部1104は、例えば、複数のメタタスクmtそれぞれを実行する。この場合、複数のメタタスクmtそれぞれにより、1または複数のデータそれぞれに設定されたメタデータに基づき、新たなメタデータがそれぞれ作成される。例えば、タスクID「T5」のタスクtkには、タスクID「T8」のメタタスクmtと、タスクID「T9」のメタタスクmtとが対応付けて管理されている。この場合、第2の実行制御部1104は、例えば、タスクID「T8」のメタタスクmtと、タスクID「T9」のメタタスクmtとを実行する。
以下の説明では、タスクtkを実行して得られた新たなデータを「新データ」と表記する場合がある。また、メタタスクmtを実行して作成された新たなメタデータを「新メタデータ」と表記する場合がある。
設定部1105は、第2の実行制御部1104によって作成された新メタデータを、第1の実行制御部1103によって1または複数のデータに対してタスクtkを実行して得られた新データに設定する。具体的には、例えば、設定部1105は、作成された新メタデータが1つの場合、新データのデータIDを、新メタデータに設定する。より詳細に説明すると、例えば、設定部1105は、新メタデータのfile_id(図5参照)に、新データのデータIDを設定する。そして、設定部1105は、新メタデータを、メタデータストア230に格納する。
一方、第2の実行制御部1104によって新メタデータが複数作成された場合には、新データに対応するメタデータを一意に決定することができない。この場合、設定部1105は、例えば、複数作成された新メタデータそれぞれをメタデータ候補として、新データに設定することにしてもよい。
具体的には、例えば、設定部1105は、複数作成された新メタデータそれぞれに、新データのデータIDを設定するとともに候補フラグを設定する。候補フラグは、メタデータ候補であることを示す情報である。そして、設定部1105は、新メタデータを、メタデータストア230に格納する。
これにより、新データについてのメタデータ候補であることを特定可能な状態で、新メタデータをメタデータストア230に格納することができる。
表示制御部1106は、設定部1105によって新データに設定された複数のメタデータ候補を選択可能に表示する。具体的には、例えば、表示制御部1106は、新データに設定された複数のメタデータ候補の中から、新データのメタデータを選択する操作画面を、クライアント装置201に表示することにしてもよい。
なお、複数のメタデータ候補の中から、新データのメタデータを選択する操作画面の画面例については、図14および図15を用いて後述する。
設定部1105は、複数のメタデータ候補の中からいずれかのメタデータ候補が選択されたことに応じて、選択されたメタデータ候補をメタデータとして、新データに設定する。具体的には、例えば、設定部1105は、複数のメタデータ候補のうち選択されたメタデータ候補以外のメタデータ候補を、メタデータストア230から削除する。また、設定部1105は、メタデータストア230内の選択されたメタデータ候補に設定されている候補フラグを削除する。
これにより、複数のメタデータ候補の中からユーザにより選択されたメタデータ候補を、新メタデータとして新データに紐付けることができる。
なお、情報処理装置101の各機能部は、情報処理システム200内の複数のコンピュータ(例えば、情報処理装置101とクライアント装置201)により実現されることにしてもよい。例えば、情報処理装置101により管理部1102を実現し、クライアント装置201により管理部1102以外の機能部を実現することにしてもよい。この場合、クライアント装置201は、例えば、情報処理装置101にアクセスして、タスクtkやメタタスクmtを登録したり、取得したりする。
(情報処理装置101の動作例)
つぎに、図12を用いて、実施の形態1にかかる情報処理装置101の動作例について説明する。
図12は、実施の形態1にかかる情報処理装置101の動作例を示す説明図である。ここでは、受付部1101が、タスクtk1の実行を依頼するタスク実行依頼を受け付けた場合を想定する。また、処理対象のデータを「データ1~n(n:2以上の自然数)」とする。
この場合、第1の実行制御部1103は、処理対象となるデータ1~nに対して、タスクtk1を実行する。ここでは、データ1~nに対してタスクtk1を実行した結果、新データ1201が生成された場合を想定する。新データ1201は、例えば、データレイク220に格納される。
第2の実行制御部1104は、データ1~nに対してタスクtk1を実行して新データ1201が得られた場合に、タスクリポジトリ250から、タスクtk1に対応するメタタスクmt1を取得する。また、第2の実行制御部1104は、メタデータストア230から、処理対象のデータ1~nそれぞれに設定されたメタデータ1~nを取得して、入力メタデータリスト1210に記録する。
そして、第2の実行制御部1104は、入力メタデータリスト1210を入力として、取得したメタタスクmt1を実行する。ここでは、入力メタデータリスト1210を入力としてメタタスクmt1を実行した結果、メタデータ1~nに基づき、新メタデータ1202が作成された場合を想定する。
この場合、設定部1105は、作成された新メタデータ1202を、タスクtk1を実行して得られた新データ1201に設定する。例えば、設定部1105は、新データ1201のデータIDを、新メタデータ1202に設定して、新メタデータ1202を、メタデータストア230に格納する。
これにより、データ1~nに対してタスクtk1を実行して得られた新データ1201に、データ1~nにそれぞれ設定されているメタデータ1~nを入力としてメタタスクmt1を実行して得られた新メタデータ1202を設定することができる。
ここで、図13を用いて、メタタスクmt1の利用例について説明する。
図13は、メタタスクmt1の利用例を示す説明図である。ここでは、タスクtk1を、2018年度の各月の出生率データ(例えば、データ1301,1302)を集約して、2018年度の合計を取得する処理とする。また、各出生率データには、年月を示すメタデータ(例えば、メタデータ1311,1312)が設定されている。また、メタタスクmt1を、期間として最もふさわしいものを出力する処理とする。
この場合、第1の実行制御部1103(データ処理機構)は、2018年度の各月の出生率データに対して、タスクtk1を実行する。ここでは、タスクtk1を実行した結果、データ1303が生成されている。データ1303は、2018年度の各月の出生率の合計を示す情報である。
また、第2の実行制御部1104(メタ処理機構)は、データ1303が得られた場合、各出生データにそれぞれ設定されているメタデータ(例えば、メタデータ1311,1312)を入力として、タスクtk1に対応するメタタスクmt1を実行する。ここでは、メタタスクmt1を実行した結果、メタデータ1313が生成されている。
メタデータ1313は、2018年度の各月の出生率データそれぞれに設定されているメタデータ(例えば、メタデータ1311,1312)から判断された、期間として最もふさわしい「2018年度」を示す情報である。
なお、タスクtkの他の具体例としては、都道府県の各市区町村の人口動態のデータを結合する処理が挙げられる。この場合、タスクtkに対応するメタタスクmtとしては、各市区町村の上位の概念をタグとして出力する処理が挙げられる。例えば、神奈川県の各市(川崎市、横浜市など)の人口動態のデータをタスクtkに与えた場合、「神奈川県」を示すメタデータが作成される。また、兵庫県の各市(神戸市、尼崎市など)の人口動態のデータをタスクtkに与えた場合、「兵庫県」を示すメタデータが作成される。すなわち、同一メタタスクであっても、入力として与えるデータセットが異なれば、出力もそれに応じたものとなる。
(新データのメタデータを選択する操作画面の画面例)
図14および図15を用いて、複数のメタデータ候補の中から、新データのメタデータを選択する操作画面の画面例について説明する。新データのメタデータを選択する操作画面は、例えば、クライアント装置201に表示される。
図14は、新データのメタデータを選択する操作画面の画面例を示す説明図(その1)である。図14において、メタデータ候補リスト画面1400は、複数のメタデータ候補の中から、データに設定するメタデータを選択するための操作画面の一例である。
メタデータ候補リスト画面1400には、アイコン1401~1406が表示されている。アイコン1401は、タスクtkを表す。アイコン1402~1405は、タスクtkに入力された処理対象のデータを表す。アイコン1406は、タスクtkを実行して得られたデータを表す。
メタデータ候補リスト画面1400において、クライアント装置201の入力装置(不図示)を用いたユーザの操作入力により、データを表すいずれかのアイコンを選択すると、メタデータ候補リストが表示される。メタデータ候補リストは、選択されたアイコンが表すデータに設定された複数のメタデータ候補をリスト化したものである。複数のメタデータ候補は、グループ化して表示される。
例えば、アイコン1402を選択すると、メタデータ候補リスト1410が表示される。メタデータ候補リスト1410は、アイコン1402が表すデータに設定された複数のメタデータ候補(例えば、東京、神奈川、茨城、埼玉)をリスト化したものである。なお、アイコン1402が表すデータに設定されたメタデータ候補は、メタデータストア230に格納された、アイコン1402が表すデータのデータIDが設定され、かつ、候補フラグが設定されたメタデータである。
メタデータ候補リスト1410において、ユーザの操作入力により、いずれかのメタデータ候補を選択すると、選択されたメタデータ候補がメタデータとして、アイコン1402が表すデータに設定される。例えば、メタデータ候補「東京」が選択されると、アイコン1402が表すデータに対して、メタデータ候補「東京」がメタデータとして設定される。
これにより、ユーザは、メタタスクmtを実行して得られた複数のメタデータ候補の中から、アイコン1402が表すデータ(1月.csv)に対してメタデータとして設定するメタデータ候補を選択することができる。
なお、メタデータ候補リスト画面1400において、例えば、アイコン1402をダブルクリックすることで、アイコン1402が表すデータ(1月.csv)をポップアップ表示することにしてもよい。これにより、ユーザは、データ(1月.csv)の中身を確認しながら、メタデータとして設定するメタデータ候補を選択することができる。
また、図14の例では、別の方法(例えば、手動)で、アイコン1402が表すデータに対して既に設定されているタグ「人口動態」も表示されている。タグは、メタデータに相当する。これにより、ユーザは、既に設定されているタグを把握した上で、メタデータとして設定するメタデータ候補を選択することができる。
図15は、新データのメタデータを選択する操作画面の画面例を示す説明図(その2)である。図15において、データ一覧画面1500は、複数のメタデータ候補の中から、データに設定するメタデータを選択するための操作画面の一例である。
データ一覧画面1500には、データ一覧1510が表示されている。データ一覧1510は、データレイク220に格納されているデータをリスト化したものである。データ一覧画面1500において、ユーザの操作入力により、いずれかのデータを選択すると、メタデータ候補リストが表示される。メタデータ候補リストは、選択されたデータに設定された複数のメタデータ候補をリスト化したものである。
例えば、データ1511を選択すると、メタデータ候補リスト1520が表示される。メタデータ候補リスト1520は、データ1511に設定された複数のメタデータ候補をリスト化したものである。
メタデータ候補リスト1520において、ユーザの操作入力により、いずれかのメタデータ候補を選択すると、選択されたメタデータ候補がメタデータとして、データ1511に設定される。例えば、メタデータ候補「神奈川」が選択されると、データ1511に対して、メタデータ候補「神奈川」がメタデータとして設定される。
これにより、ユーザは、メタタスクmtを実行して得られた複数のメタデータ候補の中から、データ1511(1月.csv)に対してメタデータとして設定するメタデータ候補を選択することができる。
(情報処理装置101の情報処理手順)
つぎに、図16を用いて、実施の形態1にかかる情報処理装置101の情報処理手順について説明する。ここでは、処理対象となる1または複数のデータに対してタスクtkを実行して新データが得られた場合を想定する。
図16は、実施の形態1にかかる情報処理装置101の情報処理手順の一例を示すフローチャートである。図16のフローチャートにおいて、まず、情報処理装置101は、タスクtkの入力となる処理対象のデータのうち選択されていない未選択のデータを選択する(ステップS1601)。
つぎに、情報処理装置101は、メタデータストア230から、選択したデータに対応するメタデータを取得する(ステップS1602)。そして、情報処理装置101は、取得したメタデータを入力メタデータリストに記録する(ステップS1603)。つぎに、情報処理装置101は、処理対象のデータのうち選択されていない未選択のデータがあるか否かを判断する(ステップS1604)。
ここで、未選択のデータがある場合(ステップS1604:Yes)、情報処理装置101は、ステップS1601に戻る。一方、未選択のデータがない場合(ステップS1604:No)、情報処理装置101は、タスク管理テーブル260を参照して、タスクリポジトリ250から、タスクtkに対応付けて管理されているメタタスクmtを取得する(ステップS1605)。
つぎに、情報処理装置101は、入力メタデータリストを入力として、取得したメタタスクmtを実行する(ステップS1606)。そして、情報処理装置101は、入力メタデータリストを入力としてメタタスクmtを実行して出力されたメタデータを出力メタデータリストに記録する(ステップS1607)。
つぎに、情報処理装置101は、出力メタデータリストの要素数が1つか否かを判断する(ステップS1608)。ここで、要素数が1つの場合(ステップS1608:Yes)、情報処理装置101は、タスクtkを実行して得られた新データに、出力メタデータリストに記録したメタデータを設定して(ステップS1609)、本フローチャートによる一連の処理を終了する。
一方、要素数が複数の場合(ステップS1608:No)、情報処理装置101は、タスクtkを実行して得られた新データに、出力メタデータリストに記録した複数のメタデータをメタデータ候補として設定する(ステップS1610)。そして、情報処理装置101は、本フローチャートによる一連の処理を終了する。
これにより、タスクtkを実行して得られた新データに対して、タスクtkの入力となるデータに設定されているメタデータに基づきメタタスクmtを実行して得られた新メタデータを設定することができる。また、メタタスクmtを実行して複数のメタデータが得られた場合には、当該複数のメタデータをメタデータ候補として新データに設定して、後ほどユーザが選択可能な状態にすることができる。
以上説明したように、実施の形態1にかかる情報処理装置101によれば、処理対象のデータに対してタスクtkを実行して得られる新データについて、処理対象のデータに設定されたメタデータに基づき、新メタデータを作成するメタタスクmtを、タスクtkと対応付けて管理することができる。
これにより、メタデータが設定されたデータに対してタスクtkを実行する際に、当該データに対してタスクtkを実行して得られる新データのメタデータを自動で作成する機能を提供することができる。
また、情報処理装置101によれば、1または複数のデータに対してタスクtkを実行する際に、タスクtkに対応付けて管理されているメタタスクmtを実行して、当該1または複数のデータそれぞれに設定されたメタデータに基づき、新メタデータを作成することができる。そして、情報処理装置101によれば、作成した新メタデータを、当該1または複数のデータに対してタスクtkを実行して得られた新データに設定することができる。
これにより、タスクtkを実行して得られる新データに対して、適切なメタデータを自動で設定することができる。例えば、メタタスクmtは、タスクtkの設計者により設計される。タスクtkの設計者は、タスクtkがどのような処理を行うかを把握しており、どのような情報をメタデータとして作成すれば、データ利活用につなげることができるのかを判断することができる。タスクtkの設計者のように、タスクtkの処理内容を把握した者がメタタスクmtを設計することで、データ利活用につながる適切なメタデータを自動作成することが可能となる。
また、情報処理装置101によれば、新メタデータが複数作成された場合、複数作成された新メタデータそれぞれをメタデータ候補として、新データに設定することができる。
これにより、メタタスクmtを実行して得られた新メタデータが複数存在する場合には、当該複数の新メタデータをメタデータ候補として新データに設定することができ、後ほどユーザがメタデータ候補の中から適切なメタデータを選択可能にすることができる。
また、情報処理装置101によれば、新データに設定された複数のメタデータ候補を選択可能に表示し、複数のメタデータ候補の中からいずれかのメタデータ候補が選択されたことに応じて、選択されたメタデータ候補をメタデータとして、新データに設定することができる。
これにより、複数のメタデータ候補の中からユーザにより選択されたメタデータ候補を、新メタデータとして新データに紐付けることができる。
これらのことから、実施の形態1にかかる情報処理装置101および情報処理システム200によれば、ユーザの意図通りのメタデータを、データ加工と同期的に新しいデータに設定することが可能となり、タスク実行にかかるデータに対する管理を容易にして、データの利活用を促進することができる。
(実施の形態2)
つぎに、実施の形態2にかかる情報処理装置101について説明する。実施の形態2では、タスクtkの出力側のデータに設定されたメタデータから、タスクtkの入力側のデータにメタデータを設定する情報処理装置101について説明する。
なお、実施の形態1で説明した箇所と同様の箇所については、同一符合を付して図示および説明を省略する。また、実施の形態2にかかる情報処理装置101は、実施の形態1にかかる情報処理装置101が有する全ての機能を有することにしてもよく、一部の機能を有しないことにしてもよい。
(情報処理装置101の機能的構成例)
まず、実施の形態2にかかる情報処理装置101の機能的構成例について説明する。ただし、実施の形態2にかかる情報処理装置101の機能的構成例は、図11に示した実施の形態1にかかる情報処理装置101の機能的構成例と同様のため、図示を省略する。以下、実施の形態1にかかる情報処理装置101と異なる機能を有する機能部について説明する。
管理部1102は、第2のメタタスクを、タスクと対応付けて管理する。ここで、第2のメタタスクは、処理対象のデータに対してタスクを実行して得られる新たなデータに設定されたメタデータに基づき、処理対象のデータについて新たなメタデータを作成する処理である。
具体的には、例えば、管理部1102は、メタタスクの登録依頼に応じて、当該メタタスクのタスク管理情報を、タスク管理テーブル260に格納する。また、管理部1102は、メタタスクの登録依頼に含まれるタスクを特定する情報を参照して、当該メタタスクに対応するタスクを特定する。そして、管理部1102は、特定したタスクのタスク管理情報のメタタスクフィールドに、当該メタタスクのタスクIDを設定する。これにより、タスクのタスクIDから、当該タスクに対応するメタタスクを特定可能に管理することができる。
第2の実行制御部1104は、第1の実行制御部1103によって1または複数のデータに対してタスクtkを実行して新データが得られた場合に、タスクtkに対応付けて管理されている第2のメタタスクを実行して、新データに設定されたメタデータに基づき、新たなメタデータを作成する。
具体的には、例えば、第2の実行制御部1104は、タスク管理テーブル260を参照して、タスクtkのタスク管理情報から、タスクtkに対応する第2のメタタスクのタスクIDを特定する。つぎに、第2の実行制御部1104は、タスクリポジトリ250から、特定したタスクIDから特定される第2のメタタスクを取得する。
また、第2の実行制御部1104は、メタデータストア230から、タスクtkを実行して得られた新データに設定されているメタデータを取得する。タスクtkを実行して得られた新データには、例えば、人手によりメタデータが設定されている。そして、第2の実行制御部1104は、取得したメタデータを入力として、取得した第2のメタタスクを実行して得られるメタデータを、新メタデータとする。
設定部1105は、第2の実行制御部1104によって作成された新メタデータを、タスクtkの処理対象である1または複数のデータに設定する。具体的には、例えば、設定部1105は、処理対象のデータが、1つのデータの場合、当該データのデータIDを、新メタデータに設定する。そして、設定部1105は、新メタデータを、メタデータストア230に格納する。
一方、処理対象のデータが、複数のデータである場合がある。この場合、設定部1105は、例えば、作成された新メタデータが1つであれば、複数のデータそれぞれに、作成された新メタデータをそれぞれ設定することにしてもよい。すなわち、処理対象である複数のデータそれぞれに対して、同じ内容(同じタグ)のメタデータを設定する。
また、処理対象のデータが、複数のデータである場合に、複数の異なる新メタデータが作成されることがある。この場合、複数の異なるメタデータのうちのどの新メタデータが、処理対象である複数のデータのうちのどのデータに対応しているのかを一意に決定することができない。
そこで、設定部1105は、例えば、作成された複数の新メタデータそれぞれをメタデータ候補として、複数のデータに対して設定することにしてもよい。すなわち、設定部1105は、タスクtkを複数のデータに対して実行して新データが得られ、かつ、新メタデータが複数作成された場合、複数作成された新メタデータそれぞれをメタデータ候補として、処理対象である複数のデータに対して設定する。
具体的には、例えば、設定部1105は、複数作成された新メタデータそれぞれに、処理対象である複数のデータそれぞれのデータIDを設定するとともに候補フラグを設定する。候補フラグは、メタデータ候補であることを示す情報である。そして、設定部1105は、新メタデータを、メタデータストア230に格納する。
これにより、処理対象である複数のデータについてのメタデータ候補であることを特定可能な状態で、新メタデータをメタデータストア230に格納することができる。
表示制御部1106は、設定部1105によって複数のデータに対して設定された複数のメタデータ候補を選択可能に表示する。具体的には、例えば、表示制御部1106は、複数のデータに設定された複数のメタデータ候補の中から、複数のデータの各データのメタデータを選択する操作画面を、クライアント装置201に表示することにしてもよい。
設定部1105は、複数のデータの各データについて、複数のメタデータ候補の中からいずれかのメタデータ候補が選択されたことに応じて、選択されたメタデータ候補をメタデータとして設定する。具体的には、例えば、設定部1105は、各データについて選択されたメタデータ候補に設定されている当該各データ以外の他のデータのデータIDおよび候補フラグを削除する。
これにより、複数のメタデータ候補の中からユーザにより選択されたメタデータ候補を、新メタデータとして各データに紐付けることができる。
(情報処理装置101の動作例)
つぎに、図17を用いて、実施の形態2にかかる情報処理装置101の動作例について説明する。
図17は、実施の形態2にかかる情報処理装置101の動作例を示す説明図である。ここでは、受付部1101が、タスクtk2の実行を依頼するタスク実行依頼を受け付けた場合を想定する。また、処理対象のデータを「データ1~n(n:2以上の自然数)」とする。
この場合、第1の実行制御部1103は、処理対象となるデータ1~nに対して、タスクtk2を実行する。ここでは、データ1~nに対してタスクtk2を実行した結果、データXが生成された場合を想定する。データXは、データレイク220に格納される。また、データXに、人手によりメタデータXが設定された場合を想定する。
第2の実行制御部1104は、データ1~nに対してタスクtk2を実行してデータXが得られた場合に、タスクリポジトリ250から、タスクtk2に対応するメタタスクmt2(第2のメタタスク)を取得する。また、第2の実行制御部1104は、メタデータストア230から、データXに設定されているメタデータXを取得する。
そして、第2の実行制御部1104は、メタデータXを入力として、取得したメタタスクmt2を実行する。ここでは、メタデータXを入力としてメタタスクmt2を実行した結果、メタデータXに基づき、メタデータ1~nが作成された場合を想定する。
この場合、設定部1105は、作成されたメタデータ1~nを、タスクtk2の処理対象であるデータ1~nに対して設定する。具体的には、例えば、設定部1105は、メタデータ1~nをメタデータ候補として、データ1~nに対して設定する。
これにより、データ1~nについてのメタデータ候補であることを特定可能な状態で、メタデータ1~nをメタデータストア230に格納して、後ほどユーザが選択可能な状態にすることができる。
ここで、図18を用いて、メタタスクmt2(第2のメタタスク)の利用例について説明する。
図18は、メタタスクmt2の利用例を示す説明図である。ここでは、データ1~nに対してタスクtk2を実行した結果、データXが得られた場合を想定する。また、データXに、メタデータ1801が設定された場合を想定する。メタデータ1801は、関東を示す。また、メタタスクmt2を、出力側のメタデータから、下記のようなSPARQLで、下位の概念を探す処理とする。
『select ?o where
{関東 <rdfs:subPropertyof> ?o}』
第2の実行制御部1104は、データXが得られた場合、データXに設定されているメタデータ:関東を入力として、メタタスクmt2を実行する。ここでは、メタタスクmt2を実行した結果、複数のメタデータ(例えば、東京、神奈川、・・・)が作成された場合を想定する。この場合、設定部1105は、作成された複数のメタデータをメタデータ候補(例えば、メタデータ候補1810,1820)として、タスクtk2の処理対象であるデータ1~nに対して設定する。
これにより、データ1~nについてのメタデータ候補であることを特定可能な状態で、複数のメタデータ(例えば、東京、神奈川、・・・)をメタデータストア230に格納して、後ほどユーザが選択可能な状態にすることができる。
(情報処理装置101の情報処理手順)
つぎに、図19を用いて、実施の形態2にかかる情報処理装置101の情報処理手順について説明する。ここでは、処理対象となる1または複数のデータに対してタスクtkを実行して新データが得られた場合を想定する。
図19は、実施の形態2にかかる情報処理装置101の情報処理手順の一例を示すフローチャートである。図19のフローチャートにおいて、まず、情報処理装置101は、メタデータストア230から、タスクtkを実行して得られた新データに設定されているメタデータを取得する(ステップS1901)。
つぎに、情報処理装置101は、取得したメタデータを出力メタデータに記録する(ステップS1902)。そして、情報処理装置101は、タスク管理テーブル260を参照して、タスクリポジトリ250から、タスクtkに対応付けて管理されている第2のメタタスクを取得する(ステップS1903)。
つぎに、情報処理装置101は、出力メタデータを入力として、取得した第2のメタタスクを実行する(ステップS1904)。そして、情報処理装置101は、出力メタデータを入力として第2のメタタスクを実行して出力されたメタデータを入力メタデータリストに記録する(ステップS1905)。
つぎに、情報処理装置101は、タスクtkの入力となった処理対象のデータのうち選択されていない未選択のデータを選択する(ステップS1906)。そして、情報処理装置101は、入力メタデータリストの要素数が1つか否かを判断する(ステップS1907)。
ここで、要素数が1つの場合(ステップS1907:Yes)、情報処理装置101は、選択したデータに、入力メタデータリストに記録したメタデータを設定して(ステップS1908)、ステップS1910に移行する。一方、要素数が複数の場合(ステップS1907:No)、情報処理装置101は、選択したデータに、入力メタデータリストに記録した複数のメタデータをメタデータ候補として設定する(ステップS1909)。
そして、情報処理装置101は、処理対象のデータのうち選択されていない未選択のデータがあるか否かを判断する(ステップS1910)。ここで、未選択のデータがある場合(ステップS1910:Yes)、情報処理装置101は、ステップS1906に戻る。一方、未選択のデータがない場合(ステップS1910:No)、情報処理装置101は、本フローチャートによる一連の処理を終了する。
これにより、タスクtkの入力となったデータに対して、タスクtkを実行して得られた新データに設定されているメタデータに基づき第2のメタタスクを実行して得られた新メタデータを設定することができる。また、第2のメタタスクを実行して複数のメタデータが得られた場合には、当該複数のメタデータをメタデータ候補として、タスクtkの入力となった各データに設定して、後ほどユーザが選択可能な状態にすることができる。
以上説明したように、実施の形態2にかかる情報処理装置101によれば、タスクtkを実行して得られた新データ(出力側のデータ)に設定されたメタデータから、処理対象のデータ(入力側のデータ)に適切なメタデータを自動で設定することができる。これにより、ユーザの意図通りのメタデータを、データ加工と同期的にデータに設定することが可能となり、データの利活用を促進することができる。
(実施の形態3)
つぎに、実施の形態3にかかる情報処理装置101について説明する。実施の形態3では、タスク(データ処理機構)とメタタスク(メタ処理機構)とが連携して新メタデータを作成する場合について説明する。
なお、実施の形態1,2で説明した箇所と同様の箇所については、同一符合を付して図示および説明を省略する。また、実施の形態3にかかる情報処理装置101は、実施の形態1,2にかかる情報処理装置101が有する全ての機能を有することにしてもよく、一部の機能を有しないことにしてもよい。
(情報処理装置101の機能的構成例)
まず、実施の形態3にかかる情報処理装置101の機能的構成例について説明する。ただし、実施の形態3にかかる情報処理装置101の機能的構成例は、図11に示した実施の形態1にかかる情報処理装置101の機能的構成例と同様のため、図示を省略する。以下、実施の形態1にかかる情報処理装置101と異なる機能を有する機能部について説明する。
管理部1102は、第3のメタタスクを、タスクtk’と対応付けて管理する。ここで、タスクtk’は、処理対象のデータを処理して得られる新データのメタデータに利用可能な情報を、タスクtk’の実行中に出力する機能を有するタスクである。メタデータに利用可能な情報は、例えば、メタデータの候補であってもよく、また、加工や演算をしてメタデータを作成するための情報であってもよい。また、第3のメタタスクは、処理対象のデータに対してタスクtk’を実行して得られる新データについて、タスクtk’から出力される情報に基づき、新メタデータを作成する処理である。
第1の実行制御部1103は、タスク実行依頼に応じて、タスクtk’を実行する。具体的には、例えば、第1の実行制御部1103は、タスクリポジトリ250から、タスク実行依頼から特定される実行対象となるタスクtk’を取得する。また、第1の実行制御部1103は、データ管理テーブル240を参照して、データレイク220から、タスク実行依頼から特定される処理対象のデータを取得する。そして、第1の実行制御部1103は、取得した1または複数のデータに対して、取得したタスクtk’を実行する。
第2の実行制御部1104は、第1の実行制御部1103によって1または複数のデータに対してタスクtk’が実行されたことに応じて、タスクtk’に対応付けて管理されている第3のメタタスクを実行して、タスクtk’を実行中にタスクtk’から出力される情報に基づき、新たなメタデータを作成する。
具体的には、例えば、第2の実行制御部1104は、タスク管理テーブル260を参照して、タスクtk’のタスク管理情報から、タスクtk’に対応する第3のメタタスクのタスクIDを特定する。つぎに、第2の実行制御部1104は、タスクリポジトリ250から、特定したタスクIDから特定される第3のメタタスクを取得する。
そして、第2の実行制御部1104は、タスクtk’から出力される情報を入力として、取得した第3のメタタスクを実行して、新メタデータを作成する。設定部1105は、第2の実行制御部1104によって作成された新メタデータを、第1の実行制御部1103によって1または複数のデータに対してタスクtkを実行して得られた新データに設定する。
(情報処理装置101の動作例)
つぎに、図20を用いて、実施の形態3にかかる情報処理装置101の動作例について説明する。
図20は、実施の形態3にかかる情報処理装置101の動作例を示す説明図である。ここでは、受付部1101が、タスクtk3の実行を依頼するタスク実行依頼を受け付けた場合を想定する。タスクtk3は、処理対象のデータを処理して得られる新データのメタデータに利用可能な情報を出力する機能を有するタスクである。また、処理対象のデータを「データ1~n(n:2以上の自然数)」とする。
この場合、第1の実行制御部1103は、処理対象となるデータ1~nに対して、タスクtk3の実行を開始する。また、第2の実行制御部1104は、第1の実行制御部1103によってデータ1~nに対するタスクtk3の実行が開始されたことに応じて、タスクtk3に対応付けて管理されているメタタスクmt3の実行を開始する。メタタスクmt3は、処理対象のデータに対してタスクtk3を実行して得られる新データについて、タスクtk3から出力される情報に基づき、新メタデータを作成する処理である。
タスクtk3は、例えば、川崎市高津区内の保育所の住所を座標(緯度、経度)に変換する処理である。この場合、タスクtk3から出力されるメタデータに利用可能な情報は、例えば、変換後の座標である。メタタスクmt3は、例えば、変換後の座標の重心を求め、各県/市区町村等の重心から近いものを探し、変換後の座標が最も多く含まれる区や市などを示すメタデータを作成する処理である。また、タスクtk3に対応する他のメタタスクとしては、例えば、変換後の座標から、位置情報であることを示すメタデータを作成する処理が挙げられる。
ここでは、データ1~nに対してタスクtk3を実行した結果、新データ2001が生成された場合を想定する。新データ2001は、データレイク220に格納される。また、タスクtk3から出力される情報に基づき、新メタデータ2002が作成された場合を想定する。新メタデータ2002は、例えば、タスクtk3から出力される変換後の座標が最も多く含まれる「川崎市」を示す情報である。
この場合、設定部1105は、作成された新メタデータ2002を、タスクtk3を実行して得られた新データ2001に設定する。例えば、設定部1105は、新データ2001のデータIDを、新メタデータ2002に対応付けて、新メタデータ2002を、メタデータストア230に格納する。
これにより、データ1~nに対してタスクtk3を実行して得られた新データ2001に、タスクtk3から出力された情報(変換後の座標)を入力としてメタタスクmt3を実行して得られた新メタデータ2002を設定することができる。
(情報処理装置101の情報処理手順)
つぎに、図21および図22を用いて、実施の形態3にかかる情報処理装置101の第1および第2の情報処理手順について説明する。
図21は、実施の形態3にかかる情報処理装置101の第1の情報処理手順の一例を示すフローチャートである。図21のフローチャートにおいて、まず、情報処理装置101は、処理対象となる1または複数のデータに対するタスクtk’の実行を開始する(ステップS2101)。
そして、情報処理装置101は、処理対象となる1または複数のデータのうち未処理のデータを処理する(ステップS2102)。つぎに、情報処理装置101は、データを処理した結果に基づいて、タスクtk’を実行して得られる新データのメタデータに利用可能な情報を出力データリストに記録する(ステップS2103)。
そして、情報処理装置101は、処理対象となる1または複数のデータのうち未処理のデータがあるか否かを判断する(ステップS2104)。ここで、未処理のデータがある場合(ステップS2104:Yes)、情報処理装置101は、ステップS2102に戻る。一方、未処理のデータがない場合(ステップS2104:No)、情報処理装置101は、本フローチャートによる一連の処理を終了する。
これにより、タスクtk’の実行途中に、タスクtk’を実行して得られる新データのメタデータに利用可能な情報を出力することができる。
図22は、実施の形態3にかかる情報処理装置101の第2の情報処理手順の一例を示すフローチャートである。図22のフローチャートにおいて、まず、情報処理装置101は、タスクtk’が実行されたことに応じて、タスク管理テーブル260を参照して、タスクリポジトリ250から、タスクtk’に対応付けて管理されている第3のメタタスクを取得する(ステップS2201)。
つぎに、情報処理装置101は、出力データリストを入力として、取得した第3のメタタスクを実行する(ステップS2202)。そして、情報処理装置101は、出力データリストを入力として第3のメタタスクを実行して出力されたメタデータを出力メタデータリストに記録する(ステップS2203)。
つぎに、情報処理装置101は、出力メタデータリストの要素数が1つか否かを判断する(ステップS2204)。ここで、要素数が1つの場合(ステップS2204:Yes)、情報処理装置101は、タスクtk’を実行して得られた新データに、出力メタデータリストに記録したメタデータを設定して(ステップS2205)、本フローチャートによる一連の処理を終了する。
一方、要素数が複数の場合(ステップS2204:No)、情報処理装置101は、タスクtk’を実行して得られた新データに、出力メタデータリストに記録した複数のメタデータをメタデータ候補として設定する(ステップS2206)。そして、情報処理装置101は、本フローチャートによる一連の処理を終了する。
これにより、データ1~nに対してタスクtk’を実行して得られた新データに、タスクtk’の実行中にタスクtk’から出力された情報を入力として第3のメタタスクを実行して得られた新メタデータを設定することができる。また、第3のメタタスクを実行して複数のメタデータが得られた場合には、当該複数のメタデータをメタデータ候補として新データに設定して、後ほどユーザが選択可能な状態にすることができる。
以上説明したように、実施の形態3にかかる情報処理装置101によれば、第3のメタタスク(メタ処理機構)がタスクtk’(データ処理機構)と連携して、タスクtk’(データ処理機構)から実行中に出力される情報をもとに、新しいデータに適切なメタデータを自動で設定することができる。これにより、ユーザの意図通りのメタデータを、データ加工と同期的に新しいデータに設定することが可能となり、データの利活用を促進することができる。
なお、上述した各実施の形態は、矛盾のない範囲で組み合わせて実施することができる。また、本実施の形態で説明した情報処理方法は、予め用意されたプログラムをパーソナル・コンピュータやワークステーション等のコンピュータで実行することにより実現することができる。本情報処理プログラムは、ハードディスク、フレキシブルディスク、CD-ROM、DVD、USBメモリ等のコンピュータで読み取り可能な記録媒体に記録され、コンピュータによって記録媒体から読み出されることによって実行される。また、本情報処理プログラムは、インターネット等のネットワークを介して配布してもよい。
また、本実施の形態で説明した情報処理装置101は、スタンダードセルやストラクチャードASIC(Application Specific Integrated Circuit)などの特定用途向けICやFPGAなどのPLD(Programmable Logic Device)によっても実現することができる。
上述した実施の形態に関し、さらに以下の付記を開示する。
(付記1)処理対象のデータに対してタスクを実行して得られる新たなデータについて、前記処理対象のデータに設定されたメタデータに基づき、新たなメタデータを作成するメタタスクを、前記タスクと対応付けて管理する管理部と、
1または複数のデータに対して前記タスクを実行する際に、前記管理部によって前記タスクに対応付けて管理されている前記メタタスクを実行して、前記1または複数のデータそれぞれに設定されたメタデータに基づき、新たなメタデータを作成する実行制御部と、
前記実行制御部によって作成された前記新たなメタデータを、前記1または複数のデータに対して前記タスクを実行して得られた新たなデータに設定する設定部と、
を有することを特徴とする情報処理装置。
(付記2)前記設定部は、
前記実行制御部によって前記新たなメタデータが複数作成された場合、複数作成された前記新たなメタデータそれぞれをメタデータ候補として、前記新たなデータに設定する、ことを特徴とする付記1に記載の情報処理装置。
(付記3)前記設定部によって前記新たなデータに設定された複数のメタデータ候補を選択可能に表示する表示制御部をさらに有し、
前記設定部は、
前記複数のメタデータ候補の中からいずれかのメタデータ候補が選択されたことに応じて、選択された前記メタデータ候補をメタデータとして、前記新たなデータに設定する、ことを特徴とする付記2に記載の情報処理装置。
(付記4)前記管理部は、
処理対象のデータに対してタスクを実行して得られる新たなデータに設定されたメタデータに基づき、前記処理対象のデータについて、新たなメタデータを作成する第2のメタタスクを、前記タスクと対応付けて管理し、
前記実行制御部は、
1または複数のデータに対して前記タスクを実行して新たなデータが得られた場合に、前記管理部によって前記タスクに対応付けて管理されている前記第2のメタタスクを実行して、前記新たなデータに設定されたメタデータに基づき、新たなメタデータを作成し、
前記設定部は、
前記実行制御部によって作成された前記新たなメタデータを、前記1または複数のデータに設定する、ことを特徴とする付記1に記載の情報処理装置。
(付記5)前記設定部は、
前記タスクを複数のデータに対して実行して前記新たなデータが得られ、かつ、前記新たなメタデータが複数作成された場合、複数作成された前記新たなメタデータそれぞれをメタデータ候補として、前記複数のデータに対して設定する、ことを特徴とする付記4に記載の情報処理装置。
(付記6)前記設定部によって前記複数のデータに対して設定された複数のメタデータ候補を選択可能に表示する表示制御部をさらに有し、
前記設定部は、
前記複数のデータの各データについて、前記複数のメタデータ候補の中からいずれかのメタデータ候補が選択されたことに応じて、選択された前記メタデータ候補をメタデータとして設定する、ことを特徴とする付記5に記載の情報処理装置。
(付記7)前記タスクは、処理対象のデータを処理して得られる新たなデータのメタデータに利用可能な情報を出力する機能を有し、
前記管理部は、
前記処理対象のデータに対して前記タスクを実行して得られる新たなデータについて、前記タスクから出力される前記情報に基づき、新たなメタデータを作成する第3のメタタスクを、前記タスクと対応付けて管理し、
前記実行制御部は、
1または複数のデータに対して前記タスクが実行されたことに応じて、前記管理部によって前記タスクに対応付けて管理されている前記第3のメタタスクを実行して、前記タスクの実行中に当該タスクから出力される情報に基づき、新たなメタデータを作成する、ことを特徴とする付記1に記載の情報処理装置。
(付記8)データに対してタスクを実行して新たなデータを出力する情報処理システムにおいて、
処理対象のデータに対してタスクを実行して得られる新たなデータについて、前記処理対象のデータに設定されたメタデータに基づき、新たなメタデータを作成するメタタスクを、前記タスクと対応付けて管理する管理部と、
1または複数のデータに対して前記タスクを実行する際に、前記管理部によって前記タスクに対応付けて管理されている前記メタタスクを実行して、前記1または複数のデータそれぞれに設定されたメタデータに基づき、新たなメタデータを作成する実行制御部と、
前記実行制御部によって作成された前記新たなメタデータを、前記1または複数のデータに対して前記タスクを実行して得られた新たなデータに設定する設定部と、
を含むことを特徴とする情報処理システム。
(付記9)前記設定部は、
前記実行制御部によって前記新たなメタデータが複数作成された場合、複数作成された前記新たなメタデータそれぞれをメタデータ候補として、前記新たなデータに設定する、ことを特徴とする付記8に記載の情報処理システム。
(付記10)前記設定部によって前記新たなデータに設定された複数のメタデータ候補を選択可能に表示する表示制御部をさらに有し、
前記設定部は、
前記複数のメタデータ候補の中からいずれかのメタデータ候補が選択されたことに応じて、選択された前記メタデータ候補をメタデータとして、前記新たなデータに設定する、ことを特徴とする付記9に記載の情報処理システム。
(付記11)前記管理部は、
処理対象のデータに対してタスクを実行して得られる新たなデータに設定されたメタデータに基づき、前記処理対象のデータについて、新たなメタデータを作成する第2のメタタスクを、前記タスクと対応付けて管理し、
前記実行制御部は、
1または複数のデータに対して前記タスクを実行して新たなデータが得られた場合に、前記管理部によって前記タスクに対応付けて管理されている前記第2のメタタスクを実行して、前記新たなデータに設定されたメタデータに基づき、新たなメタデータを作成し、
前記設定部は、
前記実行制御部によって作成された前記新たなメタデータを、前記1または複数のデータに設定する、ことを特徴とする付記8に記載の情報処理システム。
(付記12)処理対象のデータに対してタスクを実行して得られる新たなデータについて、前記処理対象のデータに設定されたメタデータに基づき、新たなメタデータを作成するメタタスクを、前記タスクと対応付けて管理するコンピュータに、
1または複数のデータに対して前記タスクを実行する際に、前記タスクに対応付けて管理されている前記メタタスクを実行して、前記1または複数のデータそれぞれに設定されたメタデータに基づき、新たなメタデータを作成し、
作成した前記新たなメタデータを、前記1または複数のデータに対して前記タスクを実行して得られた新たなデータに設定する、
処理を実行させることを特徴とする情報処理プログラム。
(付記13)前記新たなメタデータが複数作成された場合、複数作成された前記新たなメタデータそれぞれをメタデータ候補として、前記新たなデータに設定する、処理を前記コンピュータに実行させることを特徴とする付記12に記載の情報処理プログラム。
(付記14)前記新たなデータに設定された複数のメタデータ候補を選択可能に表示し、
前記複数のメタデータ候補の中からいずれかのメタデータ候補が選択されたことに応じて選択された前記メタデータ候補をメタデータとして、前記新たなデータに設定する、
処理を前記コンピュータに実行させることを特徴とする付記13に記載の情報処理プログラム。
(付記15)処理対象のデータに対してタスクを実行して得られる新たなデータに設定されたメタデータに基づき、前記処理対象のデータについて、新たなメタデータを作成する第2のメタタスクを、前記タスクと対応付けて管理し、
1または複数のデータに対して前記タスクを実行して新たなデータが得られた場合に、前記タスクに対応付けて管理されている前記第2のメタタスクを実行して、前記新たなデータに設定されたメタデータに基づき、新たなメタデータを作成し、
作成した前記新たなメタデータを、前記1または複数のデータに設定する、
処理を前記コンピュータに実行させることを特徴とする付記12に記載の情報処理プログラム。