(19)【発行国】日本国特許庁(JP)
(12)【公報種別】特許公報(B2)
(11)【特許番号】
(24)【登録日】2024-05-24
(45)【発行日】2024-06-03
(54)【発明の名称】情報処理装置、情報処理方法、およびプログラム
(51)【国際特許分類】
G06F 8/20 20180101AFI20240527BHJP
G06F 16/90 20190101ALI20240527BHJP
【FI】
G06F8/20
G06F16/90
(21)【出願番号】P 2020181245
(22)【出願日】2020-10-29
【審査請求日】2023-02-16
(73)【特許権者】
【識別番号】000003078
【氏名又は名称】株式会社東芝
(74)【代理人】
【識別番号】100091487
【氏名又は名称】中村 行孝
(74)【代理人】
【識別番号】100105153
【氏名又は名称】朝倉 悟
(74)【代理人】
【識別番号】100107582
【氏名又は名称】関根 毅
(74)【代理人】
【識別番号】100118876
【氏名又は名称】鈴木 順生
(74)【代理人】
【識別番号】100206243
【氏名又は名称】片桐 貴士
(72)【発明者】
【氏名】細川 晃
【審査官】久々宇 篤志
(56)【参考文献】
【文献】特開2009-070133(JP,A)
【文献】特開2010-157004(JP,A)
【文献】特開2009-080626(JP,A)
【文献】米国特許出願公開第2020/0320045(US,A1)
【文献】米国特許出願公開第2014/0115012(US,A1)
(58)【調査した分野】(Int.Cl.,DB名)
G06F 8/20
G06F 16/90
(57)【特許請求の範囲】
【請求項1】
情報モデルに
対する編集内容により設定された情報を適用可能な機能テンプレートまたは前記情報モデルに
対する前記編集内容により設定された情報が適用された機能モデルと、前記編集内容と、に基づき、前記情報モデルに対する
前記編集内容に不足している情報を検出して、不足している情報の編集を推奨する情報を出力する編集推奨部と、
を備える情報処理装置。
【請求項2】
前記情報モデルは、アトリビュートを有するクラスまたはプロパティを含み、
前記編集推奨部は、
前記編集内容に不足している前記アトリビュートの少なくともいずれかに対して情報を設定すること、または、前記情報モデルに
前記編集内容に不足している新たなプロパティを追加すること、を推奨する
請求項1に記載の情報処理装置。
【請求項3】
前記編集推奨部は、前記情報モデルが有するアトリビュートのうちから、
前記編集内容に不足しており、情報を設定したほうがよいとされるアトリビュートを検出し、検出されたアトリビュートの少なくともいずれかに対して情報を設定することを推奨する、
請求項1に記載の情報処理装置。
【請求項4】
前記編集推奨部は、
前記編集内容に関連する機能テンプレートまたは機能モデルを検出し、
前記情報モデルが有するアトリビュートのうちから、検出された機能テンプレートによって適用可能であるか、または、検出された機能モデルによって適用されている、アトリビュートを検出し、
検出されたアトリビュートの少なくともいずれかに対して情報を設定することを推奨する、
請求項1に記載の情報処理装置。
【請求項5】
前記編集推奨部は、
前記編集内容に関連するクラスまたはプロパティに類似するクラスまたはプロパティを、前記情報モデルから検出し、
検出されたクラスまたはプロパティのアトリビュートに設定された情報を適用可能な機能テンプレート、または、検出されたクラスまたはプロパティのアトリビュートに設定された情報が適用された機能モデルを検出し、
前記情報モデルが有するアトリビュートのうちから、検出された機能テンプレートによって適用可能であるか、または、検出された機能モデルによって適用されている、アトリビュートを検出し、
検出されたアトリビュートの少なくともいずれかに対して情報を設定することを推奨する、
請求項1に記載の情報処理装置。
【請求項6】
前記編集推奨部は、
検出されたアトリビュートのうち、前記編集内容に関連するクラスまたはプロパティが有していて情報が設定されていないアトリビュートをさらに検出し、
当該アトリビュートに対して、情報を設定することを推奨する、
請求項5に記載の情報処理装置。
【請求項7】
前記編集推奨部は、
検出されたアトリビュートのうち、前記編集内容に関連するクラスまたはプロパティが有していないアトリビュートをさらに検出し、
当該アトリビュートおよび当該アトリビュートに設定される情報を、前記編集内容に関連するクラスまたはプロパティに追加することを推奨する、
請求項5に記載の情報処理装置。
【請求項8】
前記編集推奨部は、
前記編集内容に関連するプロパティに類似するプロパティを、前記情報モデルから検出し、
検出されたプロパティを適用可能な機能テンプレートを検出し、
検出された機能テンプレートに適用可能なその他のプロパティに類似するプロパティが前記情報モデルに含まれていない場合に、前記情報モデルに新たなプロパティを追加することを推奨する、
請求項1に記載の情報処理装置。
【請求項9】
前記編集内容が前記情報モデルに予め定められたルールに違反しているか否かを判定する違反判定部
をさらに備える請求項1ないし8のいずれか一項に記載の情報処理装置。
【請求項10】
前記違反判定部は、
前記情報モデルに含まれるクラスおよびプロパティの関係を関係式に変換し、
前記編集内容を数式に変換し、
前記数式が前記関係式を満たす場合に、前記ルールに違反していないと判定する、
請求項9に記載の情報処理装置。
【請求項11】
前記編集内容に関連する機能モデルの生成を提案する機能モデル提案部
をさらに備える請求項1ないし10のいずれか一項に記載の情報処理装置。
【請求項12】
提案された情報を出力し、出力された提案に対する承諾を取得する入出力部
をさらに備える請求項1ないし11のいずれか一項に記載の情報処理装置。
【請求項13】
前記情報モデルに対する編集内容を取得して前記編集推奨部に提供する取得部を備える、
請求項1ないし12のいずれか一項に記載の情報処理装置。
【請求項14】
情報モデルに
対する編集内容により設定された情報を適用可能な機能テンプレートまたは前記情報モデルに
対する前記編集内容により設定された情報が適用された機能モデルと、前記編集内容と、に基づき、前記情報モデルに対する
前記編集内容に不足している情報を検出して、不足している情報の編集を推奨する情報を出力するステップと、
を備える情報処理方法。
【請求項15】
情報モデルに
対する編集内容により設定された情報を適用可能な機能テンプレートまたは前記情報モデルに
対する前記編集内容により設定された情報が適用された機能モデルと、前記編集内容と、に基づき、前記情報モデルに対する
前記編集内容に不足している情報を検出して、不足している情報の編集を推奨する情報を出力するステップと、
を備え、コンピュータに実行されるプログラム。
【発明の詳細な説明】
【技術分野】
【0001】
本発明の実施形態は、情報処理装置、情報処理方法、およびプログラムに関する。
【背景技術】
【0002】
ソフトウェア開発においては、オブジェクトの分類などを示すクラスと、クラスに紐づけられていてオブジェクトの特徴を表すプロパティと、を含む情報モデルが用いられることがある。例えば、当該情報モデルを用いることにより、異なるデータソースの差異をなくし、データソースごとの個別対応をなくすといったことが行われている。例えば、異なるデータソースそれぞれからデータを抽出した場合に、取得されたデータの単位が異なるといったことがあり得る。このような事態を防ぐため、データソース間で共通の情報モデルを用いることにより、単位などの情報が各データソース間で異なるといった事態を防ぎ、ソフトウェア開発者の負担を減らすことができる。
【0003】
また、ソフトウェア開発を効率化するための手段の一つとして、「部品化」がある。部品化によって、ソフトウェアによって実行される同種の機能の重複開発を防ぐことができる。例えば、表示画面を部品化することで、出力される内容ごとに、表示画面を開発するといった手間をなくすことができる。このような部品化された機能は、「機能テンプレート」とも称される。情報モデルに含まれる情報を機能テンプレートに適用することにより、処理は同じだが入出力される情報が異なる機能を容易に実現することができる。
【0004】
このように、機能テンプレートが情報モデルの情報を使用する場合において、情報モデルの編集を行うときは、機能テンプレートに注意して編集作業を行うほうが好ましい。例えば、情報モデルに新たにクラスまたはプロパティを追加した後に、これらのクラスまたはプロパティの情報を機能テンプレートに適用しようとしたときに、当該情報がクラスまたはプロパティに設定されていないと気づくことがある。その場合、当該情報を追加するために、情報モデルに対する再度の編集作業が発生し、情報モデルの管理者の負担となり得る。しかし、情報モデルの管理者が情報モデルの編集の際に機能テンプレートが使用する情報を認識することも難しく、全ての機能テンプレートに注意して編集作業を行うことも手間である。
【先行技術文献】
【特許文献】
【0005】
【発明の概要】
【発明が解決しようとする課題】
【0006】
本発明の一実施形態は、情報モデルに設定された情報の不足を検出して、編集を推奨する情報処理装置を提供する。
【課題を解決するための手段】
【0007】
本発明の一実施形態としての情報処理装置は、取得部と、編集推奨部と、を備える。前記取得部は、情報モデルに対する編集内容を取得する。前記編集推奨部は、前記情報モデルに設定された情報を適用可能な機能テンプレートまたは前記情報モデルに設定された情報が適用された機能モデルと、前記編集内容と、に基づき、前記情報モデルに対する編集を推奨する情報を出力する。
【図面の簡単な説明】
【0008】
【
図1】第1の実施形態に係る情報処理装置の一例を示すブロック図。
【
図3】機能テンプレートと機能モデルを説明する図。
【
図4】情報モデルに対する編集のための入出力インタフェースの一例を示す図。
【
図5】第1の実施形態に係る情報処理装置1の全体処理の概略フローチャート。
【
図7】第2の実施形態に係る情報処理装置の一例を示すブロック図。
【
図8】機能モデル案の提案処理に関する概略フローチャート。
【
図9】本発明の一実施形態におけるハードウェア構成の一例を示すブロック図。
【発明を実施するための形態】
【0009】
以下、図面を参照しながら、本発明の実施形態について説明する。
【0010】
(第1の実施形態)
図1は、第1の実施形態に係る情報処理装置の一例を示すブロック図である。本実施形態に関する情報処理装置1は、情報モデル記憶部101Aと、ルール記憶部101Bと、機能テンプレート記憶部101Cと、機能モデル記憶部101Dと、UI部(入出力部)102と、情報モデル管理部103と、第1バリデーション部(違反判定部)104と、第2バリデーション部(編集推奨部)105と、を備える。
【0011】
なお、
図1の例では、便宜上、記憶されるデータごとに記憶部を分けて示している。情報モデル記憶部101Aは情報モデルを記憶する記憶部であり、ルール記憶部101Bは違反を判定するためのルールを記憶する記憶部であり、機能テンプレート記憶部101Cは機能テンプレートを記憶する記憶部であり、機能モデル記憶部101Dは機能モデルを記憶する記憶部である。しかし、実際には、このように細分化されていなくてもよく、メモリ、ハードディスク、ネットワークストレージなどによって、これらが一括して実現されてもよい。また、単に、記憶部101と記載した場合は、これらの記憶部全てを意味する。
【0012】
また、記憶部101のみならず、
図1に示した情報処理装置1の各構成要素は、細分化されてもよいし、集約されてもよい。また、情報処理装置1が
図1に示されていない構成要素を有していてもよい。例えば、UI部102が入力部と出力部とに分かれていてもよい。また、例えば、一部の構成要素が情報処理装置1とは別の装置に含まれていてもよい。すなわち、情報処理装置1が複数の装置によって構成されていてもよい。情報処理システムにおいて、各処理を専門に行う装置に分けることは、処理負荷の分散、可用性の維持などのためによくあることである。すなわち、情報処理装置1は、単体で稼働する装置であってもよいし、クラウドなどといった通信ネットワーク上のサーバと連携するサーバクライアント型の装置であってもよい。
【0013】
本実施形態では、情報モデルが用いられる。情報モデルは、ソフトウェア開発などに用いられ、ソフトウェアが使用するデータに対する記述仕様を定めるものである。例えば、検索エンジン、データベースなどといった種類の異なるデータソースも共通の情報モデルを用いることにより、データが示す情報の表記、例えば単位などが、各データソースで異なるといった事態を防ぐ。
【0014】
図2は、情報モデルを説明する図である。
図2の例では、情報モデルを体系的に示しており、情報モデルに、オブジェクトの分類などを示すクラスと、クラスに紐づけられていてオブジェクトの特徴を表すプロパティと、が含まれている。
図2の例では、クラスは楕円形のオブジェクトで表され、プロパティは長方形のオブジェクトで表されており、クラスとプロパティとの関係性が、ツリー状のグラフデータとして体系的に示されている。
【0015】
クラスは、いわゆる、物、人、事などといった概念に相当する。なお、上下関係を有するクラスが存在し、上位クラスのプロパティは下位クラスに継承される。すなわち、上位クラスに紐づけられたプロパティは、下位クラスにも紐づけられている。なお、情報モデルにこのようなクラスの上下関係が存在しない場合もあり得る。言い換えれば、フラットな関係のクラスだけを含む情報モデルもあり得る。
【0016】
本実施形態では、プロパティは、その値として、数値、文字列、日付、配列などといった少なくともプリミティブな値、または、構造化データを有する。例えば、「ポンプ」クラスの「流量」というプロパティは、センサ等で検出したポンプの流量の値を有する。
【0017】
また、各クラスおよび各プロパティは、一意な識別子を有する。なお、識別子以外に、人間が理解できるような名称が付与されてもよく、当該名称は多言語で表されてもよい。
【0018】
図2の例では、「AAA001」という識別子のクラス2Aは、「EEE001」という識別子のプロパティ3A1と、「EEE002」という識別子のプロパティ3A2と、「EEE003」という識別子のプロパティ3A3と、いう三つのプロパティを有し、さらに、「AAA002」という識別子の下位クラス(子クラスまたはサブクラスとも称される)2Bと、「AAA003」という識別子の下位クラス2Cと、を有する。
【0019】
また、
図2の例では、「AAA002」という識別子のクラス2Bは、「EEE004」という識別子のプロパティ3B1と、「EEE005」という識別子のプロパティ3B2と、いう二つのプロパティを有していることが示されているが、その上位クラスであるクラス2Aの三つのプロパティも継承するため、「EEE001」から「EEE005」までの合計五つのプロパティを有する。
【0020】
また、クラスおよびプロパティは、アトリビュートを有する。本実施形態では、アトリビュートは、クラスやプロパティ自身の情報を表すものである。例えば、名称、定義などの意味情報に加え、単位、種類といったセマンティクスなアトリビュートが設定される。
【0021】
図2の例では、表4Aにクラス2Aのアトリビュートが示され、表4Bにプロパティ3B2のアトリビュートが示されている。表4Aおよび表4Bの1列目にはアトリビュートが示され、2列目には当該アトリビュートに設定される情報(アトリビュートの値とも言える)が示されている。例えば、表4Aには、「superclass」というアトリビュートが示されており、当該アトリビュートに設定された情報が「UNIVERSE」であることが示されている。これは、クラス2Aは「UNIVERSE」というアトリビュートの値を有することを表す。なお、「UNIVERSE」というアトリビュートの値は、上位クラス(親クラスとも称される)を有していないことを意味する。したがって、クラス2Aには、上位クラスがないことが分かる。なお、
図2の表4Aおよび表4Bでは、2列目の全てのセルに情報が示されていたが、空欄の場合もあり得る。
【0022】
本実施形態では、このような情報モデルが予め生成されており、当該情報モデルに対して編集が行われることを想定する。例えば、クラスまたはプロパティの追加、変更、または削除が行われる。また、例えば、クラスまたはプロパティが有するアトリビュートの値の追加、変更、または削除が行われる。このように「編集」という用語は、追加、変更、および削除の少なくともいずれかを含む。
【0023】
機能テンプレートは、物、人、事などを表す様々なデータを取り扱うことが可能な抽象的なテンプレートである。本実施形態の機能テンプレートは、情報モデルに設定された情報、具体的には、クラスまたはプロパティのアトリビュートの値、またはプロパティの値を設定する(適用する、対応付けるとも言える)ことができる。機能テンプレートに当該情報を設定すると、機能テンプレートは、設定された情報を表す機能モデルとなる。
【0024】
図3は、機能テンプレートと機能モデルを説明する図である。
図3の左側に機能テンプレート5が示されている。
図3の機能テンプレート5は、グラフを表示するためのものである。機能テンプレート5には「title」という表記があるが、この「title」は変数であり、機能モデルを生成する際には、当該「title」に、機能テンプレートに適用されたクラスまたはプロパティの名称が設定される。また、「x(unit)」と「y(unit)」も変数であり、機能モデルを生成する際には、適用されたクラスまたはプロパティのアトリビュートの値のいずれかが、各座標軸が示す項目名およびその単位として、設定される。そして、機能テンプレート5内の表示領域51に、設定された二つの項目の値の関係を示すグラフ(系列データのグラフ)が示される。
【0025】
図3の右側には、左側の機能テンプレートから生成された二つの機能モデル6Aおよび6Bが示されている。機能モデル6Aは、機能テンプレートにプロパティ「出口弁出口圧力」を適用したものである。機能テンプレートのtitleにプロパティ「出口弁出口圧力」の名称が設定され、x軸に当該プロパティの名称「time」およびその単位「h(時間)」が設定され、y軸に当該プロパティの名称「出口圧力」およびその単位「kg/m
3」が設定されたことにより、機能モデル6Aが生成されている。そして、機能モデル6A内の表示領域61Aに、「time」と「出口圧力」の関係を示すグラフが示されている。機能モデル6Bは、機能テンプレートにプロパティ「time」および「タービン出力」を適用したものである。機能テンプレートのtitleにプロパティ「タービン出力」の名称が設定され、x軸に当該プロパティの名称「time」およびその単位h(時間)が設定され、y軸に当該プロパティの名称「タービン出力」およびその単位「MW/h」が設定されたことにより、生成されている。そして、機能モデル6B内の表示領域61Bに、時間とタービン出力の関係を示すグラフが示されている。
【0026】
このように、一つの機能テンプレートに異なるクラスおよびプロパティを適用して、機能テンプレートが適用されたクラスおよびプロパティのアトリビュートの値やプロパティの値を示すようにすることにより、複数の機能モデルを生成することができる。これにより、機能テンプレートに設定される情報ごとに専用のモジュールを作成する必要がなくなり、ソフトウェア開発の作業量、エンジニアリングコストの上昇などを抑えることができる。
【0027】
なお、
図3の例の機能テンプレート5は、グラフ表示に用いられるものであるが、機能テンプレートがこのような画面表示の用途に限られるわけではない。使用する関数、処理などが共通の機能を、機能テンプレートとして生成してもよい。
【0028】
次に、情報処理装置1の各処理を、内部構成とともに説明する。
【0029】
記憶部101は、情報処理装置1の各構成要素が用いるデータ、各構成要素の処理結果などを記憶する。
図1では、説明の便宜上、いくつかの構成要素とのデータの流れを矢印で示しているが、全ての構成要素とデータのやり取りを行ってよい。
【0030】
記憶部101は、リレーショナルデータベースのようなデータベースで構築されてもよいし、CSV、XMLといった形式のファイルを格納するメモリまたはストレージでもよい。
【0031】
UI部(入出力部)102は、情報処理装置1の処理に用いられる情報の入力を受け付け、情報処理装置1の処理結果を出力する。また、出力に対する応答、例えば、出力された提案に対する承諾なども、取得する。UI部102は、例えば、情報モデルの編集用画面を出力し、ユーザから情報モデルの編集の入力を受け付けることが可能なGUI(Graphical User Interface)であってもよい。あるいは、編集のためのコマンド、ファイルなどを送受信するような通信部であってもよい。つまり、UI部102の入出力形式は、特に限られるのではない。
【0032】
なお、情報処理装置1の処理に用いられる情報の入手方法は、特に限られるものではない。当該情報が、キーボード、マウス、タッチパネルなどといった入力装置、または、ネットワークで接続された通信装置から送信され、UI部102は当該情報を受動的に受信してもよい。あるいは、データの位置を示すパスが情報処理装置1に設定され、UI部102が当該パスにあるデータを能動的に読み出してもよい。
【0033】
情報モデル管理部103は、情報モデルを管理し、情報モデルに対する処理を制御する。例えば、情報モデル編集部は、UI部102を介して、情報モデルの編集の入力を受け付ける。また、編集内容に違反がないことが確認された場合、編集内容を情報モデルに反映させて、情報モデル記憶部101Aに記憶する。なお、情報モデル記憶部101Aに記憶された情報モデルを更新してもよいし、情報モデルを上書きせずに、別のバージョンとして記録してもよい。
【0034】
また、情報モデル管理部103は、情報モデルの編集のためのGUIのための画像などを生成してもよい。例えば、取得した編集内容に対する改善提案が行われる場合に、改善提案を表示する画像を生成してもよい。なお、GUI生成などの入出力のための処理は、一般的なソフトウェアと同様であり、公知の従来技術を用いればよい。
【0035】
第1バリデーション部104は、情報モデル管理部103からの指示を受けて編集内容に違反がないかを判定する。そして、検出された違反の内容、その箇所などの処理結果を、情報モデル管理部103に返信する。例えば、ルール記憶部101Bに記憶されたルールに適応しているかといった判定を行う。例えば、アトリビュートに設定された文字列の先頭が大文字であるか、当該文字列の文字数が上限値以下であるか、所定の禁則文字が含まれていないか、といった所定のルールを満たしているかが判定される。
【0036】
また、例えば、第1バリデーション部104は、クラス理論の集合演算式に基づいて、編集内容に違反がないかを判定する。具体的には、第1バリデーション部104は、情報モデルに設定された情報を数式に変換する。また、編集内容に関する情報も数式に変換する。これらの数式を用いて、整合性を満たすかどうかの計算処理を実行する。これにより、違反が検出される。例えば、
図2示したようなクラスおよびプロパティの関係、言い換えればデータ構造、を関係式に変換し、編集内容を表す数式が、当該関係式を満たすかを確認する。
【0037】
例えば、SQL(Structured Query Language)、CQL(Class Query Language)といった、データの構造(データモデル)を問い合わせる言語を用いて、集合和(Union)、集合積(Intersect)、集合差(Except)といった論理演算が可能であることが知られている。このような言語と同様にして、仮に編集内容を許可した場合に情報モデルの編集前後において整合性が保たれるかを、集合演算式から判定すればよい。
【0038】
例えば、数理論理学的観点からは、クラスはC={x|P(x)}のような記述によって定義される。Cはクラス、xはクラスの要素、P(x)はクラスCの内包を表す。ここで、P(x)は更にクラスが持つプロパティの掛け合わせ、すなわちC={x|P1(x,s1)∧P2(x,s2)∧…Pn(x,sn)で表現される。P1、P2、…、PnはクラスCのプロパティを表し、s1、s2、…、snはそれらの値である。不整合検出の例としては、二つのクラスCdとCaの間でCa=Cd∧Caの制約式を満たすことが求められる場合に、Cd={x|P1(x,s1)∧P2(x,s2)}、Ca={x|P1(x,s1)∧P2(x,s2)∧P3(x,s3)}であるときは、Ca≠Cd∧Caとなって制約式を満たさないため、不整合と判定される。
【0039】
第2バリデーション部105(編集推奨部)は、機能テンプレートまたは機能モデルと、編集内容と、に基づき、情報モデルに対する編集を提案する。言い換えれば、編集を推奨する情報を出力する。例えば、情報モデルが有するアトリビュートのうちから、情報を設定したほうがよいとされるアトリビュートを検出し、検出されたアトリビュートの少なくともいずれかに対して情報を設定することを提案してもよい。あるいは、情報モデルに新たにプロパティを追加することを提案してもよい。このように、ユーザに編集の不足を気づかせて編集を推奨する。
【0040】
なお、第2バリデーション部105は、あるクラスまたはプロパティに対し、情報を設定したほうがよいとされるアトリビュートを検出するが、当該クラスまたはプロパティに当該アトリビュート自体が既に設定されている場合も、設定されていない場合もあり得る。
【0041】
例えば、前述の通り、クラスまたはプロパティに設定されているアトリビュートのうちには、情報が設定されていないものもあり得る。第2バリデーション部105は、そのようなアトリビュートのうちから、情報を設定したほうがよいものを検出し得る。また、あるプロパティには設定されているが、別のプロパティには設定されていないアトリビュートもあり得る。第2バリデーション部105は、あるクラスまたはプロパティに対して、当該クラスまたはプロパティに設定されていないアトリビュートを、情報を設定したほうがよいアトリビュートとして検出し得る。すなわち、アトリビュートの値の追加を提案する。
【0042】
具体的には、第2バリデーション部105は、機能テンプレート記憶部101Cに記憶された機能テンプレートと、機能モデル記憶部101Dに記憶された機能モデルと、の少なくともいずれかから、編集内容に関連する(編集内容とマッチングする)ものを検出する。そして、検出された機能テンプレートによって適用可能であるか、または、検出された機能モデルによって適用されている、アトリビュートを検出する。検出されたアトリビュートが、情報を設定したほうがよいものとして提案される。なお、複数のアトリビュートが検出された場合には、全てを提案せずに、一部が提案されてもよい。
【0043】
さらに具体的には、第2バリデーション部105は、編集されるクラスまたはプロパティと、情報モデルに含まれるクラスまたはプロパティとの「意味構造的類似度」を算出する。意味的類似度も、第1バリデーション部104同様、クラス理論の集合演算式、計算機可読な辞書を用いた用語の類似度推定、Nグラム等で抽出した部分文字列の共通部分の算出、プロパティの種類の共通性、プロパティの値の共通性、プロパティのデータ型の共通性、プロパティの単位が属する量(Quantity)の共通性などに基づいて算出することが可能である。
【0044】
第2バリデーション部105は、算出された類似度に基づき、編集されるクラスおよびプロパティに類似するクラスおよびプロパティを検出する。以降、検出されたクラスおよびプロパティを、類似クラスおよび類似プロパティと記載する。なお、類似度が所定閾値よりも高いと判定されたクラスまたはプロパティを類似クラスまたは類似プロパティと判定すればよい。閾値は、適宜に定めてよい。
【0045】
次に、類似クラスおよび類似プロパティのアトリビュートに設定された情報を適用可能な機能テンプレート、または、類似クラスおよび類似プロパティのアトリビュートに設定された情報が適用された機能モデルを検出する。
【0046】
なお、機能テンプレートに適用可能なクラスまたはプロパティが、予め登録されていて認識可能な場合は、当該登録に係る情報に基づいて機能テンプレートを検出し、そうでない場合は、機能モデルを検出するとしてもよい。機能モデルを検出して、検出された機能モデルのベースとなった機能テンプレートを検出してもよい。
【0047】
類似クラスまたは類似プロパティが適用された機能モデルのベースとなった機能テンプレートは、編集されたクラスまたはプロパティに対しても適用される可能性が高い。ゆえに、検出された機能テンプレートに設定可能なアトリビュート、検出された機能モデルに設定されたアトリビュートは、編集されたクラスまたはプロパティも有し、かつ、情報が設定されていたほうが好ましい。ゆえに、このようにして、情報が設定されていたほうがよいアトリビュートを検出し、情報モデル管理部103およびUI部102を介して、ユーザに提示する。
【0048】
この提示に従ってユーザがアトリビュートに情報を追加した場合、情報モデル管理部103が、追加された情報を情報モデルに追加して更新する。なお、再度、第1バリデーション部104および第2バリデーション部105の処理が行われてもよい。
【0049】
また、第2バリデーション部105は、情報が設定されていないアトリビュートに対して、設定したほうがよい情報を提案してもよい。例えば、設定したほうがよいアトリビュートを検出する際に、機能モデルを検出したが、検出された機能モデルに設定されているアトリビュートを提案するとしてもよい。
【0050】
また、第2バリデーション部105は、プロパティの新規追加も提案可能である。例えば、グラフを表示する機能テンプレートのy軸に設定可能な流量に関するプロパティが追加された際に、第2バリデーション部105は、x軸に対応しそうなプロパティが情報モデルに含まれているかを検索する。x軸に対応しそうなプロパティは、例えば、追加した流量プロパティに対する類似プロパティを検出し、検出された類似プロパティうち、機能モデルのグラフのy軸に紐づけられてものを検出し、当該機能モデルのグラフのx軸のプロパティの類似プロパティをx軸に対応しそうなプロパティとしてもよい。x軸に対応しそうなプロパティが情報モデルに含まれていないことが判明した場合には、x軸に対応しそうなプロパティの追加を提案してもよいし、圧力のプロパティを追加することを提案してもよい。このようにして、プロパティについての提案も行うことができる。
【0051】
また、第2バリデーション部105は、提案の受け入れ可否に基づいて、ルール記憶部101Bに記憶されたルールを更新してもよい。例えば、提案の受け入れ可否に応じて、類似クラスまたは類似プロパティを判定するための閾値を増減させることにより、当該閾値を最適な値となるように調整してもよい。
【0052】
図4は、情報モデルに対する編集のための入出力インタフェースの一例を示す図である。
図4には、入出力インタフェース7が示されており、入出力インタフェース7がいくつかの領域に分かれている。上部の表示領域71Aの左側には、情報モデルのクラス階層と、選択されたクラスが持つプロパティの内容と、が表示されている。
図4では、「AAA003」というクラス2Cが選択されており、クラス2Cがドット柄で表示されている。また、表示領域71Aの右側には、選択されているクラス2Cのプロパティおよび当該プロパティのアトリビュートが、表形式にて示されている。
【0053】
入出力インタフェース7の左下部の表示領域71Bには、第1バリデーションによる違反判定の結果と、第2バリデーションによる提案と、が、どのプロパティにあるかが分かるように表示されている。例えば、表示領域71Bには、EEE008のプロパティに対し「情報が不足しています」という表示が示されている。このような表示を行う子tにより、情報モデルに対する編集を促してもよい。なお、これらの処理は、
図4に示されたバリデーションボタン72を押して実行される。
【0054】
なお、ユーザは、表示領域71Bの表示を見て、表示領域71Aに示されたAAA003のプロパティリストの表記を編集することを想定する。こうして、再編集の結果をUI部102が取得する。
【0055】
なお、
図4は例示であり、画面構成、機能の呼び出しなどは、適宜に定めてよい。また、情報モデルの編集が行われると即座に、違反判定および不足情報の検出が自動的に行われてもよい。
【0056】
次に、構成要素の各処理の流れについて説明する。
図5は、第1の実施形態に係る情報処理装置1の全体処理の概略フローチャートである。なお、本説明におけるフローチャートは一例であり、説明された例に限られるものではない。実施形態の求められる仕様、変更などに応じて、手順の並び替え、追加、および省略が行われてもよい。例えば、本フローでは、説明の便宜上、第1バリデーション部による違反判定処理を先に行い、違反が検出されず更新が可能となった場合に、第2バリデーション部による提案を行うものとする。なお、これらの処理が並行に行われてもよい。
【0057】
情報モデル管理部103が、UI部102を介して、情報モデルの編集を受け付ける(S101)。情報モデル管理部103は、編集内容に違反がないかを確認するために、編集内容を第1バリデーション部104に送信して、第1バリデーション部104は違反判定処理を実行する(S102)。違反判定処理のフローは後述する。
【0058】
違反が検出された場合(S103のYES)は、情報モデル管理部103が、UI部102を介して、検出された違反に関する情報を出力する(S104)。これにより、前述のように、ユーザによって編集内容が修正されるので、情報モデル管理部103は、修正された編集内容を受け付けることになる。したがって、再び、違反判定処理が実行されることになる。
【0059】
違反が検出されなかった場合(S103のNO)は、第2バリデーション部105が、前述のようにして、編集内容に関連する機能テンプレートおよび機能モデルを検索する(S105)。機能テンプレートまたは機能モデルが検出されなかった場合(S106のNO)は、S110の処理に移る。機能テンプレートまたは機能モデルが検出された場合(S106のYES)は、第2バリデーション部105が、検出された機能テンプレートまたは機能モデルに基づき、提案内容を決定する(S107)。すなわち、情報モデルが有するアトリビュートのうちから、情報を設定したほうがよいとされるアトリビュートを検出する。また、前述の通り、当該アトリビュートに設定したほうがよいとされる情報を検出してもよい。提案内容は、情報モデル管理部103が、UI部102を介して、出力し(S108)、提案の受け入れ可否をUI部102が取得する(S109)。
【0060】
そして、情報モデル管理部103は、情報モデルを更新する(S110)。機能テンプレートまたは機能モデルが検出されなかったため提案が行われなかった場合と、提案が受け入れなかった場合とでは、情報モデル管理部103は、取得した編集内容を情報モデルに反映させる。機能テンプレートまたは機能モデルが検出されて提案が受け入れられた場合は、情報モデル管理部103は、編集内容および提案内容を情報モデルに反映させる。
【0061】
また、第2バリデーション部105は、類似判定の精度を向上させるために、提案の受け入れ可否に基づき、例えば、類似クラスまたは類似プロパティを判定するための閾値となどといったルールを更新する(S111)。こうして、全体の処理が終了する。
【0062】
また、第1バリデーション部104による違反判定処理の流れについて説明する。
図6は、違反判定処理の概略フローチャートである。
【0063】
第1バリデーション部104が情報モデルの編集前後のクラスおよびプロパティを数式に変換する(S201)。そして、第1バリデーション部104は、これらの数式に基づいて演算処理を実行する(S202)。この演算処理結果に基づいて違反が判定される(S203)。例えば、前述の通り、情報モデルに含まれるクラスおよびプロパティの関係を関係式に変換しておき、編集内容を表す数式が、当該関係式を満たすかを確認する。関係式を満たす場合に、ルールに違反していないと判定される。
【0064】
また、第1バリデーション部104は、禁則文字などの所定ルールとのマッチングにも基づいて違反を判定する(S204)。こうして、二つの判定処理が行われ、本フローは終了する。
【0065】
以上のように、本実施形態の情報処理装置1は、情報モデルの編集を受け付けた時に、当該編集内容に違反がないかを確認しつつ、今後必要となるかもしれない情報の不足も確認する。これにより、不足の情報を使用する必要が生じた際に、情報モデルを再度編集するといった事態を防ぐことができる。言い換えれば、不足情報が発覚したことにより生じる戻り作業を防ぐことができる。
【0066】
情報モデルはデータ側のモデルであり、機能モデルはそれを利用する側のモデルであり、それらの管理者などが異なる場合が多い。このような分散開発においては、一方の編集作業が、他方のメンバ、企業などに影響を与えるため、なるべく、影響を考慮しつつ、戻り作業が発生しないようにすることが好ましい。ゆえに、本実施形態のように、情報モデルの編集時において、編集されるクラスまたはプロパティのアトリビュートやプロパティの値がどのように使われるかという点を加味し、設定したほうがよいアトリビュートを提示することは非常にメリットがある。
【0067】
また、従来では、文字列型、数値型などのデータ型が一致するか否かといったオブジェクト指向的なマッチングが行われており、例えば、文字列型の複数のアトリビュートが設定されている場合には、そのうちのいずれをマッチングさせるかという判断が困難である。一方、本実施形態の情報処理装置1は、情報モデルと機能テンプレートという、本来は全く異なる概念同士をマッチングさせることにより、情報の不足を検出する。また、本実施形態が用いる情報モデルは、名称、定義などの意味情報に加え、単位、種類であったりといったセマンティクスを有しており、それらが加味された処理が行われる。このような点で、従来技術とは異なる。
【0068】
(第2の実施形態)
図7は、第2の実施形態に係る情報処理装置の一例を示すブロック図である。本実施形態に関する情報処理装置1は、機能モデル案記憶部101Eと、機能モデル提案部106と、をさらに備える。
【0069】
第1の実施形態では、今後、使用されるかもしれない情報が情報モデルにないことを検出して、情報モデルに設定することを提案した。第2の実施形態では、今後、生成されるかもしれない機能モデルを予め生成し、当該機能モデルの登録を提案する。当該機能モデルを機能モデル案と記載する。機能モデル案は、正式には登録されていない機能モデル、言い換えれば、機能モデル記憶部101Dには正式に記録されていない機能モデルである。そのため、仮の機能モデル、機能モデル候補などとも言える。
【0070】
機能モデル提案部106は、編集されたクラスまたはプロパティのアトリビュートを機能テンプレートに適用させて、機能モデル案を生成する。第1の実施形態において提案したアトリビュートに情報が設定された場合、当該情報を適用した機能モデル案を生成すればよい。
【0071】
生成された機能モデル案は、第1の実施形態のバリデーション結果と同様、入出力インタフェースを介して、出力してよい。例えば、
図4の例では、入出力インタフェース7の右下部の表示領域71Cに、「機能テンプレート2」を用いて生成された、タービン出力性能曲線を示す機能モデル案が示されている。このように、機能モデル案、適用された機能テンプレートなどに関する情報を出力してもよい。
【0072】
なお、機能モデル案ではなく、機能モデル案のベースとなる機能テンプレートまたは機能モデルを出力してもよい。例えば、機能テンプレートと、それに適用させる情報の候補を、UI部102を介して出力することにより、機能モデルの生成をユーザに促すことも可能である。
【0073】
また、前述の通り、情報モデルと機能モデルの管理者などが異なる場合もあり得る。そのため、情報モデルの編集時において生成された機能モデル案を機能モデル案記憶部101Eに記憶しておき、機能モデルの管理者が情報処理装置1を操作する際に、機能モデル案記憶部101Eから機能モデル案を呼び出してもよい。
【0074】
機能モデル提案部106は、UI部102を介して、機能モデル案が承諾された場合、機能モデル案を機能モデルとして機能モデル記憶部101Dに記憶する。承諾されなかった機能モデル案は、機能モデル案記憶部から消去されてもよいし、そのまま残しておいてもよい。
【0075】
第2の実施形態の処理の流れについて説明する。
図8は、機能モデル案の提案処理に関する概略フローチャートである。本フローは、
図5に示したフローチャートの後に実行されてもよい。例えば、機能モデルの管理者からのリクエストを受けてから、本フローが開始されてもよい。あるいは、本フローは、
図5に示したフローチャートとともに実行されてもよい。例えば、情報モデル管理部103が、提案内容を出力する(S108)ともに、本フローによって作成された機能モデル案も出力してもよい。
【0076】
機能モデル提案部106が、第2バリデーション部105によって提案されたアトリビュートの情報を、提案の根拠となった機能テンプレートに適用して、機能モデル案を生成する(S301)。機能モデル提案部106が、UI部102を介して、機能モデル案を出力する(S302)。なお、機能モデル案は、生成された後にすぐ出力されてもよいし、生成されて機能モデル案を機能モデル案記憶部101Eに記憶しておき、機能モデルの管理者からのリクエストを受けてから出力してもよい。
【0077】
UI部102は、機能モデル案の受入の可否を取得する(S303)。機能モデル案が受け入れられた場合(S304のYES)は、機能モデル提案部106が、受け入れられた機能モデル案を、機能モデル記憶部101Dに機能モデルとして記録する(S305)。機能モデル案が受け入れられなかった場合(S304のNO)は、機能モデル案は機能モデル記憶部101Dに記憶されずに、本フローは終了する。
【0078】
以上のように、第2実施形態では、機能モデルの管理者が編集された情報モデルに基づいて機能モデルを生成するのではなく、情報処理装置1が自動的に機能モデル案を生成する。これにより、機能モデルの管理者は機能モデル案を承諾するか否かだけを行えばよく、情報モデルに追加されたアトリビュートの値を機能テンプレートに適用するといった手間がなくなり、エンジニアリングコストを下げることができる。
【0079】
なお、上記の実施形態の少なくとも一部は、プロセッサ、メモリなどを実装しているIC(Integrated Circuit:集積回路)などの専用の電子回路(すなわちハードウェア)により実現されてもよい。また、上記の実施形態の少なくとも一部は、ソフトウェア(プログラム)を実行することにより、実現されてもよい。例えば、汎用のコンピュータ装置を基本ハードウェアとして用い、コンピュータ装置に搭載されたCPUなどのプロセッサにプログラムを実行させることにより、上記の実施形態の処理を実現することが可能である。
【0080】
例えば、コンピュータが読み取り可能な記憶媒体に記憶された専用のソフトウェアをコンピュータが読み出すことにより、コンピュータを上記の実施形態の装置とすることができる。記憶媒体の種類は特に限定されるものではない。また、通信ネットワークを介してダウンロードされた専用のソフトウェアをコンピュータがインストールすることにより、コンピュータを上記の実施形態の装置とすることができる。こうして、ソフトウェアによる情報処理が、ハードウェア資源を用いて、具体的に実装される。
【0081】
図9は、本発明の一実施形態におけるハードウェア構成の一例を示すブロック図である。
図9には情報システム8が示されており、
図9の例では、情報システム8に、情報処理装置1を実現するコンピュータ装置81と、通信ネットワーク82と、外部装置83Aおよび83Bと、が含まれている。
【0082】
コンピュータ装置81は、プロセッサ811と、主記憶装置812と、補助記憶装置813と、ネットワークインタフェース814と、デバイスインタフェース815と、を備え、これらがバス816を介して接続されている。記憶部101は、主記憶装置812または補助記憶装置813により実現可能であり、その他の構成要素は、プロセッサ811により実現可能である。
【0083】
なお、
図9のコンピュータ装置81は、各構成要素を一つ備えているが、同じ構成要素を複数備えていてもよい。また、
図9では、1台のコンピュータ装置81が示されているが、ソフトウェアが複数のコンピュータ装置にインストールされて、当該複数のコンピュータ装置それぞれがソフトウェアの異なる一部の処理を実行してもよい。
【0084】
プロセッサ811は、コンピュータの制御装置および演算装置を含む電子回路である。プロセッサ811は、コンピュータ装置81の内部構成の各装置などから入力されたデータやプログラムに基づいて演算処理を行い、演算結果や制御信号を各装置などに出力する。具体的には、プロセッサ811は、コンピュータ装置81のOS(オペレーティングシステム)や、アプリケーションなどを実行し、コンピュータ装置81を構成する各装置を制御する。プロセッサ811は、上記の処理を行うことができれば特に限られるものではない。
【0085】
主記憶装置812は、プロセッサ811が実行する命令および各種データなどを記憶する記憶装置であり、主記憶装置812に記憶された情報がプロセッサ811により直接読み出される。補助記憶装置813は、主記憶装置812以外の記憶装置である。なお、これらの記憶装置は、電子情報を格納可能な任意の電子部品を意味するものとし、メモリでもストレージでもよい。また、メモリには、揮発性メモリと、不揮発性メモリがあるが、いずれでもよい。
【0086】
ネットワークインタフェース814は、無線または有線により、通信ネットワーク82に接続するためのインタフェースである。ネットワークインタフェース814は、既存の通信規格に適合したものを用いればよい。ネットワークインタフェース814により、通信ネットワーク82を介して通信接続された外部装置83Aと情報のやり取りが行われてもよい。
【0087】
デバイスインタフェース815は、外部装置83Bと直接接続するUSBなどのインタフェースである。外部装置83Bは、外部記憶媒体でもよいし、データベースなどのストレージ装置でもよい。
【0088】
外部装置83Aおよび83Bは出力装置でもよい。出力装置は、例えば、画像を表示するための表示装置でもよいし、音声などを出力する装置などでもよい。例えば、LCD(Liquid Crystal Display)、CRT(Cathode Ray Tube)、PDP(Plasma Display Panel)、スピーカなどがあるが、これらに限られるものではない。
【0089】
なお、外部装置83Aおよび83Bは入力装置でもよい。入力装置は、キーボード、マウス、タッチパネルなどのデバイスを備え、これらのデバイスにより入力された情報をコンピュータ装置81に与える。入力装置からの信号はプロセッサ811に出力される。
【0090】
上記に、本発明の一実施形態を説明したが、これらの実施形態は、例として提示したものであり、発明の範囲を限定することは意図していない。これら新規な実施形態は、その他の様々な形態で実施されることが可能であり、発明の要旨を逸脱しない範囲で、種々の省略、置き換え、移行を行うことができる。これら実施形態やその変形は、発明の範囲や要旨に含まれるとともに、特許請求の範囲に記載された発明とその均等の範囲に含まれる。
【符号の説明】
【0091】
1 情報処理装置
101A 情報モデル記憶部
101B ルール記憶部
101C 機能テンプレート記憶部
101D 機能モデル記憶部
101E 機能モデル案記憶部
102 UI部(入出力部)
103 情報モデル管理部
104 第1バリデーション部(違反判定部)
105 第2バリデーション部(編集推奨部)
106 機能モデル提案部
2A、2B、2C クラス
3A1、3A2、3A3、3B1、3B2 プロパティ
4A、4B アトリビュートを示す表
5 機能テンプレート
51 機能テンプレート内の表示領域
6A、6B 機能モデル
61A、61B 機能モデル内の表示領域
7 編集のための入出力インタフェース
71A、71B、71C 入出力インタフェース内の表示領域
8 情報システム
81 コンピュータ装置
811 プロセッサ
812 主記憶装置
813 補助記憶装置
814 ネットワークインタフェース
815 デバイスインタフェース
816 バス
82 通信ネットワーク
83Aおよび83B 外部装置