JP2007025798A - 言語知識構築支援プログラム及び方法 - Google Patents

言語知識構築支援プログラム及び方法 Download PDF

Info

Publication number
JP2007025798A
JP2007025798A JP2005203308A JP2005203308A JP2007025798A JP 2007025798 A JP2007025798 A JP 2007025798A JP 2005203308 A JP2005203308 A JP 2005203308A JP 2005203308 A JP2005203308 A JP 2005203308A JP 2007025798 A JP2007025798 A JP 2007025798A
Authority
JP
Japan
Prior art keywords
vocabulary
component
elements
knowledge
language
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Pending
Application number
JP2005203308A
Other languages
English (en)
Inventor
Masaru Takeuchi
勝 竹内
Kazuya Kuki
和也 久木
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Hitachi Ltd
Original Assignee
Hitachi Ltd
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Hitachi Ltd filed Critical Hitachi Ltd
Priority to JP2005203308A priority Critical patent/JP2007025798A/ja
Publication of JP2007025798A publication Critical patent/JP2007025798A/ja
Pending legal-status Critical Current

Links

Images

Landscapes

  • Devices For Executing Special Programs (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
  • Stored Programmes (AREA)

Abstract

【課題】自然言語を用いた仕様記述からアプリケーションソフトウェアをコンポーネント単位で構築する際に使用する言語知識の構築を支援する。
【解決手段】コンポーネントの組合せ、構成情報などを用いて、言語知識の構築を支援する。コンポーネントαに語彙(ラベル)aが与えられ、コンポーネントβに語彙bが与えられている条件下で、コンポーネントαとコンポーネントβを連続して使用した場合、語彙aと語彙bの繋がりを語彙cで命名し、cの分割語彙として語彙aと語彙bの繋がりを言語知識ベースに登録する。
【選択図】図10

Description

本発明は、機能仕様、入出力仕様が開示されたソフトウェア部品を組み合わせてアプリケーションソフトウェアを構築する方法であって、自然言語を用いた仕様記述からアプリケーションソフトウェアを構築する方法に属する。
アプリケーションソフトウェアを構築する場合、開発効率を向上させるため、各アプリケーションで共通に利用する機能を、対象物や対象機能等の単位で処理インターフェースをまとめたコンポーネントに集約し、このコンポーネント単位でアプリケーションを開発する手法が知られている。
この一例として、既存のWebサービスを検索し、複数のWebサービスを組み合わせることによって新たにWebサービスを生成する場合、生成するWebサービスの業務フローを状態遷移に変換し、既存のWebサービスとの業務フローの状態遷移とのマッチングを行う手法が提案されている(例えば、非特許文献1)。
また、インターネットなどのWeb上で、必要なコンポーネントをユーザーが発見することを支援するため、オントロジーとよばれる語彙概念を記述した言語知識を用いて、検索時に入力されたキーワードと意味が似ている語彙候補をユーザーに提示する方法を提案している(例えば、特許文献1)。
オントロジーの構築はその対象となる領域の知識と言語に関する知識が必要であり、人手による構築にコストがかかる。このため、オントロジー構築支援と個別複数のオントロジー間の対応づけを行なってオントロジー対応付けファイル構築支援を行なうシステムが提案されている(例えば、特許文献2)。
Paolo Traverso and Marco Pistore著、「Automated Composition of Semantic Web Services into Executable Processes」、「International Semantic Web Conference (ISWC) 2004」、Springer-Verlag GmbH、2004年11月発行、LNCS 3298、第380頁〜第394頁 特開2004−30428号 特開2001−14166号
しかしながら、上記のような従来例では、オントロジーによりデータ間の相関性を対応付けることは可能であるが、上述のようなコンポーネントに適用した場合、コンポーネントを識別する仕様記述等が一致または類似するコンポーネントがあったとしても、コンポーネント間の類似性についてまで判断することができない、という問題がある。
このため、上記仕様記述が一致または類似するコンポーネントが複数あっても、各コンポーネントの処理内容が異なれば、そのまま利用することはできず、ネットワーク上で利用可能なコンポーネントの中から最適なコンポーネントを容易かつ迅速に選択することが難しいという問題が生じていた。
特に、上記コンポーネントの仕様記述を自然言語にて記述した言語知識を用いる場合は、仕様記述に用いられた単語等の揺らぎ(例えば、類義語の使用)と、コンポーネント間の処理内容の相関関係を把握する必要があるが、上記従来例ではこのような言語知識を構築することができないという問題があった。
そこで本発明は、上記問題点に鑑みてなされたもので、自然言語を用いた仕様記述からアプリケーションソフトウェアをコンポーネント単位で構築する際に使用する言語知識の構築を支援する手法を提供することを目的とする。
本発明は、入力された業務フローの要素の記述から言語知識に基づいて、コンポーネントと当該コンポーネントの機能を記述した語彙ラベルの集合との関係を対応付ける第1のデータベースを検索し、前記業務フローに対応するようにコンポーネントを組み合わせてアプリケーションを構築する際に、前記検索を行う言語知識の構築を支援するプログラムであって、前記業務フローの要素に対応して複数のコンポーネントを記述したサブフローが入力されたことを検出する手順と、前記業務フローの要素に対応する複数のコンポーネント間の関係が直列または並列のいずれであるかを判定する手順と、前記サブフローを構成するコンポーネントの語彙ラベルの集合を取得する手順と、前記語彙ラベルの集合に基づいて、前記第1のデータベースの語彙ラベルの集合を検索する手順と、前記検索した第1のデータベースの語彙ラベルの集合を、前記業務フローの要素の記述に対応する語彙ラベルの集合として前記言語知識に登録する手順と、を計算機に機能させる。
また、ユーザーが、言語で表現された1つの業務フロー(業務プロセス)を複数のコンポーネントの直列あるいは並列の結合で構成した場合、業務フローを表現する言語概念は、各々のコンポーネントに付随する言語概念の直列あるいは並列の結合で分割表現されることを仮定し、言語概念の分割表現をユーザーに提示する。
また、前記更新されたコンポーネントを検出する手順と、前記更新されたコンポーネントと前記第1のデータベースの既登録のコンポーネントの類似度を算出する手順と、前記類似度が所定の閾値以上であるか否かを判定する手順と、前記類似度が所定の閾値以上となった既登録のコンポーネントの語彙ラベルの集合を、更新されたコンポーネントの語彙ラベルの集合として前記言語知識に登録する手順と、を計算機に機能させる。
また、複数のコンポーネント間の類似性を判定し、類似したコンポーネントに付随する言語概念には類義性を仮定し、言語概念の類義性をユーザーに提示する。
なお、ユーザーは提示された内容の適否を判定し、適切な場合は、前記言語概念は新たな言語知識として言語知識ベースに登録される。
なお、コンポーネントは、特定の機能を実行するメソッドを有するソフトウェア部品のうち、言語によって仕様が外部に公開されたものである。
したがって、本発明は、アプリケーションソフトウェア構築の過程において、コンポーネントフローの入力内容とコンポーネント知識ベース(第1のデータベース)の更新内容に基づき、分割語彙(直列分割または並列分割)と類義語彙に関する言語知識データの獲得を行うことが出来る。
以下、本発明の一実施形態を添付図面に基づいて説明する。
図1は、本発明の第1の実施形態を示し、本発明を適用する計算機システムの一例を示すブロック図である。計算機101は、ユーザがアプリケーションソフトウェアの開発を行うアプリケーション構築処理プログラム201と、コンポーネントの仕様記述205と仕様記述に使用される語彙の関係(オントロジー)を保持する言語知識ベース204の構築を支援するための言語知識ベース構築支援プログラム301が稼動する。アプリケーション構築処理プログラム201は、後述するようにネットワーク10上のコンポーネントを組み合わせることで新たなアプリケーションソフトウェア(以下、単にアプリケーションという)を生成するものである。
計算機101は、CPU等からなる処理装置105と、メモリやストレージ装置等で構成される記憶装置104と、ネットワークインターフェースなどで構成される通信装置106と、マウスやキーボードで構成される入力装置102と、ディスプレイなどで構成される出力装置103がバス107を介して相互に接続される。
そして、通信装置106を介してネットワーク10に接続され、Webサービスを提供するWebサーバ121や、ネットワーク10上のコンポーネントを提供するコンポーネント提供サーバ111等と通信することができる。なお、ネットワーク10上には、コンポーネント提供サーバ111、および、Webサービスを提供するWebサーバ121が複数存在する。
コンポーネント提供サーバ111では、ネットワーク10上で利用可能なWebサービスのコンポーネントを示唆するコンポーネント提供プログラム207が稼動する。コンポーネント単位プログラム207は、コンポーネントデータベース208に記録されたコンポーネントのURI(Universal Resource Identifier)と、各コンポーネントの機能や入出力に関するドキュメントから得られる情報を計算機101等に提供する。コンポーネントに関する情報は、Webサーバ121(サイト)を巡回しデータを自動的に収集する図示しないクローラーが、コンポーネントデータベース208を参照し、収集、更新されるものとする。なお、クローラーはコンポーネント提供サーバ111で稼動しても良い。
そして、コンポーネントデータベース208の情報は、計算機101のコンポーネント知識ベース205に反映される。
すなわち、コンポーネント知識ベース205は、アプリケーション構築処理プログラム201がコンポーネントの検索を行う際に参照されるもので、ネットワーク10を介して接続されたコンポーネント提供サーバ111上のコンポーネント提供プログラム0207が提供するコンポーネントデータベース208に記録されたコンポーネントのURIと、コンポーネントの機能や入出力に関するドキュメントから得られる情報を保持する。なお、計算機101のコンポーネント知識ベース205は、アプリケーション構築処理プログラム201が所定のタイミングでコンポーネント提供サーバ111のコンポーネントデータベース208と同期を取るようにすればよい。
ここで、コンポーネントとは、特定の機能を実行するメソッドを一つまたは複数持つソフトウェア部品のうち言語によって仕様が外部に公開されたソフトウェア部品である。そして、Webサーバ121で実行されるWebサービスは、特定の機能を実行するメソッドが言語によって仕様が外部に公開されているという意味で、コンポーネントの一種である。
図2は、本実施形態のソフトウェアの構成を示すブロック図である。アプリケーション構築処理プログラム201は、入力された業務フロー202から語彙を抽出し、抽出した語彙に基づいて、言語知識ベース204に格納された後述する類義語彙や分割語彙を参照し、コンポーネント知識ベース205に格納された後述する語彙ラベルをもつコンポーネントを検索し、コンポーネントフロー203を出力する。
なお、言語知識ベース204が保持する言語知識とは、前記従来例でも述べたオントロジー(Ontology)やタクソノミー(Taxonomy)など、語彙の示す概念間の関係を記述したものである。言語知識ベース204の詳細については後述する。
アプリケーション構築処理プログラム201を構成する機能要素は、入力された業務フロー202から語彙を抽出し、入力語彙からコンポーネント知識ベース205を検索し、類義語彙から言語知識ベース204を検索し、コンポーネントを検索するコンポーネント検索部209と、コンポーネント検索部209が対象とする語彙を見つけられない場合に、ユーザ側で作成したコンポーネントをサブフローとして取り込むサブフロー入力部210を主体とする。
そして、コンポーネント検索部209で検索されたコンポーネントや、サブフロー入力部210から入力されたコンポーネントは、入力された業務フロー202に対する回答として、アプリケーション構築処理プログラム201がコンポーネントフローとして構成して出力する。
言語知識構築支援処理プログラム301は、後述するように、アプリケーション構築処理プログラム201で使用する言語知識ベース204の構築を支援するものである。
言語知識ベース構築支援プログラム301は、ユーザがアプリケーション構築処理プログラム201へサブフローを入力したとき、または、アプリケーション構築処理プログラム201がコンポーネント知識ベース205を更新したときに、後述するように言語知識ベース204の定義を後述するように更新する。
本実施形態において、アプリケーション構築処理プログラム201へ入力される業務フロー202は、入力装置102等やファイルなどによりUML(Universal Modeling Language)で記述されたアクティビティ図を用いて入力するものとする。すなわち、業務フロー202は、アプリケーションソフトウェアの動作仕様について、単文程度の簡潔な自然言語で記述可能な処理を表すノードであるアクティビティ(アクション状態)を、処理の前後関係を示す有向リンク(Arrow Link)で結んだフロー言語で記述したソースプログラムである。
図3に業務フロー202を構成するアクティビティ図の一例を示す。アクティビティ図401の主要な記述要素としては、処理内容を記述したアクション状態402、アクション状態402の間の遷移を表すアーク403、アクション状態の遷移先を判定する条件分岐404、および、アクション状態同士の同期をとるための同期バー405がある。業務フローの要素となるアクション状態402や条件分岐404及び同期バー405には処理内容が簡単な言葉により記述される。
次に、アプリケーション構築処理プログラム201の全体的な処理の流れを図4のフローチャートを参照しながら説明する。図4のフローチャートは、業務フロー202がアプリケーション構築処理プログラム201へ入力されたときに実行されるものである。
図4において、S1では、業務フロー202のアクション状態から語彙を抽出する。入力されたアクション状態402は、短い文や単語であり、文の場合は名詞や動詞などの内容語を抽出する。上記S1で抽出あるいは入力された語彙を、以下、入力語彙と呼ぶ。
次に、S2では S1で抽出した入力語彙についてコンポーネント知識ベース205を検索する。
入力語彙に基づく検索とは、後述するように、入力語彙が語彙ラベル706の集合に含まれるか否かを判定することである。また、入力語彙が語彙ラベル706に含まれる場合を入力語彙にコンポーネントがマッチするという。
ここで、本実施形態のコンポーネント知識ベース205のデータ構造を図7に示す。コンポーネント知識ベース205には、複数(0〜M個)のコンポーネント知識データ701が記録されている。各々のコンポーネント知識データ701は、コンポーネントの所在を示すURIであるコンポーネントURI702と、このコンポーネントの機能を特徴づける語彙ラベルの集合である語彙ラベル703と、このコンポーネントが他のどのコンポーネントやクラスを呼び出しているかを示すコンポーネントあるいはクラスのURIの集合である構成情報704と、このコンポーネントが他のどのコンポーネントやアプリケーションやサービスから呼び出されているかを示すコンポーネントやアプリケーションやサービスのURIの集合利用情報705とから構成される。
語彙ラベル706は、コンポーネントURI702で示されるコンポーネントの機能を特徴づける語彙ラベルの集合であり、コンポーネント検索に用いる語彙、つまり、入力語彙または類義語彙または分割語彙が、語彙ラベルの集合に含まれるとき、コンポーネントが検索語彙にマッチする。語彙ラベル703には、語彙ラベル数730とその値に対応するP個の語彙ラベル731−1〜731−Pが記録される。なお、Pは1以上の任意の整数となる。
構成情報704には構成情報数740と、この構成情報数の値に対応するQ個の構成情報741−1〜741−Qが記録され、コンポーネントURI702の参照先のURIをそれぞれ示す。なお、Qは1以上の任意の整数となる。
利用情報705には利用情報数750と、利用情報数750の値に対応するR個の利用情報751−1〜751−Rが記録され、コンポーネントURI702の参照元のURIをそれぞれ示す。なお、Rは1以上の任意の整数となる。
次に、図4のS3では、入力語彙が上記語彙ラベル703にマッチしたか否かを判定し、マッチしていればS4に進み、マッチしていなければS7に進む。
コンポーネント知識ベース205を入力語彙で検索し、語彙ラベルにマッチするコンポーネントが存在する場合のS4では、図5に示すようにアクション状態402にコンポーネント502を対応付ける。具体的は、入力語彙にマッチした語彙ラベル703のコンポーネントURI702を設定する。これにより、入力された業務フロー202のうち、一つのノード(アクション状態など)についてコンポーネントフローが定義される。なお、図5は、業務フロー202を構成するアクション状態402という入力に対して、コンポーネントフロー203を構成する一つのコンポーネント(ノード)502を定義した出力を示す。
次のS5では、入力された業務フロー202の全てのアクション状態について入力語彙の検索が完了したか否かを判定する。完了していればS12に進んで、業務フロー202に対応する全てのアクション状態に対応するコンポーネントフロー203を出力する。この出力は、出力装置103に表示を行ったり、ファイルを記憶装置104へ書き込むことで行えばよい。
全てのアクション状態についてコンポーネント検索が完了していない場合には、S6に進んで、処理の対象を業務フロー202の次のアクション状態に移し、S1の処理へ戻って上記S1〜S5の処理を繰り返す。
一方、上記S3の判定で入力語彙をコンポーネント知識ベース205で検索した結果、マッチするコンポーネントがなかった場合のS7では、言語知識ベース204に記録された後述する複数の類義語彙を参照し、入力語彙に対応する各々の類義語彙でコンポーネント知識ベース205を検索する。
ここで、言語知識ベース204は、類義語彙や分割語彙など語彙の間の関係を保持したものである。本実施形態で使用する言語知識ベース204のデータ構造の一例を図8に示す。
図8において言語知識ベース204には、複数(0〜M)の言語知識データ240が記録される。各々の言語知識データ240には、言語知識の種別を示す関係名241、言語知識の要素の数を示す要素数242、要素数242に記録されたN個の要素243−1〜243−Nで構成される。
関係名241は語彙の間の関係の種別を保持する。本実施形態では「類義」、「直列分割」、「並列分割」の3つの種別を使用する。要素数242は関係名の対象となる要素の数を表し、記録されている要素の総数が記録される。また、本実施形態では最初の要素243−1を代表元(げん)と呼ぶ。この代表元243−1に格納されている語彙に対する類義語や直列分割の語彙あるいは並列分割の語彙が要素243−2〜Nに格納される。
関係名241が「類義」の場合、要素243−1の代表元に格納された語彙と異なる文言で、同義の文言が要素243−2〜Nに設定されている。例えば、図8の言語知識データ1のように、代表元243−1が「手配」という単語の場合、類義語として「セッティング」、「手回し」という単語が要素243−2、3に設定される。
関係名241が「直列分割」の場合、要素243−1の代表元に格納された語彙が示す手順を、時系列的に分解した複数の文言が要素243−2〜Nに設定されている。例えば、図8の言語知識データ240のように、代表元243−1が「手配」という単語の場合、直列分割の語彙として、「照会」、「予約」という単語が要素243−2、3に設定される。つまり、「手配」という語彙が示す処理は、「照会」という処理の後に、「予約」という処理を行うものである、という定義を示す。したがって、「手配」という語彙で言語知識ベース204を検索すると、関係名241を「直列分割」を選択することで、ひとつのアクション状態(またはアクティビティ)を時系列的に複数のアクション状態に分割できる。
また、関係名241が「並列分割」の場合、要素243−1の代表元に格納された語彙が示す手順を、時系列的に並列な手順として分解した複数の文言が要素243−2〜Nに設定されている。これにより、関係名241を「並列分割」を選択することで、ひとつのアクション状態(またはアクティビティ)を時系列的に並行する複数のアクション状態に分割できる。
再び、図4のS8に戻り、入力語彙に対応する類義語彙にマッチするコンポーネントがコンポーネント知識ベース205にあったか否かを判定し、マッチしていればS4に進み、上述した図5のように、アクション状態402に対する出力としてコンポーネント502を対応付けて、業務フロー202の一つのノードにコンポーネントフロー203を設定する。すなわち、言語知識ベース204から入力語彙に対応する類義語を検索し、この類義語によってコンポーネント知識ベース205を検索することでコンポーネントを得る。
一方、S8でマッチしなかった場合には、入力語彙でも類義語彙でもマッチするコンポーネントがない場合であり、S9の分割語彙検索に進む。
S9の分割語彙処理では、上記図8に示したように、入力語彙に基づいて、言語知識ベース204から「直列分割」あるいは「並列分割」の分割語彙を参照し、各々の分割語彙でコンポーネント知識ベース205を検索する。すなわち、図6に示すように元のアクティビティ(アクション状態)402を、言語知識ベース204の検索結果に基づいて、直列分割802または並列分割803による複数のアクション状態に分割し、分割後のアクション状態についてコンポーネント検索を行う。なお、図6において、図中202’は、元のアクション状態402を直列または並列に分割した後の業務フロー(サブフロー)を示す。
そして、S10で、分割語彙にマッチする複数のコンポーネントがあれば、S4に進んで、マッチした複数のコンポーネントを語彙の分割後の業務フロー202に対応付け、サブフローを作成する。
このように、分割語彙を用いたアクション状態(アクティビティ)の分割には、上記図6のように、直列分割802と並列分割803の2種類がある。分割語彙に前後関係がある場合を直列分割0802、前後関係がなく同時に実行可能な場合を並列分割803とよぶ。直列分割の場合、UMLのアクション状態は図6に示した複数(直列)のアクション状態802のように分割される。また、並列分割の場合はUMLのアクション状態は図6のアクション状態803のように並列的に分割され、それぞれのアクション状態は図5に示すようにコンポーネントが対応付けられる。
一方、分割語彙による検索でマッチするコンポーネントがない場合はS11に進んで、ユーザがサブフローを作成する。この場合、ユーザーは直接コンポーネント提供サーバ111にアクセスして適切なコンポーネントを取得したり、ユーザーが自らプログラムを作成したり、取得あるいは作成したコンポーネントを組合わせてサブフローを構成する(サブフロー入力部210)。このとき、サブフローを構成するコンポーネントをコンポーネントデータベース208に登録する。このとき、コンポーネントに対応する語彙ラベル703を設定する。そして、作成したサブフローをS4で業務フロー202に対応するコンポーネントフロー203に対応付ける。
以上の処理で得られた、1つのアクション状態に対応するコンポーネント、直列分割のコンポーネントサブフロー、あるいは、並列分割のコンポーネントサブフローが業務フローを表すアクティビティ図に従って結合され、入力された業務フロー202全体に対応するコンポーネントフロー203が出力される。
次に、言語知識ベース204の構築を支援する言語知識ベース構築支援プログラム301について説明する。
言語知識ベース構築支援プログラム301は、図9に示すような機能ブロックを有する。すなわち、アプリケーション構築処理プログラム201におけるユーザによるコンポーネントサブフローの入力操作を検出するサブフロー入力検出部305と、コンポーネント知識ベース205の更新を検出するコンポーネント知識ベース更新検出部306を有する。
また、コンポーネント知識ベース205内のコンポーネント間の類似性を計算するコンポーネント類似度計算部307と、上述の「類義」、「直列分割」、「並列分割」といった語彙の間の関係の候補を生成する言語知識データ候補生成部308と、生成した候補をユーザに提示し、ユーザーが候補の適否を選択する候補提示・評価部309とを有する。
以下は、上記図4のS11のように、入力語彙、類義語彙、分割語彙のいずれでもマッチするコンポーネントがなく、ユーザーがコンポーネントサブフローを入力した場合、および、コンポーネントの類似性を利用した場合を用いて説明する。
ユーザーによるコンポーネントサブフロー入力を検出した場合の言語知識ベース構築支援プログラムの処理の一例を図10のフローチャートに示す。
図10の処理は入力語彙、類義語彙、分割語彙のいずれでもマッチするコンポーネントがなく(S21、S22)、上記図4のS11において、ユーザーがコンポーネントのサブフローを入力するイベントを検出することで起動する(S23)。
S23ではユーザによるサブフロー入力のイベントの検出を行う。以下ではユーザが、一つのアクション状態402を複数のコンポーネントに分割してサブフローを構成した場合を示し、サブフローが2つのコンポーネントから構成される場合を想定する。そして、ユーザが設定したサブフローの各々のコンポーネントをC1、C2とする。
S24では言語知識ベース構築支援処理プログラム301は、コンポーネントC1、C2に対応する語彙ラベルの集合703を、コンポーネント知識ベース205の語彙ラベル703から検索する。そして、検索したコンポーネントC1の語彙ラベルをW1とし、コンポーネントC2の語彙ラベルをW2とする。なお、コンポーネントC1、C2の語彙ラベル703は、ユーザによって既に設定されているものとする。また、入力されたサブフローが元のアクション状態402に対して直列分割と並列分割のいずれであるかを判定する。また、図示はしないが、直列分割または並列分割のいずれでもない場合には処理を終了するようにしても良い。
S25では、言語知識ベース構築支援プログラム301は、語彙ラベルの集合W1とW2の任意の要素w1、w2の組合せ(w1、w2)をユーザに提示する。この提示は、ディスプレイなど構成される出力装置103に表示することなどで行う。
S26では、ユーザは出力装置103に表示された語彙ラベルの要素(w1、w2)の分割語彙としての適否を判定し、その結果を入力装置102より計算機101に入力する。
S27では、上記S21で記録された入力語彙に対する分割語彙として適切であると判定された組合せ(w1、w2)が新たな分割語彙として言語知識ベース204に登録する。このとき、言語知識ベース204には、上記S24で判定した直列分割または並列分割の何れかを図8の関係名241に設定し、語彙ラベル集合の要素の組み合わせ(w1、w2)の数を要素数242に設定し、業務フローの要素であるアクション状態402に付した語彙ラベルを代表元243−1に設定し、語彙ラベル集合の要素の組み合わせ(w1、w2)を要素1〜N(243−2〜N)に設定する。
以上の処理により、ユーザが一つのアクション状態402を複数のコンポーネントに分割して入力したサブフローに対する「直列分割」または「並列分割」の語彙が言語知識データ240として言語知識ベース204に追加される。
そして、語彙ラベルの集合W1とW2の任意の要素w1、w2の組合せ(w1、w2)を生成して出力し、ユーザの選択した組み合わせを受け付けて語彙ラベルの要素を絞り込むことで、適切な言語知識ベース204を構築できる。
なお、上記処理においてS23では、ユーザが入力したサブフローが、元のアクション状態402に対して複数のコンポーネントを直列分割または並列分割のいずれに記述したかを判定し、どちらでもない場合には処理を終了するようにしてもよい。
また、上記S26でユーザによる組合せ(w1、w2)を行う例を示したが、S25で出力した語彙ラベルの集合W1とW2の任意の要素w1、w2の組合せ(w1、w2)を、そのまま言語知識ベース204に登録するようにしても良い。
次に、コンポーネントの類似性を利用した場合に言語知識ベース構築支援プログラム301で行われる処理の一例を図11のフローチャートに示す。
図11の処理はコンポーネント知識ベース205が更新されるイベント(サブフローの入力等)を検出することで起動する。S31では、コンポーネント知識ベース205の更新イベントの検出を行う。
コンポーネント知識ベース205が更新されると、S32では更新されたコンポーネントを検出し、更新されたコンポーネントと既に登録されている任意のコンポーネントの間の類似度Rを後述する方法で計算する。ここでは、更新されたコンポーネントをC1とし、任意のコンポーネントをC2とする。
S33では言語知識ベース構築支援プログラム301は、類似度Rが予め定められた閾値T以上であるか否かを判定する。上記S32で求めた類似度Rが閾値T以上であれば、2つのコンポーネントC1、C2は類似すると判定してS34に進み、類似度Rが閾値T未満であれば2つのコンポーネントC1、C2は非類似と判定して処理を終了する。
2つのコンポーネントが類似すると判定したS34では、コンポーネントC1、C2に対応する語彙ラベル703の集合W1、W2の任意の要素w1、w2の組合せ(w1、w2)を上記S25と同様にユーザに提示する。
S35では、ユーザが各々の組合せの類義語彙としての適否を判定し、その結果を計算機101に入力する。S36では類義語彙として適切であるとユーザによって判定された組合せ(w1、w2)が新たな類義語彙として言語知識ベース204に登録される。このとき、言語知識ベース204には、図8の関係名241として「類義語」を設定し、語彙ラベル集合の要素の組み合わせ(w1、w2)の数を要素数242に設定し、更新されたコンポーネントに付した語彙ラベルを代表元243−1に設定し、語彙ラベル集合の要素の組み合わせ(w1、w2)を要素1〜N(243−2〜N)に設定する。
なお、更新されたコンポーネントと既登録のコンポーネントの類似度Rの比較は、全ての既登録のコンポーネントについて行うことができる。
以上の処理により、コンポーネント知識ベース205が更新されると、言語知識ベース構築支援プログラム301によって自動的に類義語彙が抽出され、ユーザの適否の判断を行った後に、新たな類義語彙が言語知識ベース204へ追加されることになる。
そして、類似度が所定の閾値T以上の既登録のコンポーネントの語彙ラベルの集合W1とW2の任意の要素w1、w2の組合せ(w1、w2)を生成して出力し、ユーザの選択した組み合わせを受け付けて語彙ラベルの要素を絞り込むことで、適切な言語知識ベース204を構築できる。
ここで、上記S32で行われる類似度Rの算出手法について説明する。
2つの集合A、Bの類似度Rを、
R(A、B)=#(A∩B)/#(A∪B) ………(1)
で定義する。ここで#(X)は集合Xの要素の数を表す。2つの集合A,Bは同一の要素を多く含む場合に高い類似度をもつ。なお、集合Aと集合Bが同じ要素からなる場合は集合Aと集合Bの共通集合も合併集合もA自身となるためR(A、B)は1を、集合Aと集合Bが同じ要素を全く持たない場合は集合Aと集合Bの共通集合は空集合となるためR(A、B)は0をとる。
コンポーネントの類似度の定義には、類似度の考え方に応じて様々なバリエーションがある。以下では類似度の計算方法の例を3例示す。
上記図8に示す言語知識ベース204(オントロジー)を利用すると、例えば、関係名241が「直列分割」の場合、「手配」を行うコンポーネントは「照会」を行うコンポーネントと、「照会」の結果に応じて「予約」を行うコンポーネントから構成されることになる。このように、コンポーネントは他のコンポーネントを用いて構成される。この情報は図7のコンポーネント知識ベース205の構成情報704として、使用するコンポーネントの構成情報741−1〜Qにそれぞれ記録される。
コンポーネントの構成情報704は、そのコンポーネントを構成しているコンポーネントの集合(構成情報741−1〜Q)で表現される。ここで、2つのコンポーネントαとコンポーネントβの構成情報が類似している場合、コンポーネントαとコンポーネントβは同じような処理を行っている可能性が高いものとする。この場合、2つのコンポーネントα、βについての構成情報741−1〜741−Qを比較し、同一のコンポーネントの数を数えることによって、上記(1)式に示す集合の類似度に基づくコンポーネントの類似度を定義することができる。
つまり、コンポーネントα、βの構成情報を各々集合V、集合Wとすると、コンポーネントの類似度γは、
γ=#(V∩W)/#(V∪W) ………(2)
で与えられる。
しかし、コンポーネントの中には汎用性の高いコンポーネントがある。汎用性の高いコンポーネントとは、例えば「ユーザIDの入力」、「日付データ形式のチェック」など、多くのコンポーネントから呼び出されているコンポーネントのことである。求める類似度の精度向上のために、予め定められた数以上のコンポーネントから呼び出されるコンポーネントは類似度の計算から除外し、コンポーネントの類似度δは、
δ=#((V−C)∩(W−C))/#((V−C)∪(W−C)) ……(3)
を定義する。ここでCは汎用性の高いコンポーネントの集合である。
したがって、上記(2)式による類似度γは全てのコンポーネントを対象とした値となり、上記(3)式による類似度δは、汎用性の高いコンポーネントを除外して業務フロー202を特徴付けるコンポーネントの類似度を示すことができる。
上記図7に示した構成情報704とは逆に、利用情報705はそのコンポーネントが他のどのコンポーネントで利用されているかを示している。例えば、「手配」という処理を行うコンポーネントは、「照会」を行うコンポーネントを構成情報として含んでいるので、逆に、「照会」を行うコンポーネントは「手配」を行うコンポーネントで利用されていることとなる。
したがって、上記構成情報704から類似度γまたはδを求めることと同様に、2つのコンポーネントαとコンポーネントβの利用情報705が類似している場合、コンポーネントαとコンポーネントβは同じような処理を行っている可能性が高いものとする。この場合、コンポーネントα、βの利用情報を各々集合X、集合Yとすると、コンポーネントの類似度εは、
ε=#(X∩Y)/#(X∪Y) ………(4)
で与えられる。
また、利用情報705を用いた類似度εも、上記(3)式と同様にして、予め定められた数以上のコンポーネントから呼び出されるコンポーネントは類似度の計算から除外して、類似度の精度を向上させることができる。
以上のように、上記S32におけるコンポーネントC1、C2の類似度Rは、上記(2)〜(4)式の類似度γ、δ、εなどとして求めることができる。
以上、本発明によれば、アプリケーションソフトウェア構築の過程において、業務フローの入力内容とコンポーネント知識ベース(第1のデータベース)の更新内容に基づき、分割語彙(直列分割または並列分割)と類義語彙に関する言語知識ベースの獲得及び更新を行うことが出来る。
そして、コンポーネントを検索し、組合せて、アプリケーションを構築するシステムにおいて、前記従来例では検索に使用する言語知識の構築には、作成者に高いスキルと大きな作業量が要求されるが、本発明を適用することにより、言語知識の構築を容易に行うことができ、言語知識ベースの構築に要する労力を低減できる。
図12は第2の実施形態を示し、前記第1の実施形態に示した言語知識ベース204及び言語知識ベース構築支援プログラム301をネットワーク10に接続されたサーバ1110で稼動するようにし、アプリケーション構築処理プログラム201が稼動する計算機101には、サブフローの入力を検知してサーバ1110の言語知識ベース構築支援プログラム301へ通知するエージェント3010を備え、また、アプリケーション構築処理プログラム201は、前記第1実施形態のコンポーネント知識ベース205に代わって、コンポーネント提供サーバ111のコンポーネントデータベース208にアクセスするようにしたもので、その他の構成は前記第1実施形態と同様である。
サーバ1110では、言語知識ベース構築支援プログラム301が稼動しており、計算機101のエージェント3010からサブフローの入力があった通知を受けると、上記図10に示したS24〜S27の処理を行って、分割語彙を言語知識ベース204に登録する。すなわち、計算機101のエージェント3010は、上記図10のS21〜S23を実行し、サーバ1110の言語知識ベース構築支援プログラム301が上記図10のS24〜S27を実行する。
また、コンポーネント提供サーバ111のコンポーネント提供プログラム207は、コンポーネントデータベース208に更新が発生すると、サーバ1110の言語知識ベース構築支援プログラム301に更新の発生を通知する。言語知識ベース構築支援プログラム301は、上記図11のS32〜S36を実行し、類義語彙を言語知識ベース204に登録する。
すなわち、コンポーネント提供サーバ111のコンポーネント提供プログラム207は、上記図11のS31を実行し、サーバ1110の言語知識ベース構築支援プログラム301が上記図11のS32〜S36を実行する。
言語知識ベース204を運用するサーバ1110を設けることで、複数の計算機101で同時にアプリケーションの開発を行う際には、複数のユーザによる言語知識ベース204の更新を全てのユーザで共有することができる。このため、ネットワーク10上でコンポーネントを検索する際に、類義語彙や分割語彙による検索の精度を高めることができる。
すなわち、アプリケーション構築処理プログラム201が稼動する計算機101が複数ある場合、あるユーザが入力したサブフローに関する分割語彙は、全ユーザで共有可能なサーバ1110の言語知識ベース204に集約されるため、各ユーザが作成したサブフローに対応する分割語彙を即座に利用することができる。複数のユーザでアプリケーションの開発を行う際の効率を向上させることが可能となる。また、各計算機101では、サブフローの入力をフックするだけの言語知識ベース構築支援エージェント3010が稼動すればよいので、計算機101の負荷を低減できる。
なお、図12では、コンポーネント提供サーバ111とサーバ1110を分離した例を示したが、コンポーネントデータベース208と言語知識ベース204を一つのサーバに集約しても良い。
また、前記第1実施形態において、アプリケーション構築処理プログラム201と言語知識ベース構築支援プログラム301を分離した構成を示したが、アプリケーション構築処理プログラム201の中に言語知識ベース構築支援プログラム301を組み込むことも可能である。
以上のように、本発明は、ネットワーク上のコンポーネントを組み合わせることで新たなアプリケーションソフトウェアを生成する際に利用する言語知識ベースの構築を行うソフトウェアに適用することができる。
本発明の第1実施形態を示す計算機システムのブロック図。 ソフトウェアの構成を示すブロック図。 業務フローを入力するためのアクティビティ図。 アプリケーション構築処理プログラムの処理の一例を示すフローチャート。 入力される業務フローと、出力されるコンポーネントフローの説明図。 業務フローのアクション状態を、直列分割と並列分割により分割した場合の説明図。 コンポーネント知識ベースのデータ構造の一例を示す説明図。 言語知識ベースのデータ構造の一例を示す説明図。 言語知識ベース構築支援プログラムの機能ブロック図。 サブフロー入力があったときに言語知識ベース構築支援プログラムで行われる処理の一例を示すフローチャート。 コンポーネント知識ベースが更新されたときに言語知識ベース構築支援プログラムで行われる処理の一例をフローチャート。 第2の実施形態を示し、ソフトウェアの構成を示すブロック図。
符号の説明
101 計算機
111 コンポーネント提供サーバ
121 Webサーバ
201 アプリケーション構築処理プログラム
202 業務フロー
203 コンポーネントフロー
204 言語知識ベース
205 コンポーネント知識ベース
207 コンポーネント提供プログラム
208 コンポーネントデータベース
301 言語知識ベース構築支援プログラム

Claims (12)

  1. 入力された業務フローの要素の記述から言語知識に基づいて、コンポーネントと当該コンポーネントの機能を記述した語彙ラベルの集合との関係を対応付ける第1のデータベースを検索し、前記業務フローに対応するようにコンポーネントを組み合わせてアプリケーションを構築する際に、前記検索を行う言語知識の構築を支援するプログラムであって、
    前記業務フローの要素に対応して複数のコンポーネントを記述したサブフローが入力されたことを検出する手順と、
    前記業務フローの要素に対応する複数のコンポーネント間の関係が直列または並列のいずれであるかを判定する手順と、
    前記サブフローを構成するコンポーネントの語彙ラベルの集合を取得する手順と、
    前記語彙ラベルの集合に基づいて、前記第1のデータベースの語彙ラベルの集合を検索する手順と、
    前記検索した第1のデータベースの語彙ラベルの集合を、前記業務フローの要素の記述に対応する語彙ラベルの集合として前記言語知識に登録する手順と、
    を計算機に機能させることを特徴とする言語知識構築支援プログラム。
  2. 前記言語知識に登録する手順は、
    前記検索した第1のデータベースの語彙ラベルの集合から各集合の要素の組み合わせを生成する手順と、
    前記各集合の要素の組み合わせを計算機の出力部に出力する手順と、
    前記出力した組み合わせのうち選択されたものを受け付ける手順と、
    前記選択された組み合わせを前記言語知識に登録する手順と、
    を含むことを特徴する請求項1に記載の言語知識構築支援プログラム。
  3. 前記言語知識は、言語知識の種別を示す関係名と、当該言語知識を代表する語彙を示す代表元と、前記語彙ラベルの集合を格納する複数の要素とを含んで構成され、
    前記言語知識に登録する手順は、
    前記業務フローの要素に対する記述を前記代表元に設定する手順と、
    前記複数のコンポーネント間の関係が直列または並列のいずれであるかを前記関係名に設定する手順と、
    前記検索した第1のデータベースの語彙ラベルの集合の要素を前記言語知識の複数の要素として登録する手順と、
    を含むことを特徴とする請求項1または請求項2に記載の言語知識構築支援プログラム。
  4. 入力された業務フローの要素の記述から言語知識に基づいて、コンポーネントと当該コンポーネントの機能を記述した語彙ラベルの集合との関係を対応付ける第1のデータベースを検索し、前記業務フローに対応するようにコンポーネントを組み合わせてアプリケーションを構築する際に、前記検索を行う言語知識の構築を支援するプログラムであって、
    前記第1のデータベースが更新されたことを検出する手順と、
    前記更新されたコンポーネントを検出する手順と、
    前記更新されたコンポーネントと前記第1のデータベースの既登録のコンポーネントの類似度を算出する手順と、
    前記類似度が所定の閾値以上であるか否かを判定する手順と、
    前記類似度が所定の閾値以上となった既登録のコンポーネントの語彙ラベルの集合を、更新されたコンポーネントの語彙ラベルの集合として前記言語知識に登録する手順と、
    を計算機に機能させることを特徴とする言語知識構築支援プログラム。
  5. 前記言語知識に登録する手順は、
    前記類似度が所定の閾値以上となった既登録のコンポーネントの語彙ラベルの集合から各集合の要素の組み合わせを生成する手順と、
    前記各集合の要素の組み合わせを計算機の出力部に出力する手順と、
    前記出力した組み合わせのうち選択されたものを受け付ける手順と、
    前記選択された組み合わせを前記言語知識に登録する手順と、
    を含むことを特徴する請求項4に記載の言語知識構築支援プログラム。
  6. 前記言語知識は、言語知識の種別を示す関係名と、当該言語知識を代表する語彙を示す代表元と、前記語彙ラベルの集合を格納する複数の要素とを含んで構成され、
    前記言語知識に登録する手順は、
    前記更新されたコンポーネントに対する語彙ラベルを前記代表元に設定する手順と、
    前記関係名に類義語であることを設定する手順と、
    前記類似度が所定の閾値以上となった第1のデータベースの語彙ラベルの集合の要素を前記言語知識の複数の要素として登録する手順と、
    を含むことを特徴とする請求項5または請求項6に記載の言語知識構築支援プログラム。
  7. 計算機に入力された業務フローの要素の記述から言語知識に基づいて、コンポーネントと当該コンポーネントの機能を記述した語彙ラベルの集合との関係を対応付ける第1のデータベースを検索し、前記業務フローに対応するようにコンポーネントを組み合わせてアプリケーションを構築する際に、前記検索を行う言語知識の構築を支援する方法であって、
    前記業務フローの要素に対応して複数のコンポーネントを記述したサブフローが入力されたことを検出する処理と、
    前記業務フローの要素に対応する複数のコンポーネント間の関係が直列または並列のいずれであるかを判定する処理と、
    前記サブフローを構成するコンポーネントの語彙ラベルの集合を取得する処理と、
    前記語彙ラベルの集合に基づいて、前記第1のデータベースの語彙ラベルの集合を検索する処理と、
    前記検索した第1のデータベースの語彙ラベルの集合を、前記業務フローの要素の記述に対応する語彙ラベルの集合として前記言語知識に登録する処理と、
    を含むことを特徴とする言語知識の構築支援方法。
  8. 前記言語知識に登録する処理は、
    前記検索した第1のデータベースの語彙ラベルの集合から各集合の要素の組み合わせを生成する処理と、
    前記各集合の要素の組み合わせを計算機の出力部に出力する処理と、
    前記出力した組み合わせのうち選択されたものを受け付ける処理と、
    前記選択された組み合わせを前記言語知識に登録する処理と、
    を含むことを特徴する請求項7に記載の言語知識の構築支援方法。
  9. 前記言語知識は、言語知識の種別を示す関係名と、当該言語知識を代表する語彙を示す代表元と、前記語彙ラベルの集合を格納する複数の要素とを含んで構成され、
    前記言語知識に登録する処理は、
    前記業務フローの要素に対する記述を前記代表元に設定する処理と、
    前記複数のコンポーネント間の関係が直列または並列のいずれであるかを前記関係名に設定する処理と、
    前記検索した第1のデータベースの語彙ラベルの集合の要素を前記言語知識の複数の要素として登録する処理と、
    を含むことを特徴とする請求項7または請求項8に記載の言語知識の構築支援方法。
  10. 計算機に入力された業務フローの要素の記述から言語知識に基づいて、コンポーネントと当該コンポーネントの機能を記述した語彙ラベルの集合との関係を対応付ける第1のデータベースを検索し、前記業務フローに対応するようにコンポーネントを組み合わせてアプリケーションを構築する際に、前記検索を行う言語知識の構築を支援する方法であって、
    前記第1のデータベースが更新されたことを検出する処理と、
    前記更新されたコンポーネントを検出する処理と、
    前記更新されたコンポーネントと前記第1のデータベースの既登録のコンポーネントの類似度を算出する処理と、
    前記類似度が所定の閾値以上であるか否かを判定する処理と、
    前記類似度が所定の閾値以上となった既登録のコンポーネントの語彙ラベルの集合を、更新されたコンポーネントの語彙ラベルの集合として前記言語知識に登録する処理と、
    を計算機に機能させることを特徴とする言語知識の構築支援方法。
  11. 前記言語知識に登録する処理は、
    前記類似度が所定の閾値以上となった既登録のコンポーネントの語彙ラベルの集合から各集合の要素の組み合わせを生成する処理と、
    前記各集合の要素の組み合わせを計算機の出力部に出力する処理と、
    前記出力した組み合わせのうち選択されたものを受け付ける処理と、
    前記選択された組み合わせを前記言語知識に登録する処理と、
    を含むことを特徴する請求項10に記載の言語知識の構築支援方法。
  12. 前記言語知識は、言語知識の種別を示す関係名と、当該言語知識を代表する語彙を示す代表元と、前記語彙ラベルの集合を格納する複数の要素とを含んで構成され、
    前記言語知識に登録する処理は、
    前記更新されたコンポーネントに対する語彙ラベルを前記代表元に設定する処理と、
    前記関係名に類義語であることを設定する処理と、
    前記類似度が所定の閾値以上となった第1のデータベースの語彙ラベルの集合の要素を前記言語知識の複数の要素として登録する処理と、
    を含むことを特徴とする請求項10または請求項11に記載の言語知識の構築支援方法。
JP2005203308A 2005-07-12 2005-07-12 言語知識構築支援プログラム及び方法 Pending JP2007025798A (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2005203308A JP2007025798A (ja) 2005-07-12 2005-07-12 言語知識構築支援プログラム及び方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2005203308A JP2007025798A (ja) 2005-07-12 2005-07-12 言語知識構築支援プログラム及び方法

Publications (1)

Publication Number Publication Date
JP2007025798A true JP2007025798A (ja) 2007-02-01

Family

ID=44227190

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2005203308A Pending JP2007025798A (ja) 2005-07-12 2005-07-12 言語知識構築支援プログラム及び方法

Country Status (1)

Country Link
JP (1) JP2007025798A (ja)

Cited By (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2009151742A (ja) * 2007-11-29 2009-07-09 Hitachi Ltd ユースケースシナリオ作成支援システム、ユースケースシナリオ作成支援方法、およびユースケースシナリオ作成支援プログラム
JP2011118467A (ja) * 2009-11-30 2011-06-16 Canon It Solutions Inc 情報処理装置情報処理方法、及び、コンピュータプログラム
JP2012168598A (ja) * 2011-02-10 2012-09-06 Mitsubishi Electric Corp ソフトウェア部品管理装置およびソフトウェア部品管理プログラム
JP2014219988A (ja) * 2013-05-10 2014-11-20 富士通株式会社 フィードバック付き機能モジュール組み合わせ方法及び装置並びにデータ処理方法及び設備

Cited By (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2009151742A (ja) * 2007-11-29 2009-07-09 Hitachi Ltd ユースケースシナリオ作成支援システム、ユースケースシナリオ作成支援方法、およびユースケースシナリオ作成支援プログラム
JP2011118467A (ja) * 2009-11-30 2011-06-16 Canon It Solutions Inc 情報処理装置情報処理方法、及び、コンピュータプログラム
JP2012168598A (ja) * 2011-02-10 2012-09-06 Mitsubishi Electric Corp ソフトウェア部品管理装置およびソフトウェア部品管理プログラム
JP2014219988A (ja) * 2013-05-10 2014-11-20 富士通株式会社 フィードバック付き機能モジュール組み合わせ方法及び装置並びにデータ処理方法及び設備

Similar Documents

Publication Publication Date Title
US10073827B2 (en) Method and system to generate a process flow diagram
US8949227B2 (en) System and method for matching entities and synonym group organizer used therein
US20110029952A1 (en) Method and system for constructing a document redundancy graph
US20140351228A1 (en) Dialog system, redundant message removal method and redundant message removal program
CN110309405B (zh) 一种项目推荐方法、装置及存储介质
JP5472110B2 (ja) 関係性発見装置、関係性発見方法および関係性発見プログラム
US20160188298A1 (en) Predicting Elements for Workflow Development
Nesi et al. Geographical localization of web domains and organization addresses recognition by employing natural language processing, Pattern Matching and clustering
Waltman et al. PageRank-related methods for analyzing citation networks
US8458187B2 (en) Methods and systems for visualizing topic location in a document redundancy graph
JP2010044637A (ja) データ処理装置、方法、及びプログラム
KR20180066726A (ko) 주가 예측 장치 및 방법
US20100211894A1 (en) Identifying Object Using Generative Model
Xu et al. REPERSP: recommending personalized software projects on GitHub
Kungas et al. Cost-effective semantic annotation of XML schemas and web service interfaces
JP2007310663A (ja) 情報検索支援システム、情報検索支援方法および情報検索支援プログラム
JP2007025798A (ja) 言語知識構築支援プログラム及び方法
JP5138621B2 (ja) 情報処理装置及び不満解決商品発見方法及びプログラム
US20200050657A1 (en) Ontology creation assistance device
US20190265954A1 (en) Apparatus and method for assisting discovery of design pattern in model development environment using flow diagram
Eyal-Salman et al. Feature-to-code traceability in legacy software variants
KR20130131657A (ko) 브랜드 네이밍 방법 및 네이밍 시스템, 그 기록매체
CN111625642A (zh) 信息处理装置、存储介质及信息处理方法
Adamu et al. A framework for enhancing the retrieval of UML diagrams
JP5434146B2 (ja) 未来表現収集システム、未来表現収集方法および未来表現収集用プログラム