JP5744873B2 - トラステッドクエリのシステムおよび方法 - Google Patents

トラステッドクエリのシステムおよび方法 Download PDF

Info

Publication number
JP5744873B2
JP5744873B2 JP2012526139A JP2012526139A JP5744873B2 JP 5744873 B2 JP5744873 B2 JP 5744873B2 JP 2012526139 A JP2012526139 A JP 2012526139A JP 2012526139 A JP2012526139 A JP 2012526139A JP 5744873 B2 JP5744873 B2 JP 5744873B2
Authority
JP
Japan
Prior art keywords
user
query
database
input
search engine
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.)
Active
Application number
JP2012526139A
Other languages
English (en)
Other versions
JP2013503381A (ja
JP2013503381A5 (ja
Inventor
ブルドンクル フランソワ
ブルドンクル フランソワ
ドゥエットー フロリアン
ドゥエットー フロリアン
ボルディエ ジェレミー
ボルディエ ジェレミー
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Dassault Systemes SE
Original Assignee
Dassault Systemes SE
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Dassault Systemes SE filed Critical Dassault Systemes SE
Publication of JP2013503381A publication Critical patent/JP2013503381A/ja
Publication of JP2013503381A5 publication Critical patent/JP2013503381A5/ja
Application granted granted Critical
Publication of JP5744873B2 publication Critical patent/JP5744873B2/ja
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/20Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
    • G06F16/24Querying
    • G06F16/242Query formulation
    • G06F16/2428Query predicate definition using graphical user interfaces, including menus and forms
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/20Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
    • G06F16/24Querying
    • G06F16/242Query formulation
    • G06F16/2423Interactive query statement specification based on a database schema
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/20Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
    • G06F16/24Querying
    • G06F16/245Query processing
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/30Information retrieval; Database structures therefor; File system structures therefor of unstructured textual data
    • G06F16/31Indexing; Data structures therefor; Storage structures
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/30Information retrieval; Database structures therefor; File system structures therefor of unstructured textual data
    • G06F16/33Querying
    • G06F16/332Query formulation
    • G06F16/3329Natural language query formulation or dialogue systems

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • Databases & Information Systems (AREA)
  • Data Mining & Analysis (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Computational Linguistics (AREA)
  • Mathematical Physics (AREA)
  • Human Computer Interaction (AREA)
  • Software Systems (AREA)
  • Artificial Intelligence (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)

Description

本開示は、概してデータの記憶および検索に関連する。より詳細には、本開示は、ユーザが、構造化クエリ言語を用いてアクセス可能なデータを検索することができる、システムおよび方法に言及する。
関連出願の相互参照
本出願は、2009年8月31日に出願された「トラステッドクエリのシステムおよび方法」と題する仮出願第61/238,283号の優先権の利益を主張する。特許出願第61/238,283号は、参照によりここに組み込まれる。
著作権の表示
本特許文献の開示の一部には著作権保護の下にある資料が含まれる。著作権所有者は、本特許文献または特許開示の何人による複製品にも、特許商標庁の特許のファイルまたは記録において出現する限りにおいて、異議を唱えないが、それ以外は何であれ全ての著作権を保有する。以下の通知は、本文書にて下記および図面に記載される任意のソフトウェアおよびデータに適用される:Copyright(c)2010,Exalead,All Rights Reserved。
データベースは、1人または複数のユーザのための組織化されたデータのコレクションから成る。データベースを分類する方法の1つに、内容の型によるものがあり、例えば、書誌、全文、数値、画像等がある。他の分類方法では、以下に説明するように、データベースモデルまたはデータベースアーキテクチャを検査するものがある。
データベース内のデータは、データベースモデルに従ってソフトウェアにより構造化される。リレーショナルデータベースモデルが最も一般的に使用される。階層モデル、ネットワークモデル等の他のモデルでは、関係をより明示的に構造化した表現で表したものを使用する。リレーショナルデータベースでは、データセット内で発見される共通の特徴を使用することによりデータをマッチさせる。結果として得られるデータグループは、多くの人々がより簡単に理解できるように構造化される。例えば、ある町の全ての不動産取引を含むデータセットは、取引が発生した年、取引の売買価格、または購入者の姓などによりグループ化することができる。このようなグループ化では、関係(リレーショナル)モデル(「スキーマ」とも称する)を使用する。従って、このようなデータベースを、「リレーショナルデータベース」と呼ぶ。
このような構造化およびグループ化を実行するために使用されるソフトウェアを、リレーショナルデータベース管理システム(RDBMS)と呼ぶ。用語「リレーショナルデータベース」は、このタイプのソフトウェアを指す場合が多い。リレーショナルデータベースは、現在、財務記録、製造および物流の情報、個人データ等、他にも多くを記憶するために使用される主要な選択である。具体的には、リレーショナルデータベースは、関係のコレクションであり、テーブルと称されることが多い。テーブルは、列でラベル付けされ分類された、データの値またはキーの行から成る。あるデータベース管理システムでは、クエリを提示する前にユーザがユーザ自身を識別することを求め、所与の識別されたユーザに対して、そのユーザに対して定義されるアクセス権に応じて、テーブル内のある行もしくは列または全テーブルを、見えるようにまたは見えないようにすることができる。
データベースにおけるクエリとは、クエリに対する回答によって満たされるべき条件を指定した、データベースに対してデータを要求するための定型句のインスタンス化である。構造化クエリとは、構造化された文法に従って定式化されたクエリである。このような文法の1つに、構造化クエリ言語(SQL)で規定されるものがあり、構造化クエリ言語は、リレーショナルデータベース管理システム(RDBMS)内のデータにアクセスするために広く使用される言語である。データベース検索システムは、ソフトウェアプログラム、または1つまたは複数のデータベースに渡ってユーザのクエリを処理するプログラムのセットである。
クエリ処理とは、インスタンス化されたユーザのクエリを入力として受け取り、クエリを構文解析してクエリ内にどんな条件が指定されているのかを理解し、データベースのデータにアクセスし、クエリ内に指定される条件を満たす回答をデータベースから返す、ことである。うまく構造化されたクエリとは、データベース検索システムにおいて実装される文法に配慮したクエリである。
インスタンス化されたクエリは、少なくとも1つの条件を有するクエリである。データベースの元々の機能は、データベース管理システムがデータベース上で実行可能な操作であり、データベースの作成、データベースの変更、およびデータベース上のクエリ処理を含む。データベースクエリからの検索結果は、通常、クエリで指定された条件を満たすデータベースの要素全てのリストである。
サーチエンジンは、文書と呼ばれることが多い情報の塊を、様々な情報ソースからフェッチするソフトウェアプログラムまたはプログラムのセットであり、その情報をインデックス化し、かつクエリに応答してそのインデックスを使用して元の情報のうちのある表現にアクセスする手段を提供する、などを行う。元の情報、すなわち文書は、ウェブページ、電子メール、PDFファイル、画像ファイル、映像ファイル、音声ファイル、データベースの行、または分析を受ける任意の他の情報、等のテキスト文書とすることができる。
データベース全体に渡ってデータベースクエリを走らせ、かつ、その結果リストの全ての項目を文書として扱うことによりデータベースの内容をインデックス化することが可能である。
データベースの内容をインデックス化することに加えて、データベースの内容を前もってフラット化することが可能である。「フラット化」の方法は、データベースから複数の行と複数のテーブルとを組み合わせて文書を作成することから成る。
例えば、GOOGLE(登録商標)、またはYAHOO!(登録商標)などのサーチエンジンは通常、データベースインターフェースと比較すると、ユーザのクエリを入力するための特有のクエリボックスを持ち、場合によってはテーブル内の各フィールドに1つずつ、複数の検索ボックスを有することができる。サーチエンジンは、非常に簡素な入力文法を持つことが多く、例えば、入力として1つの単語を受け取り、その単語を含むインデックス化された全てのウェブページを返す。これはフリーテキスト検索の例であり、結果の文書のどこかにその単語が出現するからである。サーチエンジンによりフェッチされる文書全体を検索することができる場合は、サーチエンジンは全文検索を実行する。
文書はセクションに分割することもでき、これをサーチエンジンが認識する。このようなセクションには、段落セクション、タイトルセクション、または本文セクションがある。あるサーチエンジンでは、ユーザはクエリを特定のセクションまたはフィールドに限定することができる。サーチエンジンクエリの検索結果は、クエリにマッチする文書のリストである。このリストは通常、文書の長さ(最初は短い文書を示す)による順位付け、または、クエリ内の単語の密度を各文書内の単語と比較することによる順位付け、等の順位付け法に従って順序付けられる。
フリーテキスト検索ではサーチエンジンに対して有効なクエリを定式化するのに対して、通常、より洗練されたクエリのサポートを提供するものがある。例えば、GOOGLEなどのよく知られたサーチエンジンでは、ブール演算子(例えば、Disneyとworldの論理積)、または、文書の特定の部分を対象とするよう構成される、例えば「表題:Disney」を対象として「Disney」という言葉を文書の表題の中でのみ検索するような演算子、をサポートするものが多い。多くの他の様々な文書の区分化も可能である。
サーチエンジンでは、フェッチされた文書から抽出した全ての言葉の転置インデックスを頻繁に使用する。転置インデックスは、どの文書内のどこにその言葉が発見されるかを示す。このインデックスから抽出された言葉のリストにより、サーチエンジンは、ユーザがクエリボックスにクエリを打ち込む間に、自動補完を提示する。自動補完は、ユーザが現在打ち込んでいる文字列を、インデックス化されたどの言葉が補完することができるかを示す機構である。自動補完を、ユーザが何を打ち込んでいるのかを監視する処理により実行し、全てのキーストロークの後に可能性のある補完を提示することができる。自動補完で提示されたそれぞれの補完は、サーチエンジンでクエリとして使用できるインデックス化された言葉である可能性があり、そのため、サーチエンジンではこの言葉に対応する文書が存在することが分かる。
サーチエンジンでは、多くの場合、ユーザのクエリ全体にスペルチェックを実行する。スペルチェックにおいて、サーチエンジンは、ほとんどまたは全く検索結果が無いクエリに対して、その転置インデックスから、ユーザが打ち込もうとしている可能性がある他の言葉を提示することができる。
スペルチェックに加えて、サーチエンジンでは、例えば、「dogs」等の検索用語を、語幹を抽出(ステミング)して見出語化し、「dog」という言葉でもマッチさせるようにする他の検索機構を提供することもできる。別の例のサーチエンジンクエリ構文では、アスタリスク(*)演算子を使用して任意の数の文字とマッチさせ、検索クエリ「dog*」が転置インデックスの言葉「dog」、「dogs」、「dogged」「dog−eared」などともマッチするようにすることができる。このようにアスタリスク演算子を使用することを、プレフィックスマッチと呼ぶ。
引用符を使用して検索クエリを括り、デフォルトのステミングをオフにして完全一致を求める場合もあるであろう。例えば、「dogs」は転置インデックスにおいて「dogs」という言葉のみにマッチするが、「dog」という言葉にはマッチしない。サーチエンジンは、シソーラス等の語彙意味構造を使用して検索を実行することもできるため、シソーラスが「dog」と「pet」との間の関係を示し、かつ、この関係がクエリ処理中にアクティブにされる、と仮定するならば、単語「dog」に対する検索により単語「pet」を含む文書を検索することにもなる。
統語的可能性を使用するサーチエンジン検索およびデータベース検索の両方に対してクエリを形成することは、普通の情報探索者には難しいであろう。高度なクエリ構文は、習得することが難しく、ごく一部の情報探索者だけがそれほどの訓練もせずに習得することができる。
市販の製品には、ユーザにデータベースクエリの構築を支援するものがある。例えば、カリフォルニア州レッドウッドショアーズのORACLE(登録商標)社のDISCOVER(登録商標)には、画面に表示される項目のドロップダウンリストから項目を選択することにより、ユーザがクエリを構築できるようにするクエリジェネレータが含まれる。項目は、データベースから取得されるデータを表すもの、あるいは、このデータに対して実行される操作を表すもの、とされる。項目を選択すると、クエリジェネレータは、クエリを、通常はSQLで生成し、そのクエリを実行のためにデータベース検索システムに送ることができる。
M.Hassan、R.Alhajj、MJ.Rodleyによる「Combining Free−word Search and Relational Databases(フリーワード検索とリレーショナルデータベースの組み合わせ)」と題する論文において、著者は、「構造化クエリ言語は、周知の構造および特徴を有するリレーショナルデータベースの内容および構造をクエリすることを可能にする上で非常に有用である。しかし、所与の動的データベース、すなわち、変動するまたは未知の構造を有するデータベースでは、クエリの定式化処理は非常に難しい課題である」と述べている。上述の著者は、Java(登録商標)データベースコネクティビティを使用して簡素なサーチエンジンのようなクエリを一連のデータベース要求に変換することにより、データベースの内容および構造を探索するシステムを提案している。JDBC(登録商標)(Javaデータベースコネクティビティ)は、データベースに記憶されるデータをJavaプログラムで操作することを可能にする技術である。「全てのレベル」のモードにおいて、特定のブール演算子により結合される1つまたは2つの単語からなるクエリをサブミットすると、JDBCデータベース要求が全ての可視データベースに送られ、クエリにマッチする任意のデータベース名、テーブル名、列名、または値が表示される。
ビジネスインテリジェンスとは、ビジネス上のより良い意思決定をサポートし、経営管理に企業活動の概観を提供するために、企業の重要なデータおよび重要でないデータを集め、整備し、モデル化し、配信するコンピュータベースの技術を言う。多くの既知のビジネスインテリジェンスシステムの1つの主要な欠点は、複雑な構造化クエリを扱うことができる1人または複数の専門家の介入を必要とすることが多いということに起因する。例えば、経営幹部が特別な要求をしたいとき、その人物は、その要求を満足する適切な回答を提供するための複雑な構造化クエリを設計することが役割であるデータベースの専門家に、それを伝えなければならない。その際の会話と複雑な構造化クエリの設計には、時間がかかる。この要件は、ビジネスインテリジェンスシステムの発展に対する深刻な制限を象徴する。従って、一定のレベルの信頼性を有するフリーテキスト検索を実装するサーチエンジン等の包括的かつ直感的なツールを使用して、要求を定式化するための方法およびシステムが必要とされる。
本文書に記載される実施形態は、上記の方法とは多くの点で異なる。本発明の一実施形態において、各キーストローク時のユーザ入力を監視し、ユーザ入力についての全ての可能性のある補完を提示する。他の実施形態では、全ての可能性のあるクエリを走らせるのではなく、サーチエンジンを使用して所与のデータベース全体に走らせることができる構造化クエリについて記載する。ある実施形態では、さらに、データベース検索システム自体ではなく、データベース内の情報のコピーを使用し、これにより、サーチエンジン技術のスピードおよびスケラビリティに基づく利点を提供する。サーチエンジンは概して非常に速く、データベース検索システムがクエリへの応答に必要とする数秒または1分の範囲ではなく、1秒未満の範囲で結果を出す。ある実施形態では、非ヌルの(空でない)回答を有する、トラステッド(信頼できる)クエリのみを作成することにより、さらにユーザを支援する。他の実施形態では、提示されるトラステッドクエリの結果数をさらにユーザに提供する。
一実施形態において、トラステッドクエリのシステムは、データベースの構築および操作に必ずしも長けてはいないユーザが、トラステッドクエリ、すなわち、データベースに対して有効であり、かつ、データベース内にマッチするインスタンス化されたレコードを持つことが既知である構造化クエリ、を繰り返し作成することにより、データベースの内容にアクセスする手段を提供する。構造化クエリは、クエリが行われるデータベース全体に渡って、ユーザのクエリを一定の値または一定のフィールドに制限する。本明細書では、用語「クエリ」はサーチエンジンにより実行される構造化クエリを意味する。
一実施形態において、トラステッドクエリを実行する方法は、1つまたは複数のデータベースからデータベースエントリを検索するステップと、複数のデータベースエントリをフラット化するステップと、複数のフラット化されたデータベースエントリをインデックス化してサーチエンジンインデックスを作成するステップと、ユーザに入力を促すステップと、を含む。システムは、ユーザ入力を継続的に監視し、ユーザによる入力がある度に、システムは、ユーザによる入力に応答して非ヌルの部分的なクエリのセットを計算し、構造化された項目をそれぞれの非ヌルの部分的なクエリに関連付け、構造化された項目の1つをユーザに選択させる。構造化された項目の1つをユーザが選択した場合、ユーザ入力を、システムは、選択した構造化された項目に関連付けられた非ヌルの部分的なクエリで置き換える。ユーザが入力を有効化すると、システムは入力をクエリとして実行する。最後に、システムは、実行されたクエリに対応する文書をユーザに提供する。
別の実施形態において、コンピュータプログラム製品は、コンピュータ使用可能媒体と、コンピュータ使用可能媒体上で具現化される、ユーザからの入力に基づきサーチエンジンに対してトラステッドクエリを実行するためのコンピュータ可読コードと、を含む。コンピュータ可読コードをプロセッサにより実行し、実行するとプロセッサに、1つまたは複数のデータベースからエントリを検索させ、複数のデータベースエントリをフラット化させ、複数のフラット化されたデータベースエントリをインデックス化してサーチエンジンインデックスを作成させ、ユーザに入力を促させる。コンピュータプログラム製品は、ユーザ入力を継続的に監視し、また、ユーザによる入力がある度に、プロセッサが、ユーザによる入力に応答して非ヌルの部分的なクエリのセットを計算し、構造化された項目をそれぞれの非ヌルの部分的なクエリに関連付け、構造化された項目の1つをユーザに選択させる。構造化された項目の1つをユーザが選択した場合、プロセッサは、ユーザ入力を、選択した構造化された項目に関連付けられた非ヌルの部分的なクエリで置き換える。ユーザが入力を有効化すると、プロセッサは、入力をクエリとして実行し、実行されたクエリに対応する文書をユーザに提供する。
さらなる実施形態において、ユーザからの入力に基づきサーチエンジンに対してクエリを実行するシステムが、1つまたは複数のデータベースからデータベースエントリを検索するよう構成されるプロセッサと、データベースエントリをフラット化するよう構成されるデータベースフラット化コンポーネントと、フラット化されたデータベースエントリをインデックス化してサーチエンジンインデックスを作成するよう構成されるデータベースインデックス化コンポーネントと、ユーザに入力を促すよう構成される表示画面と、を含む。プロセッサは、ユーザ入力を継続的に監視し、ユーザによるユーザ入力を、ユーザによる入力に応答して非ヌルの部分的なクエリのセットを計算することと、構造化された項目をそれぞれの非ヌルの部分的なクエリに関連付けることと、構造化された項目の1つをユーザに選択させることと、構造化された項目の1つをユーザが選択した場合、ユーザ入力を、選択した構造化された項目に関連付けられた非ヌルの部分的なクエリで置き換えることと、により処理する。ユーザが入力を有効化すると、プロセッサは入力をクエリとして実行し、実行されたクエリに対応する文書をユーザに提供する。
本明細書に記載されるある実施形態に従ってトラステッドクエリを提供および生成することは重要であり、何故ならば、フリーテキストを使用してクエリを定式化することが本質的に曖昧であり、このような曖昧さのため、意思決定の文脈、例えば、ビジネスインテリジェンスアプリケーションの文脈で、クエリの結果による特定の項目/カテゴリを考慮する円グラフを描く時など、結果を使用する際に問題が起こる。従って、解釈、すなわち、ユーザがフリーテキストクエリを定式化する際に考えるであろうことを予測する構造化クエリ処理、を提示するトラステッドクエリのシステムおよび方法が必要である。これは、フリーテキストを使用してクエリを定式化する際の一定のレベルの「信頼」を形成するために重要である。これは、ビジネスインテリジェンスの文脈において特に重要なことである。
システムおよび方法は、以下の記載と共に添付の図面を参照することにより良く理解できる。図面中の構成要素は必ずしも縮尺されているわけではなく、その代わり、本発明の原理を例示することに重点が置かれている。さらに、図中、異なる図面全体を通して同様の参照番号は対応する部分を示す。
トラステッドクエリの方法およびシステムにより行うことができるステップを示す本発明の一実施形態によるフロー図である。 特定の実施形態による、データベースのフラット化に対して行うことができるステップを示すフロー図である。 特定の実施形態による、フラット化されたデータベースのテーブルをインデックス化するために行うことができるステップを示すフロー図である。 ユーザ入力および監視のために行うことができるステップを示す特定の実施形態によるフロー図である。 ユーザの各キーストロークの後にどのようにトラステッドクエリを生成するかを示す、特定の実施形態によるフロー図である。 本発明のいくつかの実施形態に従う方法を実装するために使用することができるコンピュータシステムのブロック図である。 本発明の一実施形態による、典型的なデータベースのテーブルを示す図である。 どのようにして図7のデータベースをサーチエンジンで表すことができるのかを示す図である。 特定の実施形態による、データベースおよびそのフラット化された形式の実例を示す図である。 特定の実施形態による、データベースおよびそのフラット化された形式の実例を示す図である。 本発明の特定の実施形態によるトラステッドクエリのインターフェースの種々の画面表示を例示する図である。 本発明の特定の実施形態によるトラステッドクエリのインターフェースの種々の画面表示を例示する図である。 本発明の特定の実施形態によるトラステッドクエリのインターフェースの種々の画面表示を例示する図である。 本発明の特定の実施形態によるトラステッドクエリのインターフェースの種々の画面表示を例示する図である。 本発明の特定の実施形態によるトラステッドクエリのインターフェースの種々の画面表示を例示する図である。 本発明の特定の実施形態によるトラステッドクエリのインターフェースの種々の画面表示を例示する図である。 本発明の特定の実施形態によるトラステッドクエリのインターフェースの種々の画面表示を例示する図である。 本発明の特定の実施形態によるトラステッドクエリのインターフェースの種々の画面表示を例示する図である。 本発明の特定の実施形態によるトラステッドクエリのインターフェースの種々の画面表示を例示する図である。 本発明の特定の実施形態によるトラステッドクエリのインターフェースの種々の画面表示を例示する図である。 本発明の特定の実施形態によるトラステッドクエリのインターフェースの種々の画面表示を例示する図である。 本発明の特定の実施形態によるトラステッドクエリのインターフェースの種々の画面表示を例示する図である。
図1は、トラステッドクエリのシステムの操作を示すフロー図であり、トラステッドクエリシステム110の一実施形態により行うことができるステップ(100)を含む。ユーザの処理の概要としては、特定の実施形態に従うと、サーチエンジンを使用してデータベースにクエリを行うためのGUIすなわちグラフィカルユーザインターフェース等のインターフェースを、ユーザに示す。そして、ユーザがサーチエンジンのクエリボックスに自分のクエリを打ち込み始める。望ましい実施形態において、各キーストロークが打ち込まれた後、システムは、データベースから非ヌルのレコードのセットが戻されるような様々なインスタンス化されたクエリおよび部分的にインスタンス化されたクエリを表示する。
ユーザはいつでも、(i)システム110により提示されるクエリ候補をクリックすること、(ii)表示されるクエリボックス内に追加でテキストを入力すること、または(iii)現在のクエリを下層のサーチエンジンまたはデータベース検索システムにサブミットすること、ができる。あるいは、ユーザは、システム110へのデータ入力として、打ち込むのではなく音声テキスト変換インターフェースを使用することができる。以下の説明においては、ユーザがテキスト入力インターフェースを使用していることを前提とする。
トラステッドクエリの方法及びシステム110の1つの利点として、結果が得られないようなクエリをユーザが定式化することがない。本明細書に記載する処理の間、ユーザは、結果が得られないようなテキストを入力することはできるが、トラステッドクエリの方法およびシステム110では、最初に、ユーザがクエリを有効にする前に、このようなクエリでは結果が得られないことをユーザに警告する。システム110はまた、例えば、この時点でスペルチェックを行って、代替を示すこともできる。
理論上は、ユーザが打ち込みを始める前に、結果が得られるような全てのクエリを生成することは可能であるが、組み合わせとして多数の可能性があるため、サーチエンジンによりクエリが行われている元のデータベースの大きさより大きな、数十倍もの記憶スペースが必要となり、実行可能ではなく採算が合わない。本明細書に記載される実施形態を使用して、データベース上で走らせることができる全ての可能なクエリを、必ずしも明示的に生成するわけではないが、これは、以下で説明するように、素早いサーチエンジン検索により、可能性のある非ヌルのクエリをリアルタイムでまたはオンザフライで生成するからである。
一実施形態によるトラステッドクエリの方法およびシステム110では、固有のデータベース機能ではなく下層のサーチエンジンの技術を使用するため、システム110は、全文検索および下層のデータベースシステム内には存在しない他のサーチエンジンの機能を提供する。例えば、トラステッドクエリの方法およびシステム110では以下を提供する。
−言語検出
−文境界の認識(テキストを構文解析して個々の単語および文にする、スペースおよび句読点などのセパレータを考慮して言語特有の規則を適用する)による、トークン化および正規化
−ステミング(同一の語幹を共有する単語、例えば、「engine」と「engines」の識別)
−見出語認定、形態学的統語的処理(基本の語幹の識別だけでなく、「good」と「better」などのより複雑な変形型を識別する、および、単語および文の構造パータンについての言語特有の知識を適用する)
トラステッドクエリの方法およびシステムの特定の実施形態において、サーチエンジンなどの市販のソフトウェアを使用して、下層のデータベースをインデックス化して、一旦フラット化することができる。このような市販のサーチエンジンは、望ましくは「SPLIT」演算子の機能を含む。下層のデータベース(または複数のデータベース)は、最初にサーチエンジンにより全体をインデックス化し、サーチエンジンインデックスを作成し、そのため、サーチエンジンは、元のデータベースではなくサーチエンジンインデックスに作用することになる。その後、ユーザのクエリに基づき、サーチエンジンは、サーチエンジンインデックスから得られる文書を返し、このような結果は、以下で説明するように、元のデータベースの行を表す。もちろん、サーチエンジンインデックスには、メモリ効率および処理速度のために必要に応じて、多くの構造体またはサブ構造体を含むことができる。あるいは、インデックス化を複数の「バッチ」で実行して、メモリ使用を最小限にし、効率的な処理を促進させることもできる。そうすれば、サーチエンジンインデックス全体を一度にメモリに常駐させる必要がない。
ここで図1を参照すると、一実施形態によるトラステッドクエリの方法を実行するステップ100を、高水準の形態で概説している。本段落に記載する選択された高水準のステップは、以下でより詳細に説明される。第1のステップ120では、データベースのテーブルをデータベース(「A」)122から検索し、テーブルをフラット化し、フラット化されたデータベースストレージ124に記憶する。この処理は図3により詳細に示される。次に、フラット化されたデータベース124を、サーチエンジンまたは他の適切なツール130を使用してインデックス化する。そして、候補リストを抽出し(140)、候補リスト(「B」)126に保存される。次に、入力表示画面をユーザに対して示し(150)、ユーザは種々の検索用語またはクエリを入力することが許可される。続いて、処理によりユーザ入力を監視し、クエリに対して非ヌルの応答が得られるようなクエリをユーザに提示する(160)。本ステップは、繰り返しループしてトラステッドクエリの処理をユーザに提供する。
図1のフラット化のステップ120において、典型的なデータベースのテーブルを簡単に表した図7に示されるデータベーステーブル700にアクセスする。データベースのデータベーステーブル700は、名前D(720)の型T(710)であり、Cl,C2,...,CNでラベル付けされる複数のデータベーステーブルの列730と、値T11,T12,...T1N、T21,T22,...T2N、最後はTM1,...,TMN、で具体化される複数(M個)のデータベーステーブルの行740と、から成る。なお、本記載において、用語「列」と「フィールド」とは交換可能に使用される。
図1のステップ120において、データベースAを、既知のデータベースフラット化技術を使用してフラット化すること、かつ、特定のフォーマットにフラット化することができ、特定のフォーマットでは、各行がデータベーステーブルの型、データベーステーブル名、データベースの列名(フィールド名)およびデータベーステーブルの行の具体的な値を識別する情報を含む。任意の適切なサーチエンジンを使用して、データベースをフラット化することでき、それには例えば、フランスのExaleadS.A社から入手可能なCLOUDVIEW(登録商標)サーチエンジンがある。ステップ120において、複数のデータベースおよび各データベースの複数のテーブルをフラット化かつインデックス化することができ、例示の目的のためだけであるが、このようなテーブルが図7に示される。
図2は、データベースをフラット化するために行われるステップをより詳細に示し、図1のステップ120に対応する。例えば、図7のデータベーステーブルをフラット化形式に変換して図8に示す。図8に示すフラット化フォーマットでは、各データベーステーブルの行を、列810、カンマ820およびセミコロンにより分離されるテキストの一本のライン上に再現し、行番号を示す位置、列名、列の値を示す。例えば、第2行の第2列の値は図7のT22であり、図8にライン:
−ROW−2:T/D/Cl,T21;T/D/C2,T22;...;T/D/CN,T2N
として表される。
図8に示す本例においては、第1のフィールドであるROW−2、840(セミコロンで分離される)が、このラインがテーブルの2番目の行に対応することを示す。このセミコロンは、N個のフィールドごとに続く。これらのフィールドの2番目には、カンマで分離される2つの項目、すなわち、T/D/C2およびT22を含む。このフィールドはコロンの後の2番のフィールドであるので、テーブルの2番目の列に対応する。このフィールドの最初の項目は、データベースの型T(任意の値)、データベーステーブルの名前D、フィールドまたは列の名前C2を階層的に表示する。なお、これらの分離に関する在来の規則の代わりに任意の適切なまたは同等の分離スキームを使用することができ、このような適切な分離スキームについては、URL:http://en.wikipedia.org/wiki/Flat_file_databaseにて確認することができる。
図2に示すように、クエリを、サーチエンジンを使用してデータベース上で実行し(202)、次の行のデータベースクエリの結果を、システム204に読み込み、または入力する。処理がデータベースクエリの結果の最後に達していない場合(210)、各列に対して(216)、行の最後に達したかどうかの判定を行う(226)。行の最後に達した場合(226)、「end of row」のセパレータシンボルがその行の最後に書き込まれ(230)、処理はステップ204に戻り次の行を読み込む。
行の終わりに達していない場合(226)、列名、続いて列名のセパレータシンボルをファイルに書き込む(250)。次に、列の値、続いて列のセパレータシンボルをファイルに書き込む(260)。そして、ファイルにさらに列が存在するかどうかの判定を行う(270)。さらに列が存在する場合、処理はステップ226に戻り、行の処理を完了させる。さらなる列が存在しない場合、処理は終了点に移動する(280)。ステップ210において、ファイルの最後に達した場合、ルーチンが完了したとみなされ(290)、処理は終了点280に移動する。フラット化処理により、サーチエンジンが全ての列名およびフィールド値を一度に検索することが可能になり、それにより、一度の効率的なクエリでこのデータ全部に渡る候補リストを構築することができる。
図1に戻ると、ステップ130において、フラット化されたバージョンのデータベースAを、ステップ120でフラット化された全ての他のデータベースと共にインデックス化する。データベースのフラット化は、文書のセクション内を検索することができる市販のサーチエンジンまたは標準のサーチエンジンを使用して行うことができる。このような標準のサーチエンジンでは、文書を入力として受け取り、文書内の全ての単語を転置ファイルのデータ構造に配列し、続いてこれを処理してユーザのクエリをユーザのクエリの用語を含む文書とマッチさせることが可能である。図8に示すフラット化されたデータベースの例では、文書のセクションをセミコロンで分離する。
図3は、図1のステップ130に示すインデックス化のステップに関してさらに詳細を示す。まず、市販のサーチエンジンがSPLIT演算子機能を持つかどうかの判定を行う(310)。SPLIT演算子により、ユーザは文書のセクション内を検索することができる。SPLIT演算子が利用可能でない場合(310)、処理は終了する(314)。SPLIT演算子が利用可能である場合、フラット化されたデータベーステーブルをインデック化し(320)、処理が終了する(314)。
例えば、「(T/D/C2 AND T22)SPLIT“;”」という検索を行うと、この例では文書ROW−2を返す。図9は、顧客関係データベースから抽出された「All leads」900というテーブルの例を示し、図10は、そのフラット化されたバージョン1000を示す。図9および10の「All_Leads」というデータベーステーブル、および、本明細書に示さない同様に処理されたデータベーステーブルを使用して、以下で詳細に説明するトラステッドクエリのシステムおよび方法の機能を例示する。
次に図1に戻り、インデックス化のステップ(130)でインデックス化された全ての項目のリストを、ステップ140に示すように単語リスト「B」に書き込む。このステップは任意選択である。単語リストBは、インデックス化のステップ130と同時に作成しても、ステップ130の後に作成しても良く、全く作成しなくても良い。単語リストBは、スペルチェック目的や、音声検索等の他の自然言語処理に使用することができる。
次に、ユーザがテキストをクエリボックスに入力可能な、および/または、例えば、キーボード、ポインティングデバイス、タッチスクリーン、音声入力、等の入力装置を使用して種々の選択肢をクリック可能な、画面(150)または他のインターフェースを、ユーザに対して示す。適切な市販の音声認識ソフトウェアおよび/またはハードウェアを使用して、音声認識を実行すること、および、ユーザが発行する音声コマンドを処理すること、ができる。望ましくは、ユーザに対して示される初期の画面には、1ラインに1つ、1テーブル毎のインデックス化された行の数と共に、全てのインデックス化されたデータベーステーブルを表示する。この表示1100の例を図11に示し、ここでは3つのテーブル《All−Leads》1110、《All−Contacts》1120、《All−Accounts》1130をインデックス化し、それぞれ97、73、21個のインデックス化された行の数と共に示す。
図1に示すステップ160において、クエリボックスに入力される任意のユーザ入力により、トラステッドクエリ候補の生成の反復処理を起動する。トラステッドクエリとは以下の条件を満たすクエリである。
(a)クエリは、サーチエンジンに向けて、良好に構造化されたクエリであること。
(b)サーチエンジン上で実行される時、クエリは非ヌルの複数の回答を返す。選択的に、データベースの内容へのアクセスにユーザの許可が必要な場合、識別されたエンドユーザによってトラステッドクエリを実行すると、クエリはその識別されたエンドユーザに非ヌルの複数の回答を返す。
ステップ160では、各文字または音声をユーザにより入力デバイスを使用して入力した後、クエリを生成し、ユーザにより入力されたテキストに対応するサーチエンジンインデックス全体に渡って実行する。ステップ150および160で示す上述の処理を反復的に繰り返し、トラステッドデータベースクエリ処理100を実行する。
図4は、図1のステップ150および160に関するさらなる詳細を示す。まず、クエリボックスを示すユーザインターフェースをユーザ150に対して示し、ユーザはクエリを入力できるようになる。ステップ150は処理の継続性のために本図に示されるものである。上記で触れたように、任意の適切なデータ入力または要求の方法を使用することができる。処理は連続してループし(404)、ユーザ入力を待つ。ユーザが自分のデータまたはクエリを入力した後、処理は「エンター」キーが押下されたかどうかを判定する(408)。エンターキーが押下された場合(408)、ユーザにより入力された(有効とされた)クエリをサーチエンジン410に対してサブミットし、ユーザに対して表示される結果のページを処理し(416)、処理は分岐してユーザインターフェースの表示150に戻る。別の実施形態においては、ユーザにより入力されたクエリを、1つまたは複数の元のデータベース122の構文にマッピングし、マッピングしたクエリをデータベース全体に渡って実行し、データベース検索の結果をユーザに対して示す(416)。
ユーザがエンターキーを押さない場合(408)、処理は提示された部分的なクエリの1つをユーザがクリックしたかどうかを判定する(420)。提示された部分的なクエリの1つをユーザがクリックしなかった場合(420)、処理はユーザがキーストロークを入力したかどうかを判定する(430)。ユーザがキーストロークを入力しなかった場合(430)、処理はユーザが候補以外をクリックしたと判定する(440)。ユーザが候補以外をクリックした場合(440)、候補をユーザから隠すことができ(446)、処理は分岐してユーザインターフェースの表示150に戻る。一実施形態において、候補は隠すことができるが、それはユーザが提供された候補以外の領域をクリックし、従って、ユーザが検索フィールドに注目もしておらず関心も無いと推測されるからである。
提示された部分的なクエリの1つをユーザがクリックした場合(420)、選択されたクエリをクエリの入力ボックスの入力フィールドに表示する(460)。次に、自動補完の候補をトラステッドクエリ処理から取得するが(470)、これについては図5を参照して以下で詳細に説明する。自動補完の候補をトラステッドクエリ処理から取得した後(470)、自動補完の候補を、ユーザに対する表示のために処理し(480)、処理は分岐してユーザインターフェースの表示150に戻る。
ステップ430において、ユーザがキーストロークを入力した場合、トラステッドクエリ処理から自動補完の候補を取得する(470)。処理が、ユーザが候補以外をクリックしないと判定する場合(440)、処理は分岐してユーザインターフェースの表示150に戻る。
ステップ470に示す自動補完の候補の取得の処理は、図5に詳細に示され、表示されるこのような自動補完の候補は、インデックス化されたフラット化データベース内で発見される可能性のある有効な補完の用語に相当する。自動補完の処理は、ユーザが入力しようと思う単語またはフレーズを、ユーザに実際にその単語またはフレーズを完全に入力することを要求せずに予測することを含む。
ステップ470に関して例示される一実施形態による自動補完の特徴として、電子メールのプログラム、ウェブブラウザ、またはコマンドラインインタープリタの場合のように、使用可能な単語または通常使用する単語の数に限りがある場合や、または、ソースコードエディタ等により、高度に構造化され、予測容易な言語で書かれたテキストを編集するときなど、ユーザにより既に入力済みの単語またはフレーズに基づき、打ち込まれている単語またはフレーズを予測することが簡単である場合に、特に効力がある。自動補完は、人とコンピュータとの対話のスピードを上げ、ユーザの満足度を向上させる。
トラステッドクエリシステム110の一実施形態における自動補完により、ユーザはSQL文でテーブル名を自動補完させ、SQL文で参照されたテーブルの列名を自動補完させることができる。エディタにテキストが打ち込まれると、SQL文内のカーソルのコンテキストが、ユーザがテーブルの補完を必要としているのか、テーブルの列の補完を必要としているのかの指標を与える。テーブル補完では、ユーザと接続されているデータベースサーバ内の利用可能なテーブルのリストを提供する。列補完では、SQL文で参照されたテーブルのみについての列のリストを提供する。
トラステッドクエリシステム110の一実施形態における自動補完処理は、市販のソフトウェアプログラムと同様ものとすることができ、これには例えば、AquaFold社のAquaData Studio,release7.5があり、AquaFold社はSQLエディタの他に、データベースでの種々のクエリに対応する自動補完ツールを提供している。多くの単語処理プログラムにおいて、自動補完は、繰り返される単語およびフレーズを打ち込むのに要する時間を減少させる。自動補完のための原資料は、ユーザが作業している現在の文書、または、ユーザが定義した通常使用単語のリストから集めることができる。
現在、例えば、カリフォルニア州レッドウッドシティにあるオラクル社のOpenOffice.org、サンマイクロシステムズ(登録商標)社のStarOffice、マイクロソフト(登録商標)社のMicrosoft Office、KDE社のKOfficeでは、上記の自動補完がサポートされ、EmacsやVimのような高度なテキストエディタでも同様にサポートされる。Unix(登録商標)のshもしくはbashまたはMicrosoft Windows(登録商標)のcmd.exeもしくはPowerShell等のコマンドラインインタプリタにおいて、または同様のコマンドラインインターフェースにおいて、コマンド名およびファイル名の自動補完は、ユーザがアクセスし得るものの全ての可能性のある名前を追跡することにより達成することができる。
あるプログラムでは、単語の最初のいくつかの文字の打ち込みの後にタブキーを押すことにより自動補完を実行することができる。例えば、カレントディレクトリにxで始まるファイルがxLongFileNameだけである場合、ユーザは、xを打ち込み、完全な名前を自動補完させることができる。xで始まる別のファイル名またはコマンドが同じ範囲に存在する場合、ユーザは、追加で文字を打ち込むか、タブキーを繰り返し押して適切なテキストを選択するであろう。トラステッドデータベースクエリのある実施形態において、有効な補完は、元のデータベース内で発見される任意の列名、または、元のデータベースにおける行の値の任意の部分的マッチとすることができる。本発明のある実施形態においては、列名および行の値の両方をインデックス化している。
図5では、図4のステップ470の自動補完の候補の処理をより詳細に示す。最初に、クエリボックスの内容が分析される(506)。クエリボックスが空である場合510、全てのテーブル名および各テーブルの行のカウントをサーチエンジンインデックスからの候補としてフェッチし(520)、フォーマットする(530)。
クエリボックスがテキストを含む場合(510)、クエリを構文解析する(534)。構文解析により、クエリボックス(構造化されたチャンク(まとまり))内のテーブル名および列名を認識かつ識別し、構造化された候補を生成するために、ユーザが入力する全フリーテキストを認識する。
構文解析534の後、処理は、全フリーテキストが構文解析の結果として認識されたかどうかを判定する(538)。全フリーテキストを構文解析した場合(538)、処理は分岐してテーブル名がクエリボックスに現れているかどうかを判定する(544)。この時点で、処理は、新しいテキストがテーブル名の後に続いているかどうかを判定する。テーブル名がクエリボックスに現れている場合(544)、指定されたテーブルの列名をフェッチし、全てのテーブルおよび列名に対してマッチし(546)、構造化クエリを形成する(564)。
フラット化されたデータベース全体に渡るクエリを、クエリボックスに入力済みの全ての単語および/またはフィールド名を含んで生成する。ステップ544では、テーブル名が前回の構造化されたチャンク内で指定されたかどうかを判定する。指定された場合、テーブル列名(546)に対する全文のマッチを実行する。テーブル名が前回の構造化されたチャンク内で指定されていない場合(544)、全てのテーブル名および全てのテーブル列名に対するマッチを実行する(548)。
指定されるテーブル名が無い場合(544)、全フリーテキストを全てのテーブル名およびその列名に対してマッチし(548)、候補を生成する。テーブル名を発見しても(546)、しなくても(548)、構造化クエリを形成する(564)。この構造化クエリは、クエリボックス内の全ての構造チャンク(テーブル名および列名)をAND演算子で連結させ、かつ、検出されたフリーテキストに対して全文検索を加えることにより、構成することができる。
クエリが部分的または全体的に、フラット化されたデータベーステーブル(ステップ548を参照のこと)の列名の接頭語にマッチするとき、マッチした列のテーブル名をユーザインターフェースのウィンドウに表示し、部分的または全体的にマッチした列も、マッチした部分をボールドまたはハイライトにして表示する(576)。クエリが部分的または全体的にデータベーステーブルの列の値にマッチする時、値が発見されたデータベースのテーブル名をユーザインターフェース上のウィンドウに表示する。また、値が発見された列名も、マッチした部分をボールドまたはハイライトにされた値と共に表示する576。マッチした列名または列名がマッチした列の値に対応する、具体化された行の数も、例えば、二重括弧内の数字として表示する。
上述のように構成された構造化クエリを、次にサーチエンジン570に送る。この構造化クエリがサーチエンジンにおいてマッチする結果(ヒット)を持つ場合(572)、これらの結果から候補を抽出する(574)。抽出された結果のそれぞれが、テーブル名、列名、値を含有することができる。抽出された候補は所与のテーブルおよび所与の列の値に対応し、値はフリーテキストに対応し、指定されるテーブルの指定される列の値に現れる単語の完全マッチ、または、接頭語のマッチのどちらかによる。
次に、ステップ546、548および574で作成された全ての候補をまとめ、マッチする部分をハイライトする(576)。次いで、ハイライトされた候補をフォーマットする(530)。図面において、ハイライトされた箇所を例示の目的でフォントサイズを大きくして示す。しかし、任意の形式のテキストの強調を使用して、ユーザに対して提示されるクエリに簡単に注目させることができる。この構造化クエリがサーチエンジンにおいてマッチする結果(ヒット)を持たない場合(572)、抽出する候補が無く、ハイライトを実行する(576)。ハイライトは各クエリのヒットに対して繰り返される処理であるため、ヒットがない場合は、ハイライトを実行しない。
フォーマット処理530を、受け取る候補に全体に繰り返し適用し、各候補の候補の型に従って表示をフォーマットする。候補の型がテーブル名である場合(578)、全てのテーブル名を表示用に処理する(580)。候補の型が列名である場合(578)、全ての列名を表示用に処理する(582)。同様に、候補の型が値である場合(578)、全ての列名および値を表示用に処理する(584)。候補の型を表示用に処理した後(580、582、584)、処理候補を返し(586)、表示用に利用可能にする。処理は、図4のステップ470に示すようにサブルーチンの呼び出しのポイントに戻る。このようなフォーマットされた表示の例を、少なくとも図11、12、16および17に示す。
ステップ538に戻り、全フリーテキストを構文解析していない場合、処理はテーブル名が指定されているかどうかを判定する(590)。テーブル名が指定されていない場合(590)、処理は分岐して候補のフォーマットを行う(530)。テーブル名が指定されている場合(590)、指定されたテーブルの列名を返す(592)、処理は分岐して候補のフォーマットを行う(530)。なお、全フリーテキストが利用できない場合、テーブル名を記述する「構造化されたチャンク」が、指定されるテーブルの列名に対応して利用可能にする。
望ましい実施形態では、フラット化されたデータベーステーブルの各行を別の文書としてインテックス化し、その文書にはテーブル名が現れるだけでなく、(例えば、図10に示すように)データベースのテーブル名、列名および列の値を区別すること、かつ、列の値を列名と関連付けすること、が可能であるようにフォーマットされた各列の値と共に各列の名前も現れるようにする。データベースのテーブル名と列名と列の値の間の区別を保持する、文書をインデックス化する任意の他の適切な方法を使用することができる。例えば、ある方法では、データベースのテーブル名およびテーブルの列名の全てを1つのサーチエンジンインデックスで個別にインデックス化し、データベースの値の全てを別のサーチエンジンインデックスで個別にインデックス化する。
一実施形態において、オントロジ等の簡素かつ構造化されたシソーラスまたは語彙意味構造を使用して、インデックス化する時またはクエリを行う時に、フラット化されたデータベース内の実際の値を代替の値のセットにマッピングすることができる。オントロジは、ドメイン内の概念とそれらの概念間の関係とのセットの正式な表現である。オントロジを、そのドメインの性質について推論するために使用すること、および、ドメインを定義するために使用することができる。理論的には、オントロジは「公式な、共有される概念化の明示的仕様」である。
オントロジは、ドメインをモデル化するために使用することが可能である、共有される語彙、すなわち、存在するオブジェクトおよび/または概念の型、ならびにその性質および関係、を提供する。オントロジを、人口知能、セマンティックウェブ、ソフトウェア工学、生物医学情報学、図書館学、情報アーキテクチャにおいて、世界またはその一部についての知識表現の形態として使用する。ほとんどのオントロジは、個体(インスタンス)、クラス(概念)、属性および関係、について記述する(追加の詳細についてはhttp://en.wikipedia.org/wiki/Ontology(コンピュータサイエンス)を参照).
例えば、オントロジは、《dog》が《poodle》を代替の値として有すると規定するであろう。この場合、ユーザのクエリは、オントロジの代替語と列の値をマッチさせ、ユーザが自分のクエリを入力する間、オントロジの代替語もしくは元のクエリの値、またはその両方を表示させることができる。
別の代替実施形態において、クエリが列名とマッチし、その列名が元のデータベースに数値しか含まない時、システムにより、個々の値そのものを表示するのではなく、クエリにマッチする全ての列の値の合計または平均またはカウントなどを表示することを示すシンボルを表示させる追加的なメニューを有するユーザインターフェース内に列名を表示させることができる。
図12は、これらの処理の結果の例を示し、ユーザが3つの文字《nam》を図11に示すクエリボックスに入力した場合である。これらの文字は、《All−Leads》テーブル内の列名(《name》)と部分的マッチ(ボールドにして示す)がある。この3文字はまた、《All−Leads》テーブル内の複数行で内容に部分的マッチがあり、8行の《name》列で《Robert Namais》と部分的にマッチし、《All−Leads》テーブル内の18行に現れる《Namibia》と部分的にマッチする。同様に、入力された文字列《nam》はまた、列名(《name》)およびフラット化された《All−Contacts》テーブル内の行の値ともマッチする。構造化された項目は、図12に示すように視覚的に階層化された様式で表示させることができ、例えば、「Namibia」は「All−leads」テーブルの「country」のフィールド内の値であり、または、「name」はこの「All−leads」テーブル内の別のフィールドである、とユーザには見える。構造化された項目を示すことで、ユーザは関連する非ヌルの部分的クエリを解釈することができる。各構造化された項目により、ユーザの検索の意図の曖昧さを明示的に除去し、ユーザは、その検索を正しく解釈し、かつ有意義であるという一定のレベルの信頼感が与えられる。このような構造化された項目は任意の適切な順序付け基準、例えば、アルファベット順、評判に基づくもの、または発見件数に基づくもの、などに従って順序付けられた、階層化された形式で示すことができる。
ユーザが何らかのテキストを入力すると、図12に示すように、ユーザは以下のことを決定することができる。
1.テキストをさらに入力する(入力される新しい文字列に対応する値を用いて、図12に見られるような出力を作成する)
2.リターンキーを押してクエリを有効化し、現在のテキストボックスの内容をクエリとして(図13参照)送る、または
3.画面上のインスタンス化されたフィールドの1つをクリックする
(A)インスタンス化されたフィールドに内容部分の部分的マッチが含まれる場合、そのマッチによりクエリボックス内の現在のテキストを置き換える。例えば、ユーザが図12の《Robert Namias》を含有するボックス上をクリックすると、ユーザに対して図14を表示する。この図において、《Robert Namias》をクリックしたフィールドが《All−leads》テーブルの《name》フィールドに現れたため、今度はテーブルおよびフィールド名がクエリボックスに現れ、ユーザが入力するテキストを置き換える、ことが分かる。これは図4に示す処理460に対応する(「選択されたクエリを入力フィールドに表示する」)。
(B)図12の《All−contacts》の部のフィールド名《name》等の、フィールド名に対応する部分マッチをユーザがクリックすると、図15に示すように、この列名がクエリボックスに現れる。
(C)一般的に、クエリボックスのフリーな部分内の全ての単語(テーブル名および列名または値を含有する構造化部分の後に続く)、クリックされ選択された候補のテーブル名、列名、または値のいずれかにマッチするような、残された全ての単語を、フリーテキストの部分から除去し構造化部分と置き換える。
図11に示すようにクエリボックスが空で、ユーザがテーブル名をクリックした場合、図11のテーブル名《All−contacts》をユーザがクリックすると現れる図16に示すインターフェース上に、テーブルの列名を表示する。
この時点で、ユーザはフリーテキストを入力することが可能であり、図17に示すように、フリーテキストに対応する自動補完の候補をこのデータベーステーブルに対して制約する。あるいは、ユーザはフィールド名をクリックすることが可能であり、これにより、図18に示すようにこのフィールド名がクエリボックスに現れ、その後、さらにテキストを入力すると、図19に示すようにこのフィールドに限定されるトラステッドクエリを作成する。
図20において、上述の候補の1つをユーザが選択した時の結果を示す。図21では、図18のトラステッドクエリにテキストを打ち込んだ結果の例を示し、このテキストは図18のトラステッドクエリの結果のある他の列内の行の内容と部分的にマッチする。ユーザはまた、図22に示すように、リターンキーを押して現在のトラステッドクエリを下層のサーチエンジンに送ることもできる。
ここで図6を参照すると、トラステッドクエリ検索の実行に使用されるシステムの一実施形態の高度なハードウェアブロック図を示す。トラステッドクエリシステムは、コンピュータハードウェアコンポーネントと協働するシステムとして、および/またはコンピュータで実装される方法として、具現化することができる。トラステッドクエリシステム110には、複数のソフトウェアモジュールまたはサブシステムを含むことができる。モジュールまたはサブシステムは、ハードウェア、ソフトウェア、ファームウェア、または、ハードウェア、ソフトウェアおよびファームウェアの任意の組み合わせにおいて実装することができ、また、1つの物理的スペースまたは論理的スペース内に置いても置かなくても良い。例えば、本文書において参照され、図面に示されるまたは示されないモジュールまたはサブシステムは、互いに離れて配置させることができ、通信ネットワークで連結させることができる。
さらに、図6は、トラステッドクエリ処理を実装するソフトウェアまたはロジックの実行に使用することができるコンピュータシステム600の高度なハードウェアブロック図である。コンピュータ600は、パーソナルコンピュータとすることができ、RAM614、ROM616、ハードディスク記憶装置618、キャッシュメモリ620、データベースストレージ622など(「メモリサブシステム627」とも称する)の種々のハードウェアコンポーネントを含むことができる。コンピュータ600には、コンピュータ、マイクロプロセッサ、RISC(reduced instruction set computer)プロセッサ、CISC(complex instruction set computer)プロセッサ、メインフレームコンピュータ、ワークステーション、シングルチップコンピュータ、分散プロセッサ、サーバ、コントローラ、マイクロコントローラ、離散論理コンピュータ等、当該技術分野において周知の任意の適切な処理装置628を含むことができる。例えば、処理装置628は、Intel Pentium(登録商標)マイクロプロセッサ、x86互換マイクロプロセッサ、または、同等の装置とすることができ、サーバ、パーソナルコンピュータ、または任意の適切なコンピュータプラットフォームに組み込むことができる。
メモリサブシステム626には、RAM、EPROM(electrically programmable ROM)、フラッシュメモリ、動的メモリ、静的メモリ、FIFO(first−in、first−out)メモリ、LIFO(last−in、first−out)メモリ、循環メモリ、半導体メモリ、バブルメモリ、バッファメモリ、ディスクメモリ、光メモリ、キャッシュメモリ、等の任意の適切な記憶装置コンポーネントを含むことができる。磁気媒体上の固定記憶装置、半導体装置内の記憶装置、または通信リンクを介してアクセス可能な遠隔の記憶装置等、任意の適切な形式のメモリを使用することができる。ユーザインターフェースまたはシステムインターフェース630は、コンピュータ600と連結することができ、システムマネージャにより選択可能なスイッチおよび/またはキーボード等の種々の入力装置636を含むことができる。ユーザインターフェースにはまた、LCDディスプレイ、CRT、種々のLED表示器、プリンタ、および/または音声出力装置等の、当該技術分野において周知の適切な出力装置640を含むこともできる。
コンピュータ600と外部ソースとの通信を円滑にするために、通信インターフェース642をコンピュータシステムに操作可能に連結させることができる。通信インターフェース642は、例えば、イーサネットネットワーク、イントラネット、インターネット、または他の適切なネットワーク544、等のローカルエリアネットワークとすることができる。通信インターフェース642はまた、公衆交換電話網(PSTN)646またはPOTS(plain old telephone system)に接続させることができ、これによりインターネット644を介して通信を円滑にすることができる。任意の適切な市販の通信装置またはネットサークを使用することができる。
上述の論理、回路、処理は、CDROM(compact disc read only memory)、磁気ディスクもしくは光ディスク、フラッシュメモリ、RAM(random access memory)もしくはROM(read only memory)、EPROM(erasable programmable read only memory)、または、他の機械可読媒体、等の機械可読またはコンピュータ可読の媒体内に、例えば、プロセッサ、コントローラまたは他の処理装置による実行のための命令として符号化または記憶させることができる。
媒体は、命令実行可能システム、機器または装置により、またはこれらに接続されて、使用するための実行可能命令を、含む、記憶する、通信する、伝播する、または移送する任意の装置として実装することができる。あるいは、または加えて、1つまたは複数の集積回路、または、命令を実行する1つまたは複数のプロセッサ等のハードウェアを使用して、または、API(application programming interface)のソフトウェアで、もしくは共有されるメモリにおいて利用可能な機能またはローカルまたはリモートのプロシージャコールとして定義される機能であるダイナミックリンクライブラリ(DLL)のソフトウェアで、またはハードウェアとソフトウェアとの組み合わせで、アナログ論理またはデジタル論理として論理を実装することができる。
他の実装において、論理は信号または伝播信号の媒体で表すことができる。例えば、任意の所与のプログラムの論理を実装する命令が、電気、磁気、光、電磁気、赤外線、または他のタイプの信号の形態をとることができる。上記のシステムは、このような信号を光ファイバインターフェース、アンテナ、または他のアナログもしくはデジタルの信号インターフェース等の通信インターフェースで受け取り、その信号から命令を取り出し、それらを機械可読メモリに記憶させ、および/または、それらをプロセッサで実行する、ことができる。
システムは、追加のまたは異なる論理を含むことができ、多くの異なる方法で実装することができる。プロセッサは、コントローラ、マイクロプロセッサ、マイクロコントローラ、ASIC(特定用途向け集積回路)、離散論理、または他のタイプの回路もしくは論理の組み合わせ、として実装することができる。同様に、メモリは、DRAM、SRAM、フラッシュ、または他のタイプのメモリとすることができる。パラメータ(例えば、条件や閾値)および他のデータ構造は、別々に記憶および管理することができ、シングルメモリまたはデータベースに組み込むことができ、または、論理的および物理的に多くの異なる方法で組織化することができる。プログラムおよび命令は、単一のプログラムの一部、個別のプログラムとすること、またはいくつかのメモリおよびプロセッサに分散させることができる。
本発明の種々の実施形態が記載されたが、本発明の範囲内でさらに多くの実施形態および実装が可能であることが当業者には明らかであろう。従って、本発明は、添付の請求項およびその同等物を考慮することを除いて制限されない。

Claims (26)

  1. ユーザからの入力に基づき、サーチエンジンに対してクエリを実行する方法であって、前記方法は、
    コンピュータ上のプロセッサが、1つまたは複数のデータベースからデータベースエントリを検索するステップと、
    前記プロセッサが、複数の前記データベースエントリをフラット化するステップであって、前記フラット化するステップは、対応するフラット化されたエントリを生成し、各フラット化されたエントリが、前記データベースエントリに対応して行数、列名、列の値を分離するデリミタを有するテキストの一本のラインとして、前記データベースエントリの各行を再現する、ステップと、
    前記プロセッサが、前記複数のフラット化されたデータベースエントリをインデックス化して、サーチエンジンインデックスを作成するステップと、
    前記プロセッサが、前記ユーザに入力を促すステップと、
    前記プロセッサが、前記ユーザによる入力を継続的に監視するステップと、
    前記ユーザによる入力がある度に、前記プロセッサが、
    前記ユーザによる入力に応答して非ヌルの部分的なクエリのセットを計算するステップと、
    構造化された項目をそれぞれの非ヌルの部分的なクエリに関連付けるステップと、
    前記構造化された項目の1つを前記ユーザに選択させるステップと、
    前記構造化された項目の1つを前記ユーザが選択した場合、前記ユーザによる入力を、前記選択した構造化された項目に関連付けられた前記非ヌルの部分的なクエリにより置き換えるステップと
    により、前記ユーザによる入力を処理するステップと、
    前記ユーザが前記入力を有効化すると、前記プロセッサが、前記入力をクエリとして実行するステップと、
    前記プロセッサが、前記実行されたクエリに対応する文書を前記ユーザに提供するステップと
    を含むことを特徴とする方法。
  2. 前記入力が、キーボードおよび/またはポインティングデバイスを用いて行われることを特徴とする請求項1に記載の方法。
  3. 前記入力が、音声コマンドを用いて行われることを特徴とする請求項1に記載の方法。
  4. 前記ユーザによる入力が、各キーストロークの後に処理されることを特徴とする請求項2に記載の方法。
  5. 前記有効化されたクエリが、前記サーチエンジンインデックスに対して実行されることを特徴とする請求項1に記載の方法。
  6. 前記有効化されたクエリが、1つまたは複数のデータベースのそれぞれの構文にマッピングされ、前記マッピングされたクエリが前記データベースに対して実行され、その結果が統合されることを特徴とする請求項1に記載の方法。
  7. 前記データベースエントリをフラット化するステップは、対応するフラット化されたエントリを生成し、各フラット化されたエントリが、データベースのテーブルの型、データベースのテーブル名、データベースの列名、およびデータベースのテーブル行内の具体化された値、に対応する情報を含むテキストの一本のラインとして、前記データベースエントリの各行を再現することを特徴とする請求項1に記載の方法。
  8. SPLIT演算子をサポートする前記サーチエンジンは、前記データベースエントリをフラット化し、かつ、前記データベースに含まれる文書のセクション内を検索するよう構成されることを特徴とする請求項1に記載の方法。
  9. 前記サーチエンジンは、転置ファイルのデータ構造を利用することを特徴とする請求項7に記載の方法。
  10. 前記サーチエンジンは、スペルチェック機能、シソーラス機能、ステミング機能、見出語化機能、トークン化機能、正規化機能からなる群から選択される機能を実行することを特徴とする請求項8に記載の方法。
  11. 前記ユーザによる前記入力に応答して非ヌルの部分的なクエリのセットを計算するステップは、自動補完の候補を含むことを特徴とする請求項1に記載の方法。
  12. 各構造化された項目は、前記ユーザ入力に対応してハイライトされて示されることを特徴とする請求項1に記載の方法。
  13. 各構造化された項目が階層化されて示されることを特徴とする請求項1に記載の方法。
  14. ユーザからの入力に基づきサーチエンジンに対してクエリを実行させるコンピュータ実行可能コードを有するコンピュータ可読記憶媒体であって、
    前記コンピュータ実行可能コードはプロセッサにより実行され、実行されると前記プロセッサに、
    1つまたは複数のデータベースからデータベースエントリを検索するステップと、
    複数の前記データベースエントリをフラット化するステップであって、前記フラット化するステップは、対応するフラット化されたエントリを生成し、各フラット化されたエントリが、前記データベースエントリに対応して行数、列名、列の値を分離するデリミタを有するテキストの一本のラインとして、前記データベースエントリの各行を再現する、ステップと、
    前記複数のフラット化されたデータベースエントリをインデックス化してサーチエンジンインデックスを作成するステップと、
    前記ユーザに入力を促すステップと、
    前記ユーザによる入力を継続的に監視するステップと、
    前記ユーザによる入力がある度に、
    前記ユーザによる入力に応答して非ヌルの部分的なクエリのセット計算するステップと、
    構造化された項目をそれぞれの非ヌルの部分的なクエリに関連付けるステップと、
    前記構造化された項目の1つを前記ユーザに選択させるステップと、
    前記構造化された項目の1つを前記ユーザが選択した場合、前記ユーザ入力を、前記選択され構造化された項目に関連付けられた前記非ヌルの部分的なクエリにより置き換えるステップと
    により前記ユーザによる入力を処理するステップと、
    前記ユーザが前記入力を有効化すると、前記入力をクエリとして実行するステップと、
    前記実行されたクエリに対応する文書を前記ユーザに提供するステップと
    を実行させることを特徴とするコンピュータ可読記憶媒体。
  15. 前記入力が、キーボードおよび/またはポインティングデバイスを用いて行われることを特徴とする請求項14に記載のコンピュータ可読記憶媒体。
  16. 前記入力が、音声コマンドを用いて行われることを特徴とする請求項14に記載のコンピュータ可読記憶媒体。
  17. 前記ユーザによる入力が、各キーストロークの後に処理されることを特徴とする請求項14に記載のコンピュータ可読記憶媒体。
  18. 前記有効化されたクエリが、前記サーチエンジンインデックスに対して実行されることを特徴とする請求項14に記載のコンピュータ可読記憶媒体。
  19. 前記有効化されたクエリが、1つまたは複数のデータベースのそれぞれの構文にマッピングされ、前記マッピングされたクエリが前記データベースに対して実行され、その結果が統合されることを特徴とする請求項14に記載のコンピュータ可読記憶媒体。
  20. 前記サーチエンジンは、転置ファイルのデータ構造を利用することを特徴とする請求項14に記載のコンピュータ可読記憶媒体。
  21. SPLIT演算子をサポートする前記サーチエンジンは、前記データベースエントリをフラット化し、かつ、前記データベースに含まれる文書のセクション内を検索するよう構成されることを特徴とする請求項14に記載のコンピュータ可読記憶媒体。
  22. 前記サーチエンジンは、スペルチェック機能、シソーラス機能、ステミング機能、見出語化機能、トークン化機能、正規化機能からなる群から選択される機能を実行することを特徴とする請求項21に記載のコンピュータ可読記憶媒体。
  23. 前記ユーザによる入力に応答して非ヌルの部分的なクエリのセットを計算するステップは、自動補完の候補を含むことを特徴とする請求項14に記載のコンピュータ可読記憶媒体。
  24. 各構造化された項目は、前記ユーザ入力に対応してハイライトされて示されることを特徴とする請求項14に記載のコンピュータ可読記憶媒体。
  25. 各構造化された項目が階層化されて示されることを特徴とする請求項14に記載のコンピュータ可読記憶媒体。
  26. ユーザからの入力に基づきサーチエンジンに対してクエリを実行するシステムであって、
    1つまたは複数のデータベースからデータベースエントリを検索するよう構成されるプロセッサと、
    前記データベースエントリをフラット化するよう構成されるデータベースフラット化コンポーネントであって、前記フラット化することは、対応するフラット化されたエントリを生成し、各フラット化されたエントリが、前記データベースエントリに対応して行数、列名、列の値を分離するデリミタを有するテキストの一本のラインとして、前記データベースエントリの各行を再現する、データベースフラット化コンポーネントと、
    前記フラット化されたデータベースエントリをインデックス化してサーチエンジンインデックスを作成するよう構成されるデータベースインデックス化コンポーネントと、
    前記ユーザに入力を促すよう構成される表示画面と
    を含み、
    前記プロセッサは、前記ユーザによる入力を継続的に監視し、
    前記ユーザによる入力に応答して非ヌルの部分的なクエリのセットを計算することと、
    構造化された項目をそれぞれの非ヌルの部分的なクエリに関連付けることと、
    前記構造化された項目の1つを前記ユーザに選択させることと、
    前記構造化された項目の1つを前記ユーザが選択した場合、前記ユーザによる入力を、前記構造化された項目に関連付けられた前記非ヌルの部分的なクエリにより置き換えることと
    により前記ユーザによる入力を処理し、
    前記ユーザが前記入力を有効化すると、前記プロセッサは前記入力をクエリとして実行し、前記実行されたクエリに対応する文書を前記ユーザに提供することを特徴とするシステム。
JP2012526139A 2009-08-31 2010-08-26 トラステッドクエリのシステムおよび方法 Active JP5744873B2 (ja)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US23828309P 2009-08-31 2009-08-31
US61/238,283 2009-08-31
PCT/IB2010/002102 WO2011024064A2 (en) 2009-08-31 2010-08-26 Trusted query system and method

Publications (3)

Publication Number Publication Date
JP2013503381A JP2013503381A (ja) 2013-01-31
JP2013503381A5 JP2013503381A5 (ja) 2013-10-17
JP5744873B2 true JP5744873B2 (ja) 2015-07-08

Family

ID=43558438

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2012526139A Active JP5744873B2 (ja) 2009-08-31 2010-08-26 トラステッドクエリのシステムおよび方法

Country Status (7)

Country Link
US (1) US10140333B2 (ja)
EP (1) EP2473933A2 (ja)
JP (1) JP5744873B2 (ja)
KR (1) KR101732342B1 (ja)
CN (1) CN102640145B (ja)
CA (1) CA2772746C (ja)
WO (1) WO2011024064A2 (ja)

Families Citing this family (38)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7945683B1 (en) * 2008-09-04 2011-05-17 Sap Ag Method and system for multi-tiered search over a high latency network
US8346534B2 (en) * 2008-11-06 2013-01-01 University of North Texas System Method, system and apparatus for automatic keyword extraction
US8954850B2 (en) * 2009-12-10 2015-02-10 International Business Machines Corporation Computer-implemented method and systems for assisting a user in applying a business process pattern
US9323828B2 (en) * 2010-05-11 2016-04-26 International Business Machines Corporation Complex query handling
US8990146B2 (en) 2010-12-22 2015-03-24 Sap Se Systems and methods to provide server-side client based caching
US8463807B2 (en) * 2011-08-10 2013-06-11 Sap Ag Augmented search suggest
US8577862B2 (en) * 2011-10-19 2013-11-05 Business Objects Software Limited Answer-augmented query suggestion
CN103514217B (zh) * 2012-06-30 2017-02-08 重庆新媒农信科技有限公司 检索应用中检索条件的关联提示处理方法及系统
US9178886B2 (en) 2012-08-29 2015-11-03 Red Hat Israel, Ltd. Flattening permission trees in a virtualization environment
USD845979S1 (en) 2013-01-23 2019-04-16 Yandex Europe Ag Display screen with graphical user interface
US9424359B1 (en) * 2013-03-15 2016-08-23 Twitter, Inc. Typeahead using messages of a messaging platform
WO2014173965A1 (en) * 2013-04-23 2014-10-30 Face Recording And Measurements Ltd. Database management system
US10776375B2 (en) * 2013-07-15 2020-09-15 Microsoft Technology Licensing, Llc Retrieval of attribute values based upon identified entities
US11086854B2 (en) * 2014-05-30 2021-08-10 Hexagon Technology Center Gmbh Database interface method and system
US10318016B2 (en) * 2014-06-03 2019-06-11 Harman International Industries, Incorporated Hands free device with directional interface
US9870394B2 (en) 2014-12-09 2018-01-16 Lg Cns Co., Ltd. Query routing method, query routing server performing the same and storage medium storing the same
US10586068B2 (en) 2015-11-02 2020-03-10 LeapYear Technologies, Inc. Differentially private processing and database storage
US10726153B2 (en) 2015-11-02 2020-07-28 LeapYear Technologies, Inc. Differentially private machine learning using a random forest classifier
US20170124152A1 (en) 2015-11-02 2017-05-04 LeapYear Technologies, Inc. Differentially private processing and database storage
US10489605B2 (en) 2015-11-02 2019-11-26 LeapYear Technologies, Inc. Differentially private density plots
US10467234B2 (en) 2015-11-02 2019-11-05 LeapYear Technologies, Inc. Differentially private database queries involving rank statistics
FR3043812B1 (fr) * 2015-11-16 2019-07-26 Bull Sas Procede de generation d'un formulaire de messages
CN107203528B (zh) * 2016-03-16 2020-10-30 创新先进技术有限公司 一种表格检索方法和装置
CN106407247B (zh) * 2016-07-24 2020-08-04 平安科技(深圳)有限公司 数据查询的方法及装置
US11055432B2 (en) 2018-04-14 2021-07-06 LeapYear Technologies, Inc. Budget tracking in a differentially private database system
CN112585595A (zh) * 2018-04-23 2021-03-30 马克·S·诺沃塔斯基 具有图形用户接口的系统性能监视器
US10831752B2 (en) * 2018-04-25 2020-11-10 International Business Machines Corporation Semantic relational database operations
US10430605B1 (en) 2018-11-29 2019-10-01 LeapYear Technologies, Inc. Differentially private database permissions system
US11755769B2 (en) 2019-02-01 2023-09-12 Snowflake Inc. Differentially private query budget refunding
US10642847B1 (en) 2019-05-09 2020-05-05 LeapYear Technologies, Inc. Differentially private budget tracking using Renyi divergence
CN111079036B (zh) * 2019-11-25 2023-11-07 罗靖涛 一种字段式搜索方法
CN111143349A (zh) * 2019-11-26 2020-05-12 广东三扬网络科技有限公司 一种快速从集合中查找信息的方法及电子设备和存储介质
CN113051898A (zh) * 2019-12-27 2021-06-29 北京阿博茨科技有限公司 一种面向自然语言搜索结构化数据的词义积累及分词方法、工具和系统
US11328084B2 (en) 2020-02-11 2022-05-10 LeapYear Technologies, Inc. Adaptive differentially private count
CN111666327A (zh) * 2020-06-10 2020-09-15 山东汇贸电子口岸有限公司 一种基于文本的结构化数据描述方法及其系统
CN112463946B (zh) * 2020-10-20 2024-09-24 北京思特奇信息技术股份有限公司 一种基于人工智能技术的智能权益查询比对方法及系统
KR102608736B1 (ko) 2020-12-15 2023-12-01 주식회사 포티투마루 질의에 대한 문서 검색 방법 및 장치
US20240160647A1 (en) * 2022-11-15 2024-05-16 Oracle International Corporation Automatic error recovery for parser

Family Cites Families (15)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6792428B2 (en) * 2000-10-13 2004-09-14 Xpriori, Llc Method of storing and flattening a structured data document
JP2002269127A (ja) * 2001-03-13 2002-09-20 Mitsubishi Electric Corp 商品情報提供システム及び商品情報提供方法
JP4490012B2 (ja) * 2001-11-26 2010-06-23 富士通株式会社 ファイル検索装置、ファイル検索プログラム
US7836044B2 (en) * 2004-06-22 2010-11-16 Google Inc. Anticipated query generation and processing in a search engine
US7725450B1 (en) * 2004-07-23 2010-05-25 Netlogic Microsystems, Inc. Integrated search engine devices having pipelined search and tree maintenance sub-engines therein that maintain search coherence during multi-cycle update operations
EP1825395A4 (en) 2004-10-25 2010-07-07 Yuanhua Tang FULL TEXT INTERROGATION AND RESEARCH SYSTEMS AND METHODS OF USE
CN101088082A (zh) * 2004-10-25 2007-12-12 英孚威尔公司 全文查询和搜索系统及其使用方法
US7672931B2 (en) * 2005-06-30 2010-03-02 Microsoft Corporation Searching for content using voice search queries
KR20070024771A (ko) * 2005-08-30 2007-03-08 엔에이치엔(주) 질의어 자동변환을 이용한 자동완성 질의어 제공 시스템 및방법
CN101191730A (zh) * 2006-11-22 2008-06-04 乐金电子(昆山)电脑有限公司 汽车导航系统的信息检索系统
US8027970B1 (en) * 2006-12-22 2011-09-27 Emc Corporation Query translation for searching complex structures of objects
KR100898465B1 (ko) * 2007-04-26 2009-05-21 엔에이치엔(주) 웹로그의 시계열 분석을 위한 데이터 저장 및 조회 방법그리고 상기 방법을 수행하는 시스템
JP2009054133A (ja) * 2007-07-27 2009-03-12 Aisin Aw Co Ltd ナビゲーション装置及びナビゲーション用プログラム
US8073840B2 (en) * 2008-06-17 2011-12-06 Attivio, Inc. Querying joined data within a search engine index
US8214370B1 (en) * 2009-03-26 2012-07-03 Crossbow Technology, Inc. Data pre-processing and indexing for efficient retrieval and enhanced presentation

Also Published As

Publication number Publication date
EP2473933A2 (en) 2012-07-11
KR101732342B1 (ko) 2017-05-04
CN102640145A (zh) 2012-08-15
JP2013503381A (ja) 2013-01-31
WO2011024064A3 (en) 2011-05-19
WO2011024064A2 (en) 2011-03-03
CA2772746C (en) 2019-06-11
US10140333B2 (en) 2018-11-27
CN102640145B (zh) 2015-09-23
US20120197864A1 (en) 2012-08-02
KR20120073229A (ko) 2012-07-04
CA2772746A1 (en) 2011-03-03

Similar Documents

Publication Publication Date Title
JP5744873B2 (ja) トラステッドクエリのシステムおよび方法
US11977570B2 (en) Methods, systems, and computer-readable media for semantically enriching content and for semantic navigation
US9449080B1 (en) System, methods, and user interface for information searching, tagging, organization, and display
US8346795B2 (en) System and method for guiding entity-based searching
US8060357B2 (en) Linguistic user interface
US9659084B1 (en) System, methods, and user interface for presenting information from unstructured data
US7890500B2 (en) Systems and methods for using and constructing user-interest sensitive indicators of search results
US10552467B2 (en) System and method for language sensitive contextual searching
US9164962B2 (en) Document assembly systems and methods
US20110179012A1 (en) Network-oriented information search system and method
CA3077454A1 (en) Methods, systems, and computer-readable media for semantically enriching content and for semantic navigation
Armentano et al. NLP-based faceted search: Experience in the development of a science and technology search engine
Kerremans et al. Using data-mining to identify and study patterns in lexical innovation on the web: The NeoCrawler
JP2001184358A (ja) カテゴリ因子による情報検索装置,情報検索方法およびそのプログラム記録媒体
Chin et al. Automatic discovery of concepts from text
Thollot et al. Text-to-query: dynamically building structured analytics to illustrate textual content
Kanavos et al. Topic categorization of biomedical abstracts
Vickers Ontology-based free-form query processing for the semantic web
Karthik et al. An Efficient Approach to Retrieve Information for Desktop Search Engine
US20240354318A1 (en) System and method for searching tree based organizational hierarchies, including topic hierarchies, and generating and presenting search interfaces for same
Briscoe et al. Intelligent information access from scientific papers
JP2006163723A (ja) ドキュメント検索方法
Dinşoreanu et al. Integrated System for Developing Semantically-Enhanced Archive Econtent
JP2002278991A (ja) 文書情報検索システム
Anadakumar et al. A Survey on Preprocessing in Text Mining.

Legal Events

Date Code Title Description
A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20130823

A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20130823

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20140320

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20140430

A601 Written request for extension of time

Free format text: JAPANESE INTERMEDIATE CODE: A601

Effective date: 20140730

A602 Written permission of extension of time

Free format text: JAPANESE INTERMEDIATE CODE: A602

Effective date: 20140806

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20140901

A711 Notification of change in applicant

Free format text: JAPANESE INTERMEDIATE CODE: A712

Effective date: 20141222

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A821

Effective date: 20141222

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20150202

TRDD Decision of grant or rejection written
A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

Effective date: 20150331

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20150430

R150 Certificate of patent or registration of utility model

Ref document number: 5744873

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250