(57)【要約】【課題】データを統一的に管理し、データの利活用を増大させることができる新たな仕組みを提供する。【解決手段】少なくともデータの役割又は他のデータとの関係を示す第１識別子を含む識別情報を用いて検索対象データを指定するための検索要求を入力する入力部と、データを格納するためのボディ部と、データの意味を識別する識別情報であって、第１識別子、データの生成時間又は有効期限を示す第２識別子、及びデータの空間的位置の変化を示す第３識別子を含む識別情報を格納する識別部とにより構成されるデータを記憶する記憶部から、入力部により入力された識別情報に対応する識別情報を有するデータを検索する検索部と、検索部により検索されたデータを出力する出力部と、を備える。【選択図】図２
2017224158.tif 000002
【特許請求の範囲】
【請求項１】
少なくともデータの役割又は他のデータとの関係を示す第１識別子を含む識別情報を用いて検索対象データを指定するための検索要求を入力する入力部と、
データを格納するためのボディ部と、当該データの意味を識別する前記識別情報であって、前記第１識別子、前記データの生成時間又は有効期限を示す第２識別子、及び前記データの空間的位置の変化を示す第３識別子を含む識別情報を格納する識別部とにより構成されるデータを記憶する記憶部から、前記入力部により入力された識別情報に対応する識別情報を有するデータを検索する検索部と、
前記検索部により検索されたデータを出力する出力部と、
を備える情報処理装置。
【請求項２】
前記記憶部に、入力及び出力それぞれに対して、前記ボディ部と前記識別部とにより構成されるデータ処理可能なプログラムが記憶されている場合、
前記検索部は、
前記検索対象データに対応するデータを出力可能なプログラムと、当該プログラムに入力可能なデータであって、当該プログラムの入力の識別情報に対応する識別情報を有するデータとを検索し、
検索された前記入力可能なデータを、前記プログラムに入力してデータ処理を行い、
データ処理されたデータを前記出力部に出力する、
請求項１に記載の情報処理装置。
【請求項３】
前記第１識別子は、データの実体を示すエンティティと、データの役割を示すロールとを含み、
前記エンティティは、任意のデータであることを示すことが可能であり、
前記検索部は、
前記検索要求により指定されたロールに対応するロールを前記出力に有するプログラムを、前記出力可能なプログラムとして検索し、
当該プログラムの入力及び出力それぞれのエンティティが前記任意のデータであることを示す場合、当該それぞれのエンティティに前記検索対象データのエンティティを継承し、
継承後のエンティティを有するデータを前記入力可能なデータとして検索する、
請求項２に記載の情報処理装置。
【請求項４】
コンピュータが、
少なくともデータの役割又は他のデータとの関係を示す第１識別子を含む識別情報を用いて検索対象データを指定するための検索要求を入力し、
データを格納するためのボディ部と、当該データの意味を識別する前記識別情報であって、前記第１識別子、前記データの生成時間又は有効期限を示す第２識別子、及び前記データの空間的位置の変化を示す第３識別子を含む識別情報を格納する識別部とにより構成されるデータを記憶する記憶部から、入力された識別情報に対応する識別情報を有するデータを検索し、
検索されたデータを出力する、
処理を実行するデータ検索方法。
【請求項５】
コンピュータに、
少なくともデータの役割又は他のデータとの関係を示す第１識別子を含む識別情報を用いて検索対象データを指定するための検索要求を入力し、
データを格納するためのボディ部と、当該データの意味を識別する前記識別情報であって、前記第１識別子、前記データの生成時間又は有効期限を示す第２識別子、及び前記データの空間的位置の変化を示す第３識別子を含む識別情報を格納する識別部とにより構成されるデータを記憶する記憶部から、入力された識別情報に対応する識別情報を有するデータを検索し、
検索されたデータを出力する、
処理を実行させるプログラム。
【請求項６】
記憶部に記憶されるデータのデータ構造であって、
前記データを格納するためのボディ部と、
前記データの意味を識別する識別情報であって、前記データの役割又は他のデータとの関係を示す第１識別子、前記データの生成時間又は有効期限を示す第２識別子、及び前記データの空間的位置の変化を示す第３識別子を含む識別情報を格納する識別部と、
を含むデータ構造。
【請求項７】
データを格納するためのボディ部と、前記データの意味を識別する識別情報であって、前記データの役割又は他のデータとの関係を示す第１識別子、前記データの生成時間又は有効期限を示す第２識別子、及び前記データの空間的位置の変化を示す第３識別子を含む識別情報を格納する識別部とにより構成されるデータを記憶する記憶部と、
少なくとも前記第１識別子を含む識別情報を用いて検索対象データを指定するための検索要求を入力する入力部と、
前記入力部により入力された識別情報に対応する識別情報を有するデータを、前記記憶部に記憶されたデータから検索する検索部と、
前記検索部により検索されたデータを出力する出力部と、
を備えるデータ処理システム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、情報処理装置、データ検索方法、プログラム、データ構造及びデータ処理システムに関する。
【背景技術】
【０００２】
近年、巨大なデータ群を示すビッグデータの活用方法が盛んに研究されている。例えば、医療分野において、手術時のデータなどの医療データを大量に保存し、これらを上手く利活用することが期待されている（例えば非特許文献１参照）。
【０００３】
また、近年では、類似画像を検索するdeep learning（例えば非特許文献２参照）や、オントロジーを使ったセンテンス照合（例えば非特許文献３参照）など、ビッグデータから意図したものと類似のデータを検索する人工知能が注目されている。これらは同一種類のデータ間において、認識や識別を行うのに有効である。
【先行技術文献】
【非特許文献】
【０００４】
【非特許文献１】「医療ビッグデータコンソーシアム」、［online］、［平成２８年６月１５日検索］、インターネット＜ＵＲＬ：http://www.medical-bigdata.jp/index.html＞
【非特許文献２】Quac V. Le, et al., "Building High-level Features Using Large Scale Unsupervised Learning," Intl. Conf. on Machine Learning (ICML) 2012
【非特許文献３】「Building Watson: An Overview of the DeepQA Project」、「online」、［平成２８年６月１５日検索］、 インターネット＜ＵＲＬ：http://www.aaai.org/Magazine/Watson/watson.php＞
【発明の概要】
【発明が解決しようとする課題】
【０００５】
ここで、ビッグデータを扱う一般的な従来技術では、存在が既知のデータの所在を検索することか、あるいは同一種類のデータ郡内から任意のデータと類似のものを検索することが目的である。これに対し、非特許文献１に例示された従来技術では、データの共通フォーマットの立案やデータベース間のデータ変換に言及することが目的であり、ビッグデータ内のデータをどう関連付けるのか、また、ビッグデータをどう分析するのかなど、ビッグデータの利活用に関する検討は十分とはいえない。これは、種々多様なデータが大量に保存されることで、これらのデータをどう関連付けするのかが不明であることが原因の一つと考えられる。なお、この課題は医療分野に限らず、全ての分野において共通する課題となっている。
【０００６】
また、非特許文献２及び３に例示された従来技術では、ビッグデータ内のデータの照合は同一種類のデータ間に限られており、多種多様なデータには対応していない。Internet of things (IoT)をはじめとした技術は、多種多様なデータが時々刻々と状況を変えて現れては消え、それらを関連付けて、統合して利用する必要がある。すなわち、上述した従来技術は、種々多様なデータが大量に保存されることで、これらのデータをどう関連付けするのかを求めることができず、ビッグデータの利活用を十分に行うことができていない。なお、この課題は医療分野に限らず、全ての分野において共通する課題となっている。
【０００７】
そこで、本発明の所定の態様は、データを統一的に管理し、データの利活用の促進を図ることができる新たな仕組みを提供することを目的とする。
【課題を解決するための手段】
【０００８】
本発明の一態様における情報処理装置は、少なくともデータの役割又は他のデータとの関係を示す第１識別子を含む識別情報を用いて検索対象データを指定するための検索要求を入力する入力部と、データを格納するためのボディ部と、当該データの意味を識別する前記識別情報であって、前記第１識別子、前記データの生成時間又は有効期限を示す第２識別子、及び前記データの空間的位置の変化を示す第３識別子を含む識別情報を格納する識別部とにより構成されるデータを記憶する記憶部から、前記入力部により入力された識別情報に対応する識別情報を有するデータを検索する検索部と、前記検索部により検索されたデータを出力する出力部と、を備える。
【発明の効果】
【０００９】
本発明の所定の態様によれば、データを統一的に管理し、データの利活用の促進を図ることができる新たな仕組みを提供することができる。
【図面の簡単な説明】
【００１０】
【図１】実施形態におけるデータ処理システムの一例を示す概念図である。
【図２】データに関するタグの一例を示す図である。
【図３】プログラムに関するタグの一例を示す図である。
【図４】実施形態における処理フローの一例を示す図である。
【図５】実施形態における情報処理装置のハードウェアの一例を示すブロック図である。
【図６】実施形態における情報処理装置の機能の一例を示すブロック図である。
【図７】実施形態における情報処理装置の機能の一例を示すブロック図である。
【図８】実施形態における処理フローの具体例を説明するための図である。
【図９】実施形態における継承の具体例を説明するための図である。
【図１０】実施形態におけるデータ処理の具体例を説明するための図である。
【図１１】実施形態におけるデータ処理の一例を示すフローチャートである。
【図１２】実施形態における検索処理の一例を示すフローチャートである。
【発明を実施するための形態】
【００１１】
以下、添付図面を参照しながら本発明の実施形態について詳細に説明する。
【００１２】
［実施形態］
以下、本発明の実施形態における情報処理装置、データ処理システム、データ検索方法及びプログラム等を、図面を用いて説明する。なお、以下に説明するデータ処理システムは、大量のデータ（所謂ビッグデータ）を扱うことを例にするが、これに限られず、データを統一的に管理し、データの利活用を促進するシステムについて適用が可能である。
【００１３】
＜データ処理システムの概要＞
図１は、実施形態におけるデータ処理システム１の一例を示す概念図である。図１に示すように、例えばデータ処理システム１は、データを記憶するデータベース１０と、データに付随して記録された意味識別子によってデータを識別し、データの管理、検索等を行う情報処理装置２０とを含む。データベース１０は、例えば、１又は複数の記憶部から構成される。情報処理装置２０は、１又は複数の処理装置を含むサーバ機能を有し、例えば、クラウド上のサーバを表す。
【００１４】
また、情報処理装置３０Ａ、３０Ｂ、・・・は、データ処理システム１にアクセスし、必要な情報を検索したり、データの記録を要求したりする。情報処理装置３０について、情報処理装置を１つずつ区別する場合には符号３０Ａ、３０Ｂなどを用い、情報処理装置をまとめて表現する場合は符号３０を用いる。情報処理装置３０は、例えば、ユーザ等が使用するパーソナルコンピュータ等であり、情報処理装置２０に対して、データの検索要求を行い、検索結果を取得できる装置であればよい。なお、データ処理システム１は、情報処理装置３０を含めてもよい。
【００１５】
＜データの記述形式＞
次に、図２及び図３を用いて、実施形態におけるデータやプログラムを識別するための識別子の記述形式について説明する。この識別子は、タグ（メタデータ又は補助データ）として、データやプログラムに付与される。実施形態では、統一的なデータ管理を行うため、記憶対象のデータ又はプログラムに対して、後述するタグが付与される。このタグは、管理者等により、予め決められた基準等に従って付与されればよい。
【００１６】
≪データ≫
図２は、データに関するタグの一例を示す図である。図２に示すように、データは、データそのものを格納するためのＥｎｔｉｔｙ（実体部）と、データの意味を表現して識別するためのＩｄｅｎｔｉｆｉｅｒｓ（識別部）により構成される。
【００１７】
Ｅｎｔｉｔｙは、Ｄａｔａ  ｂｏｄｙ及びＰｒｏｐｅｒｔｉｅｓを含む。Ｄａｔａ  ｂｏｄｙは、例えばテキストあるいはバイナリ等で記述されたローデータ（raw data）、すなわちデータそのものがそのまま入力される。また、Ｅｎｔｉｔｙは属性（Property）として、例えばＴｙｐｅ及びＦｏｒｍａｔ等が指定される。
【００１８】
Ｔｙｐｅは、Ｔｙｐｅ∈｛”￥”ｔｅｘｔ＿ｉｎｓｔａｎｃｅ￥” ”，” ”ｂｉｎａｒｙ＿ｉｎｓｔａｎｃｅ￥” ”，”ｆｉｌｅ＿ｒｅｆｅｒｅｎｃｅ”，”ｅｎｔｉｔｙ＿ｌａｂｅｌ”｝であり、データ種類を表すために必ず指定される。ここで、｛ｔｅｘｔ，ｂｉｎａｒｙ｝＿ｉｎｓｔａｎｃｅは、データの直接指定を表し、ｆｉｌｅ＿ｒｅｆｅｒｅｎｃｅは、ファイルへのパスを表し、ｅｎｔｉｔｙ＿ｌａｂｅｌは、実体を表すラベルを表す。
【００１９】
Ｆｏｒｍａｔは、Ｔｙｐｅ＝” ｛ｔｅｘｔ，ｂｉｎａｒｙ｝＿ｉｎｓｔａｎｃｅ”あるいはＴｙｐｅ＝”ｆｉｌｅ”の際に、データのフォーマットを識別して様々なデータに対応するために用いられる。
【００２０】
なお、１９７７年にＲｏｂｅｒｔｓ  ａｎｄ  Ｇｏｌｏｄｓｔｅｉｎによって発表されたｆｒａｍｅ  ｒｅｐｒｅｓｅｎｔａｔｉｏｎ  ｌａｎｇｕａｇｅ（ＦＲＬ）において、ｆｏｒｍａｔは、ｆａｃｅｔとして定義され、様々な種類のデータに対応するために用いられている。
【００２１】
また、Ｅｎｔｉｔｙの属性には、ｕｎｉｔ（単位）など、データ実体に関する属性を指定することもできる。
【００２２】
データの識別は、データに付随して導入した上述の識別情報（識別子：Ｉｄｅｎｔｉｆｉｅｒｓ）と呼ばれるタグによって行われる。基本となる識別子はＳｅｍａｎｔｉｃ  ｉｄｅｎｔｉｆｉｅｒｓである。そのほか、時間を識別するためのＴｅｍｐｏｒａｌ  ｉｄｅｎｔｉｆｉｅｒ、及び空間を識別するためのＳｐａｔｉａｌ  ｉｄｅｎｔｉｆｉｅｒを追加することもできる。
【００２３】
Ｓｅｍａｎｔｉｃ  ｉｄｅｎｔｉｆｉｅｒｓは、データが概念として存在する実体の説明に果たす役割、又はデータと他のデータとの間の関係を表す識別子である。Ｓｅｍａｎｔｉｃ  ｉｄｅｎｔｉｆｉｅｒｓは、Ｅｎｔｉｔｙ（target entity）  ｉｄｅｎｔｉｆｉｅｒ、及びＲｏｌｅ  ｉｄｅｎｔｉｆｉｅｒの２つの識別子、又は、Ｅｎｔｉｔｙ（target entity）  ｉｄｅｎｔｉｆｉｅｒ、Ｂａｓｅ−ｅｎｔｉｔｙ  ｉｄｅｎｔｉｆｉｅｒ、及びＲｏｌｅ  ｉｄｅｎｔｉｆｉｅｒの３つの識別子から構成される。
【００２４】
ここで、例えば、データは、実体の何かしらの属性を表すか、又は任意の実体と別の実体の間の何かしらの関係を表す場合に大別することが可能である。そこで、発明者らは、セマンティック・ネットワーク（semantic network）やフレーム理論のようなデータのネットワーク化を行わず、データをセマンティック・ユニット（semantic unit）のままデータベースに記録することにする。
【００２５】
図２に戻り、Ｓｅｍａｎｔｉｃ  ｉｄｅｎｔｉｆｉｅｒｓのＥｎｔｉｔｙ  ｉｄｅｎｔｉｆｉｅｒ及びＢａｓｅ―ｅｎｔｉｔｙ  ｉｄｅｎｔｉｆｅｒには、例えば、実体を表すインデックス・ワード（index word、例えばｕｔ：ｂｏｎｅなど）や他のデータへのポインタ（pointer）などが記述される。ここで、インデックス・ワードは、規格化された辞書において定義されるとよい。
【００２６】
また、Ｅｎｔｉｔｙ  ｉｄｅｎｔｉｆｅｒ及びＢａｓｅ−ｅｎｔｉｔｙ  ｉｄｅｎｔｆｉｅｒには、その運用単位としての組織を表すネームスペース（namespace、例えばｕｔなど）と、その組織内で定義されたｅｎｔｉｔｙを表すワード（word、例えばｂｏｎｅなど）とを用いて記述されることも許容される。これは、各運用組織での自由度を保証するためである。
【００２７】
例えば、医療分野において実施形態を適用する場合、患者ＩＤなど患者を識別できるインデックス・ワードをともなったネームスペースを用いることで、患者個人に係る実体を指定することができる。複数組織（例えば複数の病院）間におけるインデックス・ワードの変換には、規格化したインデックス・ワードと各組織内のインデックス・ワードとの関係を１対１対応、又は１対多対応で記述したシソーラステーブル（thesaurus table）を用いればよい。
【００２８】
次に、Ｒｏｌｅ  ｉｄｅｎｔｉｆｅｒには、データの役割が記述される。例えば、フレーム理論の上位概念を表すｉｓ＿ａや、属性を表すｓｌｏｔが記述される以外にも、各運用単位で定義した概念が記述される。例えば、Ｒｏｌｅには、ｕｔ：ｗｅｉｇｈｔや、ｕｔ：ｒｅｌａｔｉｖｅ＿ｐｏｓｉｔｉｏｎなどが記述される。
【００２９】
また、Ｒｏｌｅ  ｉｄｅｎｔｉｆｅｒには、複数のデータに対して同一識別子が割り当てられる場合がある。例えば、同じ意味を成すデータであるが、時間的に変化し、かつそれらを時分割して個々のデータとして記録する場合がある。この場合に対応するため、Ｓｅｍａｎｔｉｃ  ｉｄｅｎｔｉｆｉｅｒｓに加え、Ｔｅｍｐｏｒａｌ  ｉｄｅｎｔｉｆｉｅｒが用いられる。
【００３０】
Ｔｅｍｐｏｒａｌ  ｉｄｅｎｔｉｆｉｅｒは、データの生成時間（有効時間の始まり）が指定されるとともに、その有効時間が限られている場合には、有効時間がｔｉｍｅ  ｌｉｍｉｔｅｄやｔｉｍｅ  ｄｕｒａｔｉｏｎとして表現される。例えば、データに対して時間的識別が行われない場合には、Ｔｅｍｐｏｒａｌ  ｉｄｅｎｔｉｆｉｅｒに「指定なし」として「ｕｔ：ａｎｙ」が記述される。
【００３１】
また、複数データに対して同一識別子が与えられる他の場合として、空間的位置によるデータ変化を表現する場合がある。この場合に対応するため、Ｓｐａｔｉａｌ  ｉｄｅｎｔｉｆｉｅｒが用いられる。
【００３２】
Ｓｐａｔｉａｌ  ｉｄｅｎｔｉｆｉｅｒは、空間的有効範囲を表し、ｒａｎｇｅを指定して表現される。データに対して、空間的識別が行われない場合には、Ｓｐａｔｉａｌ  ｉｄｅｎｔｉｆｉｅｒに「指定なし」として、「ｕｔ：ａｎｙ」が記述される。このように、データには、１又は複数の識別情報を有するＩｄｅｎｔｉｆｉｅｒｓという識別子が付与される。
【００３３】
≪プログラム≫
図３は、プログラムに関するタグの一例を示す図である。図３に示す例では、プログラムは、１つ以上のＩｎｐｕｔ（入力情報、又は単に入力とも称す。）と、１つのＯｕｔｐｕｔ（出力情報、又は単に出力とも称す。）に関するデータを有する。なお、プログラムのタグの記述の基本的な部分は、データの記述と同様である。
【００３４】
例えば、プログラムの実体（プログラムデータそのもの）は、Ｅｎｔｉｔｙ（実体部）のＤａｔａ  ｂｏｄｙに格納される。その際、Ｅｎｔｉｔｙの属性として、Ｔｙｐｅは、Ｔｙｐｅ∈｛”ｔｅｘｔ＿ｉｎｓｔａｎｃｅ”，”ｂｉｎａｒｙ＿ｉｎｓｔａｎｃｅ”，”ｆｉｌｅ＿ｒｅｆｅｒｅｎｃｅ”｝である。Ｔｙｐｅ＝”｛ｔｅｘｔ，ｂｉｎａｒｙ｝＿ｉｎｓｔａｃｅ”の場合には、Ｆｏｒｍａｔが指定される。
【００３５】
図３に示すように、プログラムは、Ｉｎｐｕｔ及びＯｕｔｐｕｔそれぞれが、上述の識別子の記述にしたがって指定される。その際、入力及び出力の実体、すなわちＥｎｔｉｔｙは伴わない。また、プログラムの記述において、Ｓｅｍａｎｔｉｃ  ｉｄｅｎｔｉｆｉｅｒｓのＥｎｔｉｔｙ  ｉｄｅｎｔｉｆｅｒ及びＢａｓｅ−ｅｎｔｉｔｙ  ｉｄｅｎｔｉｆｅｒを限定しない場合には、「ｕｔ：ａｎｙ」が入力される。
【００３６】
入力のＳｅｍａｎｔｉｃ  ｉｄｅｎｔｉｆｉｅｒｓの記述において，Ｅｎｔｉｔｙ  ｉｄｅｎｔｉｆｅｒ及びＢａｓｅ−ｅｎｔｉｔｙ  ｉｄｅｎｔｉｆｅｒが出力の指定と一致する必要がある場合には、「ｕｔ：ｏｕｔｐｕｔ＿ｅｎｔｉｔｙ」又は「ｕｔ：ｏｕｔｐｕｔ＿ｂａｓｅ＿ｅｎｔｉｔｙ」が指定される。
【００３７】
また、複数のＥｎｔｉｔｙ  ｉｄｅｎｔｉｆｅｒ及びＢａｓｅ−ｅｎｔｉｔｙ  ｉｄｅｎｔｉｆｉｅｒにおいて、それらが一致する必要がある場合には、適宜、「ｕｔ：ｖａｌｕｅ＿ｉ（ｉは任意の整数）」を用いて指定される。
【００３８】
実際、プログラムは、複数のデータを出力する場合がある。その際には、別々の出力を持つ２つのプログラムとして、そのプログラムは２つに分けて登録される。このように、プログラムには、データの処理対象の入力データと、データ処理後の出力データとそれぞれに図２に示すデータの記述方式が用いられる。
【００３９】
以上、図２及び図３に示すデータ構造のデータ及び／又はプログラムがデータベース１０に登録される。図２及び図３に示す記述方式を用いて、統一的なタグが付与されたデータ又はプログラムがデータベースに記録されることで、後述するようにデータの利活用の促進を図ることができる。
【００４０】
＜検索処理の概要＞
次に、データベース１０に記憶された上述のデータやプログラムから、どのようにして所望のデータを検索するかについて説明する。
【００４１】
実施形態では、データ検索において、例えば、要求されるデータを示すＱｕｅｒｙ（クエリ）は、識別子を用いて指定される。具体的には、Ｑｕｅｒｙは、Ｓｅｍａｎｔｉｃ  ｉｄｅｎｔｉｆｉｅｒｓと、必要であればＴｅｍｐｏｒａｌ  ｉｄｅｎｔｉｆｉｅｒ及びＳｐａｔｉａｌ  ｉｄｅｎｔｉｆｉｅｒとを用いて指定される。
【００４２】
データ処理システム１は、まず、Ｑｕｅｒｙが示す識別子と一致するデータを、データベース１０に記憶されたデータの中から検索する。検索の結果、一致するデータが存在しない場合には、データ処理システム１は、Ｑｕｅｒｙが要求するデータを出力できるプログラムを検索する。検索されたプログラムの出力において、識別子に「ｕｔ：ａｎｙ」が指定されている場合には、データ処理システム１は、プログラムの識別子をＱｕｅｒｙに基づいて書き換え、さらに書き換えた内容を、入力の「ｕｔ：ｏｕｔｐｕｔ＿｛，ｂａｓｅ＿｝ｅｎｔｉｔｙ」に反映させる。
【００４３】
データ処理システム１は、「ｕｔ：ｖａｌｕｅ＿ｉ」について、「ｕｔ：ａｎｙ」に変換して入力に対するデータ検索を再帰的に実施する。また、データ処理システム１は、先の検出によって「ｕｔ：ｖａｌｕｅ＿ｉ」が確定している場合には、その値を他の「ｕｔ：ｖａｌｕｅ＿ｉ」に反映して再帰的に検索を実施する。
【００４４】
ここで、複数の入力データ、及びそれらのプログラムによる処理の組合せを、出力データと等価として扱う概念を、再帰的等価変換（Ｒｅｃｕｒｓｉｖｅ  Ｅｑｕｉｖａｌｅｎｔ  Ｔｒａｎｓｆｏｒｍ  （ＲＥＴ））と称す。
【００４５】
ＲＥＴにおいて、無限の繰り返しを防ぐため、検索の上位で行ったものと同じデータが検出された場合は、検索を打ち切る。また、検索を効率的にするため、別の検索枝で既に実施したものと同じデータが検索された場合には、以前と同一のデータの検索結果を利用する。
【００４６】
ＲＥＴで用いるプログラムが、入力データを出力データに変換する際、検出された入力データは一旦、データベース１０からファイルとして出力される。このとき、ファイルとして出力されたプログラムが、ＯＳ（Operating System）上で起動され、データ処理（例えば変換）が行われる。データ処理システム１は、プログラムが出力した値を検索結果として出力する。
【００４７】
なお、インデックス・ワードの管理は、将来的にはオントロジー（ontology）で行うことが汎用性の観点より望ましい。複数の組織間でデータを変換する場合におけるインデックス・ワードの照合は、規格化したインデックス・ワード（標準辞書）を直接使ったり、シソーラス（thesaurus）やオントロジー（ontology）の照合を行ったりすることで実現可能である。
【００４８】
＜処理フローの概要＞
次に、データ処理システム１の具体的な処理フローの概要を説明する。データ処理システム１では、記憶対象のデータを図２及び図３に示す所定の記述形式に基づいて識別し、所定の記述形式になるようデータにタグが付加されて保存される。
【００４９】
図４は、実施形態における処理フローの一例を示す図である。図２に示す例では、ユーザＵが、情報処理装置３０を用いて、クラウド上のデータベース１０にアクセスし、データを検索する例である。
【００５０】
（１）クエリ送信
情報処理装置３０は、ユーザ操作を受け付けて、ユーザが取得したいデータに関するクエリをデータ処理システム１に送信する。クエリは、検索対象データそのものを指定してもよいし、識別子を用いて指定してもよい。以下では、識別子を用いて検索対象データを指定したとする。
【００５１】
（２）データ、プログラム検索
情報処理装置２０は、受信したクエリに基づき、データベース１０に記憶されたデータの中から、必要なデータやプログラムの検索を行う。このとき、情報処理装置２０は、指定された識別子を有するデータやプログラムを検索する。
【００５２】
（３）データ、プログラム取得
情報処理装置２０は、検索したデータやプログラムをデータベース１０から取得する。ここで、クエリで指定されたデータが、データベース１０に記憶されていなかったとする。このとき、例えば、情報処理装置２０は、クエリで指定された識別子を有するプログラムＡと、そのプログラムＡに入力可能なデータＡ、Ｂとを取得する。
【００５３】
（４）データ処理
情報処理装置２０は、データＡとデータＢとを組み合わせて、それらを入力データとしてプログラムＡを実行し、データＥを出力する。データＥは、クエリで指定された識別子を有し、検索対象データに対応するデータである。
【００５４】
（５）検索結果取得
情報処理装置２０は、プログラムＡを実行して生成したデータＥを、検索結果として情報処理装置３０に送信する。情報処理装置３０は、データＥを含む検索結果を取得する。これにより、ユーザＵは、所望の検索結果を取得することができる。
【００５５】
以上の処理において、情報処理装置２０は、クエリに基づく検索により、データがヒットすれば、データベース１０に記憶されたデータを検索結果とし、データがヒットしなければ、上述したようにプログラムを実行して生成したデータを検索結果としてもよい。また、情報処理装置２０は、クエリに基づく検索により、データがヒットした場合でも、プログラムを実行して生成したデータを検索結果に含めてもよい。
【００５６】
＜情報処理装置のハードウェア＞
次に、実施形態におけるデータ処理システム１を構成する情報処理装置２０のハードウェアについて説明する。図５は、実施形態における情報処理装置２０のハードウェアの一例を示すブロック図である。図１に示すように、情報処理装置２０は、ＣＰＵ（Central Processing Unit）１０２と、ＲＡＭ（Random Access Memory）１０４と、ＲＯＭ（Read only Memory）１０６と、ドライブ装置１０８と、ネットワークＩ／Ｆ（Interface）１１０と、入力装置１１２と、表示装置１１４とを有する。これら各構成は、バスを介して相互にデータ送受信可能に接続されている。
【００５７】
ＣＰＵ１０２は、コンピュータの中で、各装置の制御やデータの演算、加工を行う制御部である。また、ＣＰＵ１０２は、ＲＡＭ１０４又はＲＯＭ１０６に記憶された、データを検索するためのアプリケーションプログラムを実行する演算装置である。ＣＰＵ１０２は、入力装置１１２やネットワークＩ／Ｆ１１０などからデータを受け取り、演算、加工した上で、演算結果を表示装置１１４や記憶装置などに出力する。
【００５８】
ＲＡＭ１０４は、例えば主記憶部などである。ＲＡＭ１０４は、ＣＰＵ１０２が実行する基本ソフトウェアであるＯＳ（Operating System）やアプリケーションソフトウェアなどのプログラムやデータを記憶又は一時保存する記憶装置である。
【００５９】
ＲＯＭ１０６は、例えばアプリケーションソフトウェアなどに関連するデータを記憶する記憶装置である。
【００６０】
ドライブ装置１０８は、記録媒体１１６、例えばＣＤ−ＲＯＭやＳＤカードなどからプログラムやデータを読み出し、記憶装置にインストールしたりダウンロードしたりする。
【００６１】
また、記録媒体１１６に、所定のプログラムを格納し、この記録媒体１１６に格納されたプログラムはドライブ装置１０８を介して情報処理装置２０にインストールされる。インストールされた所定のプログラムは、情報処理装置２０により実行可能となる。
【００６２】
ネットワークＩ／Ｆ１１０は、通信機能を有する周辺機器と情報処理装置２０とのインターフェースである。また、ネットワークＩ／Ｆ１１０は、例えば、有線及び／又は無線回線などのデータ伝送路により構築されたＬＡＮ（Local Area Network）、ＷＡＮ（Wide Area Network）などのネットワークを介して接続される。
【００６３】
入力装置１１２は、カーソルキー、数字入力及び各種機能キー等を備えたキーボード、表示装置１１４の表示画面上でキーの選択等を行うためのマウスやスライドパッド等を有する。また、入力装置１１２は、ユーザがＣＰＵ１０２に操作指示を与えたり、データを入力したりするためのユーザインターフェースである。
【００６４】
表示装置１１４は、ＬＣＤ（Liquid Crystal Display）等により構成され、ＣＰＵ１０２から入力される表示データに応じた表示が行われる。なお、入力装置１１２や表示装置１１４は、情報処理装置２０の外部に設けられてもよい。なお、ユーザＵが使用する情報処理装置３０のハードウェアの構成は、図５に示す情報処理装置２０のハードウェア構成と同様である。
【００６５】
＜機能＞
次に、上述したデータ検索の処理を実行するための各情報処理装置２０、３０の機能について説明する。図６は、実施形態における情報処理装置２０の機能の一例を示すブロック図である。図６に示す情報処理装置２０は、入力部２０２、検索部２０４、及び出力部２０６を少なくとも有する。
【００６６】
入力部２０２は、例えばネットワークＩ／Ｆ１１０やＣＰＵ１０２、ワークメモリとしてのＲＡＭ１０４等を用いて実現され得る。入力部２０２は、少なくともデータの役割又は他のデータとの関係を示すＳｅｍａｎｔｉｃ  ｉｄｅｎｔｉｆｉｅｒｓ（第１識別子）を含む識別情報により、検索対象データを指定するためのＱｕｅｒｙ（検索要求）を、情報処理装置３０から入力する。Ｑｕｅｒｙは、ユーザ操作に基づき、情報処理装置３０により生成される。
【００６７】
また、入力部２０２は、Ｔｅｍｐｏｒａｌ  ｉｄｅｎｔｉｆｉｅｒ（第２識別子）や、Ｓｐａｔｉａｌ  ｉｄｅｎｔｉｆｉｅｒ（第３識別子）を含むＱｕｅｒｙを入力してもよい。これにより、より精度の高い検索を行うことができるようになる。
【００６８】
検索部２０４は、例えばＣＰＵ１０２や、ワークメモリとしてのＲＡＭ１０４等を用いて実現され得る。検索部２０４は、データベース１０（記憶部）から、入力部２０２により入力された第１識別子に対応する第１識別子を有するデータを検索する。「対応する」とは、完全一致又は部分一致、あるいは予めテーブル等に設定された対応関係を有すること等をいう。
【００６９】
データベース１０は、上述したとおり、データを格納するためのＥｎｔｉｔｙ（ボディ部）と、識別情報を含むｉｄｅｎｔｉｆｉｅｒｓ（識別部）とにより構成されるデータ構造のデータを記憶する。識別情報は、上述の第１識別子、データの生成時間又は有効期限を示す第２識別子、及びデータの空間的位置の変化を示す第３識別子を含む。
【００７０】
出力部２０６は、例えばネットワークＩ／Ｆ１１０やＣＰＵ１０２、ワークメモリとしてのＲＡＭ１０４等を用いて実現され得る。出力部２０６は、検索部２０４により検索されたデータを出力する。出力先は、例えばＱｕｅｒｙを送信した情報処理装置３０である。これにより、データベース１０に統一的に付与された特徴的な識別情報を用いて、検索を容易に行うことができる。
【００７１】
また、データベース１０に、入力及び出力それぞれに対して、ボディ部と識別部とにより構成されるデータ処理可能なプログラムが記憶されている場合がある。このとき、検索部２０４は、入力部２０２により入力された識別情報に関連するデータがデータベース１０に記憶されていない場合、検索対象データを出力可能なプログラムと、このプログラムに入力可能なデータであって、このプログラムの入力の識別情報に対応する識別情報を有するデータとを検索する。
【００７２】
また、検索部２０４に設けられる処理部２０４２は、検索された入力可能なデータを、検索されたプログラムに入力してデータ処理を行う。例えば、データ処理は、画像変換処理や、映像作成処理、行列変換処理などのデータを処理するものを含む。処理部２０４２は、処理したデータを出力部２０６に出力する。
【００７３】
出力部２０６は、処理部２０４２により処理されたデータを、Ｑｕｅｒｙを送信した情報処理装置３０に出力（例えば送信）する。これにより、データ処理システム１では、検索対象データがデータベース１０に記憶されていなくても、同様のデータを出力可能なプログラムを実行することで、検索対象データを生成することができる。
【００７４】
また、上述の第１識別子は、データの実体を示すエンティティ（Ｅｎｔｉｔｙ  ｉｄｅｎｔｉｆｉｅｒ）と、データの役割を示すロール（Ｒｏｌｅ  ｉｄｅｎｔｉｆｉｅｒ）とを含み、エンティティは、任意のデータであることを示すことが可能である。
【００７５】
この場合、検索部２０４は、検索要求により指定されたロールに対応するロールを出力部に有するプログラムを、出力可能なプログラムとして検索する。次に、検索部２０４に含まれる継承部２０４４は、このプログラムの入力及び出力それぞれのエンティティが任意のデータであることを示す場合、それぞれのエンティティに検索対象データのエンティティを継承してもよい。また、継承部２０４４は、継承後のエンティティを有するデータを、入力可能なデータとして検索してもよい。これにより、エンティティを指定せずに、ロールを指定することで、所望のデータが検索可能になり、検索処理を拡張させることができる。
【００７６】
次に、ユーザが操作する情報処理装置３０の機能について説明する。図７は、実施形態における情報処理装置３０の機能の一例を示すブロック図である。図７に示す情報処理装置３０は、データを検索し、検索結果を取得する機能を有する。そのため、情報処理装置３０は、要求部３０２、及び取得部３０４を少なくとも有する。
【００７７】
要求部３０２は、ユーザ操作に基づき、データベース１０からデータを要求するためのＱｕｅｒｙを生成し、データ処理システム１にＱｕｅｒｙを送信する。ユーザは、情報処理装置３０の入力デバイスを用いて、データを検索するため、データの役割等を示すＳｅｍａｎｔｉｃ  ｉｄｅｎｔｉｆｉｅｒｓ（第１識別子）を少なくとも入力する。
【００７８】
また、必要に応じて、ユーザは、データの有効期限等を示すＴｅｍｐｏｒａｌ  ｉｄｅｎｔｉｆｉｅｒ（第２識別子）や、データの空間的位置の変化等を示すＳｐａｔｉａｌ  ｉｎｄｅｎｔｉｆｉｅｒ（第３識別子）を入力してもよい。Ｑｕｅｒｙは、例えば、これらの入力された識別子を含む識別情報により検索対象データを指定するものである。
【００７９】
取得部３０４は、データ処理システム１からＱｕｅｒｙに対する検索結果を取得する。検索結果は、データベース１０に記憶されたデータ、及び／又はデータベース１０に記憶された１又は複数のデータを入力として、プログラムが実行されることにより生成されたデータを含む。
【００８０】
これにより、検索を要求する側としては、検索対象のデータがデータベース１０に存在すればそのデータを取得することが可能であり、検索対象のデータがデータベース１０に存在しなければ、所望のデータが検索処理側で生成されて、そのデータを取得することができる。これは、上述したとおり、データの利活用を考慮して、データベース１０に記憶されるデータやプログラム等について、統一的な識別子を付与して管理しているため可能となる。
【００８１】
＜処理フローの具体例＞
次に、実施形態におけるデータ処理システム１を適用した具体例について説明する。図８は、処理フローの具体例を説明するための図である。図８における具体例１では、以下の処理フローで検索がなされる。
【００８２】
（１）Ｑｕｅｒｙ生成
ユーザＵのユーザ操作に基づき、情報処理装置３０は、例えば、猫の白黒画像を指定するＱｕｅｒｙを生成したとする。Ｑｕｅｒｙには、例えば、Ｅｎｔｉｔｙ  ｉｄｅｎｔｉｆｉｅｒ＝Ｃａｔ、Ｒｏｌｅ  ｉｄｅｎｔｉｆｉｅｒ＝Ｉｍａｇｅ／ｗｂ（White Black）、Ｔｅｍｐｏｒａｌ  ｉｄｅｎｔｉｆｉｅｒ＝ｕｔ：ａｎｙが指定される。
【００８３】
（２）必要データの検索
情報処理装置２０は、Ｑｕｅｒｙを入力し、入力されたＱｕｅｒｙに基づいてデータベース１０に記憶されるデータの中から検索対象データを検索する。
【００８４】
（３）必要データの取得
まず、図８に示す例では、Ｑｕｅｒｙに対応するデータは、データベース１０に記憶されていなかったとする。そこで、情報処理装置２０は、Ｑｕｅｒｙにより指定された「Ｉｍａｇｅ／ｗｂ」に着目し、Ｒｏｌｅ  ｉｄｅｎｔｉｆｉｅｒを参照して「Ｉｍａｇｅ」を変換できるプログラムを検索する。情報処理装置２０は、「Ｉｍａｇｅ」を変換できるプログラムを検索し、プログラムＥを検出した後、このプログラムＥの入力及び出力のＥｎｔｉｔｙ  ｉｄｅｎｔｉｆｉｅｒに検索対象データのＥｎｔｉｔｙ  ｉｄｅｎｔｉｆｉｅｒである「Ｃａｔ」を入力する。なお、図８に示すプログラムＥは、簡単のため、出力部分のタグしか表記されていない。
【００８５】
次に、情報処理装置２０は、プログラムＥに入力可能なデータとして、Ｅｎｔｉｔｙ  ｉｄｅｎｔｆｉｅｒが「Ｃａｔ」であり、Ｒｏｌｅ  ｉｄｅｎｔｉｆｉｅｒが「Ｉｍａｇｅ／ｃｌ（ｃｏｌｏｒ）」を有するデータを検索し、データＣを検出する。データＣは、２０１６年５月５日付けの猫のカラー画像を表す。
【００８６】
（４）データ処理
情報処理装置２０は、データＣをプログラムＥに入力して、プログラムＥを実行することで、猫のカラー画像を、猫の白黒画像に変換し、データＦを生成する。データＦは、Ｅｎｔｉｔｙ  ｉｄｅｎｔｉｆｉｅｒ＝Ｃａｔ、Ｒｏｌｅ  ｉｄｅｎｔｉｆｉｅｒ＝Ｉｍａｇｅ／ｗｂの識別子を有するデータを表す。
【００８７】
（５）データ取得
情報処理装置３０は、検索結果として、データ処理システム１からデータＦを取得する。
【００８８】
＜継承の具体例＞
次に、実施形態におけるデータ処理システム１の継承の具体例について説明する。図９は、実施形態における継承の具体例を説明するための図である。図９に示す例では、データ処理システム１を医療分野に適用した場合を示す。
【００８９】
図９に示す例では、Ｑｕｅｒｙには、Ｅｎｔｉｔｙ  ｉｄｅｎｔｉｆｉｅｒ＝ｆｅｍｕｒ（大腿骨）、Ｒｏｌｅ  ｉｄｅｎｔｉｆｅｒ＝Ｉｍａｇｅ／Ｍｏｄｅｌ、Ｔｅｍｐｏｒａｌ  ｉｄｅｎｔｉｆｉｅｒ＝２０１０／１１０３／１７：２０が指定されている。
【００９０】
図９に示すＱｕｅｒｙに対して、Ｒｏｌｅ  ｉｄｅｎｔｉｆｉｅｒの情報が一致するプログラムが検索されたとする。このとき、Ｑｕｅｒｙからプログラムへと、データの継承が行われる。まず、Ｑｕｅｒｙから出力情報（Ｏｕｔｐｕｔ  Ｉｎｆｏｒｍａｔｉｏｎ）の変数部分に値が継承（代入）される。図９に示す例では、ＱｕｅｒｙのＥｎｔｉｔｙ  ｉｄｅｎｔｉｆｉｅｒ（ｆｅｍｕｒ）と、Ｔｅｍｐｏｒａｌ  ｉｄｅｎｔｉｆｉｅｒ（２０１０／１１０３／１７：２０）とが、プログラムの対応する変数部分に継承される。
【００９１】
次に、プログラムの出力情報から入力情報の対応部分に値が継承される。図９に示す例では、出力情報のＥｎｔｉｔｙ  ｉｄｅｎｔｉｆｉｅｒが、入力情報のＥｎｔｉｔｙ  ｉｄｅｎｔｉｆｉｅｒに継承される。また、必要に応じてＴｅｍｐｏｒａｌ  ｉｄｅｎｔｉｆｉｅｒについても継承される。
【００９２】
次に、値が継承されたプログラムの入力情報に基づいて、このプログラムに入力可能なデータが検索される。検索されたデータは、プログラムに入力されてデータ変換される。
【００９３】
＜データ処理の具体例＞
次に、実施形態におけるデータ処理システム１のデータ処理の具体例について説明する。図１０は、実施形態におけるデータ処理の具体例を説明するための図である。図１０に示す例では、図９に示す例と同様に、データ処理システム１を医療分野に適用した場合を示す。また、図１０に示す例では、２つの骨をつなぐためのＣＧ（Computer Graphics）を生成するために、２つの骨をつなぐための行列Ｔを求める。
【００９４】
図１０に示す例では、骨１（Ｂｏｎｅ１）には、センサ１（Ｍａｒｋｅｒ１）が設けられる。同様に、骨２（Ｂｏｎｅ２）には、センサ２（Ｍａｒｋｅｒ２）が設けられる。センサ１及びセンサ２の位置情報は、ローカライザ（Ｌｏｃａｌｉｚｅｒ）に検知される。ローカライザにより検知された位置情報はデータベース１０に記憶される。骨とセンサとの位置関係は事前に分かっているため、データベース１０に記憶しておく。
【００９５】
すなわち、データベース１０には、骨１からセンサ１までの位置関係を示す行列Ｔ1と、センサ１からローカライザまでの位置関係を示す行列Ｔ2と、骨２からセンサ２までの位置関係を示す行列Ｔ3と、センサ２からローカライザまでの位置関係を示す行列Ｔ4とが記憶されている。
【００９６】
行列Ｔ1、Ｔ3の場合の識別子としては、例えばＢａｓｅ−ｅｎｔｉｔｙ  ｉｄｅｎｔｉｆｉｅｒ＝Ｂｏｎｅ  ｎ（ｎ＝１，２）、Ｒｏｌｅ  ｉｄｅｎｔｉｆｉｅｒ＝｛Ｍａｔｒｉｘ／４×４｝、Ｅｎｔｉｔｙ  ｉｄｅｎｔｉｆｉｅｒ＝Ｍａｒｋｅｒ  ｎ（ｎ＝１，２）が付与される。
【００９７】
また、行列Ｔ2、Ｔ4の場合の識別子としては、例えばＢａｓｅ−ｅｎｔｉｔｙ  ｉｄｅｎｔｉｆｉｅｒ＝Ｍａｒｋｅｒ  ｎ（ｎ＝１，２）、Ｒｏｌｅ  ｉｄｅｎｔｉｆｉｅｒ＝｛Ｍａｔｒｉｘ／４×４｝、Ｅｎｔｉｔｙ  ｉｄｅｎｔｉｆｉｅｒ＝Ｌｏｃａｌｉｚｅｒが付与される。
【００９８】
このとき、情報処理装置２０は、例えば骨１と骨２とをつなぐ行列Ｔが指定されたＱｕｅｒｙを入力したとする。Ｑｕｅｒｙの識別子としては、Ｂａｓｅ−ｅｎｔｉｔｙ  ｉｄｅｎｔｉｆｉｅｒ＝Ｂｏｎｅ２、Ｒｏｌｅ  ｉｄｅｎｔｉｆｉｅｒ＝｛Ｍａｔｒｉｘ／４×４｝、Ｅｎｔｉｔｙ  ｉｄｅｎｔｉｆｉｅｒ＝Ｂｏｎｅ１が設定されている。情報処理装置２０は、骨２から骨１への位置関係を示す行列Ｔを求めるため、Ｑｕｅｒｙの識別子に基づいて、データベース１０からデータを検索する。
【００９９】
検索の結果、必要なデータとして、情報処理装置２０は、行列の演算プログラムと、行列Ｔ1〜Ｔ4とを検索し、Ｔ＝Ｔ3×Ｔ4×Ｔ2-1×Ｔ1-1を演算して行列Ｔを求める。これにより、情報処理装置２０は、所望の行列Ｔがデータベース１０に記憶されていなかったとしても、行列Ｔを生成し、情報処理装置２０に検索結果として返すことができる。
【０１００】
＜動作＞
次に、情報処理装置２０の動作について説明する。図１１は、実施形態におけるデータ処理の一例を示すフローチャートである。図１１に示す処理は、実施形態における情報処理装置３０が、情報処理装置２０にクエリ（Ｑｕｅｒｙ）を送信した場合に実行される。
【０１０１】
ステップＳ１０２で、入力部２０２は、情報処理装置２０により送信されたクエリを入力する。
【０１０２】
ステップＳ１０４で、検索部２０４は、クエリにより指定された識別子に基づいて、データベース１０に記憶されたデータの中から、検索対象のデータを検索する。検索処理については、図１２を用いて後述する。
【０１０３】
ステップＳ１０６で、検索部２０４は、検索されたデータが有るか否かを判定する。ここでいう「検索されたデータ」とは、検索対象データの出力に必要なデータとして、データベース１０上でヒットしたデータ及び／又はプログラム、あるいは演算により生成されたデータのことをいう。検索されたデータがあれば（ステップＳ１０６−ＹＥＳ）、処理はステップＳ１０８に進み、検索されたデータがなければ（ステップＳ１０６−ＮＯ）、処理は検索結果が無いと結論付けて終了する。
【０１０４】
ステップＳ１０８で、出力部２０６は、検索部２０４により検索されたデータを検索結果として情報処理装置３０に出力する。
【０１０５】
図１２は、実施形態における検索処理の一例を示すフローチャートである。図１２に示すステップＳ２０２で、検索部２０４は、データベース１０に記憶されたデータの中に、クエリにより指定された識別情報に対応するデータが有るか否かを判定する。対応するデータが有れば（ステップＳ２０２−ＹＥＳ）、処理は、検索されたデータ有りとして終了し、対応するデータがなければ（ステップＳ２０２−ＮＯ）、処理はステップＳ２０４に進む。
【０１０６】
ステップＳ２０４で、検索部２０４は、検索対象データを出力可能なプログラムを検索する。
【０１０７】
ステップＳ２０６で、検索部２０４は、データベース１０に記憶されたプログラムの中に、該当するプログラムが有るか否かを判定する。該当するプログラムがあれば（ステップＳ２０６−ＹＥＳ）、処理はステップＳ２０８に進み、該当するプログラムがなければ（ステップＳ２０６−ＮＯ）、処理は検索結果なしと結論付けて終了する。
【０１０８】
ステップＳ２０８で、検索部２０４は、検索されたプログラムに入力可能なデータを検索する。
【０１０９】
ステップＳ２１０で、検索部２０４は、データベース１０に記憶されたデータの中に、該当するデータがあるか否かを判定する。該当するデータがあれば（ステップＳ２１０−ＹＥＳ）、処理はステップＳ２１２に進み、該当するデータがなければ（ステップＳ２１０−ＮＯ）、処理は検索結果なしと結論付けて終了する。
【０１１０】
ステップＳ２１２で、検索部２０４は、該当するデータを入力としてプログラムを実行し、データ処理を行う。このデータ処理により処理されたデータは、「検索されたデータ」を表す。
【０１１１】
以上、統一的に管理されたデータに対する検索を実行することで、データの利活用を増大させることができるようになる。
【０１１２】
また、上述の実施形態では、単純な局所時空間領域のモジュール（データ及び／又はプログラムの群）を組み合わせることで、複雑な機能を実現させることができる。また、成就移したタグを用いることで、確率的ではなく、確実なモジュールの組み合わせが可能になる。例えば、人体シミュレータや、タンパク質シミュレータ、自己組織化ｎｅｕｒａｌ  ｎｅｔｗｏｒｋなどに実施形態を適用することができる。
【０１１３】
また、上述の実施形態は、ＩｏＴ（Internet of Things）の標準プラットフォームにも適用することができる。例えば、自律分散制御や中小企業の連携による製造業の強化（効率化、市場拡大）などに実施形態を適用することができる。より具体的には、中小企業のリソースや、得意分野などをタグ付けしておくことで、ユーザは、ある分野で製品を作る際に、必要なリソースや必要な分野などを指定して検索すると、協同効果の高い中小企業を検索結果として取得することができる。
【０１１４】
また、上述の実施形態を利用することで、オリジナルデータのみの保存から、様々なデータを生成することができる。これは、アプリケーションの開発を効率化させたり、リソース管理を効率化させたりすることができる。例えば、リソース管理の効率化として、実施形態は、データ・フォーマット変換、実験データ管理、実験記録（電子実験ノート）、作業電子記録及び／又は解析（手術記録）、マルチメディア電子カルテ、リスク解析（例えば医療過誤時の原因究明）、電子教科書、スケジューリング、リソースリポジトリ、災害時の物資／施設／人材管理、セキュアな遠隔通信／データ変換などに適用することが可能である。
【０１１５】
また、上述の実施形態では、プログラムに入力するデータ等の組み合わせの計算量を削減することが可能になる。例えば、従前のデータベースにおいてデータの組み合わせを計算する際に、Ｏ（ｎ！）の計算量がかかる。他方、実施形態を用いることで、出力可能なデータを用いて検索が可能になり、すなわち、検索対象の出力の識別子を継承した入力の識別子を参照して、その識別子を有するか否かを一度検索すればよいため、Ｏ（ｎ）の計算量で済む。
【０１１６】
なお、上記の情報処理装置２０で実行されるプログラムについて、実際のハードウェアとしては、ＣＰＵ１０２がＲＯＭ１０６からプログラムを読み出して実行することにより、上記各部のうち１又は複数の各部がＲＡＭ１０４上にロードされ、１又は複数の各部がＲＡＭ１０４上に生成されるようになっている。
【０１１７】
このように、上述した実施形態で説明した処理は、コンピュータに実行させるためのプログラムとして実現されてもよい。このプログラムをサーバ等からインストールしてコンピュータに実行させることで、前述した処理を実現することができる。
【０１１８】
また、このプログラムを記録媒体１１６に記録し、このプログラムが記録された記録媒体１１６をコンピュータに読み取らせて、前述した処理を実現させることも可能である。
【０１１９】
なお、記録媒体１１６は、ＣＤ−ＲＯＭ、フレキシブルディスク、光磁気ディスク等の様に情報を光学的，電気的或いは磁気的に記録する記録媒体、ＲＯＭ、フラッシュメモリ等の様に情報を電気的に記録する半導体メモリ等、様々なタイプの記録媒体を用いることができる。
【０１２０】
以上、実施形態について詳述したが、上記実施形態に限定されるものではなく、特許請求の範囲に記載された範囲内において、上記実施形態以外にも種々の変形及び変更が可能である。
【符号の説明】
【０１２１】
１  データ処理システム
１０  データベース
２０、３０  情報処理装置
２０２  入力部
２０４  検索部
２０６  出力部
２０４２  処理部
２０４４  継承部
【図１】
2017224158.tif 000003
【図２】
2017224158.tif 000004
【図３】
2017224158.tif 000005
【図４】
2017224158.tif 000006
【図５】
2017224158.tif 000007
【図６】
2017224158.tif 000008
【図７】
2017224158.tif 000009
【図８】
2017224158.tif 000010
【図９】
2017224158.tif 000011
【図１０】
2017224158.tif 000012
【図１１】
2017224158.tif 000013
【図１２】
2017224158.tif 000014