JP2004280349A - データ検索システムおよびデータ検索方法 - Google Patents
データ検索システムおよびデータ検索方法 Download PDFInfo
- Publication number
- JP2004280349A JP2004280349A JP2003069520A JP2003069520A JP2004280349A JP 2004280349 A JP2004280349 A JP 2004280349A JP 2003069520 A JP2003069520 A JP 2003069520A JP 2003069520 A JP2003069520 A JP 2003069520A JP 2004280349 A JP2004280349 A JP 2004280349A
- Authority
- JP
- Japan
- Prior art keywords
- metadata
- data
- search
- word
- input
- 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
Links
Images
Landscapes
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
【課題】目的とするデータやサービスを効率良く検索可能にする手段を提供する。
【解決手段】本発明のデータ検索システムは、メタデータ用データベースおよびデータ検索装置を備える。データ検索装置は、さらに、メタデータ用データベースからメタデータを読み取るためのメタデータ読み取り手段と、目的とするデータやサービスを検索するための検索文を、その検索文を構成する語毎に順次入力できるように構成された入力手段と、入力手段によって語が入力される毎に、候補となる所定単位の語のリストを生成するリスト生成手段と、生成された語のリストを提示するリスト提示手段と、入力手段により入力された検索文に基づいてメタデータを検索するメタデータ検索手段とを備える。本発明によれば、検索者は、検索語を順次入力して自然な検索文を作成するという直感的な方法で目的とするデータやサービスを発見することができる。
【選択図】図3
【解決手段】本発明のデータ検索システムは、メタデータ用データベースおよびデータ検索装置を備える。データ検索装置は、さらに、メタデータ用データベースからメタデータを読み取るためのメタデータ読み取り手段と、目的とするデータやサービスを検索するための検索文を、その検索文を構成する語毎に順次入力できるように構成された入力手段と、入力手段によって語が入力される毎に、候補となる所定単位の語のリストを生成するリスト生成手段と、生成された語のリストを提示するリスト提示手段と、入力手段により入力された検索文に基づいてメタデータを検索するメタデータ検索手段とを備える。本発明によれば、検索者は、検索語を順次入力して自然な検索文を作成するという直感的な方法で目的とするデータやサービスを発見することができる。
【選択図】図3
Description
【0001】
【発明の属する技術分野】
本発明は、データやサービスの利用者からの要求に基づいてデータ及びサービスを検索するための検索システム、および、検索方法に関する。
【0002】
【従来の技術】
例えば、データやサービスを検索する場合に、データやサービスそのものの内容から検索するのは、それらが通常バイナリデータとして表されているために困難な場合が多い。そこで、データの内容を説明する情報をメタデータとして付加して、メタデータをキーワード検索することによりデータの検索を効率的に実施しようとする試みが行われている。
【0003】
メタデータをデータの検索に利用した例が、例えば、特開2002−108892に記載されている。この文献では、メタデータの検索を自然言語処理を用いて行っているが、自然言語処理を用いる検索には、システムにかかる負荷が重くなるため迅速な検索処理ができなかったり、ユーザが入力するすべての検索語を常に正確に認識できるわけではないために、目的とするデータを検索するのに時間がかかることがあるという欠点がある。また、特開2002−373174には、検索者によって入力されたキーワードを構文解析して重要検索語を選ぶことによりデータを効率的に検索する構成が記載されているが、従来のキーワード検索と同様に、検索者によって入力された検索用文を構文解析して重要語と非重要語に分けて単語毎にキーワード検索を行うとともに、非重要語については辞書を使って検索システムが代替語で検索を行うことができる構成が記載されている。しかしながら、この従来技術においても、従来のキーワード検索と同様に、検索者によって入力された検索文中の語やその代替語として検索システムが提供する語に対応するキーワードが存在しない場合には、新たに適当な語を探して入力しなければならず、目的のデータを検索するのに手間がかかる場合があるいう問題がある。
【0004】
さらにまた、従来のシステムでは、データとサービスの組み合わせが固定されており、検索者がデータとサービスを柔軟に組み合わせて検索することはできなかった。
【0005】
【特許文献1】
特開2002−108892号公報
【特許文献2】
特開2002−373174号公報
【0006】
【発明が解決しようとする課題】
上記、従来技術の問題点に鑑み、本発明は、検索者が、目的とするデータやサービス(サービスの実体はプログラムであるので、以下ではサービスのことをプログラムともいう)を効率的に検索できるようにし、また、データとプログラムを柔軟に組み合わせた検索を可能にする検索システム、および検索方法を提供することを目的とする。
【0007】
【課題を解決するための手段】
上記目的を達成するために、本発明に係るデータ検索を行うためのデータ検索システムは、目的とするデータを検索するために、そのデータに関連付けられたメタデータの説明文を順にたどって対応するメタデータを検索するよう構成されたものであって、以下のいくつかの態様を取りうる。
【0008】
尚、以下では、単に「データ」と記載した場合には、プログラムとプログラム以外のデータのいずれか、または、それらの両方が含まれる。ここでプログラム以外のデータとは、文書データや画像データなどのデータであり、以下では、プログラムと区別するために、静的データと記載する。
【0009】
第1の態様は、データに対応するメタデータを格納するためのメタデータ格納手段と、検索処理手段とから構成され、検索処理手段は、メタデータ格納手段からメタデータの集合の少なくとも一部(第1のメタデータの集合)を読み取るためのメタデータ読み取り手段と、第1の目的とするデータを検索するための一または複数の語の並びである検索文を、その検索文を構成する語毎に順次入力するように構成された入力手段と、入力手段によって語が入力される毎に、内容説明文のうちの対応する所定単位の語を、入力された語に続く候補の語(候補となる語が存在する場合には少なくとも1以上ある)として語のリストを生成するリスト生成手段と、生成された語のリストを提示するためのリスト提示手段と、メタデータ読み取り手段により読み取られたメタデータの集合(上記第1のメタデータの集合)から、入力手段により入力された検索文に基づいて、上記第1の目的とするデータに対応するメタデータ(第1の特定メタデータ)を検索するメタデータ検索手段とを備える。
【0010】
第1の態様におけるメタデータの各々は、各データに対応付けられていて、対応するデータのインデックスと、1または複数の語の並び(列)であって対応するデータの内容を表す内容説明文と、対応するデータの型(データ型)を含む。尚、データの型とは、データがプログラムの場合には、プログラムの入力(引数)の型とプログラムの出力(返値)の型であり、静的データの場合にはデータフォーマットである。この内容説明文は、単語、連語などの語句であるところの所定の単位の語(以下、所定単位の語と記載)によって区分されている。
【0011】
第1の態様によれば、以下のような検索処理を行うことが可能となる。検索者は、入力手段を用いて、リスト提示手段により提示される語のリストから選択するか、または、直接入力することによって検索のための語(検索語)を順次入力する。リスト提示手段は、検索者によって順次入力された1または複数の語からなる検索語に応答して、内容説明文の所定単位の語を入力された語に続く候補の語としてその語のリストを検索者に提示する。検索者は、この提示された語を参照して検索語の入力を続行することができる。そして、メタデータ検索手段は、入力された検索文と内容説明文に基づいて目的とするデータに対応するメタデータを検索する。
【0012】
候補の語の決定は、例えば、内容説明文の先頭の所定単位の語から開始して、語が入力される度に、内容説明文の順次対応する所定単位の語と入力された語とを比較し、一致した語を含む内容説明文を有するメタデータのみを保持し、保持したメタデータの内容説明文について、直前に一致した所定単位の語の次の語を候補の語とすることによって行うことができる。
【0013】
上記の如く、第1の態様は、検索者が入力した語に対応する語を逐次検索者に提示するよう構成されており、また、メタデータの内容説明文はデータの提供者が自由に決めることができ、したがって、内容説明文は、検索者がその内容を直感的に理解可能な文とすることができるので、検索者は、そのような文を組み立てるという直感的な操作で効率よく目的とするデータを発見することができることになる。また、データの提供者にも、内容説明文を自由に決めることができることから、従来特定の語に限定されていた検索語を用いる場合に比べて、より自由に、提供するサービス(プログラム)の内容を記述できるという利点がある。
【0014】
尚、第1の態様は、先ず、リスト生成手段が候補の語のリストを生成し、このリストから語を選択して入力手段に入力し、この入力された語に基づいて、リスト生成手段がさらに候補の語となるリストを生成する、というように、リスト生成手段によって生成された語のリストから語を選択して入力手段に入力する構成をとることもできる。この構成によれば、全ての検索語を、リスト生成手段によって生成される語のリストから選択して入力することができるので、検索者は不正確な検索語を入力するといった無駄な作業を回避することができる。
【0015】
第2の態様は、第1の態様のデータ検索システムにおいて、内容説明文を構成する所定単位の語の少なくとも1つはデータ型を有する変数とすることができ、現在行っているデータ検索とは別に行う上記データ検索の結果の型が上記変数の型と同じである場合は上記別に行うデータ検索の結果が上記変数にマッチするとみなすよう構成されている。
【0016】
第3の態様は、第2の態様のデータ検索システムにおいて、上記変数は上記内容説明文の先頭に置かれた所定単位の語であり、上記別に行うデータ検索は現在行われているデータ検索の直前の検索であるよう構成されている。
【0017】
第4の態様は、第2の態様のデータ検索システムにおいて、上記変数は上記内容説明文の途中に置かれた所定単位の語であり、現在行われているデータ検索に対して入力手段から入力する検索文中の語が上記変数に対応する位置にある時、上記別に行うデータ検索を開始するよう構成されている。
【0018】
第5の態様は、第1の態様のデータ検索システムにおいて、内容説明文が、その先頭の所定単位の語を所定のデータ型を有する変数として表すことが可能であり、データ検索システムは、上記第1の特定メタデータを保持することができるよう構成され、入力手段は、上記第1の特定メタデータの内容説明文を入力することができるよう構成され、入力手段に上記第1の特定メタデータの内容説明文が入力された場合において、メタデータ読み取り手段は、上記保持されている第1の特定メタデータに含まれるデータ型と同じ型の変数を先頭の語とする説明文を含むメタデータの集合(第2のメタデータの集合)をメタデータ格納手段から読み取り、リスト生成手段は、上記第2のメタデータの集合を構成するメタデータの内容説明文の対応する所定単位の語を、上記第1の特定メタデータの内容説明文に続く候補の語として語のリストを生成するよう構成され、メタデータ検索手段は、上記第2のメタデータの集合から、上記入力された第1の特定メタデータの内容説明文とその後に入力手段によって入力された語とからなる検索文に基づいて、第2の目的とするデータに対応するメタデータ(第2の特定メタデータ)を検索するように構成される。
【0019】
第6の態様は、第1または5のデータ検索システムにおいて、リスト生成手段が生成する語のリストに上記変数に対応する語が含まれ、かつ、入力手段に上記変数に対応する語が入力された場合において、データ検索システムは、現在検索されているメタデータの集合を保持して現在の検索を中断し、メタデータ読み取り手段は、上記変数と同じ型のデータ型を含むメタデータの集合(第3のメタデータの集合)をメタデータ格納手段から読み取り、メタデータ検索システムは、上記第3のメタデータの集合から第3の目的とするデータに対応するメタデータ(第3の特定メタデータ)を検索し、上記第3の特定メタデータが検索された場合において、リスト生成手段は、上記変数に続く候補となる語のリストを生成するよう構成され、データ検索システムは、上記中断した検索を再開し、メタデータ検索手段は、上記保持したメタデータの集合の中から上記第1の特定メタデータを検索するよう構成される。
【0020】
上記第2、3、4、5及び6の態様によれば、変数を介してデータを柔軟に組みあわせた検索を行うことが可能になる。
【0021】
第7の態様は、第1乃至6のいずれかの態様のメタデータ検索手段が、入力手段により入力された検索文に一致する文を内容説明文とするメタデータを検索するよう構成されており、さらに、メタデータ検索手段は、検索したメタデータからインデックスを取り出すインデックス取得手段を備える。
【0022】
第7の態様によれば、入力された検索文と内容説明文との一致という負荷の軽い検索処理でメタデータの検索を行うことができ、さらに、メタデータに含まれるインデックスを取り出すことにより目的とするデータにアクセスする(すなわち、データを取得したり利用する)ことが可能となるので、データの検索を効率的に実施することができる。
【0023】
第8の態様は、メタデータを使用してデータ検索を行うためのデータの検索方法に係る発明であり、各メタデータは、各データに対応付けられていて、対応するデータのインデックスと、対応するデータの内容説明文と、対応するデータの型を含み、内容説明文は所定単位の語で区切られており、メタデータの集合をメタデータ格納手段に格納するステップと、メタデータ格納手段からメタデータの集合の少なくとも一部を読み取るステップと、目的とするデータを検索するための一または複数の語からなる検索文を、その検索文を構成する語毎に順次入力するステップと、語が入力される毎に、その順次入力された語に続く候補の語として、内容説明文のうちの対応する所定単位の語のリストを生成するステップと、生成された語のリストを提示するステップと、読み取られたメタデータの中から、入力された検索文に基づいて、目的とするデータに対応するメタデータを検索するステップとを含む。第8の態様は、第1の態様を方法に係る発明として捉えたものに相当する。
【0024】
第9の態様は、第8の態様のデータ検索方法において、内容説明文を構成する所定単位の語の少なくとも1つはデータ型を有する変数とすることができ、現在行っているデータ検索とは別に行う上記データ検索の結果の型が上記変数の型と同じである場合は上記別に行うデータ検索の結果が上記変数にマッチするとみなすよう構成されている。第9の態様は、第2の態様を方法に係る発明として捉えたものに相当する。
【0025】
第10の態様は、第9の態様のデータ検索方法において、上記変数が内容説明文の先頭に置かれた所定単位の語であり、上記別に行うデータ検索は現在行われているデータ検索の直前の検索であるよう構成されている。第10の態様は、第3の態様を方法に係る発明として捉えたものに相当する。
【0026】
第11の態様は、第9の態様のデータ検索方法において、上記変数は内容説明文の途中に置かれた所定単位の語であり、現在行われているデータ検索に対して入力手段から入力する検索文中の語が上記変数に対応する位置にある時、上記別に行うデータ検索を開始するよう構成されている。第11の態様は、第4の態様を方法に係る発明として捉えたものに相当する。
【0027】
第12の態様は、第8乃至11のいずれかの態様のデータ検索方法であって、上記メタデータを検索するステップが、入力された検索文に一致する内容説明文を含むメタデータを検索するステップと、検索したメタデータからインデックスを取り出すステップを含む。
【0028】
第13の態様は、メタデータの集合を木(メタデータ表現木)で表し、その木を利用してメタデータを検索することを特徴とするデータ検索方法であって、各メタデータは、各データに対応付けられていて、対応するデータのインデックスと、対応するデータの内容説明文と、対応するデータの型を含み、内容説明文は、少なくとも1つの所定単位の語からなる語の列であって、文頭、文中及び文末の区切りによって所定単位の語毎に区切られており、a.メタデータの集合をメタデータ格納手段に格納するステップと、b.メタデータ格納手段からメタデータの集合の少なくとも一部を読み取るステップと、c.メタデータ格納手段から読み取ったメタデータの集合をメタデータ表現木(第1のメタデータ表現木)で表すステップであって、第1のメタデータ表現木は、文頭の区切りに対応するノード(ルートノード)と、ルートノードの下流に位置し、文中または文末の区切りに対応する1または複数のノード(子ノード)と、2つのノード間を接続する辺から構成され、ルートノードから下流に向かって子ノードを順次接続する辺の各々は、各メタデータの内容説明文の先頭の所定単位の語から続く所定単位の語の各々に順次対応しており、内容説明文の文末の区切りに対応する子ノードには、その内容説明文を内容説明文とするメタデータが割り当てられることからなる、ステップと、d.第1のメタデータ表現木のルートノードから1つ下流の子ノードに向かう辺に対応する語のリストを生成するステップと、e.生成されたリストから語を選択して入力するステップと、f.ステップe.で入力された語に対応する辺をたどって1つ下流の子ノードを取得するステップと、g.ステップf.で取得した子ノードから1つ下流の子ノードに向かう辺に対応する語のリストを生成するステップと、h.第1のメタデータ表現木からメタデータが割り当てられている子ノードを取得するまで、上記ステップe.からg.を繰り返すステップとを含む。
【0029】
木構造を用いてメタデータの検索を行う第13の態様によれば、全てのメタノードの説明文を調べるのは木構造を作成する際の一度だけで済み、語のリストを作成する際に、メタデータに含まれている説明文を逐一調べる必要がないので説明文を参照する回数が減り、メタデータの効率的な検索が可能になる。
【0030】
第14の態様は、第13の態様において、メタデータが、その内容説明文の所定単位の語を所定の型を有する変数として表すことが可能であり、上記ステップd.またはg.のリストを生成するステップにおいて、上記変数に対応する語がそのリストに含まれ、かつ、上記ステップe.の語を入力するステップにおいて、その変数に対応するが入力された場合において、第13の態様におけるステップe.からh.に代えて以下のステップを実施する方法である。
【0031】
それらのステップとは、i.上記第1のメタデータ表現木において、現在の木とノードの位置を一時的に記憶する(退避する)ステップと、j.上記変数の型と同じデータの型を含むメタデータの集合(第2のメタデータの集合)を上記メタデータ格納手段から読み取って、上記第2のメタデータの集合をメタデータ表現木(第2のメタデータ表現木)で表すステップと、k.第2のメタデータ表現木のルートノードから1つ下流の子ノードに向かう辺に対応する語のリストを生成するステップと、l.生成されたリストから語を選択して入力するステップと、m.ステップl.で入力された語に対応する辺をたどって1つ下流の子ノードを取得するステップと、n.ステップm.で取得した子ノードから1つ下流の子ノードに向かう辺に対応する語のリストを生成するステップと、o.第2のメタデータ表現木から、メタデータが割り当てられている子ノードを取得するまで、上記ステップl.からn.までを繰り返すステップと、p.ステップi.で一時的に記憶した木とノードの位置を読み出す(復帰する)ステップと、上記第1のメタデータ表現木について、以下のステップq.及びr.を実行するステップである。ステップq.は、ステップp.で読み出したノードの位置から上記変数に対応する辺をたどって1つ下流の子ノードを取得するステップであり、ステップr.は、ステップq.において取得された第1のメタデータ表現木における子ノードを第13の態様におけるステップf.において取得した子ノードとして、第13の態様におけるステップg.及びh.を実施するステップである。
【0032】
第14の態様によれば、内容説明文に変数を使用することにより、データを柔軟に組みあわせた検索を行うことが可能になるだけでなく、検索者は、データの組み合わせにどのようなものがあるかを容易に知ることができる。さらに、変数の型と同じデータの型を要素として含むメタデータの中から検索するので、検索の効率が良い。
【0033】
第15の態様は、第14の態様におけるステップr.で、メタデータが割り当てられた子ノードが取得された場合に、その子ノードに割り当てられているメタデータを提示すると共に、第14の態様におけるステップo.において取得された子ノードに割り当てられたメタデータが上記変数に対応するものであることを提示するステップをさらに含む。尚、上記ステップo.において取得された子ノードに対応するメタデータの説明文に変数が含まれており、その変数に対応する語を選択して入力した場合は、上記ステップi.乃至r.を同様に繰り返して検索を行うことができる。
【0034】
【発明の実施の形態】
図1に本願発明のデータ検索システム1の構成要素の概念図を示す。データ検索システム1は、データ検索装置10とメタデータを格納するためのメタデータ用データベース20を構成要素として含み、図示のようにデータ検索装置10は、メタデータ用データベース20に通信経路aを介して接続されている。また、データ検索装置10を、データを格納するためのデータ用データデータベース30に通信経路aを介して接続することもできる。したがって、本システムを、LAN、WANなどの独立したネットワークシステムとして構成することも、LAN、WAN、またはインターネットなどの既存のネットワークシステムの一部として組み込むこともでき、通信経路aとしては、LANケーブル、無線または有線による公衆網など任意の既存の伝送手段を用いることができる。
【0035】
本明細書において、データには、上記の如く、データまたはプログラムのいずれか、または、データとプログラムの両方が含まれる。尚、データは、文字などの記号の並びであり、何らかのデータフォーマット(plain text(平文) 、Microsoft Word(登録商標)のファイル形式、JPEGファイル形式など)に従って書かれている。プログラムは、サービスを実施する関数であり、0個以上のデータ(引数)を入力とし0または1個のデータ(返値)を出力するプログラムである。データ提供者とは、データを提供する者であり、検索者とは、データを検索する者(すなわち、データ検索システム1のユーザ)である。
【0036】
データ用データベース30に格納されたデータは、それに対応するデータベース上のインデックス(データインデックスとも呼ぶ)を指定することにより取り出すことができる。例えばインデックスとして1を指定するとインデックス1に対応するデータAを、インデックスとして2を指定するとインデックス2に対応するプログラムBを取り出すことができる。データはインターネット上に分散して置かれていても良い。その場合のインデックスはURL(Uniform Resource Locator)となる。
【0037】
メタデータ用データベース20は、メタデータを格納するための格納手段である。メタデータは、図4に示すように、データ用データベース30上のインデックス、そのデータの内容説明文(以下、内容説明文を単に説明文と記載する)及び上述したデータの型から構成される。すなわち、メタデータはこれらの要素を属性としてもっており、本明細書において、メタデータがデータ型を含むとは、メタデータがそのデータ型を属性としてもっていることを意味している。図5に、メタデータの具体例を示す。説明文はデータに関連する語句として自由に記述することができ、単語などの所定単位の語で区切られている。本明細書および図面では、区切りを記号「/」で表す。どこで区切るかは、データの提供者が定めるか、または形態素解析などの手法を用いて自動的に定めても良い。
【0038】
説明文の中には型を持った変数を含めることができる。例えばXを変数として「X:HTML/を/印刷する」という説明文を書くことができるが、この場合、X:HTMLとは、変数Xが型HTMLを持つことを意味している。すなわち、「X:HTML/を/印刷する」という説明文は、「変数Xとして渡されたHTMLフォーマットのデータを印刷する」を表すことになる。このように変数を使用することによって、他のデータをこのプログラムへの入力とすることを表現することができる。すなわち、他のデータとこのプログラムを組合わせることが可能であることを(検索装置を通じて)検索者に示すことができる。
【0039】
一つのデータに対して説明文の異なるメタデータを複数登録することもできる。例えば、プリントを行うある(一つの)プログラムに対して「プリンタB/で/X:HTML/を印刷する」という説明文を持ったメタデータを登録できると同時に、「X:HTML/を/プリンタB/で/印刷する」という説明文を持ったメタデータを登録することができる。
【0040】
図8に示す検索者、データ検索装置、メタデータ用データベース間における検索の流れの概念図を参照して、本発明の1実施形態における検索の流れの概要を説明する。先ず、検索者がデータ検索装置10に検索を要求する(1.検索要求)。これに応答してデータ検索装置10は、メタデータ群(メタデータの集合)をメタデータ用データベースに要求し(2.メタデータ群要求)、メタデータ群を読み出す(3.メタデータ群返信)。データ検索装置10は、読み出したメタデータ群に基づいて候補となる語のリストを検索者に提示し(4.語のリストを提示)、検索者は語のリストの中から語を選択して入力する(5.語を選択)。以下、目的とするメタデータが検索されるまで、上記「4.語のリストを提示」と「5.語を選択」が繰り返される。検索が終了すると検索結果が検索者に提示される(7.結果の提示)。
【0041】
次に、データ及びメタデータの登録について、データとそれに対応するメタデータの登録手順の概念図である図2を参照して説明する。
【0042】
データ提供者は、データ用データベース20にデータを登録(すなわち、格納)する。これは、例えば、不図示のデータ入力装置にデータを入力し、そのデータを通信回線aを通じてデータ用データベースに登録することにより行うことができる(1.データの登録)。データのインデックスはデータ用データベース30により付与される。検索者は、データ入力装置を用いてデータ用データベース30からこのインデックスを取得することができ(2.データ用データベース上のインデックス取得)、このインデックスをデータ入力装置に入力することにより、そのインデックスに対応するデータにアクセスすることも可能である。また、データベースがインターネットなどの通信網を介して接続されている場合には、パーソナルコンピュータなどの端末からデータの登録や取得(アップロードやダウンロード)を行うことが可能である。
【0043】
次に、検索者は、不図示のメタデータ入力装置(データ入力装置と兼用してもよい)を用いて、データ用データベース30から取得したインデックスを含んだメタデータをメタデータ用データベース20に登録(格納)する(3.インデックスを含むメタデータの登録)。このインデックスによって、データとそれに対応するメタデータとが相互に関連付けられる。また、説明文はメタデータ用データベースに格納される際に、所定単位の語毎に区切られて格納されるものとする(以下では単語毎に区切られているものとする。但し、適当な任意の単位で区切ることができる)。例えば「カメラAのカタログ」が目的とするデータである場合(カメラAのカタログのデータ形式はHTML形式であるとする)、それに対応するメタデータは「カメラA/の/カタログ」(/は区切り記号)という説明文とHTMLというデータの型、および、「カメラAのカタログ」のデータのデータ用データベースにおけるインデックスを含んでいる。
【0044】
次にメタデータの木構造であるメタデータ表現木(以下では、単に「木」とも記載する)について図6を参照して説明する。本実施形態では、登録されたメタデータの集合は、図6に例示するような木で表される。図6に示す木において、N1乃至N16の参照符号で示す○部がノードであり、ノード間を結ぶ線が辺である。N1がルートノードでり、その他のノード(N2〜N16)は子ノードである。メタデータを木構造形式で表すのは、メタデータの説明文を逐次参照して検索語と比較する場合に比べて検索を効率良く実施することができるからである。木において、木の辺(枝)にはラベルがついており、そのラベルは説明文を構成する区切られた語に対応する。各説明文は木のルートノードからある子ノードに至るまでのパスに対応する。例えば「カメラA/の/カタログ」という説明文は、ルートノードから「カメラA」というラベルを持った辺、「の」というラベルを持った辺、「カタログ」というラベルを持った辺、から構成されるパスとなる(図6では、ノードN1、N2、N3、N4を接続する辺からなるパスである)。
【0045】
木のノードにはメタデータの集合(空集合を含む)が割り当てられている。ノードの要素であるメタデータの説明文はルートノードからそのノードまでのパスを構成する辺のラベルを並べた文となる。ルートノードは、説明文の文頭の区切りに対応しており、子ノードは文中及び文末の区切りに対応する。すなわち、上記「カメラA/の/カタログ」という説明文の例をノードと対応させて書くと、「/カメラA/の/カタログ/」となり、この場合は、カメラAの前の「/」が文頭の区切りであり、カタログの直後の「/」が文末の区切りである。文末の区切りに対応する子ノード(説明文の文末に対応するノード)に関連付けられた集合は1つのメタデータを要素とする集合である。図6のノードN4には、2つのメタデータが割り当てられているが、それらは、例えば、「カメラAの詳しいカタログデータ」、「カメラAの簡単なカタログデータ」を表す2つのデータにそれぞれ対応するメタデータ(メタデータ1−(1)、1−(2))である。
【0046】
例えば、ルートノードからある子ノードまでのパスを構成する辺のラベルがルートノードから順に「カメラA」、「の」、「カタログ」である場合には、その子ノードに割り当てられた集合の要素は「カメラA/の/カタログ」を説明文として持つメタデータとなる。すなわち、そのノードまでのパスによって表される説明文を説明文とするメタデータが存在する場合に、そのノードにはそのメタデータが割り当てられており、そのノードまでのパスによって表される説明文を説明文とするメタデータが存在しない場合には、そのノードにはメタデータは割り当てられていない(空集合)ことになる。
【0047】
図6では、文末の区切りに対応するノードN4、N5、N7、N12、N14及びN16は、それぞれ、「カメラA/の/カタログ」、「カメラA/の/マニュアル」、「カメラA/を/買う」、「プリンタB/で/X:PDF/を/印刷する」、「プリンタB/の/カタログ」、「プリンタB/の/カタログ/を/請求する」という説明文を持つメタデータを要素として持つ。それ以外のノードには空集合が対応付けられている。
【0048】
本実施形態では、木は、データ検索装置10によって生成されるが、データ検索装置10とは別個に設けられた手段によって生成するようにしてもよい。
【0049】
以下、データ検索装置10による木の生成処理について図11及び図12のフローチャートを参照して説明する。()内の数字は、図面中の処理ステップの番号を表す。
【0050】
先ず、データ検索装置10は、メタデータ用データベース20からメタデータの集合を取得する(1110)。次にルートノードのみの木を作成する(1120)。次に、取得した集合にメタデータが残っているか否かを判断し(1130)、残っている場合には、集合からメタデータを取り出して(1140)、メタデータの説明文からパス(パスとは枝分かれのない木をいう)を作成する(1150)。パスの各ノードは語の(文頭、文末を含む)区切りに対応し、パスの辺は説明文の語をラベルとして持つ。ここで、文末に対応するノードに関連付けられた集合はメタデータを要素とする集合であり、その他のノードには空集合が対応付けられている。ステップ1150に続いて、作成したパスと木を合成する(ステップ1160)。
【0051】
ステップ1160におけるパスと木の合成処理の詳細を図12を参照して説明する。先ず、パスのルートと木のルートが同一となるように二つのパスを合成する(ステップ1210)。その際、同じラベルを持つ辺は同じ辺となるようにする。次に、それぞれのノードに関連付けられた集合を合成する(ステップ1220)。この合成は、例えば以下のような擬似コードによって行うことができる。
【0052】
【表1】
【0053】
次に、図11のステップ1130に戻り、取得した集合にメタデータが残っている場合には、ステップ1140〜1160の処理を繰り返すが、メタデータが残っていない場合、すなわち、全てのメタデータが木に組み込まれた場合には、木の生成処理を終了する。
【0054】
次に、上記のようなメタデータ表現木を利用したデータの検索処理の概要について、データ検索装置10の構成をより具体的に示す図3を参照して説明する。また、データ検索装置10によって検索者に提示される検索情報の例を図7に示す。
【0055】
図3に示す本実施形態によるデータ検索装置10は、ユーザインターフェース部(ユーザI/F部)100と検索処理部200から構成され、ユーザI/F部100は、入力部120、リスト提示部140、検索結果提示部160及び検索画面180を備えている。検索者は、検索画面180を介して入力部120に語を入力する。検索処理部200は、さらに、入力部120を介して検索者により入力された語に応答して、続く語の候補のリストを生成するリスト生成部220と、メタデータ検索部230を備えている。リスト生成部220で生成された語のリストがリスト提示部140に送られ、リスト提示部140からの語のリストが検索画面180上に表示される。
【0056】
本実施形態では、メタデータ検索部230は、さらに、メタデータの集合をメタデータ用データベースから読み取るためのメタデータ読み取り部236、読み取ったメタデータの集合から木を生成する木生成部232、木生成部232により作成された木を用いてメタデータを検索する処理(木のノードをたどるなどの処理)を行うメタデータ検索エンジン234、木及びノード位置を一時的に記憶するための木格納部238を備えている。尚、この木格納部238はスタック構造であるのが好ましい。データ検索装置10は、さらに、各構成部の動作の制御及び構成部間のインターフェースの管理等の処理を行う不図示の制御部を備えており、さらにまた、メタデータ検索部230によって検索されたメタデータに含まれるインデックスから対応するデータを利用または取得するためのデータ取得部300を備えることもできる。データ取得部300には、メタデータに含まれるデータのインデックスを取得する不図示のインデックス取得手段が含まれる。データ検索装置10からの検索者への提示は、全て検索画面180への表示により行われ、検索結果もまた検索結果提示部160を介して検索画面180上に表示されるものとする。
【0057】
上記のように構成されたデータ検索装置10は木のルートから開始して一ずつ辺の候補のメニュー、すなわち、辺に付けられたラベルを表す語のリストからなるメニューをリスト提示部140を介して検索者に提示する。検索者はそのリストから語を選んで入力部120に入力していくことで目的とするデータに対応するメタデータを得ることができる。例えば、検索者がカメラAのカタログが欲しいときには、検索者は、提示されたリストから、「カメラA」、「の」、「カタログ」と順に語を選んでいくことで目的のデータに対応するメタデータにたどり着くことができる。
【0058】
語を直接入力または選択して入力するための具体的な手段については図示していないが、例えば、検索者は、従来の入力手段であるキーボート、マウス、またはタッチパネルなどを使用して検索画面180上から直接入力または選択して入力を行うことができる。ここで、提示される検索結果はメタデータの集合であり、各メタデータの説明文と少なくともデータのインデックスが表示される。メタデータには、データ用データベース上のデータのインデックスが含まれているので、データ取得部300は、特定されたメタデータのインデックスから、そのインデックスで指定されるデータをデータ用データベースから取り出すことができる。
【0059】
リスト生成部220は、検索者に提示する語が変数(Xとする)の場合には「他のデータを検索」という項目をメニューに追加して、リスト提示部140を介して検索者に提示する。これにより、検索者には、現在検索されているメタデータに対応するデータ(プログラム)を他のデータと組みあわせる(つまり、現在検索されているプログラムに入力できる)ことができるということがわかる。検索処理部200は、検索者が「他のデータを検索」という項目を選んで入力部120に入力した場合には現在の検索処理を一旦中断し、新規にメタデータの検索を開始する。ただし、新規の検索では変数Xの型に当てはまるメタデータのみを検索の対象とする。つまり、データが静的データの場合にはXと同じ型をデータ型として含むメタデータのみを検索の対象とし、プログラムの場合にはXと同じ出力の型をデータ型として含むメタデータのみを検索の対象とする。この場合、検索処理部200は、変数Xと同じデータ型を含む(すなわち、変数Xと同じ型のデータに対応する)メタデータの集合をメタデータデータベース20から読み出して、そのメタデータの集合からなる木を新たに生成し、この木を利用して検索を実施する。尚、変数は複数あってもよく(すなわち、1つのノードから下流のノードに向かう複数の辺にそれぞれ変数が付けられていてもよく)、この場合には、それぞれの変数と同じ型を含むメタデータをメタデータ用データベース20から読み出し、以下同様に木を生成して検索が行われる。新たに生成した木を利用した検索が終了したら中断した検索処理、すなわち、元の木に戻って検索を再開する。
【0060】
このように、変数Xを利用することにより、ある説明文を持つメタデータに対応するデータと、他の説明文を持つメタデータに対応するデータの組合せ検索が可能となり、さらに変数Xに型を持たせることにより、組み合わせることができないデータ同士を組み合わせるという無駄な処理を省くことができる。例えば、HTMLフォーマットの表示のみをサポートしているアプリケーションにPDFフォーマットのデータを渡すことがなく、プリンタで印刷を行うプログラムにプリンタがサポートしていない形式の画像データ等を印刷させるようなこともなくなる。
【0061】
リスト生成部220がリスト提示部140を介して提供する語のリストの中に適切な語がなかった場合には、一語ずつ語を遡って検索をやり直すこともできる。この場合、検索者は、例えば、検索画面180の「戻る」というアイコン(図7)をクリックすることによって1語前の語の表示状態に戻ることができる。
【0062】
次に、図9〜15のフローチャートを参照して、本発明の1実施形態の検索システムによる検索の処理の流れをより具体的に説明する。尚、()内の数字は、図面に記載した処理ステップの番号である。
【0063】
以下では、検索者は、リスト生成部220によって生成されて、リスト提示部140を介して検索画面180に表示された語のリストから語を選択して入力するものとする。先ず、図9のステップ910で、検索処理部200が(具体的には、不図示の制御部による指示にしたがってメタデータ読み取り部236が)、メタデータ用データベースからメタデータを取得する際にフィルタを設定する。本実施形態のフィルタは、上記のようにフィルタリングを行わない「フィルタ無し」とする設定、すなわち、すべてのメタデータを通す設定(第1のフィルタ設定)、特定のデータの型を含むメタデータのみを通す設定であって、静的データの場合には、その特定のデータフォーマットのもののみを通し、プログラムの場合には、出力の型がその特定の型であるもののみを通す設定(第2のフィルタ設定)、説明文の先頭の語が変数であって、かつ、その変数の型が特定のデータ型であるメタデータのみを通す設定(第3のフィルタ設定)、の3通りに設定することができる。ステップ910では、メタデータ用データベースにあるすべてのメタデータを取得するために第1のフィルタ設定にする。
【0064】
次に、データ検索装置10は、図9のステップ920で示す検索処理を開始する。検索処理の処理手順は、図10のフローチャートにより詳しく示されている。
【0065】
検索処理部200のメタデータ読み取り部236は、上述のいずれかに適宜設定されたフィルタを通過するメタデータのみを取得する(1010)。
【0066】
次に、木生成部232が、取得したメタデータの集合から木を生成する(1020)。検索処理部200は、生成された木のルートノードに移動する(1030)。リスト生成部220は、1つ下流の子ノードに向かう辺に付されたラベル、すなわち、説明文の先頭の語のリストからなるメニューを作成し、リスト提示部140を介してそのメニューを検索者に提示する(1040)。検索者は、入力部120に、提示されたリストから所望の語(項目)を選択して入力する(1050)。尚、ステップ1040におけるメニューの作成及び提示処理については、図13を参照して後でより詳しく説明する。
【0067】
データ検索装置10は、図10の1060における入力の処理において、検索者によって入力された語に応答して、検索結果を表示したり、入力された語に続く候補となる語のリストからなるメニューを検索者に提示するなどの処理を行う。この入力の処理については、図14を参照して後でより詳しく説明する。
【0068】
ステップ1070において検索処理部200は、検索の終了を確認すると、検索画面180上に検索結果を表示する(1080)が、検索がまだ終了していない場合には、ステップ1040に戻って処理を続行する。
【0069】
次に図13を参照してデータ検索装置10によるメニューの作成および提示処理について説明する。まず、リスト生成部220は、現在のノードから下流にある子ノードへの辺のラベルを項目とするメニューを作成する。ラベルが変数の場合には、「他のデータの検索」という項目をメニューに追加して、リスト提示部140を介して検索画面180に表示する(1310)。
【0070】
次に、検索処理部200(のメタデータ検索エンジン234)は、現在のノードにメタデータが割り当てられているかどうかを判断する(1320)。現在のノードにメタデータが割り当てられている場合には、リスト生成部220は、「結果を表示」と「結果を利用して検索を続ける」という項目をメニューに追加し(1330)、リスト提示部140は、検索者にそのメニューを提示する(1340)。現在のノードにメタデータが割り当てられていない場合には、検索処理部10は、ステップ1330をスキップしてステップ1340に進み、ステップ1340で作成したメニューを提示する。ステップ1310を実施した後、「メニューの作成及び提示処理」を抜ける。
【0071】
次に、図14を参照してデータ検索装置10による入力の処理について説明する。
【0072】
検索処理部200は、図10のステップ1050のメニュー項目の選択入力において入力部120に検索者によって選択され入力された項目(語)が、図13のステップ1330においてリスト生成部22により作成された「結果を表示」か「結果を利用して検索を続ける」であるか否かを判断し(1410、1420)、「結果を表示」が入力された場合には、検索結果を検索画面180上に表示し、検索を終了(具体的には、検索終了フラグをセットする)して(1460)入力の処理を抜ける。尚、ステップ1460において、メタデータが割り当てられているノードが取得されている場合に、さらに検索を継続するか否かを検索者に提示し、検索者が検索を終了する旨の指示を出した場合は検索を終了し、検索者が検索を継続する旨の指示を出した場合には、さらに、そのノードに割り当てられたメタデータの説明文を要素として含む説明文を説明文とするメタデータについて検索処理(図6では、ノードN14のさらに下流のノードをたどる処理に対応)を実施するようにすることもできる。
【0073】
検索処理部200は、検索者によって入力された項目が「結果を利用して検索を続ける」の場合には、現在のノードに割り当てられているメタデータを不図示の記憶部(メモリ)に記憶する(1430)。メタデータ読み取り部236は、記憶したメタデータに含まれるデータの型(静的データの場合はその値の型であり、プログラムの場合は返値、すなわち出力の型である)と同じ型の変数を説明文の先頭に持つもののみを通すフィルタを設定し(すなわち、第3のフィルタ設定を行い)(1440)、このフィルタを通過するメタデータのみを取得する。この取得したメタデータについて、上述した図10に示す検索処理を実施し(1450)、検索終了フラグをセットして(1460)、入力の処理を抜ける。
【0074】
検索処理部200は、検索者によって入力された項目が「結果を表示」および「結果を利用して検索を続ける」のいずれでもない場合には、以下で説明するラベル選択処理を実施し(1470)、その後、入力の処理を抜ける。
【0075】
このラベル選択処理について図15のフローチャートを参照して説明する。先ず、検索処理部200は、「他のデータを検索」という項目が検索者によって選択されたか否かを判断し(1510)、選択されなかった場合には、他の選択された項目に対応する辺をたどって子ノードに移動する(1590)。その後、ラベル選択処理を抜ける。
【0076】
「他のデータを検索」という項目が選択された場合には、検索処理部200は、子ノードへの辺のラベルとなっている変数の型(型は複数でもよい)を不図示の記憶部(メモリ)に記憶し(1520)、現在の木とノードの位置を木格納部238に退避し(1530)、入れ子になった別の検索を行ってその結果を取り込む。
【0077】
すなわち、検索処理部200のメタデータ読み取り部236は、ステップ1520で記憶した変数の型と同じデータの型を含むメタデータのみを通すフィルタを設定し(すなわち、上記第2のフィルタ設定を行い)(1540)、このフィルタを通過するメタデータのみを取得する。この取得したメタデータについて上述した図10に示す検索処理が行われる(1550)。次に、検索処理部200は、検索処理で得られた検索結果(メタデータ)を不図示の記憶部(メモリ)に記憶し(1560)、ステップ1530で退避した木とノードの位置を木格納部238から取り出すことにより、入れ子の外側の検索へ復帰する(1570)。この復帰処理によって、退避前の木のノード位置に戻ることができる。そして、復帰した木のノードから上記変数をラベルとする辺をたどって子ノードに移動する(1580)。すなわち、ステップ1560で記憶した検索結果において示されるメタデータに含まれているデータの型と同じ型を持つ辺をたどって子ノードに移動する。上記変数には、ステップ1560で検索されたメタデータの説明文が対応付けられる。ステップ1580を実施した後、ラベル選択処理を抜ける。
【0078】
次に、データとメタデータをデータベースに登録する具体的な手順と、上記検索処理に従った検索手順の具体例を説明する。
【0079】
以下の例では、データはインターネット上のデータベースに格納されるものとし、対応するメタデータは、インターネット上の別のデータベースに格納されるものとするが、データとそれに対応するメタデータを同一のデータベースに格納するようにしてもよい。また、メタデータは、データのインデックス、説明文、データの型から構成されているものとする。
【0080】
先ず、データの登録の手順の具体例を説明する。以下で、URL1、URL2、URL3、URL4はデータのインデックスであり、それぞれ異なる4つのある特定のURL(Uniform Resource Locator)を表している。また、PDF、DOC、HTML、VOIDはデータの型であり、PDFはPortable Document Formatの略称でAdobe Acrobat(登録商標)で用いられるファイルフォーマットである。DOCはMicrosoft Word(登録商標)で用いられるファイルフォーマットであり、HTMLは、Hyper Text Markup Languageの略称でWebページを記述するための言語フォーマット、VOIDとはプログラムの入力または返値(出力)の型であり、入力がVOID型の場合はプログラムが入力を持たず、出力がVOID型の場合はプログラムは返値(出力)を持たない。
【0081】
以下の手順1)〜11)は、データ提供者が行うが、これは、例えば、所定のデータ入力端末を操作することによって行うことができる。
1)カメラAのカタログ(PDF形式のデータ)を URL1 に置く。
2)URL1、「カメラA/の/カタログ」、PDF形式、というメタデータをメタデータ用データベースに格納する。
3)カメラAのマニュアル(DOC形式のデータ)をURL2に置く。
4)URL2、「カメラA/の/マニュアル」、DOC形式、というメタデータをメタデータ用データベースに格納する。
5)カメラAのオンラインショップ(プログラム)をURL3に置く。
【0082】
6)URL3、「カメラA/を/販売する店」、HTML形式、というメタデータをメタデータ用データベースに格納する。
7)プリンタBで印刷するプログラムをURL4に置く。
8)URL4、「プリンタB/で/X:PDF/を/印刷する」、入力 PDF、出力VOID、というメタデータをメタデータ用データベースに格納する。ここで、入力 PDF、出力VOIDとは、このメタデータに対応するデータが、PDFファイル形式のデータを入力とし、返値を持たない(すなわち値を返さない)プログラムであることを意味する。
9)URL4、「X:PDF/を/印刷する」、入力PDF、出力VOID、というメタデータをメタデータ用データベースに格納する。
10)プリンタBのマニュアル(PDF形式のデータ)をURL5に置く。
11)URL5、「プリンタB/の/マニュアル」、PDF形式、というメタデータをメタデータ用データベースに格納する。
【0083】
以上の手順により、「カメラAのカタログ」、「カメラAのマニュアル」、「カメラAのオンラインショップ」、「プリンタBのマニュアル」の静的データがデータ用データベースのURL1、URL2、URL3、URL5で特定される領域に、「プリンタBで印刷する」というプログラムが、データ用データベース30のURL4で特定される領域にそれぞれ格納され、それらに対応するメタデータが、メタデータ用データベース20の所定の領域に格納される。尚、この例では、「プリンタBで印刷するプログラム」というデータに対して、「プリンタB/で/X:PDF/を/印刷する」と「X:PDF/を/印刷する」という説明文を含む2つのメタデータが登録されている。
【0084】
以下、上記のようにデータおよびメタデータが登録されている状態で、目的とするデータに対応するメタデータを検索する手順の具体例を2つ説明する。
「検索手順例1」
これは、検索者が「カメラAのカタログを印刷する」というプログラムを検索する場合の手順である。この手順において検索画面180により、検索者に表示される画面情報の概略を図7に示す。図7では、「カメラAのカタログを印刷する」というプログラム(サービス)に対応するメタデータを検索して表示するまでの画面表示をa〜hに例示している。尚、テキスト入力ボックスは、検索者が検索語を入力するためのボックスであるが、オプションであり必要な場合に設けることができる。
【0085】
1)検索者が、データ検索装置10のユーザI/F部を介して(例えば、検索画面に表示された不図示の開始ボタンをクリックすることにより)データ検索装置10に検索開始の指示を出すことにより、検索が開始される。
2)データ検索装置10は、メタデータ用データベース20からメタデータをすべて取得する。
3)データ検索装置10は、メタデータの説明文から先に説明した木を作成する。
4)データ検索装置10は、木のルートノードに移動して、ルートノードから出ている辺についているラベルを項目とするリストを作り、検索者にメニューとして提示する(図7のa)。
5)検索者は提示されたメニューから「カメラA」を選ぶ。
【0086】
6)データ検索装置10は、「カメラA」という語のラベルがついた辺をたどって、次のノードにたどり着く。
7)データ検索装置10は、現在のノードの子ノードへの辺を調べ、それらの辺についたラベル(語)を項目とするリストを作成する。この例の場合「の」と「を」という語の項目からなるリストとなる。
8)データ検索装置10は、生成したリストをメニューとして検索者に提示する(図7のb)。
9)検索者は提示されたメニューから「の」を選ぶ。
10)データ検索装置10は、現在保持しているメタデータの説明文の3個目の語のリストからなるメニューを生成する。この例の場合「マニュアル」と「カタログ」という語の項目からなるリストとなる(図7のc)
11)検索者は「カタログ」を選ぶ。
12)データ検索装置10は、「カタログ」というラベルがついた辺をたどって子ノードへ移動する。
13)データ検索装置10は、到達したノードがメタデータを持っている(すなわち、そのノードにメタデータが割り当てられている)ことからここが説明文の終わりであり得ることを検知し、「結果を表示」という項目を持つメニューを生成する。この場合、到達したノードには、「カメラA/の/カタログ」という説明文を有するメタデータが割り当てられている。なお、この例では到達したところのメタデータを持っているノード(図6で言えばノードN4)は木の末端のノードであって、説明文は必ずここで終わる。しかし、図6のノードN14のように、そのようなノードで終わっている説明文とその先へ続く説明文が重なっていて、検索者が選択するようになっている場合もあることに注意されたい。上で、「説明文の終わりであり得る」と記載しているのはその意味である。
14)またデータ検索装置10は、そのメタデータに含まれるデータの型(プログラムの出力の型)がVOID型でないこと、すなわち、そのデータ(プログラム)が値を返すものであることを検知し、変数Xを説明文の先頭に持つメタデータがメタデータ用データベースに存在する場合には「結果を利用して検索を続ける」という項目をメニューに付け加える。存在しない場合には、「結果を利用して検索を続ける」という項目をメニューに付け加えることはせず、以下の手順をスキップし、検索画面180に対応するデータが存在しない旨を表示する。
15)データ検索装置10は、作成したメニューを検索者に提示する(図7のd)。
【0087】
16)検索者は「結果を利用して検索を続ける」を選ぶ。尚、ここで、検索者が「結果を表示」を選択した場合には、検索画面には、上記手順13)で到達したノードに割り当てられているメタデータが表示されることになる。
17)データ検索装置10は、現在のノードに割り当てられているメタデータ(これは、「カメラA/の/カタログ」という説明文を有する)を記憶し、この検索結果を使って以下の様にして次の検索を行う。
18)データ検索装置10は、記憶したメタデータに記載されたデータの型を調べ、その型の変数を説明文の先頭に持つメタデータをメタデータ用データベースから取得して、上述した木を作る。直前の検索結果のメタデータにより、「カメラAのカタログ」の型がPDFであることが示されているとする。この場合、変数の型としてPDFを選ぶ。この例の場合、PDFを型とする変数を先頭に持つ説明文は「X:PDF/を/印刷する」だけである。このようにして作成した木のルートに付いている唯一の辺X:PDFは当然直前の検索結果にマッチするので、データ検索装置10はこの辺をたどって次のノードへ進む。
19)当該次のノード上でデータ検索装置10はそこに付いている辺を調べ、それらのラベルとなっている語のリストを生成し、メニューに加える。この例では「を」となる(図7のe)。
20)データ検索装置10は、検索者が続く語として「を」を選んだ場合には、「カメラA/の/カタログ」という説明文を持つ上記手順17)で記憶したメタデータに対応するデータの型が変数Xと同じ型であることを記憶する。またデータ検索装置10は、「を」をラベルとして持つ辺をたどって次の子ノードに移動する。
【0088】
21)手順20で移動した現在の子ノードから次の子ノードへの辺を調べ、それらのラベルを項目とするリストを作成する。この例ではリストの項目は「印刷する」となる(図7のf)。
22)データ検索装置10は、生成したリストをメニューとして検索者に提示する。
23)検索者は提示されたメニューから「印刷する」を選ぶ。
24)データ検索装置は「印刷する」というラベルがついた辺をたどって次の子ノードへ移動する。
25)データ検索装置10は、メタデータの説明文の終わりを検知し、「結果を表示」を項目として持つメニューを生成する。これ以上たどる辺がないので、データ検索装置10は他の項目をメニューに付け加えることはしない。
【0089】
26)データ検索装置10は生成したメニューを検索者に提示する。(図7のg)
27)検索者は「結果を表示」を選ぶ。
28)データ検索装置10は現在のノードが持つメタデータを検索者に提示する。また、上記手順17)で記憶したメタデータがXに対応するものである旨の注釈も併せて検索者に提示する(図7のh)。この時点で、検索者は、メタデータに含まれるインデックスからデータ取得部300を介して目的とするプログラムを利用または取得することができることになる。
【0090】
「検索手順例2」
これは、検索者が、「プリンタBでカメラAのカタログを印刷する」という、プログラムと静的データの組み合わせを検索する場合の手順である。尚、検索手順例1の手順1)〜4)までは、本手順においても同じである。
1)〜4)検索手順例1と同様。
5)検索者は提示されたメニューから「プリンタB」を選ぶ。
【0091】
6)データ検索装置10は、「プリンタB」というラベルがついている辺をたどって、次の子のノードにたどり着く。
7)データ検索装置10は、手順6)で到達した現在の子ノードから次の子ノードへの辺を調べ、それらのラベルとなっている語のリストを生成する。この例の場合「で」と「の」という語の項目からなるリストとなる。
8)データ検索装置10は生成したリストを検索者にメニューとして提示する。
9)検索者は提示されたメニューから「で」を選ぶ。
10)データ検索装置10は、「で」とついたラベルをたどって、子ノードへ移動する。
【0092】
11)データ検索装置10は、手順10)で移動した現在の子ノードから次の子ノードへの辺を調べ、それらのラベルとなっている語のリストを作成する。この例では、「で」の次に候補となる語が変数Xなので「他のデータを検索」がリストの項目となる。
12)データ検索装置10は、生成したリストのメニューを検索者に提示する。
13)検索者は提示されたメニューから「他のデータを検索」を選ぶ。
14)データ検索装置10は、木と現在のノードの位置を退避し、以下のように新たな検索(これまで行ってきた検索に対して入れ子になった検索)を開始する。
15)変数Xの型がPDFであるので、データ検索装置10は、静的データのデータ型およびプログラムの出力の型がPDFであるメタデータをメタデータ用データベースから取得して新たに木を作成する。
【0093】
16)データ検索装置10は、手順15)で作成した木のルートから出ている辺を調べ、それらのラベルとなっている語のリストを作成する。この例の場合は、PDFのデータ型を含むメタデータの説明文の先頭の語は、「カメラA」と「プリンタB」であるので、「カメラA」と「プリンタB」という語の項目からなるリストとなる。
17)データ検索装置10は、生成したリストをメニューとして検索者に提示する。
18)検索者はメニューから「カメラA」を選ぶ。
19)データ検索装置10は、「カメラA」をラベルとする辺をたどって子ノードへ移動する。
20)データ検索装置10は、現在のノードから子ノードへの辺を調べ、それらのラベルとなっている語のリストを生成して、それを検索者に提示する。
【0094】
21)検索者は「の」に続き「カタログ」を選ぶ。
22)データ検索装置10は、メタデータの説明文の終わりを検知し、このメタデータを記憶すると共に、このメタデータに対応するデータの型はXの型と同じであることを記憶しておく。
23)データ検索装置10は入れ子の内側の検索を終了し、退避した木と現在のノードへ復帰する。
24)入れ子の内側の検索結果は復帰した現在のノードから出ているところの変数Xが付いている辺にマッチするので、データ検索装置10は当該辺をたどって子ノードに移動し、その子ノードから出ている子ノードへの辺を調べ、それらのラベルとなっている語のリストを生成し、検索者にメニューとして提示する。今の例では、語のリストとして「を」を生成して次の手順25)に進むが、移動した子ノードが現在たどっている説明文の文末に対応するノードではない場合には、その文末に対応するノードに到達するまで、次の子ノードを調べて、語のリストを生成し、メニューとして提示するという上記処理が繰り返される。これは、手順27)においても同様である。
25)検索者は「を」に続いて「印刷する」を選ぶ。
【0095】
26)データ検索装置10は「印刷する」というラベルを持つ辺をたどって子ノードへ移動する。
27)データ検索装置10は、手順26)で移動した子ノードにメタデータが割り当てられていることを検知し、「結果を表示」という項目を持つリストを生成し、検索者にメニューとして提示する。
28)検索者は「結果を表示」を選ぶ。
29)データ検索装置10はノードに割り当てられているメタデータを検索者に提示する。また手順22)で記憶したメタデータがXに対応するものである(すなわち、メタデータに対応するデータの型がXの型と同じである)旨の注釈も併せて提示する。
【0096】
尚、検索されたメタデータに複数の変数が含まれていた場合には、その各変数とメタデータの対応関係も表示する。例えば、検索されたメタデータの説明文が「プリンタB/で/X:PDF/と/Y:PDF/を/印刷する」であり、「カメラA/の/カタログ」、「カメラA/の/仕様」という説明文がそれぞれ変数X、Yに対応付けられている場合には、「プリンタB/で/X:PDF/と/Y:PDF/を/印刷する」というメタデータとと共に、変数X、Yにそれぞれ「カメラA/の/カタログ」、「カメラA/の/仕様」という説明文を持つメタデータが対応することも表示される。
【0097】
1実施形態におけるデータ検索装置10の動作を説明したが、以下のように動作するようデータ検索装置10を構成することもできる。
【0098】
データ検索装置10は、語のリストを検索者に提示する際、その並びの順番を適切に変更するようにしてもよい。具体的な方法としては、データ検索装置10が、入力された語及びその頻度などの検索履歴を保持しておき、入力された頻度の高い語の順にメニューの先頭から配置することなどが考えられる。このようにすれば、検索者の検索効率の向上を図ることができる。
【0099】
検索装置10は、語の同義性を内蔵の辞書に記載しておき、検索者に提示するリストに同じ意味の語を追加するようにしてもよい。例えば、「印刷する」は、「プリントする」と同義であるので、これら2つの語をリストに含めることができ、これにより、検索者は、「印刷する」または「プリントする」のいずれを選択した場合でも同じプログラムを検索することができるので、より簡単かつ迅速に目的とするプログラムを発見することできるようになる。
【0100】
検索装置10は、語の意味の包含関係を内蔵する辞書に登録し、包含関係にある語を、検索者に提示する語のリストに追加するという機能を有するものであってもよい。例としては、予め、「カメラA(具体的なカメラの機種名)はカメラ(一般名詞)に含まれる」とデータ検索装置10内の辞書に記載しておく。この場合、「カメラA」が語のリストにある場合には「カメラ」も提示する語のリストに含めるようにし、また、検索者が最初に入力する語が「カメラ」であったならば「カメラA」を説明文の先頭に持つメタデータをメタデータ用データベースから取得するようにしてもよい。
【0101】
検索装置10のユーザI/F部に含まれる入力部は、検索者が語をメニューから選ぶ代りに、検索者が語を直接入力できる構成であってもよく、また、メニューからの選択と直接入力のいずれかを選択して入力できる構成であってもよい。また、入力部が後者のように構成されている場合において、検索装置10は、検索者に提示する語の候補の数が多いときに、検索者が語を直接入力するように入力部に指示するよう構成されたものであってもよい。直接入力は、例えば図7に示すテキスト入力ボックスに検索語を入力し、「OK」をクリックすることにより行うことができる。
【0102】
検索装置10は、語順の並べ替えが可能であるという付加情報を説明文に付ける機能を有することもできる。例えば「X:HTML/を/プリンタB/で/印刷する」という説明文に対して「X:HTML/を」と「プリンタB/で」は並べ替え(交換)可能であるという付加情報をつけることができる。それによって、データ提供者は、「プリンタB/で/X:HTML/を/印刷する」という説明文を持つメタデータを改めて登録せずに済むことになる。
【0103】
また、上記実施形態では、メタデータ表現木は、データ検索装置10内の木生成部232により生成されるとしたが、メタデータ用データベースがメタデータ表現木を予めメタデータ用データベース上に生成する構成としてもよい。この場合は、メタデータ用データベースにメタデータを登録する際にメタデータ表現木を作成しておけば、この木を繰り返し利用できる。このような構成を取る場合には、メタデータ用データベースにメタデータを追加、削除する際に、メタデータ表現木も修正したり、あるいは作り直す。また、データ検索装置10内の木生成部232でメタデータ表現木を生成する場合でも、検索の都度メタデータ表現木を生成してもよいし、あるいは最初1回だけ生成してその後はこのようにして生成した木を再利用してもよい。後者の場合、メタデータ用データベースへのメタデータの追加、削除があった場合に、そのような追加、修正の通知を当該データベース等から受け取って、メタデータ表現木の修正、あるいは作り直しを行う。更に、第2、第3のフィルタ設定によってメタデータを読み出して新たに部分木を生成する代りに、既に生成されているメタデータ表現木から辺を削除するなどして部分木を生成したり、あるいは既に生成されているメタデータ表現木をそのまま使用するが、その代わり、フィルタリング条件に合致しない辺をたどらない様に(また、その辺だけ見ると条件に合致しないというわけではないが、先をどのようにたどって行っても結局は条件に合致するパスが存在しないというような辺も排除するように)辺に属性を設定するなどの多様な変形が可能である。
【0104】
【発明の効果】
本発明によれば、提示された語群を参照しながら検索のための自然な文を作成するという直感的な方法で効率よく目的とするデータの検索を行うことが可能となる。また、複数のデータを柔軟に組みあわせた検索も可能になる。
【図面の簡単な説明】
【図1】本発明の1実施形態によるデータ検索システムの構成を示す概念図である。
【図2】本発明の1実施形態によるデータ及びメタデータを登録する手順の概要を示す。
【図3】本発明の1実施形態によるデータ検索装置の構成ブロックを示す図である。
【図4】本発明の1実施形態によるメタデータの形式を示す。
【図5】本発明の1実施形態によるメタデータの1例である。
【図6】本発明の1実施形態によるメタデータ表現木の例を示す図である。
【図7】本発明の1実施形態による検索処理における検索画面の表示の例を示す図である。
【図8】本発明の1実施形態による検索の流れを示す概念図である。
【図9】本発明の1実施形態による検索システムが実施する手順を示す最上位のフローチャートである。
【図10】図9の「検索処理」の手順を示すフローチャートである。
【図11】図10の「木の生成処理」の手順を示すフローチャートである。
【図12】図11の「作成したパスと木の合成処理」の手順を示すフローチャートである。
【図13】図10の「メニューの作成及び提示処理」の手順を示すフローチャートである。
【図14】図10の「入力の処理」の手順を示すフローチャートである。
【図15】図14の「ラベル選択処理」の手順を示すフローチャートである。
【符号の説明】
10 データ検索装置
20 メタデータ用データベース
30 データ用データベース
100 ユーザI/F部
120 入力部
140 リスト提示部
200 検索処理部
220 リスト生成部
230 メタデータ検索部
232 木生成部
234 メタデータ検索エンジン
236 メタデータ読み取り部
300 データ取得部
【発明の属する技術分野】
本発明は、データやサービスの利用者からの要求に基づいてデータ及びサービスを検索するための検索システム、および、検索方法に関する。
【0002】
【従来の技術】
例えば、データやサービスを検索する場合に、データやサービスそのものの内容から検索するのは、それらが通常バイナリデータとして表されているために困難な場合が多い。そこで、データの内容を説明する情報をメタデータとして付加して、メタデータをキーワード検索することによりデータの検索を効率的に実施しようとする試みが行われている。
【0003】
メタデータをデータの検索に利用した例が、例えば、特開2002−108892に記載されている。この文献では、メタデータの検索を自然言語処理を用いて行っているが、自然言語処理を用いる検索には、システムにかかる負荷が重くなるため迅速な検索処理ができなかったり、ユーザが入力するすべての検索語を常に正確に認識できるわけではないために、目的とするデータを検索するのに時間がかかることがあるという欠点がある。また、特開2002−373174には、検索者によって入力されたキーワードを構文解析して重要検索語を選ぶことによりデータを効率的に検索する構成が記載されているが、従来のキーワード検索と同様に、検索者によって入力された検索用文を構文解析して重要語と非重要語に分けて単語毎にキーワード検索を行うとともに、非重要語については辞書を使って検索システムが代替語で検索を行うことができる構成が記載されている。しかしながら、この従来技術においても、従来のキーワード検索と同様に、検索者によって入力された検索文中の語やその代替語として検索システムが提供する語に対応するキーワードが存在しない場合には、新たに適当な語を探して入力しなければならず、目的のデータを検索するのに手間がかかる場合があるいう問題がある。
【0004】
さらにまた、従来のシステムでは、データとサービスの組み合わせが固定されており、検索者がデータとサービスを柔軟に組み合わせて検索することはできなかった。
【0005】
【特許文献1】
特開2002−108892号公報
【特許文献2】
特開2002−373174号公報
【0006】
【発明が解決しようとする課題】
上記、従来技術の問題点に鑑み、本発明は、検索者が、目的とするデータやサービス(サービスの実体はプログラムであるので、以下ではサービスのことをプログラムともいう)を効率的に検索できるようにし、また、データとプログラムを柔軟に組み合わせた検索を可能にする検索システム、および検索方法を提供することを目的とする。
【0007】
【課題を解決するための手段】
上記目的を達成するために、本発明に係るデータ検索を行うためのデータ検索システムは、目的とするデータを検索するために、そのデータに関連付けられたメタデータの説明文を順にたどって対応するメタデータを検索するよう構成されたものであって、以下のいくつかの態様を取りうる。
【0008】
尚、以下では、単に「データ」と記載した場合には、プログラムとプログラム以外のデータのいずれか、または、それらの両方が含まれる。ここでプログラム以外のデータとは、文書データや画像データなどのデータであり、以下では、プログラムと区別するために、静的データと記載する。
【0009】
第1の態様は、データに対応するメタデータを格納するためのメタデータ格納手段と、検索処理手段とから構成され、検索処理手段は、メタデータ格納手段からメタデータの集合の少なくとも一部(第1のメタデータの集合)を読み取るためのメタデータ読み取り手段と、第1の目的とするデータを検索するための一または複数の語の並びである検索文を、その検索文を構成する語毎に順次入力するように構成された入力手段と、入力手段によって語が入力される毎に、内容説明文のうちの対応する所定単位の語を、入力された語に続く候補の語(候補となる語が存在する場合には少なくとも1以上ある)として語のリストを生成するリスト生成手段と、生成された語のリストを提示するためのリスト提示手段と、メタデータ読み取り手段により読み取られたメタデータの集合(上記第1のメタデータの集合)から、入力手段により入力された検索文に基づいて、上記第1の目的とするデータに対応するメタデータ(第1の特定メタデータ)を検索するメタデータ検索手段とを備える。
【0010】
第1の態様におけるメタデータの各々は、各データに対応付けられていて、対応するデータのインデックスと、1または複数の語の並び(列)であって対応するデータの内容を表す内容説明文と、対応するデータの型(データ型)を含む。尚、データの型とは、データがプログラムの場合には、プログラムの入力(引数)の型とプログラムの出力(返値)の型であり、静的データの場合にはデータフォーマットである。この内容説明文は、単語、連語などの語句であるところの所定の単位の語(以下、所定単位の語と記載)によって区分されている。
【0011】
第1の態様によれば、以下のような検索処理を行うことが可能となる。検索者は、入力手段を用いて、リスト提示手段により提示される語のリストから選択するか、または、直接入力することによって検索のための語(検索語)を順次入力する。リスト提示手段は、検索者によって順次入力された1または複数の語からなる検索語に応答して、内容説明文の所定単位の語を入力された語に続く候補の語としてその語のリストを検索者に提示する。検索者は、この提示された語を参照して検索語の入力を続行することができる。そして、メタデータ検索手段は、入力された検索文と内容説明文に基づいて目的とするデータに対応するメタデータを検索する。
【0012】
候補の語の決定は、例えば、内容説明文の先頭の所定単位の語から開始して、語が入力される度に、内容説明文の順次対応する所定単位の語と入力された語とを比較し、一致した語を含む内容説明文を有するメタデータのみを保持し、保持したメタデータの内容説明文について、直前に一致した所定単位の語の次の語を候補の語とすることによって行うことができる。
【0013】
上記の如く、第1の態様は、検索者が入力した語に対応する語を逐次検索者に提示するよう構成されており、また、メタデータの内容説明文はデータの提供者が自由に決めることができ、したがって、内容説明文は、検索者がその内容を直感的に理解可能な文とすることができるので、検索者は、そのような文を組み立てるという直感的な操作で効率よく目的とするデータを発見することができることになる。また、データの提供者にも、内容説明文を自由に決めることができることから、従来特定の語に限定されていた検索語を用いる場合に比べて、より自由に、提供するサービス(プログラム)の内容を記述できるという利点がある。
【0014】
尚、第1の態様は、先ず、リスト生成手段が候補の語のリストを生成し、このリストから語を選択して入力手段に入力し、この入力された語に基づいて、リスト生成手段がさらに候補の語となるリストを生成する、というように、リスト生成手段によって生成された語のリストから語を選択して入力手段に入力する構成をとることもできる。この構成によれば、全ての検索語を、リスト生成手段によって生成される語のリストから選択して入力することができるので、検索者は不正確な検索語を入力するといった無駄な作業を回避することができる。
【0015】
第2の態様は、第1の態様のデータ検索システムにおいて、内容説明文を構成する所定単位の語の少なくとも1つはデータ型を有する変数とすることができ、現在行っているデータ検索とは別に行う上記データ検索の結果の型が上記変数の型と同じである場合は上記別に行うデータ検索の結果が上記変数にマッチするとみなすよう構成されている。
【0016】
第3の態様は、第2の態様のデータ検索システムにおいて、上記変数は上記内容説明文の先頭に置かれた所定単位の語であり、上記別に行うデータ検索は現在行われているデータ検索の直前の検索であるよう構成されている。
【0017】
第4の態様は、第2の態様のデータ検索システムにおいて、上記変数は上記内容説明文の途中に置かれた所定単位の語であり、現在行われているデータ検索に対して入力手段から入力する検索文中の語が上記変数に対応する位置にある時、上記別に行うデータ検索を開始するよう構成されている。
【0018】
第5の態様は、第1の態様のデータ検索システムにおいて、内容説明文が、その先頭の所定単位の語を所定のデータ型を有する変数として表すことが可能であり、データ検索システムは、上記第1の特定メタデータを保持することができるよう構成され、入力手段は、上記第1の特定メタデータの内容説明文を入力することができるよう構成され、入力手段に上記第1の特定メタデータの内容説明文が入力された場合において、メタデータ読み取り手段は、上記保持されている第1の特定メタデータに含まれるデータ型と同じ型の変数を先頭の語とする説明文を含むメタデータの集合(第2のメタデータの集合)をメタデータ格納手段から読み取り、リスト生成手段は、上記第2のメタデータの集合を構成するメタデータの内容説明文の対応する所定単位の語を、上記第1の特定メタデータの内容説明文に続く候補の語として語のリストを生成するよう構成され、メタデータ検索手段は、上記第2のメタデータの集合から、上記入力された第1の特定メタデータの内容説明文とその後に入力手段によって入力された語とからなる検索文に基づいて、第2の目的とするデータに対応するメタデータ(第2の特定メタデータ)を検索するように構成される。
【0019】
第6の態様は、第1または5のデータ検索システムにおいて、リスト生成手段が生成する語のリストに上記変数に対応する語が含まれ、かつ、入力手段に上記変数に対応する語が入力された場合において、データ検索システムは、現在検索されているメタデータの集合を保持して現在の検索を中断し、メタデータ読み取り手段は、上記変数と同じ型のデータ型を含むメタデータの集合(第3のメタデータの集合)をメタデータ格納手段から読み取り、メタデータ検索システムは、上記第3のメタデータの集合から第3の目的とするデータに対応するメタデータ(第3の特定メタデータ)を検索し、上記第3の特定メタデータが検索された場合において、リスト生成手段は、上記変数に続く候補となる語のリストを生成するよう構成され、データ検索システムは、上記中断した検索を再開し、メタデータ検索手段は、上記保持したメタデータの集合の中から上記第1の特定メタデータを検索するよう構成される。
【0020】
上記第2、3、4、5及び6の態様によれば、変数を介してデータを柔軟に組みあわせた検索を行うことが可能になる。
【0021】
第7の態様は、第1乃至6のいずれかの態様のメタデータ検索手段が、入力手段により入力された検索文に一致する文を内容説明文とするメタデータを検索するよう構成されており、さらに、メタデータ検索手段は、検索したメタデータからインデックスを取り出すインデックス取得手段を備える。
【0022】
第7の態様によれば、入力された検索文と内容説明文との一致という負荷の軽い検索処理でメタデータの検索を行うことができ、さらに、メタデータに含まれるインデックスを取り出すことにより目的とするデータにアクセスする(すなわち、データを取得したり利用する)ことが可能となるので、データの検索を効率的に実施することができる。
【0023】
第8の態様は、メタデータを使用してデータ検索を行うためのデータの検索方法に係る発明であり、各メタデータは、各データに対応付けられていて、対応するデータのインデックスと、対応するデータの内容説明文と、対応するデータの型を含み、内容説明文は所定単位の語で区切られており、メタデータの集合をメタデータ格納手段に格納するステップと、メタデータ格納手段からメタデータの集合の少なくとも一部を読み取るステップと、目的とするデータを検索するための一または複数の語からなる検索文を、その検索文を構成する語毎に順次入力するステップと、語が入力される毎に、その順次入力された語に続く候補の語として、内容説明文のうちの対応する所定単位の語のリストを生成するステップと、生成された語のリストを提示するステップと、読み取られたメタデータの中から、入力された検索文に基づいて、目的とするデータに対応するメタデータを検索するステップとを含む。第8の態様は、第1の態様を方法に係る発明として捉えたものに相当する。
【0024】
第9の態様は、第8の態様のデータ検索方法において、内容説明文を構成する所定単位の語の少なくとも1つはデータ型を有する変数とすることができ、現在行っているデータ検索とは別に行う上記データ検索の結果の型が上記変数の型と同じである場合は上記別に行うデータ検索の結果が上記変数にマッチするとみなすよう構成されている。第9の態様は、第2の態様を方法に係る発明として捉えたものに相当する。
【0025】
第10の態様は、第9の態様のデータ検索方法において、上記変数が内容説明文の先頭に置かれた所定単位の語であり、上記別に行うデータ検索は現在行われているデータ検索の直前の検索であるよう構成されている。第10の態様は、第3の態様を方法に係る発明として捉えたものに相当する。
【0026】
第11の態様は、第9の態様のデータ検索方法において、上記変数は内容説明文の途中に置かれた所定単位の語であり、現在行われているデータ検索に対して入力手段から入力する検索文中の語が上記変数に対応する位置にある時、上記別に行うデータ検索を開始するよう構成されている。第11の態様は、第4の態様を方法に係る発明として捉えたものに相当する。
【0027】
第12の態様は、第8乃至11のいずれかの態様のデータ検索方法であって、上記メタデータを検索するステップが、入力された検索文に一致する内容説明文を含むメタデータを検索するステップと、検索したメタデータからインデックスを取り出すステップを含む。
【0028】
第13の態様は、メタデータの集合を木(メタデータ表現木)で表し、その木を利用してメタデータを検索することを特徴とするデータ検索方法であって、各メタデータは、各データに対応付けられていて、対応するデータのインデックスと、対応するデータの内容説明文と、対応するデータの型を含み、内容説明文は、少なくとも1つの所定単位の語からなる語の列であって、文頭、文中及び文末の区切りによって所定単位の語毎に区切られており、a.メタデータの集合をメタデータ格納手段に格納するステップと、b.メタデータ格納手段からメタデータの集合の少なくとも一部を読み取るステップと、c.メタデータ格納手段から読み取ったメタデータの集合をメタデータ表現木(第1のメタデータ表現木)で表すステップであって、第1のメタデータ表現木は、文頭の区切りに対応するノード(ルートノード)と、ルートノードの下流に位置し、文中または文末の区切りに対応する1または複数のノード(子ノード)と、2つのノード間を接続する辺から構成され、ルートノードから下流に向かって子ノードを順次接続する辺の各々は、各メタデータの内容説明文の先頭の所定単位の語から続く所定単位の語の各々に順次対応しており、内容説明文の文末の区切りに対応する子ノードには、その内容説明文を内容説明文とするメタデータが割り当てられることからなる、ステップと、d.第1のメタデータ表現木のルートノードから1つ下流の子ノードに向かう辺に対応する語のリストを生成するステップと、e.生成されたリストから語を選択して入力するステップと、f.ステップe.で入力された語に対応する辺をたどって1つ下流の子ノードを取得するステップと、g.ステップf.で取得した子ノードから1つ下流の子ノードに向かう辺に対応する語のリストを生成するステップと、h.第1のメタデータ表現木からメタデータが割り当てられている子ノードを取得するまで、上記ステップe.からg.を繰り返すステップとを含む。
【0029】
木構造を用いてメタデータの検索を行う第13の態様によれば、全てのメタノードの説明文を調べるのは木構造を作成する際の一度だけで済み、語のリストを作成する際に、メタデータに含まれている説明文を逐一調べる必要がないので説明文を参照する回数が減り、メタデータの効率的な検索が可能になる。
【0030】
第14の態様は、第13の態様において、メタデータが、その内容説明文の所定単位の語を所定の型を有する変数として表すことが可能であり、上記ステップd.またはg.のリストを生成するステップにおいて、上記変数に対応する語がそのリストに含まれ、かつ、上記ステップe.の語を入力するステップにおいて、その変数に対応するが入力された場合において、第13の態様におけるステップe.からh.に代えて以下のステップを実施する方法である。
【0031】
それらのステップとは、i.上記第1のメタデータ表現木において、現在の木とノードの位置を一時的に記憶する(退避する)ステップと、j.上記変数の型と同じデータの型を含むメタデータの集合(第2のメタデータの集合)を上記メタデータ格納手段から読み取って、上記第2のメタデータの集合をメタデータ表現木(第2のメタデータ表現木)で表すステップと、k.第2のメタデータ表現木のルートノードから1つ下流の子ノードに向かう辺に対応する語のリストを生成するステップと、l.生成されたリストから語を選択して入力するステップと、m.ステップl.で入力された語に対応する辺をたどって1つ下流の子ノードを取得するステップと、n.ステップm.で取得した子ノードから1つ下流の子ノードに向かう辺に対応する語のリストを生成するステップと、o.第2のメタデータ表現木から、メタデータが割り当てられている子ノードを取得するまで、上記ステップl.からn.までを繰り返すステップと、p.ステップi.で一時的に記憶した木とノードの位置を読み出す(復帰する)ステップと、上記第1のメタデータ表現木について、以下のステップq.及びr.を実行するステップである。ステップq.は、ステップp.で読み出したノードの位置から上記変数に対応する辺をたどって1つ下流の子ノードを取得するステップであり、ステップr.は、ステップq.において取得された第1のメタデータ表現木における子ノードを第13の態様におけるステップf.において取得した子ノードとして、第13の態様におけるステップg.及びh.を実施するステップである。
【0032】
第14の態様によれば、内容説明文に変数を使用することにより、データを柔軟に組みあわせた検索を行うことが可能になるだけでなく、検索者は、データの組み合わせにどのようなものがあるかを容易に知ることができる。さらに、変数の型と同じデータの型を要素として含むメタデータの中から検索するので、検索の効率が良い。
【0033】
第15の態様は、第14の態様におけるステップr.で、メタデータが割り当てられた子ノードが取得された場合に、その子ノードに割り当てられているメタデータを提示すると共に、第14の態様におけるステップo.において取得された子ノードに割り当てられたメタデータが上記変数に対応するものであることを提示するステップをさらに含む。尚、上記ステップo.において取得された子ノードに対応するメタデータの説明文に変数が含まれており、その変数に対応する語を選択して入力した場合は、上記ステップi.乃至r.を同様に繰り返して検索を行うことができる。
【0034】
【発明の実施の形態】
図1に本願発明のデータ検索システム1の構成要素の概念図を示す。データ検索システム1は、データ検索装置10とメタデータを格納するためのメタデータ用データベース20を構成要素として含み、図示のようにデータ検索装置10は、メタデータ用データベース20に通信経路aを介して接続されている。また、データ検索装置10を、データを格納するためのデータ用データデータベース30に通信経路aを介して接続することもできる。したがって、本システムを、LAN、WANなどの独立したネットワークシステムとして構成することも、LAN、WAN、またはインターネットなどの既存のネットワークシステムの一部として組み込むこともでき、通信経路aとしては、LANケーブル、無線または有線による公衆網など任意の既存の伝送手段を用いることができる。
【0035】
本明細書において、データには、上記の如く、データまたはプログラムのいずれか、または、データとプログラムの両方が含まれる。尚、データは、文字などの記号の並びであり、何らかのデータフォーマット(plain text(平文) 、Microsoft Word(登録商標)のファイル形式、JPEGファイル形式など)に従って書かれている。プログラムは、サービスを実施する関数であり、0個以上のデータ(引数)を入力とし0または1個のデータ(返値)を出力するプログラムである。データ提供者とは、データを提供する者であり、検索者とは、データを検索する者(すなわち、データ検索システム1のユーザ)である。
【0036】
データ用データベース30に格納されたデータは、それに対応するデータベース上のインデックス(データインデックスとも呼ぶ)を指定することにより取り出すことができる。例えばインデックスとして1を指定するとインデックス1に対応するデータAを、インデックスとして2を指定するとインデックス2に対応するプログラムBを取り出すことができる。データはインターネット上に分散して置かれていても良い。その場合のインデックスはURL(Uniform Resource Locator)となる。
【0037】
メタデータ用データベース20は、メタデータを格納するための格納手段である。メタデータは、図4に示すように、データ用データベース30上のインデックス、そのデータの内容説明文(以下、内容説明文を単に説明文と記載する)及び上述したデータの型から構成される。すなわち、メタデータはこれらの要素を属性としてもっており、本明細書において、メタデータがデータ型を含むとは、メタデータがそのデータ型を属性としてもっていることを意味している。図5に、メタデータの具体例を示す。説明文はデータに関連する語句として自由に記述することができ、単語などの所定単位の語で区切られている。本明細書および図面では、区切りを記号「/」で表す。どこで区切るかは、データの提供者が定めるか、または形態素解析などの手法を用いて自動的に定めても良い。
【0038】
説明文の中には型を持った変数を含めることができる。例えばXを変数として「X:HTML/を/印刷する」という説明文を書くことができるが、この場合、X:HTMLとは、変数Xが型HTMLを持つことを意味している。すなわち、「X:HTML/を/印刷する」という説明文は、「変数Xとして渡されたHTMLフォーマットのデータを印刷する」を表すことになる。このように変数を使用することによって、他のデータをこのプログラムへの入力とすることを表現することができる。すなわち、他のデータとこのプログラムを組合わせることが可能であることを(検索装置を通じて)検索者に示すことができる。
【0039】
一つのデータに対して説明文の異なるメタデータを複数登録することもできる。例えば、プリントを行うある(一つの)プログラムに対して「プリンタB/で/X:HTML/を印刷する」という説明文を持ったメタデータを登録できると同時に、「X:HTML/を/プリンタB/で/印刷する」という説明文を持ったメタデータを登録することができる。
【0040】
図8に示す検索者、データ検索装置、メタデータ用データベース間における検索の流れの概念図を参照して、本発明の1実施形態における検索の流れの概要を説明する。先ず、検索者がデータ検索装置10に検索を要求する(1.検索要求)。これに応答してデータ検索装置10は、メタデータ群(メタデータの集合)をメタデータ用データベースに要求し(2.メタデータ群要求)、メタデータ群を読み出す(3.メタデータ群返信)。データ検索装置10は、読み出したメタデータ群に基づいて候補となる語のリストを検索者に提示し(4.語のリストを提示)、検索者は語のリストの中から語を選択して入力する(5.語を選択)。以下、目的とするメタデータが検索されるまで、上記「4.語のリストを提示」と「5.語を選択」が繰り返される。検索が終了すると検索結果が検索者に提示される(7.結果の提示)。
【0041】
次に、データ及びメタデータの登録について、データとそれに対応するメタデータの登録手順の概念図である図2を参照して説明する。
【0042】
データ提供者は、データ用データベース20にデータを登録(すなわち、格納)する。これは、例えば、不図示のデータ入力装置にデータを入力し、そのデータを通信回線aを通じてデータ用データベースに登録することにより行うことができる(1.データの登録)。データのインデックスはデータ用データベース30により付与される。検索者は、データ入力装置を用いてデータ用データベース30からこのインデックスを取得することができ(2.データ用データベース上のインデックス取得)、このインデックスをデータ入力装置に入力することにより、そのインデックスに対応するデータにアクセスすることも可能である。また、データベースがインターネットなどの通信網を介して接続されている場合には、パーソナルコンピュータなどの端末からデータの登録や取得(アップロードやダウンロード)を行うことが可能である。
【0043】
次に、検索者は、不図示のメタデータ入力装置(データ入力装置と兼用してもよい)を用いて、データ用データベース30から取得したインデックスを含んだメタデータをメタデータ用データベース20に登録(格納)する(3.インデックスを含むメタデータの登録)。このインデックスによって、データとそれに対応するメタデータとが相互に関連付けられる。また、説明文はメタデータ用データベースに格納される際に、所定単位の語毎に区切られて格納されるものとする(以下では単語毎に区切られているものとする。但し、適当な任意の単位で区切ることができる)。例えば「カメラAのカタログ」が目的とするデータである場合(カメラAのカタログのデータ形式はHTML形式であるとする)、それに対応するメタデータは「カメラA/の/カタログ」(/は区切り記号)という説明文とHTMLというデータの型、および、「カメラAのカタログ」のデータのデータ用データベースにおけるインデックスを含んでいる。
【0044】
次にメタデータの木構造であるメタデータ表現木(以下では、単に「木」とも記載する)について図6を参照して説明する。本実施形態では、登録されたメタデータの集合は、図6に例示するような木で表される。図6に示す木において、N1乃至N16の参照符号で示す○部がノードであり、ノード間を結ぶ線が辺である。N1がルートノードでり、その他のノード(N2〜N16)は子ノードである。メタデータを木構造形式で表すのは、メタデータの説明文を逐次参照して検索語と比較する場合に比べて検索を効率良く実施することができるからである。木において、木の辺(枝)にはラベルがついており、そのラベルは説明文を構成する区切られた語に対応する。各説明文は木のルートノードからある子ノードに至るまでのパスに対応する。例えば「カメラA/の/カタログ」という説明文は、ルートノードから「カメラA」というラベルを持った辺、「の」というラベルを持った辺、「カタログ」というラベルを持った辺、から構成されるパスとなる(図6では、ノードN1、N2、N3、N4を接続する辺からなるパスである)。
【0045】
木のノードにはメタデータの集合(空集合を含む)が割り当てられている。ノードの要素であるメタデータの説明文はルートノードからそのノードまでのパスを構成する辺のラベルを並べた文となる。ルートノードは、説明文の文頭の区切りに対応しており、子ノードは文中及び文末の区切りに対応する。すなわち、上記「カメラA/の/カタログ」という説明文の例をノードと対応させて書くと、「/カメラA/の/カタログ/」となり、この場合は、カメラAの前の「/」が文頭の区切りであり、カタログの直後の「/」が文末の区切りである。文末の区切りに対応する子ノード(説明文の文末に対応するノード)に関連付けられた集合は1つのメタデータを要素とする集合である。図6のノードN4には、2つのメタデータが割り当てられているが、それらは、例えば、「カメラAの詳しいカタログデータ」、「カメラAの簡単なカタログデータ」を表す2つのデータにそれぞれ対応するメタデータ(メタデータ1−(1)、1−(2))である。
【0046】
例えば、ルートノードからある子ノードまでのパスを構成する辺のラベルがルートノードから順に「カメラA」、「の」、「カタログ」である場合には、その子ノードに割り当てられた集合の要素は「カメラA/の/カタログ」を説明文として持つメタデータとなる。すなわち、そのノードまでのパスによって表される説明文を説明文とするメタデータが存在する場合に、そのノードにはそのメタデータが割り当てられており、そのノードまでのパスによって表される説明文を説明文とするメタデータが存在しない場合には、そのノードにはメタデータは割り当てられていない(空集合)ことになる。
【0047】
図6では、文末の区切りに対応するノードN4、N5、N7、N12、N14及びN16は、それぞれ、「カメラA/の/カタログ」、「カメラA/の/マニュアル」、「カメラA/を/買う」、「プリンタB/で/X:PDF/を/印刷する」、「プリンタB/の/カタログ」、「プリンタB/の/カタログ/を/請求する」という説明文を持つメタデータを要素として持つ。それ以外のノードには空集合が対応付けられている。
【0048】
本実施形態では、木は、データ検索装置10によって生成されるが、データ検索装置10とは別個に設けられた手段によって生成するようにしてもよい。
【0049】
以下、データ検索装置10による木の生成処理について図11及び図12のフローチャートを参照して説明する。()内の数字は、図面中の処理ステップの番号を表す。
【0050】
先ず、データ検索装置10は、メタデータ用データベース20からメタデータの集合を取得する(1110)。次にルートノードのみの木を作成する(1120)。次に、取得した集合にメタデータが残っているか否かを判断し(1130)、残っている場合には、集合からメタデータを取り出して(1140)、メタデータの説明文からパス(パスとは枝分かれのない木をいう)を作成する(1150)。パスの各ノードは語の(文頭、文末を含む)区切りに対応し、パスの辺は説明文の語をラベルとして持つ。ここで、文末に対応するノードに関連付けられた集合はメタデータを要素とする集合であり、その他のノードには空集合が対応付けられている。ステップ1150に続いて、作成したパスと木を合成する(ステップ1160)。
【0051】
ステップ1160におけるパスと木の合成処理の詳細を図12を参照して説明する。先ず、パスのルートと木のルートが同一となるように二つのパスを合成する(ステップ1210)。その際、同じラベルを持つ辺は同じ辺となるようにする。次に、それぞれのノードに関連付けられた集合を合成する(ステップ1220)。この合成は、例えば以下のような擬似コードによって行うことができる。
【0052】
【表1】
【0053】
次に、図11のステップ1130に戻り、取得した集合にメタデータが残っている場合には、ステップ1140〜1160の処理を繰り返すが、メタデータが残っていない場合、すなわち、全てのメタデータが木に組み込まれた場合には、木の生成処理を終了する。
【0054】
次に、上記のようなメタデータ表現木を利用したデータの検索処理の概要について、データ検索装置10の構成をより具体的に示す図3を参照して説明する。また、データ検索装置10によって検索者に提示される検索情報の例を図7に示す。
【0055】
図3に示す本実施形態によるデータ検索装置10は、ユーザインターフェース部(ユーザI/F部)100と検索処理部200から構成され、ユーザI/F部100は、入力部120、リスト提示部140、検索結果提示部160及び検索画面180を備えている。検索者は、検索画面180を介して入力部120に語を入力する。検索処理部200は、さらに、入力部120を介して検索者により入力された語に応答して、続く語の候補のリストを生成するリスト生成部220と、メタデータ検索部230を備えている。リスト生成部220で生成された語のリストがリスト提示部140に送られ、リスト提示部140からの語のリストが検索画面180上に表示される。
【0056】
本実施形態では、メタデータ検索部230は、さらに、メタデータの集合をメタデータ用データベースから読み取るためのメタデータ読み取り部236、読み取ったメタデータの集合から木を生成する木生成部232、木生成部232により作成された木を用いてメタデータを検索する処理(木のノードをたどるなどの処理)を行うメタデータ検索エンジン234、木及びノード位置を一時的に記憶するための木格納部238を備えている。尚、この木格納部238はスタック構造であるのが好ましい。データ検索装置10は、さらに、各構成部の動作の制御及び構成部間のインターフェースの管理等の処理を行う不図示の制御部を備えており、さらにまた、メタデータ検索部230によって検索されたメタデータに含まれるインデックスから対応するデータを利用または取得するためのデータ取得部300を備えることもできる。データ取得部300には、メタデータに含まれるデータのインデックスを取得する不図示のインデックス取得手段が含まれる。データ検索装置10からの検索者への提示は、全て検索画面180への表示により行われ、検索結果もまた検索結果提示部160を介して検索画面180上に表示されるものとする。
【0057】
上記のように構成されたデータ検索装置10は木のルートから開始して一ずつ辺の候補のメニュー、すなわち、辺に付けられたラベルを表す語のリストからなるメニューをリスト提示部140を介して検索者に提示する。検索者はそのリストから語を選んで入力部120に入力していくことで目的とするデータに対応するメタデータを得ることができる。例えば、検索者がカメラAのカタログが欲しいときには、検索者は、提示されたリストから、「カメラA」、「の」、「カタログ」と順に語を選んでいくことで目的のデータに対応するメタデータにたどり着くことができる。
【0058】
語を直接入力または選択して入力するための具体的な手段については図示していないが、例えば、検索者は、従来の入力手段であるキーボート、マウス、またはタッチパネルなどを使用して検索画面180上から直接入力または選択して入力を行うことができる。ここで、提示される検索結果はメタデータの集合であり、各メタデータの説明文と少なくともデータのインデックスが表示される。メタデータには、データ用データベース上のデータのインデックスが含まれているので、データ取得部300は、特定されたメタデータのインデックスから、そのインデックスで指定されるデータをデータ用データベースから取り出すことができる。
【0059】
リスト生成部220は、検索者に提示する語が変数(Xとする)の場合には「他のデータを検索」という項目をメニューに追加して、リスト提示部140を介して検索者に提示する。これにより、検索者には、現在検索されているメタデータに対応するデータ(プログラム)を他のデータと組みあわせる(つまり、現在検索されているプログラムに入力できる)ことができるということがわかる。検索処理部200は、検索者が「他のデータを検索」という項目を選んで入力部120に入力した場合には現在の検索処理を一旦中断し、新規にメタデータの検索を開始する。ただし、新規の検索では変数Xの型に当てはまるメタデータのみを検索の対象とする。つまり、データが静的データの場合にはXと同じ型をデータ型として含むメタデータのみを検索の対象とし、プログラムの場合にはXと同じ出力の型をデータ型として含むメタデータのみを検索の対象とする。この場合、検索処理部200は、変数Xと同じデータ型を含む(すなわち、変数Xと同じ型のデータに対応する)メタデータの集合をメタデータデータベース20から読み出して、そのメタデータの集合からなる木を新たに生成し、この木を利用して検索を実施する。尚、変数は複数あってもよく(すなわち、1つのノードから下流のノードに向かう複数の辺にそれぞれ変数が付けられていてもよく)、この場合には、それぞれの変数と同じ型を含むメタデータをメタデータ用データベース20から読み出し、以下同様に木を生成して検索が行われる。新たに生成した木を利用した検索が終了したら中断した検索処理、すなわち、元の木に戻って検索を再開する。
【0060】
このように、変数Xを利用することにより、ある説明文を持つメタデータに対応するデータと、他の説明文を持つメタデータに対応するデータの組合せ検索が可能となり、さらに変数Xに型を持たせることにより、組み合わせることができないデータ同士を組み合わせるという無駄な処理を省くことができる。例えば、HTMLフォーマットの表示のみをサポートしているアプリケーションにPDFフォーマットのデータを渡すことがなく、プリンタで印刷を行うプログラムにプリンタがサポートしていない形式の画像データ等を印刷させるようなこともなくなる。
【0061】
リスト生成部220がリスト提示部140を介して提供する語のリストの中に適切な語がなかった場合には、一語ずつ語を遡って検索をやり直すこともできる。この場合、検索者は、例えば、検索画面180の「戻る」というアイコン(図7)をクリックすることによって1語前の語の表示状態に戻ることができる。
【0062】
次に、図9〜15のフローチャートを参照して、本発明の1実施形態の検索システムによる検索の処理の流れをより具体的に説明する。尚、()内の数字は、図面に記載した処理ステップの番号である。
【0063】
以下では、検索者は、リスト生成部220によって生成されて、リスト提示部140を介して検索画面180に表示された語のリストから語を選択して入力するものとする。先ず、図9のステップ910で、検索処理部200が(具体的には、不図示の制御部による指示にしたがってメタデータ読み取り部236が)、メタデータ用データベースからメタデータを取得する際にフィルタを設定する。本実施形態のフィルタは、上記のようにフィルタリングを行わない「フィルタ無し」とする設定、すなわち、すべてのメタデータを通す設定(第1のフィルタ設定)、特定のデータの型を含むメタデータのみを通す設定であって、静的データの場合には、その特定のデータフォーマットのもののみを通し、プログラムの場合には、出力の型がその特定の型であるもののみを通す設定(第2のフィルタ設定)、説明文の先頭の語が変数であって、かつ、その変数の型が特定のデータ型であるメタデータのみを通す設定(第3のフィルタ設定)、の3通りに設定することができる。ステップ910では、メタデータ用データベースにあるすべてのメタデータを取得するために第1のフィルタ設定にする。
【0064】
次に、データ検索装置10は、図9のステップ920で示す検索処理を開始する。検索処理の処理手順は、図10のフローチャートにより詳しく示されている。
【0065】
検索処理部200のメタデータ読み取り部236は、上述のいずれかに適宜設定されたフィルタを通過するメタデータのみを取得する(1010)。
【0066】
次に、木生成部232が、取得したメタデータの集合から木を生成する(1020)。検索処理部200は、生成された木のルートノードに移動する(1030)。リスト生成部220は、1つ下流の子ノードに向かう辺に付されたラベル、すなわち、説明文の先頭の語のリストからなるメニューを作成し、リスト提示部140を介してそのメニューを検索者に提示する(1040)。検索者は、入力部120に、提示されたリストから所望の語(項目)を選択して入力する(1050)。尚、ステップ1040におけるメニューの作成及び提示処理については、図13を参照して後でより詳しく説明する。
【0067】
データ検索装置10は、図10の1060における入力の処理において、検索者によって入力された語に応答して、検索結果を表示したり、入力された語に続く候補となる語のリストからなるメニューを検索者に提示するなどの処理を行う。この入力の処理については、図14を参照して後でより詳しく説明する。
【0068】
ステップ1070において検索処理部200は、検索の終了を確認すると、検索画面180上に検索結果を表示する(1080)が、検索がまだ終了していない場合には、ステップ1040に戻って処理を続行する。
【0069】
次に図13を参照してデータ検索装置10によるメニューの作成および提示処理について説明する。まず、リスト生成部220は、現在のノードから下流にある子ノードへの辺のラベルを項目とするメニューを作成する。ラベルが変数の場合には、「他のデータの検索」という項目をメニューに追加して、リスト提示部140を介して検索画面180に表示する(1310)。
【0070】
次に、検索処理部200(のメタデータ検索エンジン234)は、現在のノードにメタデータが割り当てられているかどうかを判断する(1320)。現在のノードにメタデータが割り当てられている場合には、リスト生成部220は、「結果を表示」と「結果を利用して検索を続ける」という項目をメニューに追加し(1330)、リスト提示部140は、検索者にそのメニューを提示する(1340)。現在のノードにメタデータが割り当てられていない場合には、検索処理部10は、ステップ1330をスキップしてステップ1340に進み、ステップ1340で作成したメニューを提示する。ステップ1310を実施した後、「メニューの作成及び提示処理」を抜ける。
【0071】
次に、図14を参照してデータ検索装置10による入力の処理について説明する。
【0072】
検索処理部200は、図10のステップ1050のメニュー項目の選択入力において入力部120に検索者によって選択され入力された項目(語)が、図13のステップ1330においてリスト生成部22により作成された「結果を表示」か「結果を利用して検索を続ける」であるか否かを判断し(1410、1420)、「結果を表示」が入力された場合には、検索結果を検索画面180上に表示し、検索を終了(具体的には、検索終了フラグをセットする)して(1460)入力の処理を抜ける。尚、ステップ1460において、メタデータが割り当てられているノードが取得されている場合に、さらに検索を継続するか否かを検索者に提示し、検索者が検索を終了する旨の指示を出した場合は検索を終了し、検索者が検索を継続する旨の指示を出した場合には、さらに、そのノードに割り当てられたメタデータの説明文を要素として含む説明文を説明文とするメタデータについて検索処理(図6では、ノードN14のさらに下流のノードをたどる処理に対応)を実施するようにすることもできる。
【0073】
検索処理部200は、検索者によって入力された項目が「結果を利用して検索を続ける」の場合には、現在のノードに割り当てられているメタデータを不図示の記憶部(メモリ)に記憶する(1430)。メタデータ読み取り部236は、記憶したメタデータに含まれるデータの型(静的データの場合はその値の型であり、プログラムの場合は返値、すなわち出力の型である)と同じ型の変数を説明文の先頭に持つもののみを通すフィルタを設定し(すなわち、第3のフィルタ設定を行い)(1440)、このフィルタを通過するメタデータのみを取得する。この取得したメタデータについて、上述した図10に示す検索処理を実施し(1450)、検索終了フラグをセットして(1460)、入力の処理を抜ける。
【0074】
検索処理部200は、検索者によって入力された項目が「結果を表示」および「結果を利用して検索を続ける」のいずれでもない場合には、以下で説明するラベル選択処理を実施し(1470)、その後、入力の処理を抜ける。
【0075】
このラベル選択処理について図15のフローチャートを参照して説明する。先ず、検索処理部200は、「他のデータを検索」という項目が検索者によって選択されたか否かを判断し(1510)、選択されなかった場合には、他の選択された項目に対応する辺をたどって子ノードに移動する(1590)。その後、ラベル選択処理を抜ける。
【0076】
「他のデータを検索」という項目が選択された場合には、検索処理部200は、子ノードへの辺のラベルとなっている変数の型(型は複数でもよい)を不図示の記憶部(メモリ)に記憶し(1520)、現在の木とノードの位置を木格納部238に退避し(1530)、入れ子になった別の検索を行ってその結果を取り込む。
【0077】
すなわち、検索処理部200のメタデータ読み取り部236は、ステップ1520で記憶した変数の型と同じデータの型を含むメタデータのみを通すフィルタを設定し(すなわち、上記第2のフィルタ設定を行い)(1540)、このフィルタを通過するメタデータのみを取得する。この取得したメタデータについて上述した図10に示す検索処理が行われる(1550)。次に、検索処理部200は、検索処理で得られた検索結果(メタデータ)を不図示の記憶部(メモリ)に記憶し(1560)、ステップ1530で退避した木とノードの位置を木格納部238から取り出すことにより、入れ子の外側の検索へ復帰する(1570)。この復帰処理によって、退避前の木のノード位置に戻ることができる。そして、復帰した木のノードから上記変数をラベルとする辺をたどって子ノードに移動する(1580)。すなわち、ステップ1560で記憶した検索結果において示されるメタデータに含まれているデータの型と同じ型を持つ辺をたどって子ノードに移動する。上記変数には、ステップ1560で検索されたメタデータの説明文が対応付けられる。ステップ1580を実施した後、ラベル選択処理を抜ける。
【0078】
次に、データとメタデータをデータベースに登録する具体的な手順と、上記検索処理に従った検索手順の具体例を説明する。
【0079】
以下の例では、データはインターネット上のデータベースに格納されるものとし、対応するメタデータは、インターネット上の別のデータベースに格納されるものとするが、データとそれに対応するメタデータを同一のデータベースに格納するようにしてもよい。また、メタデータは、データのインデックス、説明文、データの型から構成されているものとする。
【0080】
先ず、データの登録の手順の具体例を説明する。以下で、URL1、URL2、URL3、URL4はデータのインデックスであり、それぞれ異なる4つのある特定のURL(Uniform Resource Locator)を表している。また、PDF、DOC、HTML、VOIDはデータの型であり、PDFはPortable Document Formatの略称でAdobe Acrobat(登録商標)で用いられるファイルフォーマットである。DOCはMicrosoft Word(登録商標)で用いられるファイルフォーマットであり、HTMLは、Hyper Text Markup Languageの略称でWebページを記述するための言語フォーマット、VOIDとはプログラムの入力または返値(出力)の型であり、入力がVOID型の場合はプログラムが入力を持たず、出力がVOID型の場合はプログラムは返値(出力)を持たない。
【0081】
以下の手順1)〜11)は、データ提供者が行うが、これは、例えば、所定のデータ入力端末を操作することによって行うことができる。
1)カメラAのカタログ(PDF形式のデータ)を URL1 に置く。
2)URL1、「カメラA/の/カタログ」、PDF形式、というメタデータをメタデータ用データベースに格納する。
3)カメラAのマニュアル(DOC形式のデータ)をURL2に置く。
4)URL2、「カメラA/の/マニュアル」、DOC形式、というメタデータをメタデータ用データベースに格納する。
5)カメラAのオンラインショップ(プログラム)をURL3に置く。
【0082】
6)URL3、「カメラA/を/販売する店」、HTML形式、というメタデータをメタデータ用データベースに格納する。
7)プリンタBで印刷するプログラムをURL4に置く。
8)URL4、「プリンタB/で/X:PDF/を/印刷する」、入力 PDF、出力VOID、というメタデータをメタデータ用データベースに格納する。ここで、入力 PDF、出力VOIDとは、このメタデータに対応するデータが、PDFファイル形式のデータを入力とし、返値を持たない(すなわち値を返さない)プログラムであることを意味する。
9)URL4、「X:PDF/を/印刷する」、入力PDF、出力VOID、というメタデータをメタデータ用データベースに格納する。
10)プリンタBのマニュアル(PDF形式のデータ)をURL5に置く。
11)URL5、「プリンタB/の/マニュアル」、PDF形式、というメタデータをメタデータ用データベースに格納する。
【0083】
以上の手順により、「カメラAのカタログ」、「カメラAのマニュアル」、「カメラAのオンラインショップ」、「プリンタBのマニュアル」の静的データがデータ用データベースのURL1、URL2、URL3、URL5で特定される領域に、「プリンタBで印刷する」というプログラムが、データ用データベース30のURL4で特定される領域にそれぞれ格納され、それらに対応するメタデータが、メタデータ用データベース20の所定の領域に格納される。尚、この例では、「プリンタBで印刷するプログラム」というデータに対して、「プリンタB/で/X:PDF/を/印刷する」と「X:PDF/を/印刷する」という説明文を含む2つのメタデータが登録されている。
【0084】
以下、上記のようにデータおよびメタデータが登録されている状態で、目的とするデータに対応するメタデータを検索する手順の具体例を2つ説明する。
「検索手順例1」
これは、検索者が「カメラAのカタログを印刷する」というプログラムを検索する場合の手順である。この手順において検索画面180により、検索者に表示される画面情報の概略を図7に示す。図7では、「カメラAのカタログを印刷する」というプログラム(サービス)に対応するメタデータを検索して表示するまでの画面表示をa〜hに例示している。尚、テキスト入力ボックスは、検索者が検索語を入力するためのボックスであるが、オプションであり必要な場合に設けることができる。
【0085】
1)検索者が、データ検索装置10のユーザI/F部を介して(例えば、検索画面に表示された不図示の開始ボタンをクリックすることにより)データ検索装置10に検索開始の指示を出すことにより、検索が開始される。
2)データ検索装置10は、メタデータ用データベース20からメタデータをすべて取得する。
3)データ検索装置10は、メタデータの説明文から先に説明した木を作成する。
4)データ検索装置10は、木のルートノードに移動して、ルートノードから出ている辺についているラベルを項目とするリストを作り、検索者にメニューとして提示する(図7のa)。
5)検索者は提示されたメニューから「カメラA」を選ぶ。
【0086】
6)データ検索装置10は、「カメラA」という語のラベルがついた辺をたどって、次のノードにたどり着く。
7)データ検索装置10は、現在のノードの子ノードへの辺を調べ、それらの辺についたラベル(語)を項目とするリストを作成する。この例の場合「の」と「を」という語の項目からなるリストとなる。
8)データ検索装置10は、生成したリストをメニューとして検索者に提示する(図7のb)。
9)検索者は提示されたメニューから「の」を選ぶ。
10)データ検索装置10は、現在保持しているメタデータの説明文の3個目の語のリストからなるメニューを生成する。この例の場合「マニュアル」と「カタログ」という語の項目からなるリストとなる(図7のc)
11)検索者は「カタログ」を選ぶ。
12)データ検索装置10は、「カタログ」というラベルがついた辺をたどって子ノードへ移動する。
13)データ検索装置10は、到達したノードがメタデータを持っている(すなわち、そのノードにメタデータが割り当てられている)ことからここが説明文の終わりであり得ることを検知し、「結果を表示」という項目を持つメニューを生成する。この場合、到達したノードには、「カメラA/の/カタログ」という説明文を有するメタデータが割り当てられている。なお、この例では到達したところのメタデータを持っているノード(図6で言えばノードN4)は木の末端のノードであって、説明文は必ずここで終わる。しかし、図6のノードN14のように、そのようなノードで終わっている説明文とその先へ続く説明文が重なっていて、検索者が選択するようになっている場合もあることに注意されたい。上で、「説明文の終わりであり得る」と記載しているのはその意味である。
14)またデータ検索装置10は、そのメタデータに含まれるデータの型(プログラムの出力の型)がVOID型でないこと、すなわち、そのデータ(プログラム)が値を返すものであることを検知し、変数Xを説明文の先頭に持つメタデータがメタデータ用データベースに存在する場合には「結果を利用して検索を続ける」という項目をメニューに付け加える。存在しない場合には、「結果を利用して検索を続ける」という項目をメニューに付け加えることはせず、以下の手順をスキップし、検索画面180に対応するデータが存在しない旨を表示する。
15)データ検索装置10は、作成したメニューを検索者に提示する(図7のd)。
【0087】
16)検索者は「結果を利用して検索を続ける」を選ぶ。尚、ここで、検索者が「結果を表示」を選択した場合には、検索画面には、上記手順13)で到達したノードに割り当てられているメタデータが表示されることになる。
17)データ検索装置10は、現在のノードに割り当てられているメタデータ(これは、「カメラA/の/カタログ」という説明文を有する)を記憶し、この検索結果を使って以下の様にして次の検索を行う。
18)データ検索装置10は、記憶したメタデータに記載されたデータの型を調べ、その型の変数を説明文の先頭に持つメタデータをメタデータ用データベースから取得して、上述した木を作る。直前の検索結果のメタデータにより、「カメラAのカタログ」の型がPDFであることが示されているとする。この場合、変数の型としてPDFを選ぶ。この例の場合、PDFを型とする変数を先頭に持つ説明文は「X:PDF/を/印刷する」だけである。このようにして作成した木のルートに付いている唯一の辺X:PDFは当然直前の検索結果にマッチするので、データ検索装置10はこの辺をたどって次のノードへ進む。
19)当該次のノード上でデータ検索装置10はそこに付いている辺を調べ、それらのラベルとなっている語のリストを生成し、メニューに加える。この例では「を」となる(図7のe)。
20)データ検索装置10は、検索者が続く語として「を」を選んだ場合には、「カメラA/の/カタログ」という説明文を持つ上記手順17)で記憶したメタデータに対応するデータの型が変数Xと同じ型であることを記憶する。またデータ検索装置10は、「を」をラベルとして持つ辺をたどって次の子ノードに移動する。
【0088】
21)手順20で移動した現在の子ノードから次の子ノードへの辺を調べ、それらのラベルを項目とするリストを作成する。この例ではリストの項目は「印刷する」となる(図7のf)。
22)データ検索装置10は、生成したリストをメニューとして検索者に提示する。
23)検索者は提示されたメニューから「印刷する」を選ぶ。
24)データ検索装置は「印刷する」というラベルがついた辺をたどって次の子ノードへ移動する。
25)データ検索装置10は、メタデータの説明文の終わりを検知し、「結果を表示」を項目として持つメニューを生成する。これ以上たどる辺がないので、データ検索装置10は他の項目をメニューに付け加えることはしない。
【0089】
26)データ検索装置10は生成したメニューを検索者に提示する。(図7のg)
27)検索者は「結果を表示」を選ぶ。
28)データ検索装置10は現在のノードが持つメタデータを検索者に提示する。また、上記手順17)で記憶したメタデータがXに対応するものである旨の注釈も併せて検索者に提示する(図7のh)。この時点で、検索者は、メタデータに含まれるインデックスからデータ取得部300を介して目的とするプログラムを利用または取得することができることになる。
【0090】
「検索手順例2」
これは、検索者が、「プリンタBでカメラAのカタログを印刷する」という、プログラムと静的データの組み合わせを検索する場合の手順である。尚、検索手順例1の手順1)〜4)までは、本手順においても同じである。
1)〜4)検索手順例1と同様。
5)検索者は提示されたメニューから「プリンタB」を選ぶ。
【0091】
6)データ検索装置10は、「プリンタB」というラベルがついている辺をたどって、次の子のノードにたどり着く。
7)データ検索装置10は、手順6)で到達した現在の子ノードから次の子ノードへの辺を調べ、それらのラベルとなっている語のリストを生成する。この例の場合「で」と「の」という語の項目からなるリストとなる。
8)データ検索装置10は生成したリストを検索者にメニューとして提示する。
9)検索者は提示されたメニューから「で」を選ぶ。
10)データ検索装置10は、「で」とついたラベルをたどって、子ノードへ移動する。
【0092】
11)データ検索装置10は、手順10)で移動した現在の子ノードから次の子ノードへの辺を調べ、それらのラベルとなっている語のリストを作成する。この例では、「で」の次に候補となる語が変数Xなので「他のデータを検索」がリストの項目となる。
12)データ検索装置10は、生成したリストのメニューを検索者に提示する。
13)検索者は提示されたメニューから「他のデータを検索」を選ぶ。
14)データ検索装置10は、木と現在のノードの位置を退避し、以下のように新たな検索(これまで行ってきた検索に対して入れ子になった検索)を開始する。
15)変数Xの型がPDFであるので、データ検索装置10は、静的データのデータ型およびプログラムの出力の型がPDFであるメタデータをメタデータ用データベースから取得して新たに木を作成する。
【0093】
16)データ検索装置10は、手順15)で作成した木のルートから出ている辺を調べ、それらのラベルとなっている語のリストを作成する。この例の場合は、PDFのデータ型を含むメタデータの説明文の先頭の語は、「カメラA」と「プリンタB」であるので、「カメラA」と「プリンタB」という語の項目からなるリストとなる。
17)データ検索装置10は、生成したリストをメニューとして検索者に提示する。
18)検索者はメニューから「カメラA」を選ぶ。
19)データ検索装置10は、「カメラA」をラベルとする辺をたどって子ノードへ移動する。
20)データ検索装置10は、現在のノードから子ノードへの辺を調べ、それらのラベルとなっている語のリストを生成して、それを検索者に提示する。
【0094】
21)検索者は「の」に続き「カタログ」を選ぶ。
22)データ検索装置10は、メタデータの説明文の終わりを検知し、このメタデータを記憶すると共に、このメタデータに対応するデータの型はXの型と同じであることを記憶しておく。
23)データ検索装置10は入れ子の内側の検索を終了し、退避した木と現在のノードへ復帰する。
24)入れ子の内側の検索結果は復帰した現在のノードから出ているところの変数Xが付いている辺にマッチするので、データ検索装置10は当該辺をたどって子ノードに移動し、その子ノードから出ている子ノードへの辺を調べ、それらのラベルとなっている語のリストを生成し、検索者にメニューとして提示する。今の例では、語のリストとして「を」を生成して次の手順25)に進むが、移動した子ノードが現在たどっている説明文の文末に対応するノードではない場合には、その文末に対応するノードに到達するまで、次の子ノードを調べて、語のリストを生成し、メニューとして提示するという上記処理が繰り返される。これは、手順27)においても同様である。
25)検索者は「を」に続いて「印刷する」を選ぶ。
【0095】
26)データ検索装置10は「印刷する」というラベルを持つ辺をたどって子ノードへ移動する。
27)データ検索装置10は、手順26)で移動した子ノードにメタデータが割り当てられていることを検知し、「結果を表示」という項目を持つリストを生成し、検索者にメニューとして提示する。
28)検索者は「結果を表示」を選ぶ。
29)データ検索装置10はノードに割り当てられているメタデータを検索者に提示する。また手順22)で記憶したメタデータがXに対応するものである(すなわち、メタデータに対応するデータの型がXの型と同じである)旨の注釈も併せて提示する。
【0096】
尚、検索されたメタデータに複数の変数が含まれていた場合には、その各変数とメタデータの対応関係も表示する。例えば、検索されたメタデータの説明文が「プリンタB/で/X:PDF/と/Y:PDF/を/印刷する」であり、「カメラA/の/カタログ」、「カメラA/の/仕様」という説明文がそれぞれ変数X、Yに対応付けられている場合には、「プリンタB/で/X:PDF/と/Y:PDF/を/印刷する」というメタデータとと共に、変数X、Yにそれぞれ「カメラA/の/カタログ」、「カメラA/の/仕様」という説明文を持つメタデータが対応することも表示される。
【0097】
1実施形態におけるデータ検索装置10の動作を説明したが、以下のように動作するようデータ検索装置10を構成することもできる。
【0098】
データ検索装置10は、語のリストを検索者に提示する際、その並びの順番を適切に変更するようにしてもよい。具体的な方法としては、データ検索装置10が、入力された語及びその頻度などの検索履歴を保持しておき、入力された頻度の高い語の順にメニューの先頭から配置することなどが考えられる。このようにすれば、検索者の検索効率の向上を図ることができる。
【0099】
検索装置10は、語の同義性を内蔵の辞書に記載しておき、検索者に提示するリストに同じ意味の語を追加するようにしてもよい。例えば、「印刷する」は、「プリントする」と同義であるので、これら2つの語をリストに含めることができ、これにより、検索者は、「印刷する」または「プリントする」のいずれを選択した場合でも同じプログラムを検索することができるので、より簡単かつ迅速に目的とするプログラムを発見することできるようになる。
【0100】
検索装置10は、語の意味の包含関係を内蔵する辞書に登録し、包含関係にある語を、検索者に提示する語のリストに追加するという機能を有するものであってもよい。例としては、予め、「カメラA(具体的なカメラの機種名)はカメラ(一般名詞)に含まれる」とデータ検索装置10内の辞書に記載しておく。この場合、「カメラA」が語のリストにある場合には「カメラ」も提示する語のリストに含めるようにし、また、検索者が最初に入力する語が「カメラ」であったならば「カメラA」を説明文の先頭に持つメタデータをメタデータ用データベースから取得するようにしてもよい。
【0101】
検索装置10のユーザI/F部に含まれる入力部は、検索者が語をメニューから選ぶ代りに、検索者が語を直接入力できる構成であってもよく、また、メニューからの選択と直接入力のいずれかを選択して入力できる構成であってもよい。また、入力部が後者のように構成されている場合において、検索装置10は、検索者に提示する語の候補の数が多いときに、検索者が語を直接入力するように入力部に指示するよう構成されたものであってもよい。直接入力は、例えば図7に示すテキスト入力ボックスに検索語を入力し、「OK」をクリックすることにより行うことができる。
【0102】
検索装置10は、語順の並べ替えが可能であるという付加情報を説明文に付ける機能を有することもできる。例えば「X:HTML/を/プリンタB/で/印刷する」という説明文に対して「X:HTML/を」と「プリンタB/で」は並べ替え(交換)可能であるという付加情報をつけることができる。それによって、データ提供者は、「プリンタB/で/X:HTML/を/印刷する」という説明文を持つメタデータを改めて登録せずに済むことになる。
【0103】
また、上記実施形態では、メタデータ表現木は、データ検索装置10内の木生成部232により生成されるとしたが、メタデータ用データベースがメタデータ表現木を予めメタデータ用データベース上に生成する構成としてもよい。この場合は、メタデータ用データベースにメタデータを登録する際にメタデータ表現木を作成しておけば、この木を繰り返し利用できる。このような構成を取る場合には、メタデータ用データベースにメタデータを追加、削除する際に、メタデータ表現木も修正したり、あるいは作り直す。また、データ検索装置10内の木生成部232でメタデータ表現木を生成する場合でも、検索の都度メタデータ表現木を生成してもよいし、あるいは最初1回だけ生成してその後はこのようにして生成した木を再利用してもよい。後者の場合、メタデータ用データベースへのメタデータの追加、削除があった場合に、そのような追加、修正の通知を当該データベース等から受け取って、メタデータ表現木の修正、あるいは作り直しを行う。更に、第2、第3のフィルタ設定によってメタデータを読み出して新たに部分木を生成する代りに、既に生成されているメタデータ表現木から辺を削除するなどして部分木を生成したり、あるいは既に生成されているメタデータ表現木をそのまま使用するが、その代わり、フィルタリング条件に合致しない辺をたどらない様に(また、その辺だけ見ると条件に合致しないというわけではないが、先をどのようにたどって行っても結局は条件に合致するパスが存在しないというような辺も排除するように)辺に属性を設定するなどの多様な変形が可能である。
【0104】
【発明の効果】
本発明によれば、提示された語群を参照しながら検索のための自然な文を作成するという直感的な方法で効率よく目的とするデータの検索を行うことが可能となる。また、複数のデータを柔軟に組みあわせた検索も可能になる。
【図面の簡単な説明】
【図1】本発明の1実施形態によるデータ検索システムの構成を示す概念図である。
【図2】本発明の1実施形態によるデータ及びメタデータを登録する手順の概要を示す。
【図3】本発明の1実施形態によるデータ検索装置の構成ブロックを示す図である。
【図4】本発明の1実施形態によるメタデータの形式を示す。
【図5】本発明の1実施形態によるメタデータの1例である。
【図6】本発明の1実施形態によるメタデータ表現木の例を示す図である。
【図7】本発明の1実施形態による検索処理における検索画面の表示の例を示す図である。
【図8】本発明の1実施形態による検索の流れを示す概念図である。
【図9】本発明の1実施形態による検索システムが実施する手順を示す最上位のフローチャートである。
【図10】図9の「検索処理」の手順を示すフローチャートである。
【図11】図10の「木の生成処理」の手順を示すフローチャートである。
【図12】図11の「作成したパスと木の合成処理」の手順を示すフローチャートである。
【図13】図10の「メニューの作成及び提示処理」の手順を示すフローチャートである。
【図14】図10の「入力の処理」の手順を示すフローチャートである。
【図15】図14の「ラベル選択処理」の手順を示すフローチャートである。
【符号の説明】
10 データ検索装置
20 メタデータ用データベース
30 データ用データベース
100 ユーザI/F部
120 入力部
140 リスト提示部
200 検索処理部
220 リスト生成部
230 メタデータ検索部
232 木生成部
234 メタデータ検索エンジン
236 メタデータ読み取り部
300 データ取得部
Claims (15)
- データ検索を行うデータ検索システムにおいて、
メタデータの集合を格納するためのメタデータ格納手段であって、各メタデータは、各データに対応付けられていて、対応するデータのインデックスと、対応するデータの内容説明文と、対応するデータの型を含み、前記内容説明文は所定単位の語で区切られていることからなる、メタデータ格納手段と、
検索処理手段と
から構成され、
前記検索処理手段が、
前記メタデータ格納手段から前記メタデータの集合の少なくとも一部(第1のメタデータの集合)を読み取るためのメタデータ読み取り手段と、
第1の目的とするデータを検索するための一または複数の語からなる検索文を、その検索文を構成する語毎に順次入力するように構成された入力手段と、
前記入力手段によって前記語が入力される毎に、前記内容説明文のうちの対応する所定単位の語を、入力された語に続く候補の語として語のリストを生成するリスト生成手段と、
前記生成された語のリストを提示するためのリスト提示手段と、
前記メタデータ読み取り手段により読み取られたメタデータの集合(前記第1のメタデータの集合)から、前記入力手段により入力された検索文に基づいて、前記第1の目的とするデータに対応するメタデータ(第1の特定メタデータ)を検索するメタデータ検索手段
とを備えることからなる、データ検索システム。 - 前記内容説明文を構成する所定単位の語の少なくとも1つはデータ型を有する変数とすることができ、
現在行っている前記データ検索とは別に行う前記データ検索の結果の型が前記変数の型と同じである場合は前記別に行う前記データ検索の結果が前記変数にマッチするとみなす
ことを特徴とする請求項1のデータ検索システム。 - 前記変数は前記内容説明文の先頭に置かれた前記所定単位の語であり、
前記別に行う前記データ検索は現在行われている前記データ検索の直前の検索である
ことを特徴とする請求項2のデータ検索システム。 - 前記変数は前記内容説明文の途中に置かれた前記所定単位の語であり、
現在行われている前記データ検索に対して前記入力手段から入力する検索文中の語が前記変数に対応する位置にある時、前記別に行う前記データ検索を開始する
ことを特徴とする請求項2のデータ検索システム。 - 前記内容説明文は、その先頭の所定単位の語を所定のデータ型を有する変数として表すことが可能である、請求項1のデータ検索システムであって、
前記データ検索システムは、前記第1の特定メタデータを保持することができるよう構成され、前記入力手段は、前記第1の特定メタデータの内容説明文を入力することができるよう構成され、前記入力手段に前記第1の特定メタデータの内容説明文が入力された場合において、
前記メタデータ読み取り手段は、前記保持されている第1の特定メタデータに含まれるデータ型と同じ型の変数を先頭の語とする説明文を含むメタデータの集合(第2のメタデータの集合)を前記メタデータ格納手段から読み取り、
前記リスト生成手段は、前記第2のメタデータの集合を構成するメタデータの内容説明文の対応する所定単位の語を、前記第1の特定メタデータの内容説明文に続く候補の語として語のリストを生成するよう構成され、
前記メタデータ検索手段は、前記第2のメタデータの集合から、前記入力された第1の特定メタデータの内容説明文とその後に前記入力手段によって入力された語とからなる検索文に基づいて、第2の目的とするデータに対応するメタデータ(第2の特定メタデータ)を検索するように構成される、データ検索システム。 - 請求項1または5のデータ検索システムであって、前記リスト生成手段が生成する語のリストに前記変数に対応する語が含まれ、かつ、前記入力手段に前記変数に対応する語が入力された場合において、
前記データ検索システムは、現在検索されているメタデータの集合を保持して現在の検索を中断し、
前記メタデータ読み取り手段は、前記変数と同じ型のデータ型を含むメタデータの集合(第3のメタデータの集合)を前記メタデータ格納手段から読み取り、
前記メタデータ検索システムは、前記第3のメタデータの集合から第3の目的とするデータに対応するメタデータ(第3の特定メタデータ)を検索し、
前記第3の特定メタデータが検索された場合において、
前記リスト生成手段は、前記変数に続く候補となる語のリストを生成するよう構成され、
前記データ検索システムは、前記中断した検索を再開し、
前記メタデータ検索手段は、前記保持したメタデータの集合の中から前記第1の特定メタデータを検索するよう構成される、データ検索システム。 - 前記メタデータ検索手段が、前記入力手段により入力された検索文に一致する内容説明文を含むメタデータを検索するよう構成されており、さらに、前記メタデータ検索手段は、前記検索したメタデータから前記インデックスを取り出すインデックス取得手段を備える、請求項1乃至6のいずれかのデータ検索システム。
- メタデータを使用してデータ検索を行うデータ検索方法であって、各メタデータは、各データに対応付けられていて、対応するデータのインデックスと、対応するデータの内容説明文と、対応するデータの型を含み、前記内容説明文は所定単位の語で区切られており、
前記メタデータの集合をメタデータ格納手段に格納するステップと、
前記メタデータ格納手段から前記メタデータの集合の少なくとも一部を読み取るステップと、
目的とするデータを検索するための一または複数の語からなる検索文を、その検索文を構成する語毎に順次入力するステップと、
前記語が入力される毎に、入力された語に続く候補の語として前記内容説明文のうちの対応する所定単位の語のリストを生成するステップと、
前記生成された語のリストを提示するステップと、
前記読み取られたメタデータの中から、前記入力された検索文に基づいて、前記目的とするデータに対応するメタデータを検索するステップとを含む、データ検索方法。 - 前記内容説明文を構成する所定単位の語の少なくとも1つはデータ型を有する変数とすることができ、
現在行っている前記データ検索とは別に行う前記データ検索の結果の型が前記変数の型と同じである場合は前記別に行う前記データ検索の結果が前記変数にマッチするとみなす
ことを特徴とする請求項8のデータ検索方法。 - 前記変数は前記内容説明文の先頭に置かれた前記所定単位の語であり、
前記別に行う前記データ検索は現在行われている前記データ検索の直前の検索である
ことを特徴とする請求項9のデータ検索方法。 - 前記変数は前記内容説明文の途中に置かれた前記所定単位の語であり、
現在行われている前記データ検索に対して前記入力手段から入力する検索文中の語が前記変数に対応する位置にある時、前記別に行う前記データ検索を開始する
ことを特徴とする請求項9のデータ検索方法。 - 前記メタデータを検索するステップは、前記入力された検索文に一致する内容説明文を含むメタデータを検索するステップと、検索したメタデータから前記インデックスを取り出すステップを含む、請求項8乃至11のいずれかのデータ検索方法。
- データ検索方法であって、各メタデータは、各データに対応付けられていて、対応するデータのインデックスと、対応するデータの内容説明文と、対応するデータの型を含み、前記内容説明文は、少なくとも1つの所定単位の語からなる語の列であって、文頭、文中及び文末の区切りによって前記所定単位の語毎に区切られており、
a.前記メタデータの集合をメタデータ格納手段に格納するステップと、
b.前記メタデータ格納手段から前記メタデータの集合の少なくとも一部を読み取るステップと、
c.前記メタデータ格納手段から読み取った前記メタデータの集合をメタデータ表現木(第1のメタデータ表現木)で表すステップであって、前記第1のメタデータ表現木は、前記文頭の区切りに対応するノード(ルートノード)と、ルートノードの下流に位置し、前記文中または文末の区切りに対応する1または複数のノード(子ノード)と、2つのノード間を接続する辺から構成され、前記ルートノードから下流に向かって子ノードを順次接続する辺の各々は、各メタデータの内容説明文の先頭の所定単位の語から続く所定単位の語の各々に順次対応しており、内容説明文の文末の区切りに対応する子ノードには、その内容説明文を内容説明文とするメタデータが割り当てられることからなる、ステップと、
d.前記第1のメタデータ表現木のルートノードから1つ下流の子ノードに向かう辺に対応する語のリストを生成するステップと、
e.生成されたリストから語を選択して入力するステップと、
f.前記入力された語に対応する辺をたどって1つ下流の子ノードを取得するステップと、
g.前記取得した子ノードから1つ下流の子ノードに向かう辺に対応する語のリストを生成するステップと、
h.前記第1のメタデータ表現木からメタデータが割り当てられている子ノードを取得するまで、前記ステップe.からg.を繰り返すステップと
を含む、データ検索方法。 - メタデータは、その内容説明文の所定単位の語を所定の型を有する変数として表すことが可能である、請求項13のデータ検索方法であって、
前記ステップg.のリストを生成するステップにおいて、前記変数に対応する語がそのリストに含まれ、かつ、前記ステップe.の語を入力するステップにおいて、前記変数に対応する語が入力された場合において、請求項13のステップe.からh.に代えて以下のステップを実施する方法。
i.前記第1のメタデータ表現木において、現在の木とノードの位置を一時的に記憶するステップと、
j.前記変数の型と同じデータの型を含むメタデータの集合(第2のメタデータの集合)を前記メタデータ格納手段から読み取って、前記第2のメタデータの集合を前記メタデータ表現木(第2のメタデータ表現木)で表すステップと、
k.前記第2のメタデータ表現木のルートノードから1つ下流の子ノードに向かう辺に対応する語のリストを生成するステップと、
l.生成されたリストから語を選択して入力するステップと、
m.前記入力された語に対応する辺をたどって1つ下流の子ノードを取得するステップと、
n.前記取得した子ノードから1つ下流の子ノードに向かう辺に対応する語のリストを生成するステップと、
o.前記第2のメタデータ表現木から、メタデータが割り当てられている子ノードを取得するまで、前記ステップl.からn.までを繰り返すステップと、
p.前記一時的に記憶した木とノードの位置を読み出すステップと、
前記第1のメタデータ表現木について、
q.前記読み出したノードの位置から前記変数に対応する辺をたどって1つ下流の子ノードを取得するステップと、
r.ステップq.において取得された前記第1のメタデータ表現木における子ノードを請求項13のステップf.において取得した子ノードとして、請求項13のステップg.及びh.を実施するステップ。 - 請求項14のステップr.において、メタデータが割り当てられた子ノードが取得された場合に、その子ノードに割り当てられているメタデータを提示すると共に、請求項14のステップo.において取得された子ノードに割り当てられたメタデータが前記変数に対応するものであることを提示するステップをさらに含む、請求項14のデータ検索方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2003069520A JP2004280349A (ja) | 2003-03-14 | 2003-03-14 | データ検索システムおよびデータ検索方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2003069520A JP2004280349A (ja) | 2003-03-14 | 2003-03-14 | データ検索システムおよびデータ検索方法 |
Publications (1)
Publication Number | Publication Date |
---|---|
JP2004280349A true JP2004280349A (ja) | 2004-10-07 |
Family
ID=33286536
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2003069520A Pending JP2004280349A (ja) | 2003-03-14 | 2003-03-14 | データ検索システムおよびデータ検索方法 |
Country Status (1)
Country | Link |
---|---|
JP (1) | JP2004280349A (ja) |
-
2003
- 2003-03-14 JP JP2003069520A patent/JP2004280349A/ja active Pending
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JP4381012B2 (ja) | 万物識別子を用いたデータ検索システムおよびデータ検索方法 | |
US9135341B2 (en) | Method and arrangement for paginating and previewing XHTML/HTML formatted information content | |
JP3879350B2 (ja) | 構造化文書処理システム及び構造化文書処理方法 | |
JPH07325827A (ja) | ハイパーテキスト自動生成装置 | |
CN107220250A (zh) | 一种模板配置方法及系统 | |
JP5185402B2 (ja) | 文書検索装置、文書検索方法、及び文書検索プログラム | |
JP2005346495A (ja) | 情報処理システム、情報処理方法、および情報処理プログラム | |
JP6840597B2 (ja) | 検索結果要約装置、プログラム及び方法 | |
JP5151368B2 (ja) | 情報処理装置および情報処理プログラム | |
JP4967037B2 (ja) | 情報検索装置、情報検索方法、端末装置、およびプログラム | |
JP2007257369A (ja) | 情報検索装置 | |
JPH11143885A (ja) | 情報検索方法及び装置及び情報検索プログラムを格納した記憶媒体及び情報発信方法及び装置及び情報発信プログラムを格納した記憶媒体 | |
JP2008026964A (ja) | 検索処理装置及びプログラム | |
JP2004280349A (ja) | データ検索システムおよびデータ検索方法 | |
JP4207992B2 (ja) | 構造化文書処理システム及び構造化文書処理方法 | |
JP4473639B2 (ja) | コンテンツマップ作成プログラム、方法及び装置 | |
JP5843235B2 (ja) | Web情報処理装置、web情報処理方法、およびプログラム | |
JP4034503B2 (ja) | 文書検索システムおよび文書検索方法 | |
JP2006120169A (ja) | 情報検索装置およびその装置としてコンピュータを機能させるためのプログラムを記録したコンピュータ読み取り可能な記録媒体 | |
JP2006172029A (ja) | 検索結果提示方法 | |
JP5288569B2 (ja) | 電子出版処理装置、電子出版処理方法、およびプログラム | |
JP2006106872A (ja) | 知識情報収集システム、知識検索システム及び知識情報収集方法 | |
JP2003173338A (ja) | 辞書構築支援装置、辞書構築支援方法及び辞書構築支援プログラム | |
JP2006163723A (ja) | ドキュメント検索方法 | |
JP2004288151A (ja) | 操作履歴管理装置、操作履歴管理方法、および操作履歴管理プログラム |