JP5225350B2 - 情報検索装置 - Google Patents
情報検索装置 Download PDFInfo
- Publication number
- JP5225350B2 JP5225350B2 JP2010217691A JP2010217691A JP5225350B2 JP 5225350 B2 JP5225350 B2 JP 5225350B2 JP 2010217691 A JP2010217691 A JP 2010217691A JP 2010217691 A JP2010217691 A JP 2010217691A JP 5225350 B2 JP5225350 B2 JP 5225350B2
- Authority
- JP
- Japan
- Prior art keywords
- search
- concept
- network
- keyword
- index
- 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.)
- Expired - Fee Related
Links
Images
Landscapes
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Description
本発明の実施形態は、例えばキーワード指定による検索条件を満たす情報を出力する情報検索装置に関する。
情報検索の分野においては、必要な情報を過不足なく取得するという課題があり、何らかの形でキーワード(単語)を用いる情報検索においては、キーワード間の関係を検索精度の向上に利用する技術が多く用いられている。
キーワード間の関係を処理する検索技術としては、(1)AND、OR、NOTなどの論理演算子を用いてキーワードの出現条件を詳細に指定することを可能にしたり、(2)例えば文書検索であればキーワードが出現する段落を指定するなど、検索対象におけるキーワードの位置付けを指定することで、検索実行者が求める情報の条件をより正確に表現できるようにする手法が知られている。しかし、これらの手法はキーワードの有無判定を厳密に行う点での向上でしかなく、検索対象の情報におけるキーワード間の関係までは扱っていなかった。例えば、「計算機を対象とした発明」を想定した場合であっても、「発明を用いた計算機」を想定した場合であっても、従来方式のキーワード指定型検索装置では「計算機 AND 発明」あるいは「発明 AND 計算機」などとしか検索条件を表現できず、その違いを検索処理に反映できないという問題があった。
上記問題の解決に向け、自然言語文を検索条件として受け付け、そこに含まれるキーワード間の係り受け関係によって条件判定を行う検索装置が提案されている。しかし、係り受け関係によって条件判定を行う検索装置は、キーワードのみを列挙することで表現された検索条件には対応していない。例えば、自然言語文(節)を対象として係り受け解析を行うものであり、当該データには品詞による係り受け構造が内包されていなければならないという問題があった。
さらに、係り受け解析は自然言語文(節)中の文法上の関係を利用するものであり、それは必ずしも意味上の関係と一致しない。例えば、「赤い車」と「赤い色の車」と「色の赤い車」が意味するところは同じであるが、これらの係り受け構造は全て異なり、しかも、「赤い車」のみ“色”に関するキーワードが含まれていない。そのため、例えば「赤い車」を条件として係り受け解析を応用した検索判定を行う場合、「色の赤い車」は “赤い”が“車”に係る構造になっているため条件を満たすが、「赤い色の車」は“赤い”が“色の”に係る構造であるため、構造が一致せず、条件を満たさないと判定されてしまう。このように、同じだと判定できるキーワードによって同じ係り受け構成で指定されていなければ、同じ意味構造だと判定できないことは、検索再現率が低下する原因となるという問題があった。
一方、文法上の関係ではなく、キーワード間の意味関係を用いて情報検索を行う装置がある。しかし、当該装置では検索条件として指定する意味関係を検索実行者が自ら構築しなければならず、係り受け解析による検索装置と同様、キーワード指定によって検索条件を受け付ける他の情報検索システムとは互換性がないという問題があった。
一方、検索実行者が指定したキーワードのみを検索条件として受け付け、当該キーワード間の関係を統計的に処理することで、検索精度を向上させる技術として、概念検索を用いた技術がある。この概念検索は、与えられた学習データ内でのキーワード共起頻度などからキーワード間の距離を算出しておき、これを利用して検索対象と検索条件との距離を求め、検索条件に近い検索対象を、条件を満たすものとして出力するものである。しかし、概念検索に代表されるような、統計上の評価結果を用いた検索手法では、“似ている”度合いや“関連がある”度合いを抽象化した定量比較によって条件判定を行うため、当該手法による情報検索装置は、あるデータが検索条件を満たすか否かの判定を、検索対象となるデータ全体における相対的な関係から行うことしか出来ない。そのことは、ある対象が検索条件を満たすか否かの結果が、登録されている他のデータによって変わってしまうという事態に繋がりかねない。また、条件を満たすか否かを判断する固定的な閾値を別途用意しなければ、「○○件が条件に該当し、○○件は該当しない」など、登録データには左右されない決定的な評価を行う事もできない。しかし、そのような閾値は人間が直感的に指定できるものではないため、検索実行者に受け入れられる結果となるまでには、試行錯誤しながら閾値の調整を繰り返すという極めてコストの高い作業を行わなければならない。
特許情報における主題情報の検索 : 概念検索とその限界、The journal of Information Science and Technology Association 54(7) pp.355-362 (高橋昭公 (有)テル・リサーチ)、2004
本発明は、再現率および適合率の高い検索を低コストで可能にする情報検索装置を提供する。
本発明の実施形態としての情報検索装置は、オントロジーデータベースと、検索対象データベースと、インデックスキーワードデータベースと、検索条件受付部と、意味ネットワーク生成部と、検索条件ネットワーク生成部と、インデックスネットワーク生成部と、検索条件判定部と、検索結果出力部とを備える。
前記オントロジーデータベースは、複数の概念を表し階層状に接続された複数のノードと、それぞれ2つのノード間を接続し前記2つのノードに対応する概念間の関係を表す複数の方向付きのリンクとをもつ第1オントロジーと、複数の前記関係を表し階層状に接続された複数のノードを有する第2オントロジーとを表現する。
検索対象データベースは、複数の検索対象データを記憶する。
前記インデックスキーワードデータベースは、前記検索対象データ毎にインデックスキーワードのリストを記憶する。
前記検索条件受付部は、利用者が検索条件として指定した検索キーワードのリストを受け付ける。
前記意味ネットワーク生成部は、複数のキーワードを受け取り、受け取ったキーワードに対応する概念または関係を表すノードまたはリンクを前記第1オントロジーにおいて特定し、特定したノードまたはリンク間をつなぐ経路を前記第1オントロジー内のノードとリンクを辿って探索し、前記特定したノードまたはリンクを、探索により見つけた経路で接続した意味ネットワークを生成する。
前記検索条件ネットワーク生成部は、前記検索条件受付部で受け付けた検索キーワードを前記キーワードとして前記意味ネットワーク生成部に与え、前記意味ネットワーク生成部で生成される意味ネットワークを検索条件ネットワークとして取得する。
前記インデックスネットワーク生成部は、前記検索対象データ毎に前記リストに含まれるインデックスキーワードを前記キーワードとして前記意味ネットワーク生成部に与え、前記意味ネットワーク生成部で生成される意味ネットワークをインデックスネットワークとして取得する。
前記検索条件判定部は、前記検索条件ネットワークと同一の構造、もしくは前記検索条件ネットワークに含まれる任意のノードまたはリンクを下位概念または下位関係を表すノードまたはリンクに置換したものと同一の構造、を含むインデックスネットワークを、前記インデックスネットワーク生成部により生成されたインデックスネットワークの中から検出する。
前記検索結果出力部は、前記検索条件判定部で検出したインデックスネットワークに対応する検索対象データを前記検索対象データベースから取得し、取得した検索対象データを出力する。
本発明の実施形態は、キーワード指定による検索条件を満たす情報を出力する情報検索装置において、検索条件として指定されたキーワード間の意味的な関係をオントロジーに基づいて解析し、これを検索判定で用いることで検索精度を高め、データの共用性、再利用性を向上させるための技術に関するものである。
より詳しくは、本発明の実施形態は、以下の機能を有する情報検索装置に関する。
1)検索条件として列挙されたキーワード、および、その語順を受け付け、オントロジーを参照して、当該キーワードに対応する概念または関係が含まれる意味ネットワーク(検索条件ネットワーク)を生成する機能
2)検索対象にインデックスとして付与されたキーワード、および、その語順を受け付け、オントロジーを参照して、当該キーワードに対応する概念または関係が含まれる意味ネットワーク(インデックスネットワーク)を生成する機能
3)上記1)で生成した検索条件ネットワークを上記2)で生成したインデックスネットワークが包含するか否かによって、検索条件を満たすか否かを判定する機能
4)上記1)で受け付けたキーワード、および、その語順に対して条件判定を行う検索対象を選択し、上記3)によって検索条件を満たすと判定された検索対象を、条件を満たす対象として出力する機能
2)検索対象にインデックスとして付与されたキーワード、および、その語順を受け付け、オントロジーを参照して、当該キーワードに対応する概念または関係が含まれる意味ネットワーク(インデックスネットワーク)を生成する機能
3)上記1)で生成した検索条件ネットワークを上記2)で生成したインデックスネットワークが包含するか否かによって、検索条件を満たすか否かを判定する機能
4)上記1)で受け付けたキーワード、および、その語順に対して条件判定を行う検索対象を選択し、上記3)によって検索条件を満たすと判定された検索対象を、条件を満たす対象として出力する機能
本発明の実施形態の概要を述べると以下の通りである。
(1)キーワード指定による情報検索において必要な情報を過不足なく取得するという課題において、検索条件として指定されたキーワードから、その間にある意味的な関係の種類、および、関係の方向、また、関連する他のキーワードを同定し、これらから生成される意味ネットワークを検索条件として判定を行うことにより、キーワード個別の有無判定による従来方式よりも再現率や適合率の高い検索を可能にする。
(2)オントロジーを参照し、検索条件として指定されたキーワードの種類および語順に応じて、関連付けるキーワード間の関係の種類および方向の解析手順を変えることにより、品詞を伴ったテキストデータを入力しなければキーワード間の関係を解析できないという従来方式の欠点を補い、列挙されたキーワードのみを検索条件として受け付け、その間にある関係を解析出来るようにする。
(3)オントロジーを参照し、必要に応じては暗黙的に含まれている意味を表わすキーワードを補いながら、キーワード間の関係を解析することにより、暗黙的な意味内容を同定できる程度にキーワードを指定すれば、異なるキーワードの組から同じ意味構造を導出して処理する。
(4)列挙されたキーワードを検索条件として受け付け、その間にある意味関係を推定することを可能とすることにより、検索実行者が直接キーワード間の関係を指定しなければならない従来方式の欠点を補い、入力の手間を軽減し、かつ、キーワード指定によって検索条件を受け付ける他の情報検索システムとの互換性を保つ。
(5)キーワード間の関係の種類を扱い、ある対象が検索条件を満たすか否かを、特定キーワード間に特定種類の関係があるか否かで判定することにより、検索対象範囲の影響を受ける相対的な評価しか行えない従来手法の欠点や、判定基準の調整作業が必要となる従来手法の欠点を補い、利用するオントロジーさえ変わらなければ、検索条件と個々の判定対象のみを用いて検索条件判定を行うことが可能であり、しかも、判定基準の調整作業が必要ない検索を実現する。
以下、図面を参照しながら、本発明の実施形態を説明する。
図1〜図4は、本発明の実施形態を示すブロック図である。このうち、図1は本実施形態における情報検索装置全体の内部構成を表しており、図2は図1におけるインデックスネットワーク処理部7の内部構成を表しており、図3は図1における検索処理部9の内部構成を表しており、図4は図1における意味ネットワーク生成部3の内部構成を表したものである。
本実施形態においては、図5に示すオントロジー100があらかじめオントロジーDB1に記録されているものとする。オントロジーとは、システムが対象とする世界に登場する概念や関係を表わしたものである。オントロジーは、データ構造の面からは、概念をノードとし、関係をリンクとするグラフネットワークとして表現することが出来る。オントロジーの記録方法、および、オントロジーの処理方法については、例えばW3C(World Wide Web Consortium)が策定したオントロジー記述言語OWL(Web Ontology Language)を用いてオントロジーを表現しておき、 Jena(URL:http://jena.sourceforge.net/)やThe OWL API(URL:http://owlapi.sourceforge.net/)などの公知技術を用いて内容を管理・処理してもよい。オントロジーDB1は、表形式のメモリ構造を用いてオントロジー100のネットワークを記録してもよいし、構造化ドキュメントを保持できるDB(XML DBなど)であれば、OWL記述をそのままDB内で記録してもよい。
図5のオントロジー100の詳細を説明する。オントロジー100は、エレベータに係わる概念体系を表したオントロジー(第1オントロジー)と、関係に関する概念体系を表したオントロジー(第2オントロジー)とを含んでいる。図中の四角は1つの概念に対応しており、四角の中の文字列は概念のラベルを表わしている。
第1オントロジーでは、エレベータに関する複数の概念が階層状に結合されており、親子関係にある概念間には、一般−特殊関係(is-a関係)を表すリンクが設定されている。たとえば「ギヤレスエレベータはエレベータを特殊化したものである」、および「大理石は材種を一般化したものである」などと表現される。また第1オントロジーでは非親子間の概念間にも方向付き矢印のリンクが設定されているものがある。このリンクが表す関係は、付与された<>付きのタグで表現されている。たとえば「板」は、「材種」と、「素材」という関係で結ばれている。ここで一般−特殊関係には推移律が成り立つ。「ギヤレスエレベータはエレベータを特殊化したものである」および「エレベータはモノを特殊化したものである」ことから、「ギヤレスエレベータはモノを特殊化したものである」という関係が成り立つものとみなす(継承)。
第2オントロジーでも、関係に関する複数の概念が階層状に結合されており、親子関係にある概念間には、一般−特殊関係(is-a関係)を表すリンクが設定されている。第2オントロジーに含まれる概念は、最上位概念が「関係」であり、その下位にある概念はすべて、第1オントロジーの非親子の関係にある概念間に設定された関係である。第1オントロジーと同様、推移律が成り立つ。
本実施形態ではオントロジー100は、図6の概念テーブル110および図7の関係テーブル120の形式で記録されている。
検索対象DB4には、検索対象となるデータが、検索対象データテーブル200の表形式(図10)であらかじめ記録されている。各検索対象データに対してインデックスキーワードが付与されている。それらは図11に示すインデックスキーワードテーブル210の表形式でインデックスキーワードDB5に記録されているものとする。
以下、処理S0000から始まる図38のフローに沿って、本実施形態の情報検索の処理フローについて説明する。
(処理S0001)
インデックスネットワーク処理部7が、処理S0300(後述する図41)を実行し、検索対象の各データに対応するインデックスネットワークを生成する。
インデックスネットワーク処理部7が、処理S0300(後述する図41)を実行し、検索対象の各データに対応するインデックスネットワークを生成する。
本実施形態においては、図10の検索対象ID2100、2200、2300の検索対象データに対して、それぞれ、図12、図13、図14に示す内容のインデックスネットワーク310、320、330が生成され、インデックスネットワークDB72(図2)に記録される。なお、本実施形態において、インデックスネットワークは図15と図16に示す構成の表形式でインデックスネットワークDB72に記録されるものとし、例えば、インデックスネットワーク310は、概念インスタンステーブル311と概念インスタンステーブル312に示すレコードで記録されるものとする。
ここで、概念インスタンスおよび関係インスタンスとは、本実施形態における意味ネットワーク(検索条件ネットワークまたはインデックスネットワーク)を構成するノードおよびリンクである。概念インスタンスと関係インスタンスは、それぞれ、オントロジーで記述された概念または関係の1つを参照する。例えば、図15の概念インスタンステーブル311 における概念インスタンス「3101」のレコードは、当該概念インスタンスが検索対象ID「2100」(図10)の検索対象データに対して生成されたインデックスネットワークのノードであり、かつ、オントロジーで定義された概念「ギヤレスエレベータ」(概念ID117)(図6)を参照するものであることを記録したものである。また、図16の例えば関係インスタンステーブル312における関係インスタンス「3121」のレコードは、当該関係インスタンスが検索対象ID「2100」(図10)の検索対象データに対して生成されたインデックスネットワークに含まれ、かつ、概念インスタンス「3101」(ギヤレスエレベータを参照)から概念インスタンス「3102」(扉を参照)への有向リンクであり、かつ、オントロジーで定義された関係「部品(0202)」(図7)を参照していることを記録したものである。インデックスネットワーク320と330(図13、図14)も同様の形式で記録するものとし、詳細は割愛する。(意味ネットワーク(インデックスネットワーク)の生成方法は後で詳述する)
(処理S0002)
次に、検索条件受付部8が、検索条件となるキーワード(検索キーワード)および語順を受け付け、キーワードリストとして記録する。検索条件受付部8は、例えば図17に示す検索キーワード入力画面を検索実行者に提供し、検索ボタンが押下されたタイミングで、検索条件入力部の入力内容を取得し、これをキーワード単位に分解したリストを記録する。本実施形態においては、図18(a) 検索キーワード入力画面例1に入力されている文字列「エレベータ 側板 鏡面加工 HL加工 素材 SUS」を取得し、空白文字毎に入力を分割し、各々をキーワードとして処理した結果を図19に示すキーワード保持テーブル400の形式で記録する。キーワード保持テーブル400は、検索キーワード入力画面に入力されたキーワードを順位付きでキーワードリストとして保持し、当該入力画面の左のキーワードほど、高い順位を付与する。
次に、検索条件受付部8が、検索条件となるキーワード(検索キーワード)および語順を受け付け、キーワードリストとして記録する。検索条件受付部8は、例えば図17に示す検索キーワード入力画面を検索実行者に提供し、検索ボタンが押下されたタイミングで、検索条件入力部の入力内容を取得し、これをキーワード単位に分解したリストを記録する。本実施形態においては、図18(a) 検索キーワード入力画面例1に入力されている文字列「エレベータ 側板 鏡面加工 HL加工 素材 SUS」を取得し、空白文字毎に入力を分割し、各々をキーワードとして処理した結果を図19に示すキーワード保持テーブル400の形式で記録する。キーワード保持テーブル400は、検索キーワード入力画面に入力されたキーワードを順位付きでキーワードリストとして保持し、当該入力画面の左のキーワードほど、高い順位を付与する。
(処理S0003)
次に、検索処理部9の検索条件ネットワーク生成部91が、図19のキーワード保持テーブル400に記録されているキーワードリストを用いて処理S0400(後述する図42)を実行し、図20に示す検索条件ネットワーク410を生成し、これを図21に示す概念インスタンステーブルと図22に示す関係インスタンステーブルの形式で記録する。なお、本実施形態において、検索条件ネットワークを記録するテーブルの構造は、インデックスネットワークを表す概念インスタンステーブル311(図15)と関係インスタンステーブル312(図16)のそれぞれから検索対象IDのカラムを削除した構成と同様である。(意味ネットワーク(検索条件ネットワーク)の生成方法は後で詳述する)
次に、検索処理部9の検索条件ネットワーク生成部91が、図19のキーワード保持テーブル400に記録されているキーワードリストを用いて処理S0400(後述する図42)を実行し、図20に示す検索条件ネットワーク410を生成し、これを図21に示す概念インスタンステーブルと図22に示す関係インスタンステーブルの形式で記録する。なお、本実施形態において、検索条件ネットワークを記録するテーブルの構造は、インデックスネットワークを表す概念インスタンステーブル311(図15)と関係インスタンステーブル312(図16)のそれぞれから検索対象IDのカラムを削除した構成と同様である。(意味ネットワーク(検索条件ネットワーク)の生成方法は後で詳述する)
(処理S0004)
インデックスネットワーク取得部92が、処理S0003で記録された図21の概念インスタンステーブル411を参照し、各概念インスタンスについて、各々が関係先概念として記録されているか否かを、図22の関係インスタンステーブル412を参照しながら判定する。そして、関係先概念インスタンスとして記録されていない概念インスタンス「4101」(エレベータ)を、概念インスタンステーブル411のルート要素とし、概念インスタンス「4101」が参照する概念である「エレベータ」を取得する。次に、オントロジー管理部2を介してオントロジーDB1の概念テーブル110(図6)を参照し、概念「エレベータ」の下位概念である「ギヤ式エレベータ」「ギヤレスエレベータ」を取得する。そして、これらの取得した概念を要素として持つ集合をクエリ概念テーブル500(図23)に1レコードとして記録する。
インデックスネットワーク取得部92が、処理S0003で記録された図21の概念インスタンステーブル411を参照し、各概念インスタンスについて、各々が関係先概念として記録されているか否かを、図22の関係インスタンステーブル412を参照しながら判定する。そして、関係先概念インスタンスとして記録されていない概念インスタンス「4101」(エレベータ)を、概念インスタンステーブル411のルート要素とし、概念インスタンス「4101」が参照する概念である「エレベータ」を取得する。次に、オントロジー管理部2を介してオントロジーDB1の概念テーブル110(図6)を参照し、概念「エレベータ」の下位概念である「ギヤ式エレベータ」「ギヤレスエレベータ」を取得する。そして、これらの取得した概念を要素として持つ集合をクエリ概念テーブル500(図23)に1レコードとして記録する。
ここで、“概念「エレベータ」の下位概念である”とは、概念「エレベータ」を直接的または間接的に上位概念とする概念のことを指す。また、“概念「エレベータ」を直接的に上位概念とする概念”とは、概念テーブル110(図6)において上位概念の値が「エレベータ」と一致する概念を指すものである。この取得は、例えば、概念テーブル110の上位概念列をサーチすることで取得できる。また、“概念「エレベータ」を間接的に上位概念とする”とは、上位概念の上位概念の・・・と辿った時に、どこかに概念「エレベータ」が登場する概念のうち、直接的に概念「エレベータ」を上位概念として持たない概念のことを指すものである。これらの概念の取得は、例えば、概念「エレベータ」を直接的に上位概念とする概念のみが入ったキューを最初に用意し、“pollした概念を記録し、それを直接の上位概念とする全ての概念をキューにputする”という処理を、キューが空になるまで繰り返し行うことで取得できる。
なお、検索条件ネットワークにルート要素が複数存在する場合は、上記の処理を繰り返し実行し、ルート要素毎に概念セットのレコードを記録する。
(処理S0005)
インデックスネットワーク管理部73が、処理S0004で記録された概念セットを順に取得し、「全てのレコードについて、概念セットに含まれるいずれか1要素を参照する概念インスタンスを持つ」ことを条件として、インデックスネットワークDB72(図15、図16)に記録されているインデックスネットワークを取得する。本実施形態の場合、まずクエリ概念テーブル500を参照し、概念セット「{エレベータ, ギヤ式エレベータ, ギヤレスエレベータ}」を取得する。次に、概念インスタンステーブル311(図15)に基づき、概念セットのうちの1つの要素である「ギヤレスエレベータ」が記録されている検索対象ID2100のインデックスネットワーク(つまり、インデックスネットワーク310)を取得する。同様の処理を行い、インデックスネットワーク320と330も取得する。
インデックスネットワーク管理部73が、処理S0004で記録された概念セットを順に取得し、「全てのレコードについて、概念セットに含まれるいずれか1要素を参照する概念インスタンスを持つ」ことを条件として、インデックスネットワークDB72(図15、図16)に記録されているインデックスネットワークを取得する。本実施形態の場合、まずクエリ概念テーブル500を参照し、概念セット「{エレベータ, ギヤ式エレベータ, ギヤレスエレベータ}」を取得する。次に、概念インスタンステーブル311(図15)に基づき、概念セットのうちの1つの要素である「ギヤレスエレベータ」が記録されている検索対象ID2100のインデックスネットワーク(つまり、インデックスネットワーク310)を取得する。同様の処理を行い、インデックスネットワーク320と330も取得する。
(処理S0006)
検索条件判定部93が、検索条件ネットワーク410とインデックスネットワーク310、320、330それぞれを指定して、処理S1100(後述する図48)を実行し、各インデックスネットワークを対象として検索条件を満たすか否かの判定を行う。本実施形態の場合、インデックスネットワーク310は「検索条件を満たさない」と判定され、インデックスネットワーク320、330はともに「検索条件を満たす」と判定される。(検索条件判定の方法は後で詳述する)
検索条件判定部93が、検索条件ネットワーク410とインデックスネットワーク310、320、330それぞれを指定して、処理S1100(後述する図48)を実行し、各インデックスネットワークを対象として検索条件を満たすか否かの判定を行う。本実施形態の場合、インデックスネットワーク310は「検索条件を満たさない」と判定され、インデックスネットワーク320、330はともに「検索条件を満たす」と判定される。(検索条件判定の方法は後で詳述する)
(処理S0007)
検索処理部9が、処理S0006の結果を受け、「検索条件を満たす」と判定されたインデックスネットワーク320および330について処理S0008を実行し、「検索条件を満たさない」と判定されたインデックスネットワーク310については処理S0010を実行する。
検索処理部9が、処理S0006の結果を受け、「検索条件を満たす」と判定されたインデックスネットワーク320および330について処理S0008を実行し、「検索条件を満たさない」と判定されたインデックスネットワーク310については処理S0010を実行する。
(処理S0008)
インデックスネットワーク管理部73が、検索条件を満たすと判定されたインデックスネットワーク320、330それぞれが記録されている概念インスタンステーブル311から、当該レコードの検索対象ID「2200」「2300」を取得し、それぞれに該当する検索対象データを、検索対象データ管理部6が、図10の検索対象データテーブル200から取得する。
インデックスネットワーク管理部73が、検索条件を満たすと判定されたインデックスネットワーク320、330それぞれが記録されている概念インスタンステーブル311から、当該レコードの検索対象ID「2200」「2300」を取得し、それぞれに該当する検索対象データを、検索対象データ管理部6が、図10の検索対象データテーブル200から取得する。
(処理S0009)
検索結果出力部10が、処理S0008で取得した検索対象データを取得し、検索結果表示画面(図24)を用いて、検索対象ID、インデックスネットワーク、検索対象データの組を、それぞれ検索対象ID表示領域、インデックスネットワーク表示領域、検索対象データ表示領域に表示する。本実施形態においては、検索結果表示画面例1(図25)が表示される。
検索結果出力部10が、処理S0008で取得した検索対象データを取得し、検索結果表示画面(図24)を用いて、検索対象ID、インデックスネットワーク、検索対象データの組を、それぞれ検索対象ID表示領域、インデックスネットワーク表示領域、検索対象データ表示領域に表示する。本実施形態においては、検索結果表示画面例1(図25)が表示される。
(処理S0010)
検索処理部9が、処理S0005で取得した全てのインデックスネットワークについて、検索条件を満たすか否かを判定していれば処理S0011を実行し、未実施のインデックスネットワークが存在すれば、処理S0006を実行して処理を継続する。
検索処理部9が、処理S0005で取得した全てのインデックスネットワークについて、検索条件を満たすか否かを判定していれば処理S0011を実行し、未実施のインデックスネットワークが存在すれば、処理S0006を実行して処理を継続する。
(処理S0011)
検索結果の出力を終了する。このとき、検索結果出力部10にて出力するデータが1件も存在しない場合(このことは、出力の回数を記録したり、出力処理を行ったか否かのフラグを用いたりすることで容易に判定できる)は、「該当するデータがありません」といったメッセージを、図27に示す検索結果なし表示画面を用いて通知してもよい。
検索結果の出力を終了する。このとき、検索結果出力部10にて出力するデータが1件も存在しない場合(このことは、出力の回数を記録したり、出力処理を行ったか否かのフラグを用いたりすることで容易に判定できる)は、「該当するデータがありません」といったメッセージを、図27に示す検索結果なし表示画面を用いて通知してもよい。
次に、処理S0300から始まる図41のフローに沿って、本実施形態における検索対象データに対するインデックスネットワークの生成過程について説明する。
本実施形態では、あらかじめ検索対象となるデータを記録した図10の検索対象データテーブル200を持つ検索対象DB4、および、各検索対象データに順序付きで付与されたキーワードを記録したインデックステーブル210を持つ図11のインデックスキーワードDB5が用意されている場合について説明する。検索対象データテーブル200の各行は、1つの検索対象データに相当するものである。また、インデックスキーワードテーブル210(図11)の各行は、検索対象データに付与されたキーワードの1つに対応するものであり、付与対象となる検索対象の検索対象ID、付与順序(語順)、付与されたキーワード文字列から構成されるとする。
なお、本実施形態ではテキストデータを検索対象データとする場合について説明するが、表、図形、画像、動画、音声など、情報検索の対象となり得るものであれば構わない。また、検索対象となるデータをキーワードとともに管理する装置や、そのためにキーワードを抽出・生成する手法、また、付与するキーワードの編集・管理手法については、公知化されている技術(特登4224131、特登3173411)を用いてもよい。
(処理S0301)
検索対象データ管理部6が、検索対象DB4(図10)にアクセスし、レコード順に、まず検索対象ID「2100」を取得する。次に、図11のインデックスキーワードDB5から、検索対象ID「2100」に該当するキーワードおよび語順の全てを取得する。
検索対象データ管理部6が、検索対象DB4(図10)にアクセスし、レコード順に、まず検索対象ID「2100」を取得する。次に、図11のインデックスキーワードDB5から、検索対象ID「2100」に該当するキーワードおよび語順の全てを取得する。
(処理S0302)
ネットワーク処理部7のインデックスネットワーク生成部71が、 処理S0301にて取得したキーワードおよび語順「ギヤレスエレベータ(1)、扉板(2)、鏡面加工(3)、アルミ(4)、側板(5)、SUS(6)、HL加工(7)」(括弧内の数値は語順)を、キーワードリストとして、指定して処理S0400(後述する図9)を実行し、生成されたインデックスネットワーク310(図12)を、検索対象ID「2100」の検索対象データに対するインデックスネットワークとして、インデックスネットワークDBに記録する。なお、既に述べたように、本実施形態においてインデックスネットワークは図15と図16に示す構成の表形式でインデックスネットワークDB72に記録されるものとする。
ネットワーク処理部7のインデックスネットワーク生成部71が、 処理S0301にて取得したキーワードおよび語順「ギヤレスエレベータ(1)、扉板(2)、鏡面加工(3)、アルミ(4)、側板(5)、SUS(6)、HL加工(7)」(括弧内の数値は語順)を、キーワードリストとして、指定して処理S0400(後述する図9)を実行し、生成されたインデックスネットワーク310(図12)を、検索対象ID「2100」の検索対象データに対するインデックスネットワークとして、インデックスネットワークDBに記録する。なお、既に述べたように、本実施形態においてインデックスネットワークは図15と図16に示す構成の表形式でインデックスネットワークDB72に記録されるものとする。
(処理S303)
検索対象DB4に登録されている全ての検索対象データについてインデックスネットワークを生成・記録したか否かを判定する。このとき、未処理のものがあれば処理S0301に戻って処理を続け、全ての検索対象データについて処理が終了していれば、処理S0304 を実行する。本実施形態においては、検索対象ID「2100」に付与された処理に続き、検索対象ID「2200」に付与されたキーワード「ギヤレスエレベータ(1)、側板(2)、SUS(3)、HL加工(4)、鏡面加工(5)、側板(6)、鏡面加工(7)、アルミ(8)」からインデックスネットワーク320(図13)を生成し、検索対象ID「2300」に付与されたキーワード「ギヤ式エレベータ(1)、側板(2)、SUS(3)、HL加工(4)、鏡面加工(5)、側板(6)、サテン加工(7)、アルミ(8)」からインデックスネットワーク330(図14)を生成し、それぞれインデックスネットワークDB72に記録したところで、処理S0304を実行する。
検索対象DB4に登録されている全ての検索対象データについてインデックスネットワークを生成・記録したか否かを判定する。このとき、未処理のものがあれば処理S0301に戻って処理を続け、全ての検索対象データについて処理が終了していれば、処理S0304 を実行する。本実施形態においては、検索対象ID「2100」に付与された処理に続き、検索対象ID「2200」に付与されたキーワード「ギヤレスエレベータ(1)、側板(2)、SUS(3)、HL加工(4)、鏡面加工(5)、側板(6)、鏡面加工(7)、アルミ(8)」からインデックスネットワーク320(図13)を生成し、検索対象ID「2300」に付与されたキーワード「ギヤ式エレベータ(1)、側板(2)、SUS(3)、HL加工(4)、鏡面加工(5)、側板(6)、サテン加工(7)、アルミ(8)」からインデックスネットワーク330(図14)を生成し、それぞれインデックスネットワークDB72に記録したところで、処理S0304を実行する。
(処理S0304)
検索対象データに対するインデックスネットワークの生成・記録処理を終了する。
検索対象データに対するインデックスネットワークの生成・記録処理を終了する。
次に、処理S0400から始まる図42のフローに沿って、本実施形態における意味ネットワーク(検索条件ネットワーク、インデックスネットワーク)の生成過程について説明する。ここでは、図10における検索対象ID「2100」の検索対象データに付与されたキーワード「ギヤレスエレベータ(1)、扉板(2)、鏡面加工(3)、アルミ(4)、側板(5)、SUS(6)、HL加工(7)」(括弧内の数値は語順)に関するキーワードのリストに対する処理例について説明する。
(処理S0401)
まず、意味ネットワーク生成部6が、要素が0個の意味ネットワークおよび要素が0個の探索終端リストを生成し、記録する。
(処理S0401)
まず、意味ネットワーク生成部6が、要素が0個の意味ネットワークおよび要素が0個の探索終端リストを生成し、記録する。
ここで、探索終端リストとは、あるキーワードに対応するインスタンスを始点として探索を行う際に、見つかった時点で当該探索を終了する概念インスタンスを記録したものである。
(処理S0402)
意味ネットワーク生成部6が、上記処理S0302(図41)にて指定されたキーワードのリスト「ギヤレスエレベータ(1)、扉板(2)、鏡面加工(3)、アルミ(4)、側板(5)、SUS(6)、HL加工(7)」(括弧内の数値は語順)を参照し、語順の値が最も小さいキーワードである「ギヤレスエレベータ」と語順「1」を取得する。次に、取得したキーワード「ギヤレスエレベータ」を用い、図6の概念テーブル110および図7の関係テーブル120のキーワード列を検索し、キーワードが完全に一致する概念および関係を取得し、リスト(オブジェクトリスト)として保持する。複数の概念または関係についてキーワードが一致する場合は、その全てをリスト(オブジェクトリスト)として記録する。本実施形態において、キーワード「ギヤレスエレベータ」に一致するものは概念「ギヤレスエレベータ」のみであるため、当該概念のみを要素として持つリスト「{ギヤレスエレベータ}」を記録する。なお、対応する概念や関係が存在しない場合、そのキーワードはキーワードリストから削除してもよいものとする。
意味ネットワーク生成部6が、上記処理S0302(図41)にて指定されたキーワードのリスト「ギヤレスエレベータ(1)、扉板(2)、鏡面加工(3)、アルミ(4)、側板(5)、SUS(6)、HL加工(7)」(括弧内の数値は語順)を参照し、語順の値が最も小さいキーワードである「ギヤレスエレベータ」と語順「1」を取得する。次に、取得したキーワード「ギヤレスエレベータ」を用い、図6の概念テーブル110および図7の関係テーブル120のキーワード列を検索し、キーワードが完全に一致する概念および関係を取得し、リスト(オブジェクトリスト)として保持する。複数の概念または関係についてキーワードが一致する場合は、その全てをリスト(オブジェクトリスト)として記録する。本実施形態において、キーワード「ギヤレスエレベータ」に一致するものは概念「ギヤレスエレベータ」のみであるため、当該概念のみを要素として持つリスト「{ギヤレスエレベータ}」を記録する。なお、対応する概念や関係が存在しない場合、そのキーワードはキーワードリストから削除してもよいものとする。
(処理S0403)
意味ネットワーク生成部6が、処理S0402にて記録されたオブジェクト(概念または関係)のリスト「{ギヤレスエレベータ}」および要素が0個の探索終端リストを指定して、処理S0600(図43)を実行し、経路データ760(図28(a))を取得し、また接続インスタンスとしてnull値を取得する。(経路データおよび接続インスタンスの生成・取得方法は後で詳述する)
経路データとはキーワード間のつながりを表す概念および関係のリストであり、また、接続インスタンスとは、当該経路データを接続する接点となる意味ネットワーク内の概念インスタンスである。後述するように、経路データに要素として含まれるオブジェクトのインスタンスを生成し、接続インスタンスとして指定された概念インスタンスに順次接続していくことで、意味ネットワークが拡張される。
意味ネットワーク生成部6が、処理S0402にて記録されたオブジェクト(概念または関係)のリスト「{ギヤレスエレベータ}」および要素が0個の探索終端リストを指定して、処理S0600(図43)を実行し、経路データ760(図28(a))を取得し、また接続インスタンスとしてnull値を取得する。(経路データおよび接続インスタンスの生成・取得方法は後で詳述する)
経路データとはキーワード間のつながりを表す概念および関係のリストであり、また、接続インスタンスとは、当該経路データを接続する接点となる意味ネットワーク内の概念インスタンスである。後述するように、経路データに要素として含まれるオブジェクトのインスタンスを生成し、接続インスタンスとして指定された概念インスタンスに順次接続していくことで、意味ネットワークが拡張される。
(処理S0404)
意味ネットワーク生成部6が、処理S0403で取得した経路データ760(図28(a))と、接続インスタンスとしてのnull値とを指定して、処理S1000(後述する図47)を実行し、意味ネットワークを拡張する。本実施形態の場合、処理前はノード数が0の状態から、図29(a)に示すノード数1の意味ネットワークへと拡張される。(意味ネットワークの拡張方法は後で詳述する)
意味ネットワーク生成部6が、処理S0403で取得した経路データ760(図28(a))と、接続インスタンスとしてのnull値とを指定して、処理S1000(後述する図47)を実行し、意味ネットワークを拡張する。本実施形態の場合、処理前はノード数が0の状態から、図29(a)に示すノード数1の意味ネットワークへと拡張される。(意味ネットワークの拡張方法は後で詳述する)
(処理S0405)
全てのキーワードについて意味ネットワーク拡張処理を実行したか否かを、処理S0402にて取得したキーワードより語順の大きいキーワード(すなわち下位のキーワード)が存在するか否かによって確認し、存在する場合は処理S0406を実行して探索終端リストを更新し、存在しない場合は全てのキーワードについて処理を実行したとして、処理S0407を実行する。
全てのキーワードについて意味ネットワーク拡張処理を実行したか否かを、処理S0402にて取得したキーワードより語順の大きいキーワード(すなわち下位のキーワード)が存在するか否かによって確認し、存在する場合は処理S0406を実行して探索終端リストを更新し、存在しない場合は全てのキーワードについて処理を実行したとして、処理S0407を実行する。
本実施形態の場合、語順が1の「ギヤレスエレベータ」の処理に続き、語順が2の「扉板」が存在するため、処理S0406を実行した後、処理0402に戻り、処理S0403で得られた経路データ761(図28(b))と接続インスタンス「3101」(ギヤレスエレベータを参照)に対し処理S0404を実行することで、意味ネットワーク312(図29(b))が得られる。
また、処理S0406を経て、語順が3の「鏡面加工」に対して、処理S0402の後、処理S0403で得られた経路データ762(図28(c))と接続インスタンス「3103」(板を参照)に対し処理S0404を実行することで、意味ネットワーク312(図29(c))が得られる。
以下同様に繰り返して、語順が7の「HL加工」に対して処理S0402〜S0404を実行し、意味ネットワーク(本実施形態の場合、インデックスネットワーク)が図12の状態になった時点で、語順が7より大きいキーワードがないため、処理S0407を実行する。
(処理S0406)
意味ネットワーク生成部6が、探索終端リストの要素をクリアした後、その時点の意味ネットワークの経路末インスタンスを取得し、当該経路末インスタンスから意味ネットワークの根ノードである概念インスタンスまでの経路上に存在する概念インスタンスのリストを作成し、これを探索終端リストとして、記録する。この探索終端リストは、次に実行される処理S0403で用いる。
意味ネットワーク生成部6が、探索終端リストの要素をクリアした後、その時点の意味ネットワークの経路末インスタンスを取得し、当該経路末インスタンスから意味ネットワークの根ノードである概念インスタンスまでの経路上に存在する概念インスタンスのリストを作成し、これを探索終端リストとして、記録する。この探索終端リストは、次に実行される処理S0403で用いる。
ここで経路末インスタンスとは、インデックスネットワークを拡張した際に、拡張された部分で最も根から遠い概念インスタンス(つまり、いわゆる葉ノード)のことである。
本実施形態において、語順が1の「ギヤレスエレベータ」に対する処理では、経路末インスタンス「3101」(ギヤレスエレベータを参照)が得られ、これはそのまま根ノードである(意味ネットワーク内に、親となる概念インスタンスが存在しない)であるため、探索終端リスト「{3101}」が得られ、語順が2の「扉板」に対する処理で用いられる。
また、語順が2の「扉板」に対する処理では、経路末インスタンス「3103」(板を参照)が得られ、当該板のノードから順に概念インスタンスを追加し、親ノードが存在しなくなるまで処理を繰り返すことで、探索終端リスト「{3103、3102、3101}」(それぞれ板、扉、ギヤレスエレベータを参照)が得られ、語順が3の「鏡面加工」に対する処理で用いられる。
(処理S0407)
意味ネットワーク生成処理を終了する。
意味ネットワーク生成処理を終了する。
次に、処理S0600から始まる図43のフローに沿って、本実施形態における経路データ生成処理について説明する。ここでは、検索対象ID「2100」の検索対象データに付与されたキーワード「ギヤレスエレベータ(1)、扉板(2)、鏡面加工(3)、アルミ(4)、側板(5)、SUS(6)、HL加工(7)」(括弧内の数値は語順)からインデックスネットワークを生成する途上で、語順が3の「鏡面加工」を対象として経路データを生成する場合について説明する。このとき、意味ネットワークは意味ネットワーク312(図29(b))の状態にあり、探索終端リストは「{3103、3102、3101}」(それぞれ板、扉、ギヤレスエレベータを参照)であり、キーワードに対応するオブジェクトリストは「{鏡面加工}」である。
(処理S0601)
最大探索経路長受付部34が、最大経路長Lを取得する。最大経路長受付部34は、例えば、図17に示す検索キーワード入力画面の探索最大経路長入力部から取得して良いものとする。本実施形態においては、図18(a) 検索キーワード入力画面例1 で示すように、最大経路長L=5を取得する。
最大探索経路長受付部34が、最大経路長Lを取得する。最大経路長受付部34は、例えば、図17に示す検索キーワード入力画面の探索最大経路長入力部から取得して良いものとする。本実施形態においては、図18(a) 検索キーワード入力画面例1 で示すように、最大経路長L=5を取得する。
ここで、探索最大経路長とは、指定されたキーワード(ここでは鏡面加工)から経路(オントロジー)を探索する際に辿る最大段数の指定値である。この値に到達しても、指定されたキーワードが、探索終端リストの概念のうちの1つに到達しない場合は、経路データ生成を打ち切り、接続インスタンスをnull値として、経路データ生成処理を終了する(この場合、生成される意味ネットワークが複数になり得る)。
(処理S0602)
指定された探索終端リストの要素が0個の場合は処理S0603を実行し、それ以外の場合は処理S0605を実行する。本実施形態の場合、探索終端リストの要素数は0でないため、処理S0605 を実行する。
指定された探索終端リストの要素が0個の場合は処理S0603を実行し、それ以外の場合は処理S0605を実行する。本実施形態の場合、探索終端リストの要素数は0でないため、処理S0605 を実行する。
(処理S0605)
経路データ生成部31が、語順値m=3、探索最大経路長L=5に対する探索優先度行列Vm,L-1(本実施形態の場合V3,4)を算出し、記録する。
経路データ生成部31が、語順値m=3、探索最大経路長L=5に対する探索優先度行列Vm,L-1(本実施形態の場合V3,4)を算出し、記録する。
ここで、探索優先度行列Vx,yは、(系統リストの要素数+1)×1行列であり、
から求められる行列である。
まず、オントロジー経路データ生成部31が、処理S0100(後述する図39)を実行し、系統接続行列O(後述)および系統リスト(後述)を求める。本実施形態では、オントロジー100より、
と図8の系統リスト130「{板、モノ、属性値}」が得られる。系統は、オントロジーを複数に分割したときの各部分的オントロジーである。この例では「板」、「モノ」、「属性値」は各系統を識別し、各系統の最上位のノードでもある。
まず、オントロジー経路データ生成部31が、処理S0100(後述する図39)を実行し、系統接続行列O(後述)および系統リスト(後述)を求める。本実施形態では、オントロジー100より、
次に、オントロジー経路データ生成部31が、(系統リストの要素数+1)×1のゼロ行列を生成し、行列V3,0として記録する。次に、語順が3より小さいキーワード「ギヤレスエレベータ」「扉板」を順に取得し、オントロジー管理部2を用いてキーワードが一致する概念/関係を全て取得し、それらを重複がないように記録する。本実施形態の場合「{ギヤレスエレベータ}{扉板(0203)}」が得られる。次に、要素である概念および関係「ギヤレスエレベータ」「扉板(0203)」について処理S700(後述する図44)を行い、それぞれを含む系統「モノ」「板」を取得する。そして、取得した系統を系統リスト130と照らし合わせ、系統それぞれの順位「2」「1」を取得し、V3,0の2行1列要素、1行1列要素にそれぞれ1を加える。このようにして、
を記録する。(系統接続行列および系統リストの生・取得方法は後で詳述する)
(処理S0606)
経路データ生成部31が、語順=3のキーワードに対応するオブジェクトのリスト「{鏡面加工}」の要素について順に取得し、探索終端リスト「{3103、3102、3101}」(それぞれ板、扉、ギヤレスエレベータを参照)、および処理S0605にて計算した優先度行列V3,4を指定して処理S0800(後述する図45)を実行し、経路データおよび接続インスタンスを取得する。本実施形態の場合、オブジェクト「鏡面加工」に対する経路データとして、経路データ762「{板、仕上げ(0208)、鏡面加工}」(図28(c))、および接続インスタンス「3103」(板)が取得される。(経路データの生成および接続インスタンスの取得方法は後で詳述する)
経路データ生成部31が、語順=3のキーワードに対応するオブジェクトのリスト「{鏡面加工}」の要素について順に取得し、探索終端リスト「{3103、3102、3101}」(それぞれ板、扉、ギヤレスエレベータを参照)、および処理S0605にて計算した優先度行列V3,4を指定して処理S0800(後述する図45)を実行し、経路データおよび接続インスタンスを取得する。本実施形態の場合、オブジェクト「鏡面加工」に対する経路データとして、経路データ762「{板、仕上げ(0208)、鏡面加工}」(図28(c))、および接続インスタンス「3103」(板)が取得される。(経路データの生成および接続インスタンスの取得方法は後で詳述する)
(処理S0607〜S0609)
経路データ生成部31が、処理S0606の処理が終了する都度、処理S0606にて取得した経路データの概念インスタンス数と、その時点で記録されている経路データの概念インスタンス数を比較し、少ないほうを経路データとして記録し、多いほうを消去する。このとき、経路データが記録されていなければ、処理S0606にて取得した経路データを、そのまま記録する。そして、語順=3のキーワードに対応するオブジェクト全てについて経路データの比較が終了した時点で、処理S0610を実行する。
経路データ生成部31が、処理S0606の処理が終了する都度、処理S0606にて取得した経路データの概念インスタンス数と、その時点で記録されている経路データの概念インスタンス数を比較し、少ないほうを経路データとして記録し、多いほうを消去する。このとき、経路データが記録されていなければ、処理S0606にて取得した経路データを、そのまま記録する。そして、語順=3のキーワードに対応するオブジェクト全てについて経路データの比較が終了した時点で、処理S0610を実行する。
本実施形態においては、語順=3のキーワードに対応するオブジェクトの要素が1つであるため、比較処理を繰り返すことなく、処理S0610が実行される。
(処理S0610)
経路データ生成処理を終了する。
経路データ生成処理を終了する。
次に、処理S0100から始まる図39のフローに沿って、系統接続行列Oの生成処理ついて説明する。
(処理S0101)
オントロジー管理部2が、オントロジー100を指定して処理S0200(後述する図40)を実行し、系統リスト130を取得する。
オントロジー管理部2が、オントロジー100を指定して処理S0200(後述する図40)を実行し、系統リスト130を取得する。
(処理S0102)
オントロジー管理部2が、系統リスト130およびオントロジー100から、系統接続行列Oを算出し、記録する。
オントロジー管理部2が、系統リスト130およびオントロジー100から、系統接続行列Oを算出し、記録する。
本実施形態の場合、最初に、系統リスト130の要素の数「3」に基づき、4×4行列Oをワーキングメモリに記録し、全要素の値を0とする。
次に、関係テーブル120(図7)の関係「部品(0201)」における関係元概念「モノ」と関係先概念「モノ」のそれぞれに対して処理S0700(後述する図44)を行い、各々が含まれる系統を取得し、同じであるか否かを比較判定する。この場合、含まれる系統はどちらも「モノ」であり互いに等しい(つまり対角成分)ため、行列Oは更新しない。
次に、関係テーブル120の関係「部品(0202)」について、その関係元概念「エレベータ」、および、関係先概念「扉」が含まれる系統を取得し、等しいか否かを比較判定する。この場合も、含まれる系統はどちらも「モノ」であり互いに等しいため、行列Oは更新しない。
次に、関係テーブル120の関係「扉板(0203)」について、その関係元概念「扉」、および、関係先概念「板」が含まれる系統を取得し、等しいか否かを比較判定する。この場合、関係元概念「扉」と関係先概念「板」が所属する系統は、それぞれ「モノ」「板」であり、等しくない。そこで、各系統を系統リスト130と照合し、それぞれが何番目の系統であるかを取得する。この場合、関係元側の「モノ」は「2」番目であり、関係先側の「板」は「1」番目の系統であることが得られる。そこで、行列Oの要素O12の値を1加算する。
以下同様に、関係テーブル120(図7)の全てのレコードについて、関係元概念と関係先概念それぞれが含まれる系統を比較し、系統が異なる場合には、行列Oの定義に沿って該当する要素に1を加える操作を繰り返すことで、
が求まり、これを記録する。
次に、関係テーブル120の関係「部品(0202)」について、その関係元概念「エレベータ」、および、関係先概念「扉」が含まれる系統を取得し、等しいか否かを比較判定する。この場合も、含まれる系統はどちらも「モノ」であり互いに等しいため、行列Oは更新しない。
次に、関係テーブル120の関係「扉板(0203)」について、その関係元概念「扉」、および、関係先概念「板」が含まれる系統を取得し、等しいか否かを比較判定する。この場合、関係元概念「扉」と関係先概念「板」が所属する系統は、それぞれ「モノ」「板」であり、等しくない。そこで、各系統を系統リスト130と照合し、それぞれが何番目の系統であるかを取得する。この場合、関係元側の「モノ」は「2」番目であり、関係先側の「板」は「1」番目の系統であることが得られる。そこで、行列Oの要素O12の値を1加算する。
以下同様に、関係テーブル120(図7)の全てのレコードについて、関係元概念と関係先概念それぞれが含まれる系統を比較し、系統が異なる場合には、行列Oの定義に沿って該当する要素に1を加える操作を繰り返すことで、
(処理S0102)
系統接続行列Oの計算処理を終了する。
系統接続行列Oの計算処理を終了する。
次に、処理S0200から始まる図40のフローに沿って、系統リストの生成フローについて説明する。
(処理S0201)
オントロジー管理部2が、関係テーブル120(図7)を参照し、関係先概念として記録されている概念を系統候補とし、その記録数(被参照数)とともに、系統候補テーブル140に記録する。なお、系統候補とは、系統となり得る概念であり、以降の処理にて系統として変更されるか、系統候補から消去される。
オントロジー管理部2が、関係テーブル120(図7)を参照し、関係先概念として記録されている概念を系統候補とし、その記録数(被参照数)とともに、系統候補テーブル140に記録する。なお、系統候補とは、系統となり得る概念であり、以降の処理にて系統として変更されるか、系統候補から消去される。
本実施形態においては図9に示す系統候補テーブル140が記録されるが、これは関係テーブル120(図7)を対象とした上記処理の結果として得られるものである。例えば、概念「板」の被参照数が「3」となっていることは、関係テーブル120において概念「板」が関係ID「0203」「0204」「0205」の3レコードで関係先概念として記録されていることによる。被参照数は、例えば、関係テーブル120の関係先概念の列に対して、“関係先概念に記録されている概念が、系統候補テーブル140の系統候補概念に含まれていれば、その被参照数を1加え、含まれていなければ系統候補概念として新たな行を加えて記録し、被参照概念数を1とする”という処理を繰り返すことで求めてもよいものとする。
(処理S0202)
オントロジー管理部2が、系統候補テーブル140(図9)を参照し、系統候補が存在するか否かをチェックする。存在する場合は処理S0203を実行し、存在しない場合は処理S0207を実行する。系統候補テーブルが図9の状態の場合、系統候補が存在するため、処理S0203を実行する。
オントロジー管理部2が、系統候補テーブル140(図9)を参照し、系統候補が存在するか否かをチェックする。存在する場合は処理S0203を実行し、存在しない場合は処理S0207を実行する。系統候補テーブルが図9の状態の場合、系統候補が存在するため、処理S0203を実行する。
(処理S0203)
オントロジー管理部が、系統候補テーブル140(図9)を参照し、被参照数が最多の概念を選択する(複数ある場合は、概念IDの番号が若いものを選ぶとする)。本実施形態の場合、まず「板」が系統リストに追加される。
オントロジー管理部が、系統候補テーブル140(図9)を参照し、被参照数が最多の概念を選択する(複数ある場合は、概念IDの番号が若いものを選ぶとする)。本実施形態の場合、まず「板」が系統リストに追加される。
(処理S0204〜S0206)
処理S0203で選択した概念の上位概念となる概念が系統リストの中に含まれているか否かを判定し、含まれていない場合のみS0203で取得した概念を系統リストに追加した後、系統候補テーブルから削除する。
処理S0203で選択した概念の上位概念となる概念が系統リストの中に含まれているか否かを判定し、含まれていない場合のみS0203で取得した概念を系統リストに追加した後、系統候補テーブルから削除する。
本実施形態の場合、「板」が系統リストに追加された後、「モノ」、「属性値」が系統リストに追加され、系統リストは図8の状態となる。「板」「モノ」「属性値」は系統候補テーブルから削除される。「扉」「金属」「仕上種」「防犯窓」は、系統リストに追加されずに、系統候補テーブルから削除される。そして、全ての系統候補について処理が終了した時点で、処理S0207が実行される。
(処理0207)
系統リスト取得処理を終了する。
系統リスト取得処理を終了する。
次に、処理S0700から始まる図44のフローに沿って、系統の同定フローについて説明する。
(処理S0701)
オントロジー管理部2が、系統を取得するものとして指定されたオブジェクトを取得し、当該オブジェクトが概念であれば、当該オブジェクトを系統取得対象として記録する。一方、当該オブジェクトが関係であれば、当該関係の関係先概念を系統取得対象として記録する。
オントロジー管理部2が、系統を取得するものとして指定されたオブジェクトを取得し、当該オブジェクトが概念であれば、当該オブジェクトを系統取得対象として記録する。一方、当該オブジェクトが関係であれば、当該関係の関係先概念を系統取得対象として記録する。
本実施形態として、概念「ギヤレスエレベータ」および関係「扉板(0203)」が指定された場合について説明する。まず、概念「ギヤレスエレベータ」の場合、系統取得対象を「ギヤレスエレベータ」として記録する。一方、関係「扉板(0203)」が指定された場合は、関係テーブル120(図7)を参照し、当該関係の関係先概念「板」を系統取得対象として記録する。
(処理S0702)
オントロジー管理部2が、処理S0701で記録した系統取得対象「ギヤレスエレベータ」「板」が、系統リスト130(図8)に含まれているか否かを判定する。含まれている場合は、系統取得対象を記録し、処理S0703を実行する。含まれていない場合は、処理S0704を実行する。
オントロジー管理部2が、処理S0701で記録した系統取得対象「ギヤレスエレベータ」「板」が、系統リスト130(図8)に含まれているか否かを判定する。含まれている場合は、系統取得対象を記録し、処理S0703を実行する。含まれていない場合は、処理S0704を実行する。
本実施形態について、系統取得対象「ギヤレスエレベータ」の場合は、系統リスト130に含まれないため、処理S0704を実行する。一方、系統取得対象「板」の場合は系統リスト130に含まれているため、処理S0703を実行する。
(処理S0703)
オントロジー管理部2が、系統取得対象を系統として記録する 。系統取得対象「板」の場合、「板」が系統として記録される。
オントロジー管理部2が、系統取得対象を系統として記録する 。系統取得対象「板」の場合、「板」が系統として記録される。
(処理S0704〜S0706)
オントロジー管理部2が、系統取得対象の上位概念を系統取得対象に設定しなおして、処理S0702を実行する。このとき、上位概念の存在しない概念が系統取得対象であった場合、系統をnull値として記録し、処理S0707を実行する。
オントロジー管理部2が、系統取得対象の上位概念を系統取得対象に設定しなおして、処理S0702を実行する。このとき、上位概念の存在しない概念が系統取得対象であった場合、系統をnull値として記録し、処理S0707を実行する。
本実施形態の場合、系統取得対象「ギヤレスエレベータ」について、上位概念「エレベータ」を系統取得対象として設定しなおして処理を繰り返し、さらに上位概念「モノ」となった段階で、これが系統リスト130(図8)に含まれることから、処理S0707が実行される。
(処理S0707)
経路同定処理を終了する。
経路同定処理を終了する。
次に、処理S0800から始まる図45のフローに沿って、経路データ生成および接続インスタンス取得フローについて説明する。図45A、図45B、図45C、図45D、図45E、図45Fは、図45の部分拡大図である。なお、ここではオブジェクトのリスト「{鏡面加工}」、探索終端リスト「{3103、3102、3101}」(それぞれ板、扉、ギヤレスエレベータを参照)、および優先度行列V3,4が指定された場合の処理について説明する。
(処理S0801)
経路データ生成部31が、経路探索木を生成し、これを記録する。なお、経路探索木、および、その構成要素となる探索ノード、探索ノードが参照するオブジェクト(概念または関係)をワーキングメモリ上で表現する手段としては、例えば経路探索木730(図30)に対する経路探索木テーブル740(図40)のような表形式のデータ構造を用いることが可能であるが、同等の内容を処理可能な他の方法を用いても構わない。
経路データ生成部31が、経路探索木を生成し、これを記録する。なお、経路探索木、および、その構成要素となる探索ノード、探索ノードが参照するオブジェクト(概念または関係)をワーキングメモリ上で表現する手段としては、例えば経路探索木730(図30)に対する経路探索木テーブル740(図40)のような表形式のデータ構造を用いることが可能であるが、同等の内容を処理可能な他の方法を用いても構わない。
ここで、経路探索木とは、木構造のデータであり、指定されたキーワードに対応するオブジェクトを参照する探索ノードを根として持つ。探索ノードとは、経路探索木の要素となるノードであり、必ず1つ、オントロジーで定義されたオブジェクトに対する参照を持つ。経路探索処理は、オントロジーを参照しながら経路探索木を拡張し、探索終端リストに含まれるインスタンスが参照する概念のうちの1つに辿りつくことで、経路が発見されたものとする。
(処理S0802)
経路データ生成部31が、指定されたオブジェクトを取得し、当該オブジェクトを参照する探索ノードを経路探索木730(図30)の根ノードとして設定する。例えば図31の経路探索木テーブル740においては、親ノードの値を空(null値)にしておくことで、それが根であることを識別できるものとする。
経路データ生成部31が、指定されたオブジェクトを取得し、当該オブジェクトを参照する探索ノードを経路探索木730(図30)の根ノードとして設定する。例えば図31の経路探索木テーブル740においては、親ノードの値を空(null値)にしておくことで、それが根であることを識別できるものとする。
本実施形態の場合では、概念「鏡面加工」への参照を持ったノード7301が経路探索木730の根として記録される。
(処理S0803〜S0804)
経路データ生成部31が、優先度付き探索候補キュー750(図32)を生成し、優先度0として経路探索木730の根ノードをpushする。
経路データ生成部31が、優先度付き探索候補キュー750(図32)を生成し、優先度0として経路探索木730の根ノードをpushする。
優先度付き探索候補キューとは、優先度付きキューの1つであり、探索データを生成するために、次に探索すべきオブジェクトを参照するノードを格納するためのキューである。
本実施形態の場合では、まず鏡面加工のノード7301(優先度=0)がキューに格納される。
(処理S0805)
経路データ生成部31が、優先度付き探索候補キュー750の要素を参照し、ノード7301がキューに存在することから、処理S0806を実行する。
経路データ生成部31が、優先度付き探索候補キュー750の要素を参照し、ノード7301がキューに存在することから、処理S0806を実行する。
(処理S0806)
経路データ生成部31が、優先度付き探索候補キュー750から探索ノード、および、その優先度pを1つpullし、優先度が最も低いノードであるノード7301(優先度=0)を取得する。
経路データ生成部31が、優先度付き探索候補キュー750から探索ノード、および、その優先度pを1つpullし、優先度が最も低いノードであるノード7301(優先度=0)を取得する。
(処理S0807)
このとき、最初に取得された探索ノード7301(優先度「0」)が参照するオブジェクト「鏡面加工」が概念であることから、処理S0808が実行される。
このとき、最初に取得された探索ノード7301(優先度「0」)が参照するオブジェクト「鏡面加工」が概念であることから、処理S0808が実行される。
(処理S0808〜処理S0816)
経路データ生成部31が、概念「鏡面加工」を関係先概念とする関係を取得する。この場合、条件を満たす関係が存在しないため、経路探索木730は更新されない。
経路データ生成部31が、概念「鏡面加工」を関係先概念とする関係を取得する。この場合、条件を満たす関係が存在しないため、経路探索木730は更新されない。
(処理S0817〜処理S0819)
経路データ生成部31が、オントロジー管理部2を参照して概念「鏡面加工」の上位概念である「仕上種」を取得し、これを参照するノード7302を生成して、ノード7301の子として経路探索木730に追加する。また、ノード7302を優先度「1」として優先度付きキュー750にpushする。
経路データ生成部31が、オントロジー管理部2を参照して概念「鏡面加工」の上位概念である「仕上種」を取得し、これを参照するノード7302を生成して、ノード7301の子として経路探索木730に追加する。また、ノード7302を優先度「1」として優先度付きキュー750にpushする。
(処理S0815)
処理S0805〜0819を繰り返して、経路探索木が731(図33)、優先度付き探索キューが751(図34)となった状態で、処理S0814を実行した際、処理S0900(後述)から接続インスタンス3103が取得されるため、これと優先度付キュー751末尾のノード7305を指定して処理S0822を実行する。なお、図34においては、優先度の値を小数点第3位を四捨五入して記載している。(接続インスタンスの取得方法は後で詳述する)
(処理S0822〜S0827)
まず経路データに、ノード7305が参照する概念「0104」(板)を経路データに追加し、順次、親ノードが参照するオブジェクトを追加することで、経路データ761「{板、仕上(0208)、鏡面加工}」(図28(C))が生成される。
処理S0805〜0819を繰り返して、経路探索木が731(図33)、優先度付き探索キューが751(図34)となった状態で、処理S0814を実行した際、処理S0900(後述)から接続インスタンス3103が取得されるため、これと優先度付キュー751末尾のノード7305を指定して処理S0822を実行する。なお、図34においては、優先度の値を小数点第3位を四捨五入して記載している。(接続インスタンスの取得方法は後で詳述する)
(処理S0822〜S0827)
まず経路データに、ノード7305が参照する概念「0104」(板)を経路データに追加し、順次、親ノードが参照するオブジェクトを追加することで、経路データ761「{板、仕上(0208)、鏡面加工}」(図28(C))が生成される。
(処理S0828)
経路データ先頭の要素「板」は、接続インスタンス3103が参照する概念「板」と一致するため、処理S0838を実行し、経路データ生成および接続インスタンス取得処理を終了する。
経路データ先頭の要素「板」は、接続インスタンス3103が参照する概念「板」と一致するため、処理S0838を実行し、経路データ生成および接続インスタンス取得処理を終了する。
次に、処理S0900から始まる図46のフローに沿って、接続インスタンス取得フローについて説明する。
ここでは、探索終端リストが「{3103、3102、3101}」(それぞれ板、扉、ギヤレスエレベータを参照)であり、また、優先度付きキューが751の状態である場合の実施形態について説明する。このとき、探索終端リストの先頭要素である概念インスタンス「3103」が参照する概念「板」は、優先度付きキュー751末尾のノードが参照する概念「板」と等しいため、ワーキングメモリに接続インスタンス「3103」が記録され、処理0900が終了する。
次に、処理S1000から始まる図47のフローに沿って、意味ネットワーク拡張フローについて説明する。図47A、図47Bは、図47の部分拡大図である。
本実施形態として、図29(b)の意味ネットワーク312、図28(c)の経路データ762「{板、仕上(0208)、鏡面加工}」、および、接続先インスタンス3103が与えられたときの処理について説明する。
まず、接続先インスタンス3103を親インスタンスとして記録する。親インスタンスはnull値でないため、図28(c)の経路データ762から先頭の概念「板」を取得する。これは、親インスタンス3103が参照する概念「板」と一致するため、親インスタンスの参照概念は更新されない。そして、経路データ762から先頭の要素である概念「板」が削除される。経路データ762にはまだ要素があるため、次の要素である関係「仕上(0208)」を取得する。まず、これを参照する関係インスタンス3124を生成し、記録する。次に、関係インスタンス3124の関係元概念インスタンスとして、親インスタンスとして指定されている概念インスタンス3103を指定し、記録する。そして、経路データ762から先頭の要素である関係「仕上(0208)」を削除する。次に、経路データ762から先頭の要素である概念「鏡面加工」を取得する。まず、これを参照する概念インスタンス3104 を生成し、記録する。そして、概念インスタンス3104を、関係インスタンス3124の関係先概念インスタンスとして指定し、記録する。そして、経路データ762から先頭の要素である概念「鏡面加工」を削除する。
この段階で、経路データ762には要素がなくなり、処理1000が終了する。このとき意味ネットワーク312は図29(c)の313の状態に更新された状態で記録されている。
次に、処理S1100から始まる図48のフローに沿って、検索条件の判定フローについて説明する。図48A、図48B、図48C、図48Dは、図48の部分拡大図である。
ここでは、図13のインデックスネットワーク320と図20の検索条件ネットワーク410が指定され、検索条件ネットワーク410全てのインスタンスについてインデックスネットワーク320内に対応するインスタンスが存在するか否かを判定する過程を例に説明する。
なお、検索条件ネットワークのインスタンスをインデックスネットワークのインスタンスに対応付けることを「マッチングを取る」といい、その対応付けを「マッチング」という。マッチングにおいて、検索条件ネットワーク側のインスタンスを「マッチング元(インスタンス)」、インデックスネットワーク側のインスタンスを「マッチング先(インスタンス)」という。このとき、マッチング先インスタンスが参照する概念/関係は、マッチング元インスタンスが参照する概念/関係と等しいか下位概念/関係でなければならない。また、既に定まっているマッチングと整合する範囲で、新たなマッチングを追加することが可能/不可能なことを「マッチング可能/マッチング不可能」という。また、マッチング先が定められていない検索条件ネットワークのインスタンスの状態を「マッチング未定」という。
(処理S1101〜処理S1102)
検索処理部9の検索条件判定部93が、適用待ちスタック及び適用中スタックを作成する。
検索処理部9の検索条件判定部93が、適用待ちスタック及び適用中スタックを作成する。
ここで適用待ちスタックとは、マッチングの候補を記録するためのスタックである。一方、適用中スタックとは、実際に適用しているマッチングを記録するためのものである。適用中スタックに記録された対応は他の対応に対する制約となるが、適用待ちスタックに記録された対応は、あくまで適用前の候補である。
(処理S1103〜S1108)
検索条件判定部93が、検索条件ネットワーク410内でマッチングがないインスタンスについて、影響度および候補数を記録する。
検索条件判定部93が、検索条件ネットワーク410内でマッチングがないインスタンスについて、影響度および候補数を記録する。
影響度とは、当該インスタンスについてインデックスネットワークにおける対応するインスタンスが決定された場合に、どの程度、検索条件ネットワーク内で他のインスタンスに対する制約が生じるかを示す数値である。概念インスタンスの影響度は、それを関係先概念インスタンスまたは関係元インスタンスとして参照する関係インスタンスのうち、マッチング未定のものの個数である。また、関係インスタンスの影響度は、その関係先概念インスタンスまたは関係元概念インスタンスのうち、マッチング未定のものの個数である。
一方、候補数とは、検索条件ネットワークのインスタンスについて、インデックスネットワークおいてマッチング可能なマッチング先の個数である。候補数=0と、インデックスネットワークのどのインスタンスに対してもマッチング不可であることは等価である。
本実施形態の場合、まず適用中スタックにマッチングが一つも記録されていないため、検索条件ネットワーク410に含まれる全ての概念インスタンスと関係インスタンスについて候補数と影響度を求めた結果を、検索条件ネットワーク評価テーブル800 (図35(a))として記録する。候補数は、インスタンス、インデックスネットワーク、および適用中スタックを指定して処理S1200(後述する図49)を実行し、マッチング可能な候補を取得することで求められる。例えば、ここで図20の概念インスタンス「4102」(板)、図13のインデックスネットワーク320、空の適用中スタックを指定して処理1200(図49)を実行することで、マッチング可能な候補「{3202、3206}」(それぞれ板を参照)が得られるため、その要素数2を概念インスタンス「4102」の候補数として記録する。一方、検索条件ネットワーク410にて、概念インスタンス4102(板)が関係元または関係先概念インスタンスとなっている関係インスタンスは「4121」「4122」「4123」「4124」(それぞれ側板、仕上、仕上、素材を参照)の4つであるため、影響数=4が記録される。
(処理S1109〜S1110)
図35(a)の検索条件ネットワーク評価テーブル800から候補数が最小のインスタンスとしてインスタンス「4101」「4104」「4105」(それぞれエレベータ、HL加工、SUSを参照)を取得する。これらの候補数は0でなく、また影響度は全て等しい(影響度=1)ため、これら全てに関する適用可能なマッチングを処理1200(図49)を実行して取得し、適用待ちスタックにpushする。このとき、適用待ちスタックは適用待ちスタック900(図36(a))の状態となる。(適用可能なマッチングの取得方法は後で詳述する)
(処理S1111〜)
次に、適用待ちスタックが空でないため、popしてマッチング「4105−3203」を取得し、適用中スタックが空であることから、検索条件ネットワーク評価テーブル800 の記録内容をすべてクリアし、適用中スタックにマッチング「4105−3203」を加える(図37(a))。
図35(a)の検索条件ネットワーク評価テーブル800から候補数が最小のインスタンスとしてインスタンス「4101」「4104」「4105」(それぞれエレベータ、HL加工、SUSを参照)を取得する。これらの候補数は0でなく、また影響度は全て等しい(影響度=1)ため、これら全てに関する適用可能なマッチングを処理1200(図49)を実行して取得し、適用待ちスタックにpushする。このとき、適用待ちスタックは適用待ちスタック900(図36(a))の状態となる。(適用可能なマッチングの取得方法は後で詳述する)
(処理S1111〜)
次に、適用待ちスタックが空でないため、popしてマッチング「4105−3203」を取得し、適用中スタックが空であることから、検索条件ネットワーク評価テーブル800 の記録内容をすべてクリアし、適用中スタックにマッチング「4105−3203」を加える(図37(a))。
次に、処理S1103〜S1110を繰り返す。まず、適用中スタックに存在する概念/関係以外のインスタンスについて、検索条件ネットワーク評価テーブル810 (図35(b))を記録する。このとき、候補数が最小のインスタンスを取得し、その中から影響度が最大のインスタンスとして「4101」「4104」「4124」を取得し、各々を対象として処理1200(図49)を実行して得られたマッチング先を、適用待ちスタックにpushする。このとき、適用待ちスタックは適用待ちスタック910(図36(b))の状態となる。そして、適用待ちスタックが空でないため、popしてマッチング「4124−3222」を取得する。このとき、当該マッチングのマッチング元「4124」は、適用中スタック末尾のマッチングのマッチング元「4105」と異なるため、検索条件ネットワーク評価テーブル800 の記録内容をすべてクリアし、適用中スタックにマッチング「4105−3203」を加える(図37(b))。
次に、処理S1103〜S1110を繰り返す。まず、検索条件ネットワーク評価テーブル820 (図35(c))を記録する。このとき、候補数が最小のインスタンスを取得し、その中から影響度が最大のインスタンスとして「4102」を取得し、これを対象として処理1200(図49)を実行して得られたマッチング先を、適用待ちスタックにpushする。このとき、適用待ちスタックは適用待ちスタック920(図36(c))の状態となる。そして、適用待ちスタックが空でないため、popしてマッチング「4102−3202」を取得する。このとき、当該マッチングのマッチング元「4102」は、適用中スタック末尾のマッチングのマッチング元「4124」と異なるため、検索条件ネットワーク評価テーブル820 の記録内容をすべてクリアし、適用中スタックにマッチング「4102−3202」を加える(図37(c))。
以下、同様に繰り返して、適用中スタックが図37(d)の状態になった時に、検索条件ネットワーク410に含まれる全ての概念インスタンス/関係インスタンスについてマッチング先が存在すると判定され、判定結果を「真」と記録し、終了する。
次に、処理S1200から始まる図49のフローに沿って、適用可能なマッチングの取得フローについて説明する。図49A、図49Bは、図49の部分拡大図である。ここでは、インデックスネットワーク320(図13)を対象とし、適用中スタックは空であるとし、検索条件ネットワーク410のインスタンスの概念インスタンス「4102」(板)を指定して、当該概念インスタンスをマッチング元とするマッチングを取得する過程について説明する。まず、検索条件判定部93が、インデックスネットワークの要素を1つずつ取得し、指定された概念インスタンス「4102」が参照する概念「板」のインスタンスであるか否かを判定する。
ここで、あるインスタンスaがオブジェクト(概念または関係)Bのインスタンスであるかどうかは、インスタンスaの参照するオブジェクトAの上位概念(上位関係)にオブジェクトBが位置付けられるか否かで判定する。このとき、インスタンスaが参照するオブジェクトAを取得してオブジェクトBと一致するか比較し、一致しなければ、さらにオブジェクトAの上位オブジェクトを取得してオブジェクトBと比較する、という処理を、オブジェクトAの上位概念がなくなるまで繰り返すことで判定できる。
このとき、例えばインデックスネットワーク320に含まれる概念インスタンス「3201」(ギヤレスエレベータを参照)や関係インスタンス「3222」(素材を参照)などは概念「板」のインスタンスとして判定されず、概念インスタンス「3202」「3206」(それぞれ板を参照)のみが概念「板」のインスタンスに該当する。このとき、適用中マッチングは登録されていないため、各インスタンスに対するマッチングのリスト「{「4102−3202」「4102−3206」}」が得られる。
また、インデックスネットワーク320を対象とし、適用中スタックが図37(b)の状態にあるとき、検索条件ネットワークのインスタンスの概念インスタンス「4102」(板)を指定して、当該概念インスタンスをマッチング元とするマッチングを取得する過程について説明する。まず、検索条件判定部93が、インデックスネットワークの要素を1つずつ取得し、指定された概念インスタンス「4102」が参照する概念「板」のインスタンスを取得する。本実施形態の場合、概念インスタンス「3202」「3206」が取得される。次に、概念インスタンス「3202」「3206」を関係元概念インスタンスまたは関係先概念インスタンスとする関係インスタンスを取得する。この場合、概念インスタンス「3202」からは関係インスタンス「3221」「3222」「3223」「3224」が得られ、概念インスタンス「3206」からは関係インスタンス「3220」「3225」「3227」が取得される。次に、適用中スタックに登録されているマッチングから、取得した関係インスタンスのいずれかをマッチング先とするマッチングを取得する。この実施形態の場合、「4124−3222」が得られる。そこで、当該マッチング「4124−3222」と概念インスタンス「4102」を指定して処理S1300(後述する図50)を実行し、「4102−3202」がマッチング適用可能であるかどうかを取得する。この場合、処理S1300(図50)の実行結果が「真」となることから、「4102−3202」を適用可能マッチングリストの末尾に記録する。(マッチング適用可否の判定方法は後で詳述する)
次に、処理S1300から始まる図50のフローに沿って、マッチング適用可否の判定フローについて説明する。図50A、図50B、図50C、図50Dは、図50の部分拡大図である。ここでは、マッチング「4124−3222」と概念インスタンス「4102」を指定して実行した結果について説明する。
(処理S1301〜S1305)
まず、指定された概念インスタンス「4102」は、概念インスタンスであるため、指定されたマッチングのマッチング元インスタンス「4124」の関係元概念であるか否かをチェックする。検索条件ネットワーク410から、判定結果は真となる。
まず、指定された概念インスタンス「4102」は、概念インスタンスであるため、指定されたマッチングのマッチング元インスタンス「4124」の関係元概念であるか否かをチェックする。検索条件ネットワーク410から、判定結果は真となる。
(処理S1306)
次に、概念インスタンス「4102」が、関係インスタンス「3222」の関係元概念インスタンスである概念インスタンス「3202」の参照する概念「板」のインスタンスであるか、さらに上位概念のインスタンスであるかをチェックする。概念インスタンス「4102」が参照する概念は「板」であるため、判定結果は真となる。
次に、概念インスタンス「4102」が、関係インスタンス「3222」の関係元概念インスタンスである概念インスタンス「3202」の参照する概念「板」のインスタンスであるか、さらに上位概念のインスタンスであるかをチェックする。概念インスタンス「4102」が参照する概念は「板」であるため、判定結果は真となる。
(処理S1311〜S1312)
判定結果を真として、処理を終了する。
判定結果を真として、処理を終了する。
<実施形態における効果>
以上により、図18(a)検索キーワード入力画面1の検索条件入力部に入力されている内容で情報検索を行った場合は、図25の検索結果表示画面例1が検索結果として表示されることの説明を終える。ところで、同様の実施形態を持つ本実施形態を他の入力に対して実行すると、図18(b) 検索キーワード入力画面例2の検索条件入力部に入力されている内容で情報検索を行った場合は図26の検索結果表示画面例2が検索結果として表示され、図18(c) 検索キーワード入力画面例3の検索条件入力部に入力されている内容で情報検索を行った場合は、図27検索結果なし表示画面が検索結果として表示される。
以上により、図18(a)検索キーワード入力画面1の検索条件入力部に入力されている内容で情報検索を行った場合は、図25の検索結果表示画面例1が検索結果として表示されることの説明を終える。ところで、同様の実施形態を持つ本実施形態を他の入力に対して実行すると、図18(b) 検索キーワード入力画面例2の検索条件入力部に入力されている内容で情報検索を行った場合は図26の検索結果表示画面例2が検索結果として表示され、図18(c) 検索キーワード入力画面例3の検索条件入力部に入力されている内容で情報検索を行った場合は、図27検索結果なし表示画面が検索結果として表示される。
ここで本実施形態の効果を明確にするため、従来手法を用いた情報検索装置に本実施形態と同様の入力を与えて判定した結果と、本実施形態の結果とを比較する。まず、オントロジーを用いることで「下位のキーワードが含まれていれば上位のキーワードが含まれていると同様に扱う」処理が可能ではあるが、検索条件判定は個別のキーワード有無を行う従来型キーワードマッチング情報検索装置を想定する。ここで、この装置に対し、“SUSの素材で、HL加工や鏡面加工が施された側板を持つエレベータ”を意図して「エレベータ 側板 鏡面加工 HL加工 素材 SUS」と列挙されたキーワードを入力し、AND型の検索を実行する場合を考える。この結果は、検索対象ID2200の検索対象データは検索条件を満たさないものとして処理される(キーワード「素材」が付与されていないため)。一方、同様の意図を持って、「エレベータ 側板 鏡面加工 HL加工 素材 SUS」とキーワードを列挙して入力とした場合、本実施形態によれば検索対象ID「2200」の検索対象データは検索条件を満たすものとして出力される。ここで、本実施形態が対象とするデータやオントロジーの範囲で解釈すると、検索対象ID「2200」の検索対象データに付与されている「SUS」は、側板における素材の役割を担うものであり、検索対象ID「2200」の検索対象データは検索条件を満たすものとして扱われる方が適切であると言える。このことから、本実施形態の情報検索装置によれば、従来方式では「検索条件に指定されたキーワードが、あるインデックスに含まれていない」ことから検索条件を満たさないと判定されていたデータに対して、「検索条件ネットワークの概念インスタンス/関係インスタンスが、インデックスネットワークのある概念インスタンス/関係インスタンスに対応する」ことから検索条件を満たすと判定することを可能にしており、検索再現率を向上させる効果が得られると言える。
また、上記の従来型キーワードマッチング情報検索装置に対して、同様の意図の下、「エレベータ 側板 鏡面加工 HL加工 SUS」と列挙されたキーワードを入力し、AND型の検索を実行した場合を考える。この結果は、検索対象ID「2100」の検索対象データは検索条件を満たすものとして処理される(オントロジー100を利用することで、「エレベータ」というキーワードが含まれていれば「ギヤレスエレベータ」や「ギヤ式エレベータ」というキーワードが含まれていると見なされるものとする)。一方、本実施形態によれば、「エレベータ 側板 鏡面加工 HL加工 SUS」という入力を受け付けた場合でも、「エレベータ 側板 鏡面加工 HL加工 素材 SUS」という入力を受け付けた場合と同様の検索条件ネットワークが形成され、索対象ID「2100」の検索対象データは条件を満たさないものとして処理される。ここで、本実施形態が対象とするデータやオントロジーの範囲で解釈すると、検索対象ID「2100」の検索対象およびインデックスネットワーク310における「鏡面加工」は、側板に施されるものではなく、扉板に施されるものであるため、検索対象ID「2100」の検索対象データは検索条件を満たさないものとして扱われる方が適切であると言える。このことから、本実施形態の情報検索装置によれば、従来方式では「検索条件に指定されたキーワードが、あるインデックスに含まれる」ことから検索条件を満たすと判定されていたデータに対して、「検索条件ネットワークの概念インスタンス/関係インスタンスが、インデックスネットワークの概念インスタンス/関係インスタンスに対応しない」ことから検索条件を満たさないと判定することを可能にすることで、検索条件として指定されたキーワードが検索対象データに付与されたキーワードに含まれるか否かのみで判定することに起因する検索適合率・検索再現率の低下を防ぎ、従来方式よりも再現率や適合率の高い検索を可能にする。
なお以上に説明した図1の情報検索装置は、例えば、汎用のコンピュータ装置を基本ハードウエアとして用いることでも実現することが可能である。すなわち、図1の装置が備える各要素は、各要素の処理を行う指示を記述したプログラムをコンピュータに実行させることにより実現してもよい。このとき、情報分類階層管理装置は、上記のプログラムをコンピュータ装置にあらかじめインストールすることで実現してもよいし、ハードディスク、メモリ装置、光ディスク等の記憶媒体に記憶して、あるいはネットワークを介して上記のプログラムを配布して、このプログラムをコンピュータ装置に適宜インストールすることで実現してもよい。また、オントロジーDB、インデックスキーワードDB、検索対象DBは、上記のコンピュータ装置に内蔵あるいは外付けされたメモリ、ハードディスクもしくはCD−R、CD−RW、DVD−RAM、DVD−Rなどの記憶媒体などを適宜利用して実現することができる。
Claims (4)
- 複数の概念を表し階層状に接続された複数のノードと、2つのノード間を接続し、前記2つのノードに対応する概念間の関係を表す複数の方向付きのリンクとをもつ第1オントロジーと、複数の前記関係を表し階層状に接続された複数のノードを有する第2オントロジーとを表現するオントロジーデータベースと、
複数の検索対象データを記憶する検索対象データベースと、
前記検索対象データ毎にインデックスキーワードのリストを記憶するインデックスキーワードデータベースと、
利用者が検索条件として指定した検索キーワードのリストを受け付ける検索条件受付部と、
複数のキーワードを受け取り、受け取ったキーワードに対応する概念または関係を表すノードまたはリンクを前記第1オントロジーにおいて特定し、特定したノードまたはリンク間をつなぐ経路を前記第1オントロジー内のノードとリンクを辿って探索し、前記特定したノードまたはリンクを、探索により見つけた経路で接続した意味ネットワークを生成する意味ネットワーク生成部と、
前記検索条件受付部で受け付けた検索キーワードを前記キーワードとして前記意味ネットワーク生成部に与え、前記意味ネットワーク生成部で生成される意味ネットワークを検索条件ネットワークとして取得する検索条件ネットワーク生成部と、
前記検索対象データ毎に前記リストに含まれるインデックスキーワードを前記キーワードとして前記意味ネットワーク生成部に与え、前記意味ネットワーク生成部で生成される意味ネットワークをインデックスネットワークとして取得するインデックスネットワーク生成部と、
前記検索条件ネットワークと同一の構造、もしくは前記検索条件ネットワークに含まれる任意のノードまたはリンクを下位概念または下位関係を表すノードまたはリンクに置換したものと同一の構造、を含むインデックスネットワークを、前記インデックスネットワーク生成部により生成されたインデックスネットワークの中から検出する検索条件判定部と、
前記検索条件判定部で検出したインデックスネットワークに対応する検索対象データを前記検索対象データベースから取得し、取得した検索対象データを出力する検索結果出力部と、
を備えた情報検索装置。 - 前記検索条件受付部は、検索キーワードの順位指定を受け付け、
前記検索条件ネットワーク生成部は、検索キーワードの順位を前記意味ネットワーク生成部に通知し、
前記意味ネットワーク生成部は、n番目の順位のキーワードに対応するノードまたはリンクから、方向付きリンクの逆方向をたどる探索を行って、1番目〜n−1番目の順位のいずれか1つのキーワードに対応するノードまたはリンクへの経路を見つけ、この処理をnの値を1から、前記検索条件ネットワーク生成部から受け取ったキーワード数まで順次増加させながら行う
ことを特徴とする請求項1に記載の情報検索装置。 - 前記インデックスキーワードデータベースにおける前記リスト内のインデックスキーワードには順位が指定されており、
前記インデックスネットワーク生成部は、前記インデックスキーワードの順位を前記意味ネットワーク生成部に通知し、
前記意味ネットワーク生成部は、n番目の順位のキーワードに対応するノードまたはリンクから、方向付きリンクの逆方向をたどる探索を行って、1番目〜n−1番目の順位のいずれか1つのキーワードに対応するノードまたはリンクへの経路を見つけ、この処理をnの値を1から、前記インデックスネットワーク生成部から通知されたキーワード数まで順次増加させながら行う
ことを特徴とする請求項1または2に記載の情報検索装置。 - 前記オントロジーは複数の部分的オントロジーからなり、
前記意味ネットワーク生成部は、
1〜n−1番目の順位のキーワードに対応するノードまたはリンクのうち前記複数の部分的オントロジーにそれぞれ属するものの個数を利用して、前記複数の部分的オントロジーにそれぞれ探索優先順位を設定し、
前記探索において探索可能な複数のリンクが存在するときは、前記複数のリンクの接続元のノードが属する部分的オントロジーの探索優先順位に基づき、探索を優先して行うリンクを前記複数のリンクから特定し、特定したリンクから優先的に探索する
ことを特徴とする請求項2または3に記載の情報検索装置。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2010217691A JP5225350B2 (ja) | 2010-09-28 | 2010-09-28 | 情報検索装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2010217691A JP5225350B2 (ja) | 2010-09-28 | 2010-09-28 | 情報検索装置 |
Publications (2)
Publication Number | Publication Date |
---|---|
JP2012073787A JP2012073787A (ja) | 2012-04-12 |
JP5225350B2 true JP5225350B2 (ja) | 2013-07-03 |
Family
ID=46169895
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2010217691A Expired - Fee Related JP5225350B2 (ja) | 2010-09-28 | 2010-09-28 | 情報検索装置 |
Country Status (1)
Country | Link |
---|---|
JP (1) | JP5225350B2 (ja) |
Families Citing this family (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN107451164B (zh) * | 2016-06-01 | 2020-05-19 | 华为技术有限公司 | 一种语义查询的方法及装置 |
Family Cites Families (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP4547300B2 (ja) * | 2005-05-09 | 2010-09-22 | 日本電信電話株式会社 | 共通クエリグラフパターン生成装置、生成方法、生成用プログラム、およびこれらを用いた共通サブグラフ検索装置、検索方法、検索用プログラム |
-
2010
- 2010-09-28 JP JP2010217691A patent/JP5225350B2/ja not_active Expired - Fee Related
Also Published As
Publication number | Publication date |
---|---|
JP2012073787A (ja) | 2012-04-12 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
Jung | Semantic vector learning for natural language understanding | |
US9858270B2 (en) | Converting data into natural language form | |
US20170116203A1 (en) | Method of automated discovery of topic relatedness | |
JP5376163B2 (ja) | 文書管理・検索システムおよび文書の管理・検索方法 | |
US8401842B1 (en) | Phrase matching for document classification | |
US20180075161A1 (en) | Extensible automatic query language generator for semantic data | |
KR101511656B1 (ko) | 퍼스널 아이덴티티를 기술하는 데이터에 대한 액셔너블 속성의 애스클라이빙 | |
US12032915B2 (en) | Creating and interacting with data records having semantic vectors and natural language expressions produced by a machine-trained model | |
JP2009104630A (ja) | 大規模な電子的なドキュメントのコレクション(集まり)を探索するためのドキュメント関連性の決定に対する機械学習アプローチ | |
CN113254507B (zh) | 一种数据资产目录智能构建盘点方法 | |
CN108664509A (zh) | 一种即席查询的方法、装置及服务器 | |
CN116861269A (zh) | 工程领域的多源异构数据融合及分析方法 | |
Sun | A natural language interface for querying graph databases | |
US7676739B2 (en) | Methods and apparatus for knowledge base assisted annotation | |
Barbosa et al. | An approach to clustering and sequencing of textual requirements | |
Sharma et al. | Indexer++ workload-aware online index tuning with transformers and reinforcement learning | |
Artiles et al. | CUNY BLENDER TAC-KBP2011 Temporal Slot Filling System Description. | |
JP5225350B2 (ja) | 情報検索装置 | |
Martarelli et al. | How to undertake reviews of large collections of articles and establish main contributions: An ontology-based literature review approach | |
Rashid | Access methods for Big Data: current status and future directions | |
US20220156285A1 (en) | Data Tagging And Synchronisation System | |
Bobur et al. | Anomaly detection between judicial text-based documents | |
Chiarello et al. | Design and implementation of a text mining-based tool to support scoping reviews | |
US20090319505A1 (en) | Techniques for extracting authorship dates of documents | |
Hirchoua et al. | Topic hierarchies for knowledge capitalization using hierarchical Dirichlet processes in big data context |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A977 | Report on retrieval |
Free format text: JAPANESE INTERMEDIATE CODE: A971007 Effective date: 20130207 |
|
TRDD | Decision of grant or rejection written | ||
A01 | Written decision to grant a patent or to grant a registration (utility model) |
Free format text: JAPANESE INTERMEDIATE CODE: A01 Effective date: 20130215 |
|
A61 | First payment of annual fees (during grant procedure) |
Free format text: JAPANESE INTERMEDIATE CODE: A61 Effective date: 20130312 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20160322 Year of fee payment: 3 |
|
LAPS | Cancellation because of no payment of annual fees |