以下、検索装置等の実施形態について図面を参照して説明する。なお、実施の形態において同じ符号を付した構成要素は同様の動作を行うので、再度の説明を省略する場合がある。
(実施の形態1)
本実施の形態において、検索対象を特定する検索対象情報と、検索対象を特定する元になる起点情報と、検索対象と起点との関係を示す関係情報とを有する問合情報に基づいて、起点と関係が示す関係を有する検索対象に関する情報を取得し、出力する検索装置を具備する検索システムについて説明する。なお、本実施の形態において、関係情報は、例えば、空間内における関係を特定する情報、時間に関する関係を特定する情報である。
図1は、本実施の形態における検索システムAの概念図である。検索システムAは、検索装置1、または1または2以上の端末装置2を備える。検索装置1は、例えば、いわゆるクラウドサーバ、ASPサーバ等のサーバ装置である。端末装置2は、ユーザが使用する端末である。端末装置2は、いわゆるパーソナルコンピュータ、タブレット端末、スマートフォン等であり、その形状、種類等は問わないことは言うまでもない。検索装置1と1以上の各端末装置2とは、インターネット等のネットワークにより通信可能である。
図2は、本実施の形態における検索システムAのブロック図である。検索装置1は、格納部11、受付部12、処理部13、および出力部14を備える。
検索装置1を構成する処理部13は、例えば、解釈部131、検索部132を備える。検索部132は、起点情報検索手段1321、検索対象検索手段1322を備える。
端末装置2は、端末格納部21、端末受付部22、端末処理部23、端末送信部24、端末受信部25、および端末出力部26を備える。
検索装置1を構成する格納部11は、には、種々の情報が格納し得る。種々の情報とは、例えば、情報源である。情報源とは、いわゆる検索対象の情報のソースであり、検索する先の情報である。情報源は、例えば、地図情報、ストリームデータ等であることは好適である。ただし、情報源は、例えば、1以上の文書を有する文書群でも良い。文書群は、例えば、ウェブページの集合、複数の文書を格納したウェブサーバ等である。文書は、例えば、ファイルであるが、データベース等でも良く、そのデータ構造は問わないことは言うまでもない。
地図情報とは、地図に関する情報である。また、地図情報により示される地図の種類、地図情報のデータ形式などは、問わない。当該地図の種類は、例えば、地形図、地勢図、地質図、土地利用図、住宅地図、路線図、道路地図、ガイドマップ、航空写真、衛星写真などである。また、当該データ形式は、例えば、ラスタデータ、ベクタデータ、KIWIフォーマットなどである。地図情報は、例えば、1または2以上のスポット情報を有する。スポット情報は、例えば、スポット名、当該スポットの種類を示す種類情報、当該スポットの位置を示す位置情報等を有する。スポットは、例えば、地点、駅、蕎麦屋、ケーキ屋、カフェ、文房具屋等の店舗、名勝等である。地図情報は、例えば、地図の図柄、または図柄を構成する情報を有する。
ストリームデータは、時間軸を有するデータであり、例えば、映像(例えば、ビデオファイル)、音楽、番組である。映像や音楽等のストリームデータのデータ構造等は問わない。映像は、通常、1以上のフィールドを有する。映像は、例えば、1以上の各フィールドに1以上のオブジェクト識別子が対応付けられていても良い。
なお、後述する検索部132が検索を行う情報源は、検索装置1が有しても良いし、図示しない1または2以上の外部の装置が有しても良い。
受付部12は、問合情報を受け付ける。問合情報とは、情報を検索するための問合せを特定する情報である。問合情報は、クエリと言っても良い。 問合情報は、検索対象情報と起点情報と関係情報とを有する。問合情報の中における検索対象情報、起点情報、関係情報の出現順序は問わない。
なお、ここでの受け付けとは、通常、有線もしくは無線の通信回線を介して送信された情報の受信である。ただし、受け付けは、キーボードやマウス、タッチパネルなどの入力デバイスから入力された情報の受け付け、光ディスクや磁気ディスク、半導体メモリなどの記録媒体から読み出された情報の受け付けなどを含む概念であると考えても良い。
受付部12は、端末装置2で問合情報が解釈された結果である解釈結果を受信しても良い。問合情報の解釈とは、問合情報のパージングと言っても良い。問合情報の解釈は、パーザ機能と言っても良いし、インタープリタ機能と言っても良い。解釈結果は、例えば、検索部132が行う検索の関数またはメソッドに与える引数の集合である。解釈結果は、例えば、SQL文である。なお、解釈結果のデータ構造等は問わない。解釈結果は、検索対象情報、起点情報、関係情報を有する。
問合情報は、ユーザにより入力されたテキスト、またはユーザにより入力されたテキストから構成された情報であることは好適である。ただし、問合情報は、図的なインターフェイスからユーザにより入力された指示または/および情報により、構成された情報でも良い。また、受付部12が受け付ける問合情報は、検索対象情報、起点情報、関係情報の各々を入力するフィールドを有する画面に対して、ユーザにより入力された検索対象情報、起点情報、関係情報を有する情報でも良い。
問合情報は集合演算子により結合されても良い。かかる場合、結合される問合情報を部分問合情報という。つまり、問合情報は、2以上の部分問合情報を有していても良い。部分問合情報を結合する集合演算子は、例えば、和、差、積のうちの1以上の演算子である。かかる問合情報は、例えば、「(A 800m α)+(B 800m β)」である。「(A 800m α)+(B 800m β)」は、例えば、「Aから800m圏内のαとBから800m圏内のβの和集合」を取得する問い合わせである。
検索対象情報は、ユーザが検索したい対象である検索対象を特定する情報である。検索対象情報は、通常、ユーザが得たい情報である。検索対象情報は、ユーザが得たい情報の属性値等でも良い。つまり、検索対象情報は、ユーザが得たい情報に関する情報であると、広く解することは好適である。
起点情報は、検索対象を取得する場合の起点となるものを特定する情報である。起点情報は、検索対象を特定するための元になる起点の情報である、と言っても良い。起点情報は、通常、ユーザにより入力された文字列であるが、ユーザの指示により示されても良い。ユーザの指示は、例えば、地図上における地点の指示である。なお、かかる指示の手段は、マウス、指等によるタッチ、タッチペンによるタッチ等、問わない。
関係情報は、検索対象と起点との関係を特定するための情報である。関係情報は、検索対象と起点との関係を特定するための数値情報を含んでも良い。数値情報は、単位を含んでも良い。数値情報は、例えば、距離を特定する数値(例えば、800m、3km)、時間を特定する数値(例えば、3分、2時間、5分45秒)である。関係情報は、後述する関係子を含んでも良い。関係子は、検索対象と起点との関係を特定する記号である。関係子は、例えば、後述する空間距離情報または時間距離情報に対して、付加的な関係を規定する情報である。なお、記号とは、1以上の文字であるが、広く情報である、と解しても良い。
関係情報は、例えば、空間距離情報を含む。空間距離情報は、検索対象と起点との空間内における相対的な間隔に関する情報である。空間距離情報は、例えば、距離により特定される情報である。ただし、空間距離情報は、例えば、移動時間により特定される情報を含むと考えても良い。移動時間は、例えば、徒歩での移動時間であるが、自動車や電車等の乗物を利用した場合の移動時間でも良い。空間距離情報は、例えば、800m、範囲を有する「1km-3km」「800m以内」である。
空間距離情報は、例えば、問合情報の中における検索対象情報と起点情報と物理的な間隔により特定される。例えば、問合情報がテキストであり、以下の(1)(2)である場合、例えば、(2)は(1)に対して、空間距離情報が5倍である、と解釈される。例えば、(1)では空間距離情報が100m、(2)では、500mである。また、例えば、(1)はAから1番目に距離の近いB、(2)はAから5番目までに距離の近いBである。
(1)「A B」(スペース一つ)
(2)「A B」(スペース5つ)
また、問合情報が以下の(3)(4)である場合、例えば、(4)は(3)に対して、空間距離情報が5倍である、と解釈される。例えば、(3)では空間距離情報が100m、(4)では、500mである。また、例えば、(3)はAから1番目に距離の近いB、(4)はAから5番目までに距離の近いBである。
(3)「A+B」
(4)「A+++++B」
関係情報は、例えば、時間距離情報を含む。時間距離情報は、検索対象と起点との時間における相対的な間隔に関する情報である。時間距離情報は、例えば、映像や音声や音楽等のストリームデータにおける時間を特定する情報である。ただし、時間距離情報は、移動時間により特定される情報を含むと考えても良い。時間距離情報は、例えば、3分、30フィールド、範囲を有する「3分以内」等である。
時間距離情報は、例えば、問合情報内における検索対象情報と起点情報と間隔により特定される。例えば、問合情報がテキストであり、以下の(5)(6)である場合、例えば、(6)は(5)に対して、時間距離情報が5倍である、と解釈される。例えば、(5)では時間距離情報が1分、(6)では5分である。また、例えば、(5)はAから1番目に時間上で近いB、(6)はAから5番目までに時間上で近いBである。
(5)「A B」(スペース一つ)
(6)「A B」(スペース5つ)
また、問合情報が以下の(7)(8)である場合、例えば、(8)は(7)に対して、時間距離情報が5倍である、と解釈される。例えば、(7)では時間距離情報が1分、(8)では、5分である。また、例えば、(7)はAから1番目に時間上で近いB、(8)はAから5番目までに時間上で近いBである。
(7)「A+B」
(8)「A+++++B」
なお、空間距離情報と時間距離情報とを合わせて時空間情報と言っても良い。関係情報は、例えば、時空間長を有する。時空間長は、時間または空間の中での長さを特定する情報である。
また、問合情報が空間距離情報または時間距離情報を有する場合、当該問合情報は、時空間範囲演算式と言っても良い。また、問合情報が空間距離情報または時間距離情報を有する場合の検索処理を、時空間演算と言っても良い。
また、関係情報は、上述したように、例えば、関係子を含む。関係子には、例えば、空間に関する空間関係子、時間に関する時間関係子がある。
空間関係子には、例えば、周辺であることを示す周辺関係子(例えば、「*」)、周囲または圏内であることを示す周囲関係子(例えば、「|」)、方向を特定する方向関係子(例えば、「^」または「~」上または北、「_」は下または南)、角度を特定する角度関係子(例えば、「θ」)がある。なお、周囲関係子は、例えば、省略可能であることは好適である。
なお、図3は上記の関係子を説明するための図である。図3において、起点情報が「A」であり、関係情報が有する空間距離情報が「3km」であることが前提である。そして、図3(a)は、関係情報が周辺関係子を有する場合の範囲を示す図である。図3(a)では、Aから3kmの地点の集合が検索対象の範囲である。なお、周辺関係子を用いて規定された範囲は、空間距離情報示す「3km」丁度を含み、かつ空間距離情報から予め決められた誤差を含む範囲でも良い。図3(b)は、関係情報が周囲関係子を有する場合の範囲を示す図である。図3(b)では、Aから3km以内の範囲が検索対象の範囲である。図3(c)は、方向関係子を有する場合の範囲を示す図である。図3(c)は、Aから3km以内の範囲であり、北側の範囲(ここでは、例えば、180度の範囲)を示す図である。図3(d)は、関係情報が角度関係子を有する場合の範囲を示す図である。図3(d)は、Aから3km以内の範囲であり、真北から90度までの範囲を示す図である。
また、関係子には、例えば、範囲を示す範囲演算子がある。範囲演算子は、例えば、「[」と「]」により特定される。つまり、例えば、範囲は「[ ]」により示される。例えば、[1km-3km]は、1kmから3kmの範囲であることを示す。
また、図4は、問合情報が範囲関係子と集合演算とを有する場合の検索対象の範囲を示す図である。図4において、起点情報が「A」または「A」と「B」であり、関係情報が有する範囲関係子が示す範囲の情報が「1kmから3km」であることが前提である。図4(a)は、集合演算を有さない場合であり、Aから1kmから3kmの範囲が検索対象の範囲である。図4(b)は、Aから1kmから3kmの範囲と、Bから1kmから3kmの範囲との和演算による範囲が検索対象の範囲である。図4(c)は、Aから1kmから3kmの範囲と、Bから1kmから3kmの範囲との積演算による範囲が検索対象の範囲である。
時間関係子には、例えば、数値情報等により指定された基準となる時間の前後を含む時間であることを示す前後関係子(例えば、「#*」)、数値情報等により指定された基準となる時間を含んで、その時間の前であることを示す前関係子(例えば、「#<」)、数値情報等により指定された基準となる時間を含んで、その後であることを示す後関係子(例えば、「#>」)、時間の範囲を示す範囲演算子(例えば、「#[x-y]」)、現在であることを示す現在関係子(例えば、「#$」)がある。なお、「#[x-y]」は、時間の範囲がxからyであることを示す。例えば、現在関係子を用いた具体例である「A駅 #$<5分 蕎麦屋」は、現在から5以内の蕎麦屋を検索する問合情報である。
また、関係子には、例えば、検索対象情報の属性値を特定するプロパティ関係子がある。プロパティ関係子は、例えば、「$」である。
なお、上記の関係子の記号は一例であることは言うまでない。また、関係子は、一文字であることが好適であるが、2以上の文字から構成されても良い。
問合情報の例は、例えば、以下の(1)から(20)である。
(1)問合情報は、例えば、「A 時空間長 α」である。かかる場合、「A」は起点情報、時空間長は関係情報、「α」は検索対象情報である。なお、かかる問合情報は、最小の時空間演算(適宜、SQと言う)である。かかる問合情報の例は、「A駅 800m 蕎麦屋」である。この問合情報は、「A駅から800m圏内の蕎麦屋」を検索する指示である。また、かかる問合情報の例は、「A駅 5分 蕎麦屋」である。この問合情報は、「A駅から5分圏内の蕎麦屋」を検索する指示である。なお、時空間長は数値と単位とを含むことは好適である。
(2)問合情報は、例えば、「(A 時空間長 α)集合演算子(B 時空間長 β)」である。かかる場合、「A」「B」は起点情報、時空間長は関係情報、「α」「β」は検索対象情報である。また、集合演算子は、例えば、和「+」,差「-」,積「*」のいずれかである。また、かかる問合情報の例は、「(A駅 800m 蕎麦屋)+(スポットB 500m 寿司屋)」である。この問合情報は、「A駅から800m圏内の蕎麦屋またはスポットBから500m圏内の寿司屋」を検索する指示である。また、かかる問合情報の例は、「(A駅 800m 蕎麦屋)-(スポットB 500m 蕎麦屋)」である。この問合情報は、「A駅から800m圏内であり、スポットBから500m圏内を除く範囲に存在する蕎麦屋」を検索する指示である。また、かかる問合情報の例は、「(A駅 800m 蕎麦屋)*(スポットB 500m 蕎麦屋)」である。この問合情報は、「A駅から800m圏内であり、かつスポットBから500m圏内に存在する蕎麦屋」を検索する指示である。
(3)問合情報は、例えば、「A *空間距離情報 α」である。かかる場合、「*」は周辺関係子、「*空間距離情報」は関係情報である。かかる問合情報の例は、「A駅 *800m 蕎麦屋」である。この問合情報は、「A駅から800mの周辺に存在する蕎麦屋」を検索する指示である。なお、周辺の範囲は、例えば、数値情報(ここでは「800m」)に対して、予め決められた誤差(例えば「+―100m」)を含む範囲(例えば、「700mから900m」)であることは好適である。また、かかる場合、誤差を示す誤差情報は、格納部11に予め格納されている、とする。
(4)問合情報は、例えば、「A 空間距離情報 α」である。かかる場合、「空間距離情報」は関係情報である。かかる問合情報の例は、「A駅 800m 蕎麦屋」である。この問合情報は、「A駅から800m圏内に存在する蕎麦屋」を検索する指示である。また、ここでは、関係子が省略されている。
(5)問合情報は、例えば、「A ^空間距離情報 α」である。かかる場合、「^空間距離情報」は関係情報である。かかる問合情報の例は、「A駅 ^800m 蕎麦屋」である。この問合情報は、「A駅から800m圏内の北側方向に存在する蕎麦屋」を検索する指示である。なお、北側方向は、真北からどの程度の範囲を含めるか(例えば、「+-45度」))についての情報は予め格納されている。
(6)問合情報は、例えば、「A 空間距離情報 θ角度 α」である。かかる場合、「空間距離情報 θ 角度」は関係情報である。また、「θ」は、角度関係子である。「角度」には数値が入る。かかる問合情報の例は、「A駅 800m θ90 蕎麦屋」である。この問合情報は、「A駅から800m圏内の角度90度方向に存在する蕎麦屋」を検索する指示である。なお、角度90度方向は、90度からどの程度の誤差を含めるか(例えば、「+-5度」))についての情報は予め格納されている。
(7)問合情報は、例えば、「A 範囲関係子を含む関係情報 α」である。かかる問合情報の例は、「A駅 [3km-1km] 蕎麦屋」である。この問合情報は、「A駅から3kmから1kmに存在する蕎麦屋」を検索する指示である。なお、この問合情報は、「(A駅 3km 蕎麦屋)-(A駅 1km 蕎麦屋)」という具合に、差演算を用いても記載可能である。
(8)問合情報は、例えば、「A 空間距離情報 プロパティ関係子 プロパティ α」である。かかる問合情報の例は、「A駅 3km $10台 α」である。この問合情報は、「A駅から3km圏内で10台の規模のα」を検索する指示である。
(9)問合情報は、例えば、「A #時間距離情報 α」である。この問合情報は、「Aから時間距離情報(例えば、3分)が示す時間の圏内にあるαを検索する指示である。なお、αは、例えば、映像または音楽等のストリームデータの箇所または一部である。また、αは、地図上のスポット(地名、ランドマーク、名勝等)でも良い。なお、αが地図上のスポットの場合、時間距離情報は移動時間である。また、なお、αがストリームデータの場合、時間距離情報は再生時の時間である。かかることは、以降も同様である。
(10)問合情報は、例えば、「A #*時間距離情報 α」である。この問合情報は、「Aから時間距離情報(例えば、3分)が示す時間前後にあるαを検索する指示である。
(11)問合情報は、例えば、「A ^#時間距離情報 α」である。この問合情報は、「Aから時間距離情報(例えば、3分)圏内であり、かつ北側または上側にあるαを検索する指示である。
(12)問合情報は、例えば、「A #<時間距離情報 α」である。この問合情報は、「Aから時間距離情報(例えば、3分)の前にあるαを検索する指示である。
(13)問合情報は、例えば、「A #[x-y] α」である。この問合情報は、「Aからxからyの間の時間にあるαを検索する指示である。
(14)問合情報は、例えば、「A *3行 α」である。この問合情報は、「Aから3行以内でαがマッチした場合にそのαを含む行を取得する指示である。かかる場合は、図5の(a)(b)である。
(15)問合情報は、例えば、「A 3行 α」である。この問合情報は、「Aから3行以内でαがマッチした場合にAから3行分を取得する指示である。かかる場合は、図5の(a)である。
(16)問合情報は、例えば、「A #<3行 α」である。この問合情報は、「Aから3行前のαがマッチした場合にαからAの3行分を取得する指示である。かかる場合は、図5の(b)である。
(17)問合情報は、例えば、「A #<3行 jpg」である。この問合情報は、「Aから3行前のjpg(画像)がマッチした場合に画像からAの3行分を取得する指示である。
(18)問合情報は、例えば、「A #<3行 url」である。この問合情報は、「Aから3行前のリンクがマッチした場合にリンクからAの3行分を取得する指示である。
(19)問合情報は、例えば、「A ^3行 jpg」である。この問合情報は、「Aから3行上にあるjpg(画像)がマッチした場合にjpg(画像)からAまでの3行分を取得する指示である。
(20)問合情報は、例えば、「A [θ90-θ180] jpg」である。この問合情報は、「Aからθ90からθ180(左横)のjpg(画像)がマッチした場合にjpg(画像)からAまでの全てを取得する指示である。
なお、(14)以降に、行を取得する処理は、パラグラフを取得する処理にしても良い。また、端末装置2で出力される情報は、検索対象に関する情報であり、その範囲は問わないことは好適である。
処理部13は、各種の処理を行う。各種の処理とは、例えば、解釈部131、検索部132等が行う処理である。
解釈部131は、受付部12が受け付けた問合情報を解釈し、解釈結果を取得する。解釈結果は、起点情報、関係情報、および検索対象情報を有する。問合情報の解釈は、問合情報をパージングすることである。なお、問合情報の解釈は、問合情報をインタープリットすることであると考えても良い。つまり、解釈部131は、パーサと言っても良いし、インタープリタと言っても良い。解釈部131の処理は公知技術により可能であるので、詳細な説明を省略する。
検索部132は、問合情報に基づいて、起点に対して関係情報を用いて特定される関係を有する検索対象に関する情報を情報源から取得する。また、検索部132は、問合情報に基づいて、起点に対して関係情報を用いて特定される関係を有する検索対象情報を検索する、と言っても良い。なお、問合情報は、検索対象情報と、起点情報と、関係情報とを有する。
なお、検索とは、条件に合致する検索対象情報を取得することでも良いし、条件に合致する検索対象情報の属性値を取得することでも良いし、条件に合致する検索対象情報へのポインタを取得することでも良いし、条件に合致する検索対象情報へアクセスするための情報(例えば、URLや、フレームIDなど)を取得することでも良い。つまり、検索部132が取得する検索対象に関する情報は、検索対象情報そのものでも良いし、検索対象情報の属性値でも良いし、検索対象情報へのポインタでも良いし、検索対象情報へアクセスするための情報等でも良い。
つまり、検索対象情報を検索することは、検索対象情報を属性値に有する対象を検索することでも良いし、検索対象情報が出現する情報源や情報群中の箇所を特定すること等でも良い。検索対象情報を検索することは、検索対象情報に関する情報を取得することである、と広く解することは好適である。検索対象情報を属性値に有する対象を検索することは、例えば、情報群が地図情報であり、検索対象情報が「蕎麦屋」である場合、当該情報群から、起点情報と関係情報とを有する問合情報が示す条件に合致し、属性値(例えば、店舗の種類)として「蕎麦屋」を有する店舗情報(例えば、店舗を識別する店舗識別子、店舗の位置を示す位置情報など)を取得することである。検索対象情報を属性値に有する対象を検索することは、例えば、情報群がウェブページ群であり、検索対象情報が「jpg」である場合、当該情報群から、起点情報と関係情報とを有する問合情報が示す条件に合致するウェブページからjpegの画像を取得すること、またはjpegの画像を有するウェブページのURLを取得すること等である。また、検索対象情報が出現する情報源や情報群中の箇所を特定することは、例えば、情報群が映像であり、検索対象情報が「人物A」である場合、当該情報群から、起点情報と関係情報とを有する問合情報が示す条件に合致し、「人物A」が出現する箇所を特定することでも良い。また、検索対象情報が出現する情報源や情報群中の箇所を特定することは、例えば、情報群が映像であり、検索対象情報が「人物A」である場合、当該情報群から、起点情報と関係情報とを有する問合情報が示す条件に合致し、「人物A」が出現する映像を取得することでも良い。なお、映像に含まれる静止画から、人物A等のオブジェクトを認識する技術は画像認識の公知技術であるので、詳細な説明を省略する。また、検索対象情報が出現する情報源や情報群中の箇所を特定することは、例えば、情報群がウェブページであり、検索対象情報が文字列「XYZ」である場合、当該情報群から、起点情報と関係情報とを有する問合情報が示す条件に合致し、文字列「XYZ」が出現する箇所を特定すること、または文字列「XYZ」が出現するウェブページのURLを取得すること等である。
検索部132は、例えば、解釈部131が問合情報を解釈し、取得した解釈結果に基づいて、当該解釈結果が有する起点情報により特定される起点に対して、当該解釈結果が有する関係情報を用いて特定される関係を有する検索対象に関する情報を情報源から取得する。
検索部132は、例えば、端末装置2で問合情報が解釈された結果である解釈結果を用いて、起点情報により特定される起点に対して関係情報を用いて特定される関係を有する検索対象に関する情報を情報源から取得する。なお、端末装置2が問合情報の解釈を行う場合、解釈部131は不要である。
検索部132は、例えば、起点情報により特定される起点に対して関係子を用いて特定される方向に存在する検索対象に関する情報を情報源から取得する。かかる場合、関係子は、方向関係子である。
検索部132は、例えば、起点情報により特定される起点に対して関係子を用いて特定される範囲に存在する検索対象に関する情報を情報源から取得する。かかる場合、関係子は、範囲関係子である。
検索部132は、例えば、起点情報により特定される起点に対して関係子を用いて特定される時間に合致する検索対象に関する情報を情報源から取得する。かかる場合、関係子は、時間関係子である。
検索部132は、例えば、起点情報により特定される起点に対してプロパティ関係子を用いて特定される属性値に合致する検索対象に関する情報を情報源から取得する。
検索部132は、例えば、2以上の各部分問合情報に基づく、2以上の各検索対象情報集合に対して、集合演算子に対応する演算の結果である検索対象に関する情報を情報源から取得する。
起点情報検索手段1321は、起点情報を用いて、情報源から起点関連情報を検索する。起点情報は、例えば、受付部12が受信した問合情報に含まれる情報、または解釈部131が取得した解釈結果に含まれる情報である。起点関連情報は、起点情報に関する情報である。起点関連情報は、起点情報そのものでも良いし、起点情報の属性値でも良いし、起点情報へアクセスするための情報(例えば、URL、ファイル名、ファイル内のオフセット等)でも良い。
例えば、情報源が地図情報であり、起点情報が地点名である場合、起点情報検索手段1321は、例えば、地図情報から起点情報の地点の位置情報(通常、(緯度,軽度))を取得する。なお、かかる場合の起点関連情報は、位置情報である。
また、例えば、情報源が映像であり、起点情報がオブジェクト識別子(例えば、人物名、物品名など)である場合、起点情報検索手段1321は、例えば、映像を対象として、オブジェクト認識処理を行い、オブジェクト識別子で識別されるオブジェクトが出現するフィールドのフィールド識別子を取得する。なお、かかる場合の起点関連情報は、フィールド識別子である。フィールド識別子とは、映像中のフィールドを識別する情報である。フィールド識別子は、例えば、フィールドID、映像中のオフセット、時刻情報等である。
また、例えば、情報源がウェブページを多数格納しているウェブサーバであり、起点情報が文字列Xである場合、起点情報検索手段1321は、例えば、ウェブサーバの各ウェブページに対して、文字列検索の処理を行い、文字列Xが出現するファイル名と出現箇所(例えば、オフセット、またはアドレス等)を取得する。なお、かかる場合の起点関連情報は、ファイル名と出現箇所である。
検索対象検索手段1322は、起点情報検索手段1321が取得した起点関連情報を用いて、起点に対して、関係情報を用いて特定される関係を有する検索対象に関する情報を、情報源から取得する。
例えば、情報源が地図情報であり、起点情報検索手段1321が取得した起点関連情報が位置情報(x,y)である場合、検索対象検索手段1322は、位置情報(x,y)に対して、関係情報が示す条件に合致する検索対象情報の位置情報を地図情報から取得する。
また、例えば、情報源が映像であり、起点情報検索手段1321が取得した起点関連情報がフィールド識別子Fである場合、検索対象検索手段1322は、フィールド識別子Fに対して、関係情報が示す条件に合致するフィールド識別子を映像から検出する。
また、例えば、情報源がウェブページを多数格納しているウェブサーバであり、起点情報検索手段1321が取得した起点関連情報がファイル名と出現箇所である場合、検索対象検索手段1322は、当該ファイル名が示すファイル内の当該出現箇所に対して、関係情報が示す条件に合致する当該ファイル内の箇所を決定する。
出力部14は、検索部132が取得した検索対象に関する情報に基づく情報である検索結果情報を出力する。検索結果情報は、検索対象に関する情報そのものでも良いし、検索対象情報でも良いし、検索対象に関する情報から取得される情報でも良い。つまり、出力部14が出力する検索結果情報のビューは問わない。また、ここで、出力とは、通常、端末装置2への送信であるが、ディスプレイへの表示、プロジェクターを用いた投影、プリンタでの印字、音出力、記録媒体への蓄積、他の処理装置や他のプログラムなどへの処理結果の引渡しなどを含む概念である、と考えても良い。
なお、出力部14は、検索部132が取得した情報を用いて、出力する検索結果情報を構成し、当該検索結果情報を出力する。
例えば、情報源が地図情報であり、検索対象検索手段1322が取得した検索結果の情報が位置情報である場合、出力部14は、格納部11の地図情報を読み出し、当該地図情報の上に、検索対象検索手段1322が取得した位置情報が示す箇所を視覚的に区別可能なように図柄を配置し、検索結果情報を構成し、当該検索結果情報を出力しても良い。かかる場合、図柄は、例えば、いわゆるピン、特定の図形(例えば、赤丸)等、問わない。図柄は、通常、格納部11に格納されている。
また、例えば、情報源が映像であり、検索対象検索手段1322が取得した情報がフィールド識別子である場合、出力部14は、当該フィールド識別子で識別されるフィールドにジャンプし、当該映像を当該フィールドから再生しても良い。また、出力部14は、当該フィールド以降のストリーム映像を、端末装置2に送信しても良い。
また、例えば、情報源がウェブページを多数格納しているウェブサーバであり、検索対象検索手段1322が取得した情報がファイル内の特定の箇所である場合、出力部14は、当該箇所にフォーカスを移動させた当該ウェブページを出力しても良い。
つまり、出力部14の検索結果情報の出力態様は問わない。
端末装置2を構成する端末格納部21には、各種の情報が格納される。各種の情報とは、例えば、ユーザを識別するユーザ識別子である。各種の情報は、例えば、端末受信部25が受信した情報である。
端末受付部22は、各種の指示や情報等を受け付ける。各種の指示や情報等とは、例えば、問合情報である。問合情報は、テキストで入力されても良いし、検索対象情報、起点情報、関係情報の各々を入力するフィールドを有する画面に対して入力されても良いし、図的なインターフェイスから入力されても良い。図的なインターフェイスは、例えば、地図上で起点となる中心点と範囲となる半径とを示すコンパスを含むインターフェイスである。
各種の指示や情報等の入力手段は、タッチパネルやキーボードやマウスやメニュー画面によるもの等、何でも良い。端末受付部22は、タッチパネルやキーボード等の入力手段のデバイスドライバーや、メニュー画面の制御ソフトウェア等で実現され得る。
端末処理部23は、各種の処理を行う。各種の処理とは、例えば、端末受信部25が受信した情報を表示される情報に構成する処理である。各種の処理とは、例えば、端末受付部22が受け付けた指示等を送信する指示等に構成する処理である。各種の処理とは、例えば、端末受付部22が受け付けた問合情報をパージングして、問合情報から検索対象情報と起点情報と関係情報とを有する解釈結果を取得することである。
端末処理部23は、例えば、問合情報のパージングにより、問合情報が有する起点情報に対応する起点関連情報を情報源から検索するSQL文(SQL文1)と、当該SQL文1の検索結果を用いて、当該検索結果に対して関係情報が示す関係を有する検索対象に関する情報を情報源から検索するSQL文(SQL文2)とを取得する。
また、端末処理部23は、例えば、問合情報のパージングにより、HTTPリクエストを構成しても良い。例えば、問合情報が「A ^3km α」である場合、端末処理部23は、当該問合情報を解析し、時空間演算とデータタイプ(例えば、地図、ウェブページ、映像)RESTFULのHTTPリクエスト「www.verbalsearch.com/map/?q=A+^3km+α」を構成する。また、例えば、問合情報が「A α」である場合、端末処理部23は、HTTPリクエスト「www.verbalsearch.com/map/?q=A+++++α」を構成する。なお、ここでは、サーバである検索装置1の識別子は、例えば、「www.verbalsearch.com」である、とする。また、検索装置1の識別子は、端末格納部21に格納されている、とする。
端末送信部24は、各種の指示や情報等を検索装置1に送信する。各種の指示や情報等とは、例えば、問合情報、解釈結果である。また、端末送信部24は、例えば、「www.verbalsearch.com/map/?q=A+^3km+α」のGETリクエストを検索装置1に送信する。
端末受信部25は、各種の情報を検索装置1から受信する。各種の情報とは、例えば、検索結果情報である。
端末出力部26は、各種の情報を出力する。各種の情報とは、端末受信部25が受信した情報、端末受付部22が受け付けた情報、端末処理部23が構成した情報等である。
格納部11、および端末格納部21は、不揮発性の記録媒体が好適であるが、揮発性の記録媒体でも実現可能である。
格納部11等に情報が記憶される過程は問わない。例えば、記録媒体を介して情報が格納部11等で記憶されるようになってもよく、通信回線等を介して送信された情報が格納部11等で記憶されるようになってもよく、あるいは、入力デバイスを介して入力された情報が格納部11等で記憶されるようになってもよい。
受付部12、および端末受信部25は、通常、無線または有線の通信手段で実現されるが、放送を受信する手段で実現されても良い。
処理部13、解釈部131、検索部132、起点情報検索手段1321、検索対象検索手段1322、および端末処理部23は、通常、MPUやメモリ等から実現され得る。処理部13等の処理手順は、通常、ソフトウェアで実現され、当該ソフトウェアはROM等の記録媒体に記録されている。但し、ハードウェア(専用回路)で実現しても良い。
出力部14、および端末送信部24は、通常、無線または有線の通信手段で実現されるが、放送手段で実現されても良い。
端末出力部26は、ディスプレイやスピーカー等の出力デバイスを含むと考えても含まないと考えても良い。端末出力部26は、出力デバイスのドライバーソフトまたは、出力デバイスのドライバーソフトと出力デバイス等で実現され得る。
次に、検索システムAの動作について説明する。まず、検索装置1の動作例について、図6のフローチャートを用いて説明する。
(ステップS601)受付部12は、端末装置2から問合情報または解釈結果を受信したか否かを判断する。問合情報または解釈結果を受信した場合はステップS602に行き、受信しなかった場合はステップS601に戻る。
(ステップS602)処理部13は、ステップS601で受け付けられた情報から起点情報、関係情報、および検索対象情報を取得する。
(ステップS603)起点情報検索手段1321は、ステップS602で取得された起点情報を用いて、情報源から起点関連情報を検索する。
(ステップS604)検索対象検索手段1322は、カウンタiに1を代入する。
(ステップS605)検索対象検索手段1322は、i番目の検索対象情報に対応する情報が情報源の中に存在するか否かを判断する。i番目の情報が存在すればステップS606に行き、存在しなければステップS611に行く。なお、検索対象情報に対応する情報とは、検索対象情報そのものでも良いし、属性値が検索対象情報に合致するレコードでも良いし、検索対象情報が示す情報を含む情報等でも良い。検索対象情報に対応する情報とは、検索対象に関する情報と、広く解することは好適である。
(ステップS606)検索対象検索手段1322は、i番目の検索対象情報に対応する情報を情報源から取得する。
(ステップS607)検索対象検索手段1322は、ステップS603で取得された起点関連情報と、ステップS606で取得した検索対象情報に対応する情報とが、ステップS602で取得された関係情報により特定される関係を有するか否かを判断する。
(ステップS608)検索対象検索手段1322は、ステップS607での判断結果が、関係情報により特定される関係を有するとの判断結果の場合はステップS609に進め、有さないとの判断結果の場合はステップS610に進める。
(ステップS609)検索対象検索手段1322は、i番目の検索対象情報に対応する情報を図示しないバッファに一時蓄積する。
(ステップS610)検索対象検索手段1322は、カウンタiを1、インクリメントする。ステップS605に戻る。
(ステップS611)出力部14は、ステップS609でバッファに蓄積された1以上の情報を用いて、送信する検索結果情報を構成する。
(ステップS612)出力部14は、ステップS611で構成した検索結果情報を端末装置2に送信する。ステップS601に戻る。
なお、図6のフローチャートにおいて、電源オフや処理終了の割り込みにより処理は終了する。
次に、端末装置2の動作例について、図7のフローチャートを用いて説明する。
(ステップS701)端末受付部22は、問合情報を受け付けたか否かを判断する。問合情報を受け付けた場合はステップS702に行き、問合情報を受け付けなかった場合はステップS704に行く。
(ステップS702)端末処理部23は、ステップS701で受け付けられた問合情報をパージングし、解釈結果を取得する。
(ステップS703)端末送信部24は、ステップS702で取得された解釈結果を検索装置1に送信する。ステップS701に戻る。
(ステップS704)端末受信部25は、検索装置1から検索結果情報を受信したか否かを判断する。検索結果情報を受信した場合はステップS705に行き、検索結果情報を受信しなかった場合はステップS701に戻る。
(ステップS705))端末処理部23は、ステップS704で受信された検索結果情報を用いて、出力する検索結果を構成する。
(ステップS706)端末出力部26は、ステップS705で構成された検索結果を出力する。ステップS701に戻る。
なお、図7のフローチャートにおいて、電源オフや処理終了の割り込みにより処理は終了する。
以下、本実施の形態における検索システムAの具体的な動作について説明する。検索システムAの概念図は図1である。以下、4つの具体例について説明する。具体例1は、情報源が地図情報である場合の情報検索の例である、具体例2は、情報源が映像である場合の情報検索の例である。具体例3は、情報源が文書群である場合の情報検索の例である。具体例4では、解釈部131または端末処理部23の機能であるインタープリタの例について説明する。
(具体例1)
今、格納部11は、検索の対象である地図情報が格納されている、とする。地図情報は、情報源の一例である。地図情報は、地図の図柄を構成するための図柄情報を有する。また、地図情報は、図8に示すスポット情報管理表を有する。スポット情報管理表のレコードは、「ID」とスポット情報とを有する。スポット情報は、ここでは「スポット名」「種類情報」「位置情報」を有する。「種類情報」は、スポットの種類を示す情報である。「位置情報」は、スポットの位置(緯度,経度)を示す情報である。また、スポット情報は、スポットのホームページのURLを有することは好適である。
かかる状況において、以下の(A)~(C)の検索処理について説明する。
(A)ユーザは、テキストである問合情報「(京都駅 800m レストラン)+(京都水族館 800m レストラン)」を端末装置2に入力した、とする。次に、端末装置2の端末受付部22は、当該問合情報を受け付ける。次に、端末処理部23は、当該問合情報から送信する問合情報を構成する。そして、端末送信部24は、問合情報を検索装置1に送信する。
次に、検索装置1の受付部12は、問合情報を受信する。そして、解釈部131は、テキストである問合情報「(京都駅 800m レストラン)+(京都水族館 800m レストラン)」をパージングし、(起点情報「京都駅」、関係情報「800m以内」)(起点情報「京都水族館」、関係情報「800m以内」)、および集合演算「+(和)」、検索対象情報「レストラン」を取得する。
次に、起点情報検索手段1321は、起点情報「京都駅」を有するスポット情報を図8のスポット情報管理表から検索し、位置情報(x1,y1)を得る。また、起点情報検索手段1321は、起点情報「京都水族館」を有するスポット情報を図8のスポット情報管理表から検索し、位置情報(x2,y2)を得る。
次に、検索対象検索手段1322は、位置情報(x1,y1)、位置情報(x2,y2)、関係情報「800m以内」、および集合演算「+」を用いて、検索対象の範囲を示す情報「(x1,y1)から800m以内 OR (x2,y2)から800m以内」を得る。
次に、検索対象検索手段1322は、検索対象情報「レストラン」と一致する種類情報を有するスポット情報を、図8のスポット情報管理表から検索する。ここで、検索対象検索手段1322は、例えば、図8の「ID=3,4,5」等のレコードを検索する。そして、検索対象検索手段1322は、検索した各レコードが有する位置情報を取得し、当該位置情報と(x1,y1)との距離を算出し、当該距離が800m以内であるか否かを判断する。800m以内であれば当該レコードが有する位置情報(またはスポット情報)をバッファに一時蓄積する。また、800mより大きければ、当該位置情報と(x2,y2)との距離を算出し、当該距離が800m以内であるか否かを判断する。800m以内であれば当該レコードが有する位置情報をバッファに一時蓄積する。以上により、問合情報に合致する1以上の各スポットの位置情報がバッファに一時蓄積された。なお、検索対象検索手段1322は、位置情報に代えて、レコードのIDまたはスポット情報全体を、バッファに一時蓄積しても良い。
次に、出力部14は、スバッファに蓄積された1以上の情報を用いて、送信する検索結果情報を構成する。ここでは、出力部14は、「京都駅」「京都水族館」およびすべての取得したスポットの位置情報を含む地図情報の図柄情報を、格納部11から取得する。そして、出力部14は、すべての取得したスポットの位置情報を他と比較して区別可能な地図情報を構成する。かかる地図情報は検索結果情報である。そして、出力部14は、当該地図情報を端末装置2に送信する。なお、地図情報を構成するまでの処理は、処理部13が行っても良い。
次に、端末受信部25は、検索装置1から地図情報を受信する。端末処理部23は、受信された地図情報を用いて、出力する検索結果を構成する。次に、端末出力部26は、構成された検索結果を出力する。かかる検索結果の出力例は、図9である。図9では、「京都駅」または「京都水族館」から800m以内に存在するレストランの位置にピンが立てられている。なお、例えば、ピンを押下すると、対応するレストランのホームページが端末装置2に表示される。
(B)ユーザは、テキストである問合情報「(京都駅 800m レストラン)-(京都水族館 800m レストラン)」を端末装置2に入力した、とする。次に、端末装置2の端末受付部22は、当該問合情報を受け付ける。次に、端末処理部23は、当該問合情報から送信する問合情報を構成する。そして、端末送信部24は、問合情報を検索装置1に送信する。
次に、検索装置1の受付部12は、問合情報を受信する。そして、解釈部131は、テキストである問合情報「(京都駅 800m レストラン)-(京都水族館 800m レストラン)」をパージングし、(起点情報「京都駅」、関係情報「800m以内」)(起点情報「京都水族館」、関係情報「800m以内」)、および集合演算「-(差)」、検索対象情報「レストラン」を取得する。
次に、起点情報検索手段1321は、(A)で説明した処理と同様の処理を行い、起点情報「京都駅」と対になる位置情報(x1,y1)、および起点情報「京都水族館」と対になる位置情報(x2,y2)を得る。
次に、検索対象検索手段1322は、位置情報(x1,y1)、位置情報(x2,y2)、関係情報「800m以内」、および集合演算「-」を用いて、検索対象の範囲を示す情報「(x1,y1)から800m以内 AND NOT((x2,y2)から800m以内)」を得る。
次に、検索対象検索手段1322は、検索対象情報「レストラン」と一致する種類情報を有するスポット情報を、図8のスポット情報管理表から検索する。ここで、検索対象検索手段1322は、例えば、図8の「ID=3,4,5」等のレコードを検索する。そして、検索対象検索手段1322は、検索した各レコードが有する位置情報を取得し、当該位置情報と(x1,y1)との距離、および当該位置情報と(x2,y2)との距離を算出する。そして、(x1,y1)との距離が800m以内であり、かつ(x2,y2)との距離が800m以内の距離ではない位置情報(またはスポット情報)をバッファに一時蓄積する。以上により、問合情報に合致する1以上の各スポットの位置情報がバッファに一時蓄積された。
次に、出力部14は、バッファに蓄積された1以上の情報を用いて、送信する検索結果情報を構成する。そして、出力部14は、検索結果情報を端末装置2に送信する。
次に、端末受信部25は、検索装置1から検索結果情報を受信する。端末処理部23は、受信された検索結果情報を用いて、出力する検索結果を構成する。次に、端末出力部26は、構成された検索結果を出力する。かかる検索結果の出力例は、図10である。図10では、「京都駅」から800m以内であり、かつ「京都水族館」から800m以内ではないレストランの位置にピンが立てられている。なお、例えば、ピンを押下すると、対応するレストランのホームページが端末装置2に表示される。
(C)ユーザは、テキストである問合情報「(京都駅 800m レストラン)*(京都水族館 800m レストラン)」を入力した、とする。次に、端末装置2の端末受付部22は、当該問合情報を受け付ける。次に、端末処理部23は、当該問合情報から送信する問合情報を構成する。そして、端末送信部24は、問合情報を検索装置1に送信する。
次に、検索装置1の受付部12は、問合情報を受信する。そして、解釈部131は、テキストである問合情報「(京都駅 800m レストラン)*(京都水族館 800m レストラン)」をパージングし、(起点情報「京都駅」、関係情報「800m以内」)(起点情報「京都水族館」、関係情報「800m以内」)、および集合演算「*(積)」、検索対象情報「レストラン」を取得する。
次に、起点情報検索手段1321は、(A)で説明した処理と同様の処理を行い、起点情報「京都駅」と対になる位置情報(x1,y1)、および起点情報「京都水族館」と対になる位置情報(x2,y2)を得る。
次に、検索対象検索手段1322は、位置情報(x1,y1)、位置情報(x2,y2)、関係情報「800m以内」、および集合演算「*」を用いて、検索対象の範囲を示す情報「(x1,y1)から800m以内 AND ((x2,y2)から800m以内)」を得る。
次に、検索対象検索手段1322は、検索対象情報「レストラン」と一致する種類情報を有するスポット情報を、図8のスポット情報管理表から検索する。ここで、検索対象検索手段1322は、例えば、図8の「ID=3,4,5」等のレコードを検索する。そして、検索対象検索手段1322は、検索した各レコードが有する位置情報を取得し、当該位置情報と(x1,y1)との距離、および当該位置情報と(x2,y2)との距離を算出する。そして、(x1,y1)との距離が800m以内であり、かつ(x2,y2)との距離が800m以内の距離である位置情報(またはスポット情報)をバッファに一時蓄積する。以上により、問合情報に合致する1以上の各スポットの位置情報がバッファに一時蓄積された。
次に、出力部14は、バッファに蓄積された1以上の情報を用いて、送信する検索結果情報を構成する。そして、出力部14は、検索結果情報を端末装置2に送信する。
次に、端末受信部25は、検索装置1から検索結果情報を受信する。端末処理部23は、受信された検索結果情報を用いて、出力する検索結果を構成する。次に、端末出力部26は、構成された検索結果を出力する。かかる検索結果の出力例は、図11である。図11では、「京都駅」から800m以内であり、かつ「京都水族館」から800m以内であるレストランの位置にピンが立てられている。なお、例えば、ピンを押下すると、対応するレストランのホームページが端末装置2に表示される。
(具体例2)
今、格納部11は、検索の対象である映像が格納されている、とする。映像は、情報源の一例である。
かかる状況において、ユーザは、以下の(D)の問合情報を端末装置2に入力した、とする。
(D)ユーザは、テキストである問合情報「A [θ90-θ270] α」を端末装置2に入力した、とする。次に、端末装置2の端末受付部22は、当該問合情報を受け付ける。次に、端末処理部23は、当該問合情報をパージングし、起点情報「A」、関係情報「90<=θ<=270」、検索対象情報「α」を有する解釈結果を取得する。そして、端末送信部24は、当該解釈結果を検索装置1に送信する。なお、ここで、Aは、映像中の人物を特定する情報である、とする。
次に、検索装置1の受付部12は、解釈結果を受信する。そして、検索部132は、受信された解析結果から起点情報「A」、関係情報「90<=θ<=270」、および検索対象情報「α」を取得する。
次に、起点情報検索手段1321は、映像中の各フィールドに対して、出現順(時間順)に、起点情報「A」が出現するか否かを、「A」が出現するまでオブジェクト認識の処理(画像認識処理と言っても良い)を行う。そして、起点情報検索手段1321は、「A」が出現するフィールドのフィールド識別子を取得する。かかるフィールドは、図12の1201である。
次に、検索対象検索手段1322は、かかるフィールドの次以降のフィールドに対して、起点情報「A」が存在する空間上の位置から関係情報「90<=θ<=270」が満たす空間上の領域に「α」が存在するか否かを、オブジェクト認識技術を用いて判断する。そして、検索対象検索手段1322は、かかる関係情報にマッチする「α」が存在するフィールドのフィールド識別子を取得する。
次に、出力部14は、「A」が出現するフィールドから、上記の条件を満たす「α」が存在するフィールドまでの映像から切り出し、取得する。そして、出力部14は、当該切り出した映像を端末装置2に送信する。つまり、出力部14は、Aから画面のθ90からθ270の画面左にαが出現した場合にAからαまで全てのフィールドからなる映像を端末装置2に送信する。
次に、端末装置2の端末受信部25は、は、かかる映像を受信する。そして、端末出力部26は、かかる映像を出力する。
(具体例3)
今、外部の図示しないウェブサーバに、検索の対象であるウェブページが格納されている、とする。ウェブページは、情報源の一例である。
かかる状況において、ユーザは、以下の(E)(F)の問合情報を端末装置2に入力した、とする。
(E)ユーザは、テキストである問合情報「シャンシャン ^シンシン」を入力した、とする。次に、端末装置2の端末受付部22は、当該問合情報を受け付ける。次に、端末処理部23は、当該問合情報をパージングし、起点情報「シャンシャン」、関係情報「^」(つまり、「上」)、検索対象情報「シンシン」を有する解釈結果を取得する。そして、端末送信部24は、当該解釈結果を検索装置1に送信する。
次に、検索装置1の受付部12は、解釈結果を受信する。そして、検索部132は、受信された解析結果から起点情報「シャンシャン」、関係情報「上」、および検索対象情報「シンシン」を取得する。
次に、起点情報検索手段1321は、外部のウェブサーバに対して、起点情報の文字列「シャンシャン」が出現するウェブページおよび箇所を検索する。そして、起点情報検索手段1321は、当該ウェブページを外部のウェブサーバから取得し、当該ウェブページと当該箇所を特定するオフセットとを図示しないバッファに一時蓄積する。
次に、検索対象検索手段1322は、ウェブページに対して、検索対象情報の文字列「シンシン」が出現する1以上の箇所を検索する。そして、かかる1以上の各箇所が、シャンシャンの箇所に対して、関係情報「上」を満たすか否かを判断する。なお、「上」は、文書中での前も含んでも良い。そして、検索対象検索手段1322は、かかる関係情報に合致する文字列「シンシン」の箇所を特定する1以上のオフセットを取得し、図示しないバッファに一時蓄積する。
次に、検索対象検索手段1322は、バッファに一時蓄積されたオフセットの箇所を含む段落を特定する。
次に、出力部14は、かかる段落を、他と比較して目立つ態様でウェブページを構成する。かかるウェブページが検索結果情報である。そして、出力部14は、かかるウェブページを端末装置2に送信する。
次に、端末受信部25は、検索装置1からウェブページを受信する。端末処理部23は、出力するウェブページを構成する。そして、端末出力部26は、当該ウェブページを出力する。ウェブページは、図13である。そして、目立つ態様に特定された段落は、図13の1301、1302、1303である。また、図13において、起点情報「シャンシャン」、および検索対象情報「シンシン」は、目立つ態様で表示されている。
(F)ユーザは、テキストである問合情報「シャンシャン #<.png」を入力した、とする。次に、端末装置2の端末受付部22は、当該問合情報を受け付ける。次に、端末処理部23は、当該問合情報をパージングし、起点情報「シャンシャン」、関係情報「#<」(つまり、「左側」)、検索対象情報「.png」(つまり、png形式の画像)を有する解釈結果を取得する。そして、端末送信部24は、当該解釈結果を検索装置1に送信する。
次に、検索装置1の受付部12は、解釈結果を受信する。そして、検索部132は、受信された解析結果から起点情報「シャンシャン」、関係情報「左側」、および検索対象情報「.png」を取得する。
次に、起点情報検索手段1321は、外部のウェブサーバに対して、起点情報の文字列「シャンシャン」が出現するウェブページおよび箇所を検索する。そして、起点情報検索手段1321は、当該ウェブページを外部のウェブサーバから取得し、当該ウェブページと当該箇所を特定するオフセットとを図示しないバッファに一時蓄積する。
次に、検索対象検索手段1322は、当該ウェブページに対して、検索対象情報「.png」に対応するpng形式の画像が出現する1以上の箇所を検索する。そして、かかる1以上の各箇所が、シャンシャンの箇所に対して、関係情報「左側」を満たすか否かを判断する。そして、検索対象検索手段1322は、かかる関係情報に合致する文字列png形式の画像を特定するポインタを取得し、図示しないバッファに一時蓄積する。
次に、出力部14は、かかるポインタにより特定される画像を、他と比較して目立つ態様でウェブページを構成する。かかるウェブページが検索結果情報である。そして、出力部14は、かかるウェブページを端末装置2に送信する。
次に、端末受信部25は、検索装置1からウェブページを受信する。端末処理部23は、出力するウェブページを構成する。そして、端末出力部26は、当該ウェブページを出力する。ウェブページは、図13である。そして、目立つ態様に特定された画像は、図13の1304である。
(具体例4)
インタープリタ機能を実現すインタープリタプログラムは、ユーザから入力された問合情報(ここでは、時空間範囲演算式)を処理する役割を持つ。インタープリタプログラムの構成は演算式のパーサ、時空間データの変換機、時空間データの計算機の三要素である。パーサは、解釈部131または端末処理部23の機能である。時空間データの変換機、時空間データの計算機は、検索部132の機能である。
また、時空間範囲演算自体はリクエストのパラメータとして送る。そのリクエストはウェブサービスを実現する検索システムAの入出力処理部分(解釈部131または端末処理部23)が、ユーザが入力した演算式をパージングする。パージングするパーサプログラムはユーザが入力した時空間範囲演算式の構文を解析し、必要な時空間範囲演算処理とその処理順を決める。
例えば、ユーザが入力した時空間範囲演算式が「(A ^3km α)*(B ^3km α)」+「(C ^5km β)+(D ^1km β)」であれば、パーサは次のように処理順を決定し、以下の処理リストを図示しないバッファに記録する。
<処理リスト>
変数1=(A ^3km α)*(B ^3km α)(作業1)
変数2=(C ^5km β)+(D ^1km β」)(作業2)
結果=変数1+変数2(作業3)
</処理リスト>
次に、検索部132は、処理リストにある時空間範囲演算処理を順に行う。まず、時空間範囲演算式が検索部132の時空間データ変換機に送られる。その変換機が演算式の要素(例えば、「A ^3km」または「B ^3km」)を時空間データの領域の行列に変換する。変換機のプログラムは、設計者が書くデータ処理プログラムを参考に、時空間データの領域を計算する。例えば、「A ^3km 店」という地図の時空間範囲演算の入力の場合、時空間変換機は設計者が書く地図のデータ処理プログラムを参考に、Aの位置と、その場所から3kmの範囲内にある店の情報を得てくる。例えば、設計者が書くデータ処理プログラムがGoogle Maps API のデータソースを指定すれば、Aの位置と指定範囲内にある店の情報はGoogle Maps API のリクエストにより求められる。また、設計者が内部のSQLデータベースを指定すると、SQLクエリによってAの位置と指定範囲内にある店情報を得て、時空間範囲の領域行列を計算する。同様の処理が「B ^3km α」「C ^5km α」「D ^1km β」にも行われる。
時空間データの変換終了後、検索部132は、計算した領域の行列に対して、検索部132の時空間データの計算機を用い、時空間演算を行う。例えば、上記の作業1には「*」の時空間演算子があるため、「A ^3km」が変換された領域の行列と「B ^3km」が変換された領域の行列の重複部分を計算する。全ての時空間演算が終了すると、計算された領域の行列の結果が再び時空間データ変換機に送られる。時空間データ変換機は、計算された領域の行列の結果を、設計者が作成したデータ処理プログラムが利用できるデータタイプに変換する(例えば、AとBとの重複範囲にある店のオブジェクトの配列)。最後に、その結果は再度入出力処理モジュールに送られ、ユーザに返される。
以上、本実施の形態によれば、指定された起点に対して指定された関係を有する検索対象に関する情報を容易に取得できる。
また、本実施の形態によれば、ユーザは、起点、関係、および検索対象を有するテキストの入力により、所望の情報を容易に取得できる。
また、本実施の形態によれば、指定された起点に対して指定された空間的または時間的な関係を有する検索対象に関する情報を容易に取得できる。
さらに、本実施の形態によれば、検索対象と起点との関係を特定する関係子を用いることにより、より簡単に所望の情報を取得できる。
なお、本実施の形態における処理は、ソフトウェアで実現しても良い。そして、このソフトウェアをソフトウェアダウンロード等により配布しても良い。また、このソフトウェアをCD-ROMなどの記録媒体に記録して流布しても良い。なお、このことは、本明細書における他の実施の形態においても該当する。なお、本実施の形態における検索装置1を実現するソフトウェアは、以下のようなプログラムである。つまり、このプログラムは、コンピュータを、検索する対象である検索対象を特定する検索対象情報と、当該検索対象を特定する起点になる起点情報と、検索対象と起点情報との関係を特定するための関係情報とを有する問合情報に基づいて、前記起点に対して前記関係情報を用いて特定される関係を有する検索対象に関する情報を、情報源から取得する検索部と、前記検索部が取得した検索対象に関する情報に基づく情報である検索結果情報を出力する出力部として機能させるためのプログラムである。
(実施の形態2)
本実施の形態では、検索装置がスタンドアロンである場合を説明する。図14は、本実施の形態における検索装置Bのブロック図である。検索装置Bは、格納部11、端末受付部22、処理部13、および端末出力部26を備える。
検索装置Bの処理部13は、端末受付部22が受け付けた問合情報に基づいて、起点情報に対して関係情報を用いて特定される関係を有する検索対象情報を、情報源から検索する。
端末出力部26は、検索部132が検索した検索対象情報に基づく情報である検索結果情報を出力する。
検索装置Bがスタンドアロンである、ということ以外、実施の形態1で説明した検索システムAと変わらないので、検索装置Bの動作の説明を省略する。
以上、本実施の形態によれば、指定された起点に対して指定された関係を有する検索対象に関する情報を容易に取得できる。
また、本実施の形態によれば、ユーザは、起点、関係、および検索対象を有するテキストの入力により、所望の情報を容易に取得できる。
また、本実施の形態によれば、指定された起点に対して指定された空間的または時間的な関係を有する検索対象に関する情報を容易に取得できる。
さらに、本実施の形態によれば、検索対象と起点との関係を特定する関係子を用いることにより、より簡単に所望の情報を取得できる。
なお、本実施の形態において、端末受付部22は、受付部12でも良い。かかる場合、受付部12は、ユーザからの入力を受け付ける。また、端末出力部26は、出力部14でも良い。かかる場合、出力部14は、通常、検索結果情報を表示する。
また、本実施の形態において、問合情報に含まれる検索対象情報は2以上でも良い。つまり、例えば、問合情報は、「起点情報 関係情報 検索対象情報1、検索対象情報2,・・・」等でも良い。さらに具体的には、問合情報は、「A 3km α β γ」、「(A 3km α β γ)+(A 3km α β γ)」等でも良い。なお、2以上の検索対象情報を、単に検索対象情報と言っても良い。
さらに、本実施の形態における検索装置Bを実現するソフトウェアは、以下のようなプログラムである。つまり、このプログラムは、コンピュータを、検索する対象である検索対象を特定する検索対象情報と、当該検索対象を特定する起点になる起点情報と、検索対象と起点情報との関係を特定するための関係情報とを有する問合情報に基づいて、前記起点に対して前記関係情報を用いて特定される関係を有する検索対象に関する情報を、情報源から取得する検索部と、前記検索部が取得した検索対象に関する情報に基づく情報である検索結果情報を出力する端末出力部として機能させるためのプログラムである。
なお、上記の形態において、問合情報は、以下の図15の画面により入力されても良い。図15は、検索対象情報、起点情報、関係情報の各々を入力するフィールドを有する画面の例である。図15において、1501、1504のフィールドは、起点情報を入力するフィールドである。1502、1505は、関係情報を入力するフィールドである。1503、1506は、検索対象情報を入力するフィールドである。図15は、「四条烏丸駅から500m以内のレストラン」または「京都駅から500m以内の北側のレストラン」を検索する問合情報の入力例である。
また、図16は、本明細書で述べたプログラムを実行して、上述した種々の実施の形態の検索装置等を実現するコンピュータの外観を示す。上述の実施の形態は、コンピュータハードウェア及びその上で実行されるコンピュータプログラムで実現され得る。図16は、このコンピュータシステム300の概観図であり、図17は、システム300のブロック図である。
図16において、コンピュータシステム300は、CD-ROMドライブを含むコンピュータ301と、キーボード302と、マウス303と、モニタ304とを含む。
図17において、コンピュータ301は、CD-ROMドライブ3012に加えて、MPU3013と、CD-ROMドライブ3012等に接続されたバス3014と、ブートアッププログラム等のプログラムを記憶するためのROM3015と、MPU3013に接続され、アプリケーションプログラムの命令を一時的に記憶するとともに一時記憶空間を提供するためのRAM3016と、アプリケーションプログラム、システムプログラム、及びデータを記憶するためのハードディスク3017とを含む。ここでは、図示しないが、コンピュータ301は、さらに、LANへの接続を提供するネットワークカードを含んでも良い。
コンピュータシステム300に、上述した実施の形態の検索装置等の機能を実行させるプログラムは、CD-ROM3101に記憶されて、CD-ROMドライブ3012に挿入され、さらにハードディスク3017に転送されても良い。これに代えて、プログラムは、図示しないネットワークを介してコンピュータ301に送信され、ハードディスク3017に記憶されても良い。プログラムは実行の際にRAM3016にロードされる。プログラムは、CD-ROM3101またはネットワークから直接、ロードされても良い。
プログラムは、コンピュータ301に、上述した実施の形態の検索装置等の機能を実行させるオペレーティングシステム(OS)、またはサードパーティープログラム等は、必ずしも含まなくても良い。プログラムは、制御された態様で適切な機能(モジュール)を呼び出し、所望の結果が得られるようにする命令の部分のみを含んでいれば良い。コンピュータシステム300がどのように動作するかは周知であり、詳細な説明は省略する。
また、上記プログラムを実行するコンピュータは、単数であってもよく、複数であってもよい。すなわち、集中処理を行ってもよく、あるいは分散処理を行ってもよい。
また、上記各実施の形態において、一の装置に存在する2以上の通信手段は、物理的に一の媒体で実現されても良いことは言うまでもない。
また、上記各実施の形態において、各処理は、単一の装置によって集中処理されることによって実現されてもよく、あるいは、複数の装置によって分散処理されることによって実現されてもよい。
本発明は、以上の実施の形態に限定されることなく、種々の変更が可能であり、それらも本発明の範囲内に包含されるものであることは言うまでもない。