(57)【要約】  データベースクエリユーザインターフェースは、簡単なテキスト検索のユーザの便宜を、強力なクエリ言語の表現の改良と組み合わせる。データベースクエリユーザインターフェースは、チャンク表現言語フォーマットの１つまたは複数の用語を含み、ユーザから入力されるクエリテキストストリングを含む。データベースクエリユーザインターフェースはさらに、構文上正しく完全であり、ユーザから入力されるテキストストリングを含むマルチエレメントチャンク表現言語データベースクエリを構築するための構文上のプロンプトを含む。構文上のプロンプトは、ユーザから入力されるテキストストリング中に含まれるデータベースエレメントに関連したデータベース情報の重み付け解析に基づいてデータベースから選択される。ユーザインターフェースに従って形成されるデータベースクエリは、データベースクエリオブジェクトとして永続的保持し、または記憶することができる。
2007500408.tif 000002
【特許請求の範囲】
【請求項１】
データベースについてのデータベースクエリを形成するためのデータベースクエリユーザインターフェースであって、
チャンク表現言語フォーマットのデータベースクエリの最初の部分を構築するための第１の構文上のプロンプトと、
チャンク表現言語フォーマットのデータベースクエリの第２の部分を構築するための第２の構文上のプロンプトと
を含み、前記第２の部分は、前記データベースクエリについての構文上正しい表現を完成するマルチエレメントチャンク表現言語構文グループであることを特徴とするユーザインターフェース。
【請求項２】
前記第２の構文上のプロンプトは、前記データベース中の情報に対応するテキストストリングを含むことを特徴とする請求項１に記載のユーザインターフェース。
【請求項３】
前記テキストストリングは、前記データベースクエリの前記最初の部分に含まれるデータベースエレメントに関連したデータベース情報の重み付け解析に基づいて前記データベースから選択されることを特徴とする請求項２に記載のユーザインターフェース。
【請求項４】
データベース情報の前記重み付け解析は、前記ユーザが選択する構文上のプロンプト中における第１および第２の情報アイテムが一緒に関連づけられる完成関連付けを含み、それによって他の情報アイテムに対して相対的に前記第１の情報アイテムと前記第２の情報アイテムの間の関係の重みを増大させることを特徴とする請求項３に記載のユーザインターフェース。
【請求項５】
データベース情報の前記重み付け解析は、結果カウントを最大カウントまで増大させる情報に対して重みを増大させ、次いで前記最大カウントより大きな結果カウントについての情報に対して重みを減少させる結果カウントファクタを含むことを特徴とする請求項３に記載のユーザインターフェース。
【請求項６】
前記第２の構文上のプロンプトは、前記データベース中の情報に対応するテキストストリングと、前記データベース中の選択された情報フィールドに対応する情報フィールド識別子とを含み、前記テキストストリングは、前記選択された情報フィールド中に含まれることを特徴とする請求項１に記載のユーザインターフェース。
【請求項７】
前記テキストストリングは、前記データベースクエリの前記最初の部分に含まれるデータベースエレメントに関連したデータベース情報の重み付け解析に基づいて前記データベースから選択されることを特徴とする請求項６に記載のユーザインターフェース。
【請求項８】
前記第１の構文上のプロンプトは、複数のユーザ選択可能な用語の表示されたリストを含み、ユーザが前記データベースクエリの前記最初の部分を構築するために前記用語のうちの１つを選択することを特徴とする請求項１に記載のユーザインターフェース。
【請求項９】
前記第２の構文上のプロンプトは、前記データベースクエリについての構文上正しい表現をそれぞれ完成する複数のユーザ選択可能な構文グループの表示されたリストを含み、ユーザは、前記データベースクエリの前記第２の部分を構築するために前記ユーザ選択可能なマルチエレメント構文グループのうちの１つを選択することを特徴とする請求項１に記載のユーザインターフェース。
【請求項１０】
選択されるマルチエレメント構文グループ中の個別エレメントは、前記ユーザが、前記個別のエレメントを置き換え前記データベースクエリについての前記構文上正しい表現を保持することができるエレメントの表示されたリストからそれぞれ修正することができることを特徴とする請求項９に記載のユーザインターフェース。
【請求項１１】
前記最初の部分および前記第２の部分を含めて、前記データベースクエリは、コンピュータ読取り可能媒体中のデータベースクエリオブジェクトとして永続的保持されることを特徴とする請求項１に記載のユーザインターフェース。
【請求項１２】
前記データベースクエリオブジェクトは、ユーザが指定する、前記クエリに対する例外の例外リストを有するデータ構造を含むことを特徴とする請求項１１に記載のユーザインターフェース。
【請求項１３】
前記データベースクエリオブジェクトは、
前記チャンク表現言語フォーマットの前記クエリに対応するクエリ仕様言語ステートメントと、
前記クエリを生成したユーザアクションのクエリ構築レコードと
を含むデータ構造を含むことを特徴とする請求項１１に記載のユーザインターフェース。
【請求項１４】
前記データベースクエリオブジェクトの前記データ構造は、どれだけ多くの結果が前記クエリのオペレーションによって返されるかについてのクエリ結果カウントをさらに含むことを特徴とする請求項１３に記載のユーザインターフェース。
【請求項１５】
前記データベースクエリオブジェクトの前記データ構造は、前記クエリの使用の履歴を示すクエリ使用レコードをさらに含むことを特徴とする請求項１３に記載のユーザインターフェース。
【請求項１６】
前記データベースクエリは、前記データベースに対する更新された実行のために前記永続的保持されたデータベースクエリオブジェクトから検索可能であることを特徴とする請求項１１に記載のユーザインターフェース。
【請求項１７】
前記データベースクエリオブジェクトは、ユーザが指定する、前記クエリに対する例外の例外リストを有するデータ構造を含み、前記ユーザインターフェースは、前記例外リスト中の例外に対応する前記チャンク表現言語フォーマットの訂正されたデータベースクエリの自動生成をさらに含むことを特徴とする請求項１１に記載のユーザインターフェース。
【請求項１８】
前記データベースクエリは、それに関連づけて、ユーザが指定する、前記クエリに対する例外の例外リストを有することを特徴とする請求項１に記載のユーザインターフェース。
【請求項１９】
前記ユーザインターフェースは、前記例外リスト中の例外に対応する前記チャンク表現言語フォーマットの訂正されたデータベースクエリの自動生成をさらに含むことを特徴とする請求項１８に記載のユーザインターフェース。
【請求項２０】
データベースについてのデータベースクエリを形成するためのデータベースクエリユーザインターフェースであって、
チャンク表現言語フォーマットの１つまたは複数の用語を含めて、ユーザから入力されるクエリテキストストリングと、
構文上正しく完全であり、前記ユーザから入力される前記テキストストリングを含むマルチエレメントチャンク表現言語データベースクエリを構築するための構文上のプロンプトと
を含むことを特徴とするユーザインターフェース。
【請求項２１】
前記構文上のプロンプトは、前記ユーザから入力される前記テキストストリング中に含まれるデータベースエレメントに関連したデータベース情報の重み付け解析に基づいて前記データベースから選択されることを特徴とする請求項２０に記載のユーザインターフェース。
【請求項２２】
データベース情報の前記重み付け解析は、前記ユーザが選択する構文上のプロンプト中における第１および第２の情報アイテムが一緒に関連づけられる完成関連付けを含み、それによって他の情報アイテムに対して相対的に前記第１の情報アイテムと前記第２の情報アイテムの間の関係の重みを増大させることを特徴とする請求項２１に記載のユーザインターフェース。
【請求項２３】
データベース情報の前記重み付け解析は、結果カウントを最大カウントまで増大させる情報に対して重みを増大させ、次いで前記最大カウントより大きな結果カウントについての情報に対して重みを減少させる結果カウントファクタを含むことを特徴とする請求項２２に記載のユーザインターフェース。
【請求項２４】
前記構文上のプロンプトは、前記ユーザから入力される前記テキストストリングを含む選択されたデータベース情報フィールドに対応する情報フィールド識別子を含むことを特徴とする請求項２０に記載のユーザインターフェース。
【請求項２５】
前記構文上のプロンプトは、複数のマルチエレメントチャンク表現言語データベースクエリの表示されたリストを含み、ユーザは、前記複数のマルチエレメントチャンク表現言語データベースクエリのうちの１つを選択することを特徴とする請求項２０に記載のユーザインターフェース。
【請求項２６】
マルチエレメントチャンク表現言語データベースクエリ中の個別エレメントは、前記ユーザが、前記個別のエレメントを置き換え前記データベースクエリについての前記構文上正しい表現を保持することができるエレメントの表示されたリストからそれぞれ修正することができることを特徴とする請求項２５に記載のユーザインターフェース。
【請求項２７】
前記データベースクエリは、コンピュータ読取り可能媒体中のデータベースクエリオブジェクトとして永続的保持されることを特徴とする請求項２０に記載のユーザインターフェース。
【請求項２８】
前記データベースクエリオブジェクトは、ユーザが指定する、前記クエリに対する例外の例外リストを有するデータ構造を含むことを特徴とする請求項２７に記載のユーザインターフェース。
【請求項２９】
前記データベースクエリオブジェクトは、
前記チャンク表現言語フォーマットの前記クエリに対応するクエリ仕様言語ステートメントと、
前記クエリを生成したユーザアクションのクエリ構築レコードと
を含むデータ構造を含むことを特徴とする請求項２７に記載のユーザインターフェース。
【請求項３０】
前記データベースクエリオブジェクトの前記データ構造は、どれだけ多くの結果が前記クエリのオペレーションによって返されるかについてのクエリ結果カウントをさらに含むことを特徴とする請求項２９に記載のユーザインターフェース。
【請求項３１】
前記データベースクエリオブジェクトの前記データ構造は、前記クエリの使用の履歴を示すクエリ使用レコードをさらに含むことを特徴とする請求項２９に記載のユーザインターフェース。
【請求項３２】
前記データベースクエリは、前記データベースに対する更新された実行のために前記永続的保持されたデータベースクエリオブジェクトから検索可能であることを特徴とする請求項２７に記載のユーザインターフェース。
【請求項３３】
前記データベースクエリオブジェクトは、ユーザが指定する、前記クエリに対する例外の例外リストを有するデータ構造を含み、前記ユーザインターフェースは、前記例外リスト中の例外に対応する前記チャンク表現言語フォーマットの訂正されたデータベースクエリの自動生成をさらに含むことを特徴とする請求項２７に記載のユーザインターフェース。
【請求項３４】
前記データベースクエリは、それに関連づけて、ユーザが指定する、前記クエリに対する例外の例外リストを有することを特徴とする請求項２０に記載のユーザインターフェース。
【請求項３５】
前記ユーザインターフェースは、前記例外リスト中の例外に対応する前記チャンク表現言語フォーマットの訂正されたデータベースクエリの自動生成をさらに含むことを特徴とする請求項３４に記載のユーザインターフェース。
【請求項３６】
コンピュータ読取り可能媒体中における、
データベースクエリと、
ユーザが指定する、前記データベースクエリに対する例外の例外リストと
を含むことを特徴とする永続的データベースクエリオブジェクトデータ構造。
【請求項３７】
前記データベースクエリに対する前記例外は、前記ユーザによって、前記データベースクエリによって返される結果に関連して指定されることを特徴とする請求項３６に記載のデータ構造。
【請求項３８】
前記データベースクエリは、チャンク表現言語フォーマットの前記データベースクエリに対応するクエリ仕様言語ステートメントを含むことを特徴とする請求項３６に記載のデータ構造。
【請求項３９】
前記データベースクエリを生成したユーザアクションのクエリ構築レコードをさらに含むことを特徴とする請求項３６に記載のデータ構造。
【請求項４０】
どれだけ多くの結果が、前記データベースクエリのオペレーションによって返されるかについてのクエリ結果カウントをさらに含むことを特徴とする請求項３６に記載のデータ構造。
【請求項４１】
前記データベースクエリの使用の履歴を示すクエリ使用レコードをさらに含むことを特徴とする請求項３６に記載のデータ構造。
【請求項４２】
前記データベースクエリは、前記データベースに対する更新された実行のために前記永続的データベースクエリオブジェクトデータ構造から検索可能であることを特徴とする請求項３６に記載のデータ構造。
【請求項４３】
データベースについてのデータベースクエリを形成するための、コンピュータ読取り可能媒体中に記憶されたデータベースクエリソフトウェアであって、
チャンク表現言語フォーマットのデータベースクエリを形成し、永続的データベースクエリオブジェクト中に前記データベースクエリの１つのバージョンを記憶するためのソフトウェアと、
前記永続的データベースクエリオブジェクト中に、ユーザが指定する、前記データベースクエリに対する例外の例外リストを記憶するためのソフトウェアと
を含むことを特徴とするソフトウェア。
【請求項４４】
前記データベースクエリによって返される結果に関連してユーザ指定の例外を取得するためのソフトウェアをさらに含むことを特徴とする請求項４３に記載のソフトウェア。
【請求項４５】
前記例外リスト中の例外に対応する前記チャンク表現言語フォーマットの訂正されたデータベースクエリの自動生成のためのソフトウェアをさらに含むことを特徴とする請求項４３に記載のソフトウェア。
【請求項４６】
前記データベースクエリの前記バージョンは、前記チャンク表現言語フォーマットの前記データベースクエリに対応するクエリ仕様言語ステートメントを含むことを特徴とする請求項４３に記載のソフトウェア。
【請求項４７】
前記永続的データベースクエリオブジェクトは、前記データベースクエリを形成する際にユーザアクションのクエリ構築レコードをさらに含むことを特徴とする請求項４３に記載のソフトウェア。
【請求項４８】
前記永続的データベースクエリオブジェクトは、どれだけ多くの結果が前記データベースクエリのオペレーションによって返されるかについてのクエリ結果カウントをさらに含むことを特徴とする請求項４３に記載のソフトウェア。
【請求項４９】
前記永続的データベースクエリオブジェクトは、前記データベースクエリの使用の履歴を示すクエリ使用レコードをさらに含むことを特徴とする請求項４３に記載のソフトウェア。
【請求項５０】
前記永続的データベースクエリオブジェクトからの前記データベースに対する前記データベースクエリの実行を更新するためのソフトウェアをさらに含むことを特徴とする請求項４３に記載のソフトウェア。
【請求項５１】
チャンク表現言語フォーマットのデータベースクエリを形成するための前記ソフトウェアは、チャンク表現言語フォーマットの１つまたは複数の用語を用いて最初のクエリテキストストリングを取得するためのソフトウェアと、構文上正しく完全であり、前記最初のクエリテキストストリングを含むマルチエレメントチャンク表現言語データベースクエリを構築するための構文上のプロンプトを提供するためのソフトウェアとを含むことを特徴とする請求項４３に記載のソフトウェア。
【請求項５２】
前記構文上のプロンプトは、前記最初のクエリテキストストリング中に含まれるデータベースエレメントに関連したデータベース情報の重み付け解析に基づいて前記データベースから選択されることを特徴とする請求項５１に記載のソフトウェア。
【請求項５３】
データベース情報の前記重み付け解析は、前記ユーザが選択する構文上のプロンプト中における第１および第２の情報アイテムが一緒に関連づけられる完成関連付けを含み、それによって他の情報アイテムに対して相対的に前記第１の情報アイテムと前記第２の情報アイテムの間の関係の重みを増大させることを特徴とする請求項５２に記載のソフトウェア。
【請求項５４】
データベース情報の前記重み付け解析は、結果カウントを最大カウントまで増大させる情報に対して重みを増大させ、次いで前記最大カウントより大きな結果カウントについての情報に対して重みを減少させる結果カウントファクタを含むことを特徴とする請求項５２に記載のソフトウェア。
【請求項５５】
前記構文上のプロンプトは、前記最初のクエリテキストストリングを含む選択されたデータベース情報フィールドに対応する情報フィールド識別子を含むことを特徴とする請求項５１に記載のソフトウェア。
【請求項５６】
前記構文上のプロンプトは、複数のマルチエレメントチャンク表現言語データベースクエリの表示されたリストを含み、ユーザは、前記複数のマルチエレメントチャンク表現言語データベースのうちの１つを選択することを特徴とする請求項５１に記載のソフトウェア。
【請求項５７】
マルチエレメントチャンク表現言語データベースクエリ中の個別エレメントは、前記ユーザが、前記個別のエレメントを置き換え前記データベースクエリについての前記構文上正しい表現を保持することができるエレメントの表示されたリストからそれぞれ修正することができることを特徴とする請求項５６に記載のソフトウェア。
【請求項５８】
データベースについてのデータベースクエリを形成するための方法であって、
チャンク表現言語フォーマットのデータベースクエリを形成し、永続的データベースクエリオブジェクト中に前記データベースクエリの１つのバージョンを記憶するステップと、
ユーザが指定する、前記データベースクエリに対する例外の例外リストを前記永続的データベースクエリオブジェクト中に記憶するステップと
を含むことを特徴とする方法。
【請求項５９】
前記データベースクエリによって返される結果に関連してユーザ指定の例外を取得するステップをさらに含むことを特徴とする請求項５８に記載の方法。
【請求項６０】
前記例外リスト中の例外に対応する前記チャンク表現言語フォーマットの訂正されたデータベースクエリを自動的に生成するステップさらに含むことを特徴とする請求項５８に記載の方法。
【請求項６１】
前記データベースクエリの前記バージョンは、前記チャンク表現言語フォーマットの前記データベースクエリに対応するクエリ仕様言語ステートメントを含むことを特徴とする請求項５８に記載の方法。
【請求項６２】
前記永続的データベースクエリオブジェクトは、前記データベースクエリを形成する際にユーザアクションのクエリ構築レコードをさらに含むことを特徴とする請求項５８に記載の方法。
【請求項６３】
前記永続的データベースクエリオブジェクトは、どれだけ多くの結果が前記データベースクエリのオペレーションによって返されるかについてのクエリ結果カウントをさらに含むことを特徴とする請求項５８に記載のソフトウェア。
【請求項６４】
前記永続的データベースクエリオブジェクトは、前記データベースクエリの使用の履歴を示すクエリ使用レコードをさらに含むことを特徴とする請求項５８に記載の方法。
【請求項６５】
前記永続的データベースクエリオブジェクトからの前記データベースに対する前記データベースクエリの実行を更新するステップをさらに含むことを特徴とする請求項５８に記載の方法。
【請求項６６】
チャンク表現言語フォーマットのデータベースクエリを形成するステップは、チャンク表現言語フォーマットの１つまたは複数の用語を用いて最初のクエリテキストストリングを取得するステップと、構文上正しく完全であり、前記最初のクエリテキストストリングを含むマルチエレメントチャンク表現言語データベースクエリを構築するための構文上のプロンプトを提供するステップとを含むことを特徴とする請求項５８に記載の方法。
【請求項６７】
前記構文上のプロンプトは、前記最初のクエリテキストストリング中に含まれるデータベースエレメントに関連したデータベース情報の重み付け解析に基づいて前記データベースから選択されることを特徴とする請求項６６に記載の方法。
【請求項６８】
データベース情報の前記重み付け解析は、前記ユーザが選択する構文上のプロンプト中における第１および第２の情報アイテムが一緒に関連づけられる完成関連付けを含み、それによって他の情報アイテムに対して相対的に前記第１の情報アイテムと前記第２の情報アイテムの間の関係の重みを増大させることを特徴とする請求項６７に記載の方法。
【請求項６９】
データベース情報の前記重み付け解析は、結果カウントを最大カウントまで増大させる情報に対して重みを増大させ、次いで前記最大カウントより大きな結果カウントについての情報に対して重みを減少させる結果カウントファクタを含むことを特徴とする請求項６７に記載の方法。
【請求項７０】
前記構文上のプロンプトは、前記最初のクエリテキストストリングを含む選択されたデータベース情報フィールドに対応する情報フィールド識別子を含むことを特徴とする請求項６６に記載のソフトウェア。
【請求項７１】
前記構文上のプロンプトは、複数のマルチエレメントチャンク表現言語データベースクエリの表示されたリストを含み、ユーザは、前記複数のマルチエレメントチャンク表現言語データベースのうちの１つを選択することを特徴とする請求項６６に記載の方法。
【請求項７２】
マルチエレメントチャンク表現言語データベースクエリ中の個別エレメントは、前記ユーザが、前記個別のエレメントを置き換え前記データベースクエリについての前記構文上正しい表現を保持することができるエレメントの表示されたリストからそれぞれ修正することができることを特徴とする請求項７１に記載の方法。
【請求項７３】
ユーザが指定する、前記クエリに対する例外の前記例外リストは、オブジェクトの直接のユーザ操作を用いて修正することができることを特徴とする請求項２８に記載のユーザインターフェース。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、データベースクエリを構築するためのユーザインターフェースに関し、詳細には構文上の正しいプロンプティング、および永続的データベースクエリオブジェクトを含むデータベースクエリユーザインターフェース（ｄａｔａｂａｓｅ  ｑｕｅｒｙ  ｕｓｅｒ  ｉｎｔｅｒｆａｃｅ）に関する。
【背景技術】
【０００２】
データベースは、非常に大量の情報を保持することができる。いかなる時においても、ユーザは、これらの情報のサブセットを見たいと望むにすぎない。ユーザは、クエリを定義することによってこのサブセットを選択する。このクエリは、ＳＱＬなどのクエリ仕様言語で書かれた１つのテキストである。
【発明の開示】
【発明が解決しようとする課題】
【０００３】
しかし、クエリ仕様言語は複雑なので、これらのクエリ仕様言語は、一般的にエンドユーザにとって適切ではない。エンドユーザにとっては、チャンク表現言語（ｃｈｕｎｋ  ｅｘｐｒｅｓｓｉｏｎ  ｌａｎｇｕａｇｅ）や簡単なフルテキスト検索など、より簡単な言語がある。一部の簡略化されたクエリ言語は、ユーザが十分に改良されたクエリを開発して、データベースからの情報にアクセスするためには十分に表現力があるものではない。十分に表現力のある簡略化されたクエリ言語は、多くの場合にクエリ仕様言語として学習することが難しく、したがってエンドユーザにとっては不適切である。テキスト検索は、あまりにも不正確であり、あまりにも多くの無関係な結果を返すので、有用とならない。
【課題を解決するための手段】
【０００４】
したがって、本発明は、簡単なテキスト検索のユーザの便宜と、強力なクエリ言語の表現の改良とを組み合わせたデータベースクエリユーザインターフェースを提供する。一実装形態においては、データベースクエリユーザインターフェースは、ユーザから入力されるクエリテキストストリング（ｑｕｅｒｙ  ｔｅｘｔ  ｓｔｒｉｎｇ）を含んでいる。このクエリテキストストリングは、チャンク表現言語フォーマットの１つまたは複数の用語を有する。チャンク表現言語フォーマットは、ＳＱＬなどの正式なクエリ仕様言語へとコンピュータによってさらに簡単に構文解析することができる（例えば、英語に似た、または他の任意の人間言語に似た）疑似自然言語である。簡単なチャンク表現は、Ａｐｐｌｅ  ＣｏｒｐｏｒａｔｉｏｎのＨｙｐｅｒＣａｒｄプロジェクトで、早くも１９８６年に開発された。やはりＡｐｐｌｅ  Ｃｏｒｐｏｒａｔｉｏｎによって開発されたＳＫ８オーサリングツール（ＳＫ８  ａｕｔｈｏｒｉｎｇ  ｔｏｏｌ）は、完全なチャンク表現言語を１９８８年までに実現している。
【０００５】
本発明のデータベースクエリユーザインターフェースはさらに、構文上正しく完全であり、このユーザから入力されるテキストストリングを含むマルチエレメントチャンク表現言語データベースクエリを構築するための構文上のプロンプトを含んでいる。例えば、この構文上のプロンプトは、このユーザから入力されるテキストストリング中に含まれるデータベースエレメントに関連したデータベース情報の重み付け解析に基づいてこのデータベースから選択される。
【０００６】
次いで本ユーザインターフェースに従って形成されるデータベースクエリは、データベースクエリオブジェクトとして永続的保持し、または記憶することができる。かかるオブジェクトにより、このクエリが戻す１組の結果にユーザがアイテムを追加または削除することなどによって、クエリを改良することができるようになる。例外と呼ばれる、このような追加または削除は、このクエリと共にデータ構造として記憶することができる。一部の実装形態においては、このチャンク表現言語フォーマットの訂正されたデータベースクエリを自動的に生成して、この例外リストに例外を組み込み、それによってこのクエリを改良し、これらの別々の例外を保持し実装するためのリソース要件を減少させる。したがって、本発明は、従来の簡単な検索言語についてのユーザにとっての便利さと、強力なクエリ仕様言語の表現力および改良とを組み合わせたデータベースクエリユーザインターフェースを提供する。
【０００７】
本発明の追加の目的および利点については、添付図面を参照して進められる、本発明の好ましい実施形態の詳細な説明から明らかになろう。
【発明を実施するための最良の形態】
【０００８】
従来のデータベースシステム、またはデータベースは、レコード入力を有するテーブルの集まりを含んでいる。このデータベースのクエリは一般的に、ＳＱＬなど、時にデータ操作言語と呼ばれるクエリ仕様言語を使用して行われる。さらにフルテキスト検索エンジンは、テキストストリングを含むレコードを見出すことができる。Ｍｉｃｒｏｓｏｆｔ（登録商標）社から入手可能なＭｉｃｒｏｓｏｆｔ（登録商標）  ＳＱＬを含めて、様々な市販のデータベースが使用可能になっている。用語「データベース」は、本明細書中では、一般に検索可能なプロパティを有するオブジェクトまたはファイルを含む任意の「プロパティストア（ｐｒｏｐｅｒｔｙ  ｓｔｏｒｅ）」に言及するために使用される。
【０００９】
図１は、従来技術のデータベースクエリシーケンス１００の簡略化表現のフローチャートである。ステップ１０２において、ユーザは、このユーザがデータベースから特定の情報を望んでいることを決定する。ステップ１０４において、このユーザは、どの情報がこのデータベースから望まれているかをコンピュータシステムに（例えば、タイプを）入力する。ステップ１０６において、このコンピュータシステムは、望まれている情報を戻し、表示する。リターンステップ１０８において、ユーザは、この情報をさらに正確に取得するためにこのデータベースからどのような情報が望まれているかについてのステートメントを改良することができる。本発明は、以下でより詳細に説明するように、従来のデータベースクエリシーケンス１００における改善を実現している。
【００１０】
図２は、チャンク表現言語フォーマットのデータベースクエリの最初の部分を構築するための構文上のプロンプティングを提供するユーザインターフェース２００の図である。特に、ユーザインターフェース２００は、１つのワードについての構文上のプロンプティングを示している。
【００１１】
当技術分野において知られているように、チャンク表現言語フォーマットは、ＳＱＬなど、正式なクエリ仕様言語へとコンピュータによって簡単に構文解析することができる（例えば、英語のような）疑似自然言語である。サンプルのチャンク表現は、
Show every email whose sender is 'John Smith' and whose subject contains "patent"（その送信者が「Ｊｏｈｎ  Ｓｍｉｔｈ」であり、その件名が「特許」を含む、すべての電子メールを示しなさい）、
とすることもでき、これについては、
【００１２】
【表１】
2007500408.tif 000003
【００１３】
のようなＳＱＬなど、正式のクエリ仕様言語へとコンピュータによって構文解析されるはずである。一般的に、チャンク表現は、
【００１４】
【表２】
2007500408.tif 000004
【００１５】
の形式を取ることができる。
【００１６】
ユーザインターフェース２００は、自動的に１組のすべての可能な選択肢から構文上正しいワードを入力するようにユーザに要求してくる。これにより、このユーザは、チャンク表現の入力を開始しながら、構文エラーを犯すことがなくなる。例えば、このユーザが、「show all（すべてを示しなさい）」を入力することによりチャンク表現入力２０２を開始する場合、このユーザインターフェースは、自動的に、あるオブジェクトが構文上正しい次の入力であることを決定する。その結果、ユーザインターフェース２００は、すべての構文上正しいオブジェクト（例えば、email（電子メール）、files（ファイル）、music（音楽）、pictures（写真）、items（アイテム））について示されるドロップダウンリストなどのリスト２０４をこのユーザに提示する。
【００１７】
かかる簡単なスピーチの単一部分の完成（ｓｉｎｇｌｅ−ｐａｒｔ−ｏｆ−ｓｐｅｅｃｈ  ｃｏｍｐｌｅｔｉｏｎ）は、珍しくはなく、例えばＭｉｃｒｏｓｏｆｔ（登録商標）社から入手可能なＭｉｃｒｏｓｏｆｔ（登録商標）  Ｖｉｓｕａｌ  Ｓｔｕｄｉｏ  ．ＮＥＴ中のＩｎｔｅｌｌｉｓｅｎｓｅ（商標）技術の一部分として見出すことができる。しかし、ユーザインターフェース２００は、本発明によるクエリの構築を用いてユーザを支援する際の第１の構文上のプロンプティングステップだけを示すにすぎない。
【００１８】
図３は、ユーザインターフェース２００によって示される最初のステップに続く、チャンク表現言語フォーマットのデータベースクエリを構築するための継続した構文上のプロンプティングを提供するユーザインターフェース３００の図である。ユーザインターフェース３００は、図２の最初のプロンプティングステップ中のような単一ワードではなくて、プロパティ仕様フレーズ全体についての完成表現など、構文上のグループ全体についての示唆プロンプティングを提供する。
【００１９】
例えば、ユーザインターフェース２００から形成される最初のチャンク表現３０２に基づいて、ユーザインターフェース３００は、そこから選択すべき完全な読取り可能な構文上正しい表現のリスト３０４を用いて自動的にユーザに入力するように要求してくる。例えば、「show all email（すべての電子メールを示しなさい）」という最初のチャンク表現３０２に基づいて、このユーザインターフェースは、whose sender is 'john smith'（送信者が「john smith」である）、whose subject contains 'xyzcorp'（件名が「xyzcorp」を含むか）、whose date is 'today'（日付が「今日」である）、またはwhose status is 'unread'（ステータスが「未読」である）などの完全な読取り可能な構文上正しい表現のリスト３０４を自動的に提供する。
【００２０】
結果として、ユーザインターフェース３００は、完全な読取り可能な表現を示唆する完成ルーチンとして動作し、その結果、このユーザは、構文上正しくない表現を有するクエリと共に放置されることはなくなる。例えば、従来の単一ワードの完成表現を伴うシステムでは、「show all email whose」を「sender（送信者）」、「subject（件名）」、「data（データ）」などの選択肢を用いて完成することができる。このユーザがこれらのワードのうちの１つだけを選択する場合、この結果として生じるチャンク表現は、フレーズ「show all email whose sender」となり、このフレーズは、評価または実行される場合に構文上正当ではない。図２および３のユーザインターフェースにおいて、自動的にプロンプトされるフレーズに基づく完成表現については、もし選択される場合には完全な正当なクエリフレーズになるはずである。
【００２１】
完全な正当なクエリフレーズを用いてプロンプティングを行う１つの利点は、このプロンプティングを選択するユーザには、評価されると正当な結果をもたらす完全に正当なクエリフレーズが残されることである。他の利点は、このユーザは、フレーズ全体を読むことが可能になり、これらの異なる選択肢が何を意味するかをより良く理解することができることである。その結果、このユーザは、フレーズを簡単に修正して、さらにこのフレーズを適用して、所望のクエリを示すことができるようになる。
【００２２】
構文上のプロンプト中の用語は、このデータベース中の情報、または以前のデータベースアクティビティについての情報に基づいている。一部の実装形態においては、以下でより詳細に説明するように、この情報には重み付けが行われて、このプロンプトされる完成表現がより直感的なものになる。対照的に、従来のデータベースシステムは、せいぜい可能な完成ワードの簡単なあらかじめ作成されたリストを利用しているにすぎない。
【００２３】
一度クエリが選択されると、このクエリをユーザが編集して、新しいクエリを作成することができる。チャンク表現言語は、それ自体ユーザの修正に委ねられる。ユーザは、「show all email whose sender = 'john'（送信者がｊｏｈｎに等しいすべての電子メールを示しなさい）」が、Ｊｏｈｎからの電子メールを生成する場合、ワード「john」を「sean」に変更することにより、Ｓｅａｎからの電子メールを生成することになることを簡単に理解することができる。たとえユーザが、ブランク行からこの表現を自身で正しく書くのに十分良好にこの言語の構文を知らないとしても、ユーザは、これらの修正を行うことができる。図４〜７は、本発明による、かかる構造化されたクエリ編集を示している。
【００２４】
図４は、構造化されたクエリ編集を実現するユーザインターフェース４００の図である。ユーザは、既存のクエリ４０４（例えば、「show all email whose sender = 'john'」中で、ワードまたはフレーズ４０２（例えば、email）の選択（例えば、クリックオン）を行い、このワードまたはフレーズ（例えば、email、files、music、picture、items）についての他の可能なすべての完成表現についてのリスト４０６が提供される。ユーザインターフェース４００は、図２および３を参照して上記で説明した同じプロンプティングメカニズムを使用している。
【００２５】
図５は、構造化されたクエリ編集を実現する他のユーザインターフェース５００の図である。ユーザは、既存のクエリ５０４（例えば、「show all email whose sender is 'john'（送信者がｊｏｈｎであるすべての電子メールを示しなさい）」中で、ワードまたはフレーズ５０２（例えば、sender）の選択（例えば、クリックオン）を行い、このクエリの先行部分のコンテキスト中のこのワードまたはフレーズについての他の可能なすべての完成表現についてのリスト５０６が提供される。その結果、リスト５０６は、このクエリセグメント「show all email whose...」と整合している用語（例えば、sender、recipient（受信者）、subject、received date（受信日付）、message body（メッセージ本文）、sent date（送信日付））を含んでいる。ユーザインターフェース５００は、図２および３を参照して説明した同じプロンプティングメカニズムを使用している。
【００２６】
図６は、構造化されたクエリ編集を実現する他のユーザインターフェース６００の図である。ユーザは、既存のクエリ６０４（例えば、「show all email whose subject contains 'xyzcorp'（件名が「ｘｙｚｃｏｒｐ」を含むすべての電子メールを示しなさい）」中で、ワードまたはフレーズ６０２（例えば、contains）の選択（例えば、クリックオン）を行い、このクエリの先行部分のコンテキスト中のこのワードまたはフレーズについての他の可能なすべての完成表現についてのリスト６０６が提供される。その結果、リスト６０６は、このクエリセグメント「show all email whose subject...」と整合している用語（例えば、contains（含む）、starts with（で開始される）、ends with（で終了する）、does not contain（含まない））を含んでいる。ユーザインターフェース６００は、図２および３を参照して説明した同じプロンプティングメカニズムを使用している。
【００２７】
図７は、構造化されたクエリ編集を実現する他のユーザインターフェース７００の図である。ユーザは、既存のクエリ７０４（例えば、「show all email whose subject start with（件名が〜で開始されるすべての電子メールを示しなさい）」中で、ワードまたはフレーズ７０２（例えば、ProjectX）の選択（例えば、クリックオン）を行い、このクエリの先行部分のコンテキスト中のこのワードまたはフレーズについての他の可能な完成表現についてのリスト７０６が提供される。このクエリ中のデータ用語として、リスト７０６は、このデータベースそれ自体から検索されたクエリセグメント「show all email whose subject start with...」と整合している用語を含んでいる。その結果、リスト７０６は、それからアクセスされるこのデータベースに記憶された最近の電子メールの件名の先頭に対応する用語（例えば、project X（プロジェクトＸ）、quarterly report（四半期報告書）、customer Y（顧客Ｙ）、meeting scheduled（スケジュールされたミーティング、...）を含んでいる。
【００２８】
従来のデータベースクエリシステムでは、このデータベースから取得された用語のリストを提供することができないはずである。その代わりに、従来のデータベースクエリシステムは、構文上正しくない「sender is <person-name>」のようなプレースホルダを挿入することができる。
【００２９】
本発明の他の態様は、図２〜７を参照して説明したようなクエリが、これらがどのようにして構築されたかについての履歴を用いて完成される、データベースに記憶または永続的保持されるオブジェクトであることである。かかる永続的保持されたオブジェクト指向のクエリは、クエリを全く記録することがないか、またはクエリを簡単なテキストストリングとして記憶する従来のデータベースシステムとは異なっている。
【００３０】
図８は、永続的クエリオブジェクトデータ構造８００の概略図である。クエリ仕様言語ステートメント８０２は、例えば、このチャンク表現言語フォーマットから生成されるような、この実行されたクエリの実際のクエリ仕様言語ステートメント（例えば、ＳＱＬストリング）に対応する。クエリ構築レコード８０４は、この実行済みのクエリを生成したユーザアクションを記憶する。例えば、クエリ構築レコード８０４は、図２〜７に示されるようなユーザアクションまたは選択を記憶することができる。クエリ結果カウント８０６は、このクエリが、それが実行された最後の時に返した結果の数を記憶する。クエリ使用レコード８０８は、このクエリがいつ発行され、どのようなコンテキストにおいて発行されたかを含めて、このクエリの使用の履歴を記録する。例外リスト８１０は、以下でさらに詳細に説明しているように、このクエリに対して指定された例外についてリストアップする。
【００３１】
永続的クエリオブジェクトデータ構造８００により、クエリを一度構築し簡単に再使用することができるようになり、それによってこのクエリの再使用を実行することにより、ユーザは、共通のクエリを反復することができるようになる。かかる永続的保持されるクエリは、そのチャンク表現言語フォーマットまたは他の区別する任意の特性によってリストアップし、このユーザインターフェースリストからアクティブ化することができる。さらに、これらのクエリのかかる再使用により、クエリを改良して、このユーザのための改善されたクエリ結果を提供することができるようになる。
【００３２】
図９は、クエリのステータスを示すためのクエリステータスユーザインターフェース９００の図である。クエリステータスユーザインターフェース９００は、選択されたクエリの結果の位置に、その位置上に、またはその位置に隣接して、レンダリングされるカラーコード付けられた「ライト（light）」（例えば、塗り潰された円としてレンダリングされる）として示される。クエリステータスユーザインターフェース９００は、この選択されたクエリのステータスを示すカラーを用いてレンダリングされる。クエリステータスユーザインターフェース９００は、多数の異なる方法で実装することもできることが理解されよう。
【００３３】
一実装形態として、クエリステータスユーザインターフェース９００は、緑色カラーを用いてレンダリングして、この選択されたクエリが正当である（すなわち、示されるこれらの結果が、このクエリがもう一度すぐに実行された場合に生成されるはずの結果と同じである）ことを示し、黄色カラーを用いてレンダリングして、この選択されたクエリが期限切れである（すなわち、これらの結果は、このクエリがこの瞬間に実行されることになる場合には、異なるはずである）ことを示し、赤色カラーを用いてレンダリングして、このクエリが不当である（すなわち、このクエリが実行されていない）ことを示し、あるいは点滅する黄色カラーを用いてレンダリングして、この選択されたクエリが絶えずアップデートしている（すなわち、この現在のクエリ結果は、このデータベースが変化するときはいつでも、変更されることになる）ことを示すことができる。
【００３４】
クエリオブジェクトはまた、ユーザが、既存のクエリを修正することと新しいクエリを指定することを区別するのを助けることもできる。１つのオブジェクトとして、クエリは、一意の名前、履歴、クエリテキストなどを用いてこの画面上に表現することができ、それによって、クエリのプロパティが変更されるときと新しいクエリが定義されるときを明確に区別することができるようになる。
【００３５】
データ構造８００中に含められる例外リスト８１０などの例外リストは、ユーザがクエリの結果に対して行う１つまたは複数の修正（例えば、追加または削除）のリストである。これらの修正は、例外リスト８１０として永続的に保持することができる。この例外リスト中においては、修正は、このクエリ仕様それ自体ではなくて、ユーザによって修正されるクエリ結果であることが理解されよう。
【００３６】
一実施例としては、ユーザが、音楽ファイルの再生リストを構築している可能性もある。このユーザは、「show all music whose decade = '80s' and whose genre = 'modern rock' and whose ranking > 4（年代が８０年代に等しく、ジャンルが現代ロックに等しく、ランキングが４より大きいすべての音楽を示しなさい）」など、音楽についてのクエリを指定することにより開始することができる。これは、例えば２００曲の歌の初期リストを生成する可能性がある。次いで、このユーザは、このクエリにマッチングしない数曲の歌を追加し、マッチングしているがこのユーザが個人的に嫌いな数曲の歌を削除することができる。
【００３７】
このクエリとは別であるが、このクエリと共に永続的保持される例外リストにより、ユーザは、正当なクエリを定義してこの修正された結果を達成する必要なしに、クエリ結果の直接の簡単な操作を行うことができるようになる。この例外リストは、クエリ仕様とは別のクエリのプロパティである。ユーザは、他方に影響を及ぼすことなく一方を変更することができる。
【００３８】
一部の以前のシステムでは、これらの追加または削除されたアイテムからプロパティを追加または削除して、これらのアイテムをこのクエリに準拠したものにすることによって、例外を有するクエリを強いて正当なものにすることになる。例えば、「my favorite pictures（私のお気に入りの写真）」クエリに写真を追加し、またはそれから写真を削除することにより、これらの写真の「お気に入り」プロパティを追加または削除することになる。これは、時に望ましいこともあるが、これにより多くの場合に、予期されない振舞いがもたらされる。例えば、かかるシステムにおいて、７０年代からのクエリ結果のリストに９０年代からの曲を追加することは、この歌をこの７０年代からの歌として再タグ付けする原因になるはずである。さらに複雑なクエリを用いると、この混乱は、さらに大きくなりさえする。この複雑さが増大するので、これらのシステムのためのユーザインターフェースでは、過剰な追加のプロンプティング、確認、および説明が必要になる。
【００３９】
他の一部の以前のシステムにおいては、これらのクエリの結果にアイテムを追加し、それからアイテムを削除することは、このクエリを無効にし、このクエリを簡単なアイテムのリストへと変化させる。このアプローチに伴う問題は、このユーザが、任意の修正が行われる前に正しいクエリを構築するよう強いられることである。このクエリが後になって修正される場合、このユーザの以前のクエリ結果の修正は失われてしまう。例えば、ユーザは、１９７０年と１９８０年の間の歌を検索し、次いでこのユーザが嫌いな数曲の歌を削除する可能性もある。次いで、このユーザは、一部の所望の歌は実際には６０年代後半からの歌なので、これらの歌が不足していることに気付くこともある。次いでこのユーザが、１９６５年から１９８０までの歌を示すようにこのクエリを変更する場合には、以前のクエリ結果から削除されたすべてのこれらの歌が、もう一度、再挿入されてしまうことになる。
【００４０】
この例外リストをこのクエリ仕様とは別のクエリのプロパティとして実装することにより、このクエリ仕様に影響を及ぼさずに、この例外リストを変更することができるようになる。同様に、この例外リストに影響を及ぼさずに、このクエリ仕様を変更することもできる。
【００４１】
例外の問題は、このユーザがクエリのこれらの結果を直接に操作する機能を有することを期待するシステムにおいては特に重要な可能性がある。一実施例は、データベース構造に基づいたファイルシステムである。ファイルシステムのたいていのユーザは、「ドラッグアンドドロップオペレーション」に慣れており、修正に対する従来のデータベースシステムの制約には我慢ができないはずである。かかるユーザに対応するために、この例外リストは、オブジェクトの直接のユーザ操作（例えば、「ドラッグアンドドロップ」）を用いて修正することができる。直接のユーザ操作は、このクエリの例外リストに対する変更として記録される。
【００４２】
図１０は、これらのクエリ結果（例えば、合計９６個のドキュメント、６個のドキュメントが追加され、１４個のドキュメントが削除されている）に対する修正の例外を示すためのクエリ修正ユーザインターフェース１０００（例えば、ステータスバー）の図である。クエリ修正インターフェース１０００は、これらの最終結果（例えば、９６個のドキュメント）を用いてレンダリングすることができる。クエリ修正インターフェース１０００のユーザ選択（例えば、クリックオン）により、これらの例外をリストアップし、これらをアンドゥするための選択肢を提供することなどができる。その結果、再生リストに対するファイル検索から未読の電子メールに対するお気に入りのイメージまで、多くのタイプのクエリ結果は、１つの一貫したユーザインターフェース体験を用いて表現することができる。
【００４３】
クエリをオブジェクトとして表現することにより、いわゆる「空のクエリ（empty query）」をサポートすることも可能になる。空のクエリとは、結果がないにもかかわらず存在するクエリのことである。例えば、ユーザは、６００ドル以下でのシアトルから中国までの航空運賃についてのクエリを作成することができる。このクエリは、このクエリが実行される最初の時には、結果がない可能性もあるが、このユーザは、依然としてこのクエリを保存して、将来的または定期的に実行したいと思うこともある。クエリが、オブジェクトではなくて単なるクエリ結果にすぎない場合には、これは可能ではない。
【００４４】
クエリオブジェクトにより、クエリ仕様をもたず、それどころか１つまたは複数の例外、または例外リストからしか構成されないクエリも可能になる。例えば、ユーザは、検索ストリングを全くもたない「stuff I need to complete for manager（マネージャとして揃える必要がある資質）」と呼ばれるクエリを行うことができる。次いでこのユーザは、任意数のアイテム（例えば、ドキュメント）をこのクエリに対する例外として追加することができる。このクエリが返すはずの物事は、ただ明示的に追加されるこれらのアイテムにすぎない。これにより、クエリと全く同じコードとユーザインターフェースを用いて、手作りのリストを処理することができるようになる。これはまた、（ファイル管理システムの従来のフォルダ階層など）非クエリベースのシステムからクエリベースのシステムへの簡単な移行パス（ｍｉｇｒａｔｉｏｎ  ｐａｔｈ）にも寄与する。
【００４５】
図１１は、より簡単なクエリを行い、例外を追加することにより、ユーザが自動的にクエリを作成する助けを行うことができる自動化クエリ書換え方法１１００の流れ図である。ユーザは、これらの所望の結果を返すはずのより複雑なクエリを構築することができないので、ユーザは、多くの場合にクエリの例外を行う。自動化クエリ書換え方法１１００は、同じ結果を生成することになるが例外のないクエリ仕様を作成する。
【００４６】
ステップ１１０２において、ユーザは、例外を用いてクエリを指定または修正する。
【００４７】
ステップ１１０４において、例外として追加または削除されるオブジェクトを、検査して、これらのオブジェクトが１つまたは複数の共通のプロパティを有するかどうかを判定する。
【００４８】
判断ブロック１１０６において、これらの例外オブジェクトが１つまたは複数の共通のプロパティを有するかどうかについての問合せが行われる。この例外オブジェクトが１つまたは複数の共通のプロパティを有する場合、判断ブロック１１０６は、ステップ１１０８へと進む。そうでない場合には、判断ブロックは、終了ブロック１１１０へと進み、これらの例外オブジェクトは、例外リストとして保持される。
【００４９】
ステップ１１０８において、このクエリ仕様は、この共通のプロパティに対するリファレンスを含めるように書き換えられ、この例外リストは再計算される。その結果、このクエリは、同じ結果を、ただしこれらの例外のシステムオーバーヘッドなしに生成することになる。このクエリは、より正確になり、したがって将来再使用するためにより適切なものになる。
【００５０】
例えば、ユーザは、マネージャからの仕事の電子メールのリストを望むこともある。このユーザは、マネージャからの電子メールのリストを取得するが、この最初のリスト中には、個人的な電子メールが含まれることに気付いている。このユーザは、仕事の電子メールしか示さないことになるより複雑なクエリの書き方について知らない可能性もあり、それ故に、このユーザは、このリストから個人的な電子メールを選択し、これらの電子メールを削除する。
【００５１】
自動化クエリ書換え方法１１００によれば、次いでこのユーザインターフェースは、これらの例外について検査し、自動書換えユーザインターフェースのアフォーダンスまたは表示１２００（図１２）を生成して、書換えが可能であることを示す。図に示すように、自動書換えユーザインターフェースアフォーダンス１２００は、ボックス中に文字Ｑを含んでおり、書換えが示唆されて、これらの１４個の削除アイテムを削除することを示している。任意のシンボルまたはアフォーダンスを使用できることが理解されよう。
【００５２】
プロンプティングのタイプは、非侵襲的であることを意味している。このユーザは、それに応答する必要はない。この書換えについて興味がある場合、このユーザは、例えば自動書換えユーザインターフェースアフォーダンス１２００上でこのマウスを移動させて、この示唆された書換え１３００（図１３）を調べることができる。図１４は、示唆された書換えを組み込んでいる修正されたクエリ１４００を示している。
【００５３】
この場合に、このユーザインターフェースは、これらの削除された電子メールのすべてが、マネージャ夫人、すなわちマネージャの奥さんにも送信されたことに気付いていた。軽量の方法でこのクエリを検査する機能は、このチャンク表現言語の高度に読取り可能な性質によって可能にされる。このタイプのプレビューにより、このユーザは、不注意な一致がこのクエリ仕様中に組み込まれないようにすることができる。例えば、再生リストを作成する際に、このユーザは、いくつかの嫌いな歌を削除することもできる。すべての歌は、たまたま特定のレコードレーベル（ｒｅｃｏｒｄ  ｌａｂｅｌ）からのものである可能性があり、このユーザインターフェースは、このレコードレーベル特性を書換えとして示唆する可能性もある。不注意な一致の場合には、このユーザは、この書換えを受け入れないはずである。
【００５４】
さらに、自動化クエリ書換え方法１１００は、オプションとして、これらのオブジェクトの基礎になるプロパティに対する変化に影響を及ぼす可能性がある。例えば、写真が「お気に入り」リストから切り捨てられるときに、このユーザインターフェースは、これらのオブジェクトからこの「お気に入り」プロパティを削除することを示唆することができる。この場合にもこれは、軽量の非侵襲的なやり方で行うことができる。
【００５５】
図１５は、フルテキスト検索の容易さを、完全なクエリ仕様言語の表現力および正確さと組み合わせたＧＱＡ（ｇｒａｍｍａｔｉｃａｌ  ｑｕｅｒｙ  ａｕｔｏｃｏｍｐｌｅｔｅ文法的クエリオートコンプリート）ユーザインターフェース１５００の図である。ユーザの観点からは、このユーザインターフェースは、非常に簡単である。すなわち、ユーザは、数ワードをタイプして入力し、このユーザインターフェースは、これらのワードにマッチングする可能性のある全体のクエリストリングのリストを自動的に返す。例えば図１５において、ユーザは、部分的なクエリストリング１５０２（例えば、「John XYZCorp」）を入力し、このユーザインターフェースは、「show all email whose sender is 'john smith' and whose subject contains 'XYZCorp'（送信者が「ｊｏｈｎ  ｓｍｉｔｈ」であり、件名が「ＸＹＺＣｏｒｐ」を含むすべての電子メールを示しなさい）」、「show all email whose sender is 'john jones' and whose subject contains 'XYZCorp'（送信者が「ｊｏｈｎ  ｊｏｎｅｓ」であり、件名が「ＸＹＺＣｏｒｐ」を含むすべての電子メールを示しなさい）」、「show all object referencing 'john smith' and 'XYZCorp'（「ｊｏｈｎ  ｓｍｉｔｈ」と「ＸＹＺＣｏｒｐ」について言及するすべてのオブジェクトを示しなさい）」、「show all pictures referencing 'john smith' and 'XYZCorp'（「ｊｏｈｎ  ｓｍｉｔｈ」および「ＸＹＺＣｏｒｐ」について言及するすべての写真を示しなさい）」、「show all objects referencing 'john' and 'XYZCorp'（「ｊｏｈｎ」および「ＸＹＺＣｏｒｐ」について言及するすべてのオブジェクトを示しなさい）」を示唆する文法的クエリオートコンプリートリスト１５０４を自動的に提供する。
【００５６】
この文法的クエリオートコンプリート（ＧＱＡ）機能とは対照的に、「John XYZCorp」がクエリとして入力される以前の従来技術のシステムは、「john」または「XYZCorp」を含み、おそらく「john」と「XYZCorp」の両方を含むアイテムについてこのデータベース全体のフルテキスト検索を実施するはずである。いずれにしても、このフルテキスト検索では、このユーザが必要とし望むよりも、かなり多くの結果を返すことになる可能性がある。
【００５７】
以前の従来技術のデフォルトクエリに伴う問題は、このユーザは、（「私は、ｘｙｚｃｏｒｐについてのｊｏｈｎからの電子メールが欲しい」または「ｘｙｚｃｏｒｐで撮られたｊｏｈｎの写真が欲しい」など）心の中に明確な目的を有するが、このユーザは、多くの場合にこのコンピュータに対してかかる表現をどのようにして正しく指定すべきかについて知らないことである。この文法的クエリオートコンプリート（ＧＱＡ）機能は、チャンク表現言語の読みやすさを活用して、正当な有望な完成表現のリストをこのユーザに提供している。
【００５８】
図１６は、文法的クエリオートコンプリート（ＧＱＡ）方法１６００の流れ図であり、この方法は、ほとんどのコンピュータシステムにおいて、ユーザがこの部分クエリを入力する（例えば、タイプして入力する）ときに、十分に高速に行われるはずである。
【００５９】
ステップ１６０２において、この部分クエリのテキストフラグメントが、解析され、個別の各ワードが、オブジェクトタイプへと分類される。例えば、これらのテキストフラグメントは、まずこのチャンク表現文法の表現（基本的に辞書ルックアップ）に対してチェックされる。次いで、これらのテキストフラグメントは、フルテキスト検索を介してこのデータベース中のレコードに対してチェックされる。このワードが、たまたまデータベーステーブル中の特定のフィールド中にある場合には、このオブジェクトタイプは、このデータベーステーブルから決定されることになる。これらのそれぞれにおいて、このユーザインターフェースは、全体のワードまたは部分的なワードをマッチングさせることができ、ワードごとにいくつかの可能性のあるオブジェクトタイプが存在し得る。例えば、「john pictures」は、「show pictures of john（ｊｏｈｎの写真を示しなさい）」または「show email from john with the word pictures in the subject（件名に写真というワードを伴うｊｏｈｎからの電子メールを示しなさい）」を意味する可能性がある。この用語「写真」は、オブジェクトの可能性もあり、また単なるテキストストリングの可能性もある。各選択肢には、確率による格付けが与えられる。いくつかの格付けスキームが存在する可能性があり、文法的クエリオートコンプリート方法１６００は、どの特定の格付けスキームにも依存していない。重み付けスキームの一実装形態について以下で説明する。
【００６０】
ステップ１６０４において、これらの計算されたオブジェクトタイプが、スピーチのこれらの部分を使用したすべての構文上正しい表現のリストと比較される。この「john xyzcorp」の実施例においては、このユーザインターフェースは、「john」をテキストストリングとしても、人のレコードの「名前」フィールドについて可能性のある値としても分類することになる。「xyzcorp」は、テキストストリング、場所のレコードの「名前」フィールドについての可能性のある値、および電子メールレコードの「件名」フィールドについての可能性のある値である。これに基づいて、このユーザインターフェースは、人および場所、人および電子メールなどを組み込んだ構文上正しいステートメントについて探すことになる。次いで、これらの可能性のすべてにはまた、ステップ１６０２中のように重みが割り当てられる。
【００６１】
ステップ１６０６において、このテキストストリングは、簡単なストリングマッチングを使用してオートコンプリートについてパスしている他のテキストストリングと比較される。例えば、このユーザは、「john xyzcorp」とタイプして入力し、次いで「show email from john about xyzcorp（ｘｙｚｃｏｒｐについてのｊｏｈｎからの電子メールを示しなさい）」という完成表現を選択する可能性がある。このユーザが、後で「jo」をタイプして入力を開始する場合には、この「jo」は、以前に入力された「john xyzcorp」ストリングとマッチングすることになり、このユーザインターフェースは、以前に選択された完成表現「show email from john about xyzcorp」をマッチのリストに追加することになる。次いで、このマッチのリストは、ステップ１６０４の結果と組み合わされる。多数の人々が何度も何度もこれらの同じクエリを行うので、このステップは、最も一般的なクエリを、たった３つまたは４つのキーストロークにまで減少させる。
【００６２】
次いで、ステップ１６０８において最終的なソートされ重み付けされたリストが、このユーザに対して表示される。
【００６３】
図１７は、これらの内部クエリから返された結果を重み付けし、ソートするためのクエリの重み付けおよびソーティングの方法１７００の流れ図である。ステップ１７０２は、履歴／コンテキストの使用に基づいた関連付けを取得し、ステップ１７０４は、結果カウントを決定して、これらのアイテムをこのリスト中で順序付けし、その結果、このユーザが望む完成表現は、ほとんどいつでもトップの数個（例えば、７個）の中に提示される。このクエリ結果ランキングスキームは、これらの説明しているユーザインターフェース機能の動作を機能拡張する。
【００６４】
ステップ１７０２において、このユーザインターフェースは、提案された完成表現が、これを作成することによって選択されるときに、このプロンプトと完成表現が関連していることを示す関連付けオブジェクトを思い出す。次いでこのユーザインターフェースは、これらの関連付けを使用して、将来におけるこの完成表現の重み付けを増大させる。このユーザが、「People」のリストから「john」を選択する場合、Ｊｏｈｎは、この将来におけるリストのトップに向かってさらに重み付けが行われることになる。
【００６５】
さらに、この関連付けオブジェクトは、複雑な完成表現中で深い関連付けを取り扱うことができる。例えば、ユーザが「john disney」と入力する場合、この完成表現「show pictures where subject contains 'john smith' and location is 'disneyland'（件名が「ｊｏｈｎ  ｓｍｉｔｈ」を含んでおり、場所が、「ディズニーランド」である写真を示しなさい）」は、このリスト上で低いところに存在する可能性がある。しかし、このユーザが、この完成表現を選択した後には、このユーザインターフェースは、「john disney」を「show pictures where subject contains 'john smith' and location is 'disneyland'」と関連づけるだけでなく、このユーザインターフェースはまた、「john smith」と名付けられる人を伴う「john」と、「disneyland」と名付けられる場所を伴う「disney」を関連づけることにもなる。このユーザインターフェースは、ｊｏｈｎと写真を伴うディズニーランドを共に関連づけ、またこのユーザインターフェースは、人と写真について可能性のある場所とから構成されるフレーズを関連づけさえすることになる。将来、このユーザが、「dave disney」や「mike grand canyon」のような何かをタイプして入力する場合には、写真を含む完成表現には、さらに重い重みが与えられることになる。
【００６６】
ステップ１７０４において、結果の重み付けを行う際に、この結果数が考慮される。一般に、結果は、ベル曲線（Ｂｅｌｌ  ｃｕｒｖｅ）のような曲線に従う可能性もあり、ここでは、「結果が多くなればなるほど」、あるポイントまでは良好になり、次いで、あまりにも結果が多すぎて、実際に特に十分ではなくなってしまう。例えば、このユーザが、「b mail」をタイプして入力する場合、このユーザインターフェースは、「show email whose subject contains 'b'（件名が「ｂ」を含む電子メールを示しなさい）」、「show email whose sender is Brian（送信者がＢｒｉａｎである電子メールを示しなさい）」、および「show email whose sender is Benefits（送信者がＢｅｎｅｆｉｔｓである電子メールを示しなさい）」という完成表現を示唆する可能性がある。これらのすべては、正当な完成表現であるが、この第１の完成表現は、５０００個のアイテムを返し、この第２の完成表現は、９０個のアイテムを返し、この第３の完成表現は、１個のアイテムを返す可能性がある。この結果カウントメトリックにより、この第２のオプション「show email whose sender is Brian」がトップに来るようになるはずである。これは、正しくないＤａｖｅ、Ｊｏｈｎ、またはＭａｔｔを常に示唆するこのユーザインターフェースの一般的なオートコンプリート問題を解決する。
【００６７】
この結果カウント重み付けは、コンテキストの中で行われるので、非常にインテリジェントに見える。例えば、このユーザは、Ｊｏｈｎ  Ｓｍｉｔｈの写真に比べて多くのマネージャＪｏｈｎ  Ｓｍｉｔｈからの電子メールを有し、また友人Ｊｏｈｎ  Ｊｏｎｅｓについての多くの写真は有するが、Ｊｏｈｎ  Ｊｏｎｅｓからの電子メールは比較的少ししか有さない可能性もある。このユーザインターフェースが、「john pictures」を完成するときには、「show pictures whose subject is John Jones（件名がＪｏｈｎ  Ｊｏｎｅｓである写真を示しなさい）」は最初の選択肢になるが、「john email」では、「show email whose sender is 'john smith'（送信者が「ｊｏｈｎ  ｓｍｉｔｈ」である電子メールを示しなさい）」が最初のものになる。
【００６８】
異なる実装形態は、本明細書中で前述したものと異なる選択、オブジェクトタイプ、プロパティ、およびコンパレータを含んでいてもよい。本発明は、どのような特定の実装形態だけにも限定されることなく、任意のデータベースフォーマット、クエリ言語仕様などに対して適用される。
【００６９】
コンピュータプログラミングについての当業者の実行に従って、本発明は、様々なコンピュータシステムおよびデバイスによって実施される動作およびオペレーションのシンボリック表現に関して以上で説明している。かかる動作およびオペレーションは、時にコンピュータ実行されるものと称され、必要に応じてオペレーティングシステムまたはアプリケーションプログラムに関連づけることができる。これらの動作およびシンボリック表現されたオペレーションは、データビットを表現する電気信号のＣＰＵによる操作を含んでおり、この操作は、この電気信号表現の結果として生じる変換または低下と、メモリシステム中のメモリロケーションにおけるデータビットの保持とを引き起こして、それによって、このコンピュータシステムオペレーション、ならびに他の信号処理を再構成し、あるいはその他の方法で変更することになる。データビットが保持されるメモリロケーションは、これらのデータビットに対応する特定の電気的性質、磁気的性質、または光学的性質を有する物理的ロケーションである。
【００７０】
本発明の原理について例示の実施形態に関して説明し例証してきたが、この例示の実施形態は、かかる原理を逸脱することなく、構成および細部において修正することができることが理解されよう。本発明の原理を適用することができる可能な多数の実施形態を考慮して、これら詳述された実施形態は、例示的なものにすぎず、本発明の範囲を限定するものと解釈すべきではないことを理解されたい。もっと正確に言えば、本発明者らは、以下の特許請求の範囲およびそれらの均等物についての範囲および趣旨内に含まれ得るかかるすべての実施形態を本発明として請求している。
【図面の簡単な説明】
【００７１】
【図１】従来技術のデータベースクエリシーケンスの簡略化表現のフローチャートである。
【図２】チャンク表現言語フォーマットのデータベースクエリの最初の部分を構築するための構文上のプロンプティングを提供するユーザインターフェースを示す図である。
【図３】図２に示す最初のステップに続く、チャンク表現言語フォーマットのデータベースクエリを構築するための継続した構文上のプロンプティングを提供するユーザインターフェースを示す図である。
【図４】構造化されたクエリ編集を実現するユーザインターフェースを示す図である。
【図５】構造化されたクエリ編集を実現する他のユーザインターフェースを示す図である。
【図６】構造化されたクエリ編集を実現するさらに他のユーザインターフェースを示す図である。
【図７】構造化されたクエリ編集を実現するさらに他のユーザインターフェースを示す図である。
【図８】永続的クエリオブジェクトデータ構造の概略図である。
【図９】クエリのステータスを示すためのクエリステータスユーザインターフェースを示す図である。
【図１０】クエリの結果に対する例外を示すためのクエリ修正ユーザインターフェースを示す図である。
【図１１】より簡単なクエリを行い、例外を追加することによって自動的にクエリを作成する自動化クエリ書換え方法の流れ図である。
【図１２】自動書換えユーザインターフェースのアフォーダンスまたは表示を示す図である。
【図１３】示唆された書換えを示す自動書換えユーザインターフェースアフォーダンスを示す図である。
【図１４】示唆された書換えを組み込む修正クエリを示す図である。
【図１５】文法的クエリオートコンプリート（ＧＱＡ）ユーザインターフェースを示す図である。
【図１６】文法的クエリオートコンプリート（ＧＱＡ）であるＧＱＡの流れ図である。
【図１７】内部クエリから戻される結果を重み付けし、ソートするためのクエリの重み付けおよびソーティングの方法の流れ図である。
【図１】
2007500408.tif 000005
【図２】
2007500408.tif 000006
【図３】
2007500408.tif 000007
【図４】
2007500408.tif 000008
【図５】
2007500408.tif 000009
【図６】
2007500408.tif 000010
【図７】
2007500408.tif 000011
【図８】
2007500408.tif 000012
【図９】
2007500408.tif 000013
【図１０】
2007500408.tif 000014
【図１１】
2007500408.tif 000015
【図１２】
2007500408.tif 000016
【図１３】
2007500408.tif 000017
【図１４】
2007500408.tif 000018
【図１５】
2007500408.tif 000019
【図１６】
2007500408.tif 000020
【図１７】
2007500408.tif 000021
【国際調査報告】
2007500408.tif 000022