JP2710548B2 - データを検索する方法およびブール代数文表現と図形表現を互いに変換する方法 - Google Patents
データを検索する方法およびブール代数文表現と図形表現を互いに変換する方法Info
- Publication number
- JP2710548B2 JP2710548B2 JP6036351A JP3635194A JP2710548B2 JP 2710548 B2 JP2710548 B2 JP 2710548B2 JP 6036351 A JP6036351 A JP 6036351A JP 3635194 A JP3635194 A JP 3635194A JP 2710548 B2 JP2710548 B2 JP 2710548B2
- Authority
- JP
- Japan
- Prior art keywords
- node
- predicate
- operator
- path
- nodes
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Expired - Fee Related
Links
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/20—Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
- G06F16/24—Querying
- G06F16/242—Query formulation
- G06F16/2428—Query predicate definition using graphical user interfaces, including menus and forms
-
- Y—GENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
- Y10—TECHNICAL SUBJECTS COVERED BY FORMER USPC
- Y10S—TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
- Y10S707/00—Data processing: database and file management or data structures
- Y10S707/99931—Database or file accessing
- Y10S707/99933—Query processing, i.e. searching
- Y10S707/99934—Query formulation, input preparation, or translation
Landscapes
- Engineering & Computer Science (AREA)
- Physics & Mathematics (AREA)
- Theoretical Computer Science (AREA)
- Human Computer Interaction (AREA)
- Mathematical Physics (AREA)
- Computational Linguistics (AREA)
- Data Mining & Analysis (AREA)
- Databases & Information Systems (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
- Stored Programmes (AREA)
Description
【0001】
【産業上の利用分野】本発明は、コンピュータ化された
関係データベースの情報検索システム、特に関係データ
ベースからデータを検索するためのユーザ・インタフェ
ースに関連する。
関係データベースの情報検索システム、特に関係データ
ベースからデータを検索するためのユーザ・インタフェ
ースに関連する。
【0002】
【従来の技術】コンピュータ化されたデータベース管理
システム(DBMS)は、企業が能率的にデータを処理しア
クセスすることを可能にしている。DBMSは、直接アクセ
ス記憶装置(DASD)のようなデータ記憶装置に、電気工
学的にデータを保存する。コンピュータ・システムによ
って実行されるコンピュータ・プログラムが、データベ
ースへのアクセスを提供する。データベース利用者は、
キーボードまたはマウスのような対話型装置を使用し
て、端末からコンピュータ・プロセッサおよびメモリを
制御する。
システム(DBMS)は、企業が能率的にデータを処理しア
クセスすることを可能にしている。DBMSは、直接アクセ
ス記憶装置(DASD)のようなデータ記憶装置に、電気工
学的にデータを保存する。コンピュータ・システムによ
って実行されるコンピュータ・プログラムが、データベ
ースへのアクセスを提供する。データベース利用者は、
キーボードまたはマウスのような対話型装置を使用し
て、端末からコンピュータ・プロセッサおよびメモリを
制御する。
【0003】データの保存および検索を論理的に制御す
ることによって、DBMSはデータベースへのアクセスを提
供する。関係DBMSは論理上、複数の行および列からなる
複数のテーブルに、データを組織し保存する。列は、同
じ種類のデータを含む。行は、ひとつの物について異な
る種類のデータを含む。テーブルおよび列は、利用者が
データ検索のためにテーブル、列および行を識別するこ
とができるように、名前を割り当てられる。
ることによって、DBMSはデータベースへのアクセスを提
供する。関係DBMSは論理上、複数の行および列からなる
複数のテーブルに、データを組織し保存する。列は、同
じ種類のデータを含む。行は、ひとつの物について異な
る種類のデータを含む。テーブルおよび列は、利用者が
データ検索のためにテーブル、列および行を識別するこ
とができるように、名前を割り当てられる。
【0004】データは、様々な方法で関係データベース
から検索することができる。コンピュータ・プログラム
は、人間つまり利用者の干渉なしで、情報をデータベー
スから引き出すことができる。また、データベース利用
者は、データベースシステムへのアクセス・プログラム
の役目を果たしている検索システム・プログラムを使用
して、データベースと対話することができる。
から検索することができる。コンピュータ・プログラム
は、人間つまり利用者の干渉なしで、情報をデータベー
スから引き出すことができる。また、データベース利用
者は、データベースシステムへのアクセス・プログラム
の役目を果たしている検索システム・プログラムを使用
して、データベースと対話することができる。
【0005】関係データベースへの一般的なインタフェ
ースは、構造化検索言語(SQL)である。SQL検索は、デ
ータの検索のためにデータベース、列および行を識別す
る。列は、SQLのSELECT(選択)命令で選択される。行
は、SQLのSELECT命令のWHERE句の中の条件文によって決
定される。条件文は、少なくとも1つのテーブルの少な
くとも1つの列の機能として行を識別する。例えば、あ
る企業が、10年以上働いている販売部の従業員の名前
のレポートのようなレポートを時々作成する、従業員デ
ータベースを持っているとする。SQL命令は、データベ
ース・テーブルの名前列から、同じ行の、従業員部署に
対応する列の値が「販売」であり、雇用年数に対応する
列の値が10以上である、すべての従業員名を検索する
ことによって従業員データベースからデータを検索する
ために、使用される。SQL命令は、以下のようになる。
ースは、構造化検索言語(SQL)である。SQL検索は、デ
ータの検索のためにデータベース、列および行を識別す
る。列は、SQLのSELECT(選択)命令で選択される。行
は、SQLのSELECT命令のWHERE句の中の条件文によって決
定される。条件文は、少なくとも1つのテーブルの少な
くとも1つの列の機能として行を識別する。例えば、あ
る企業が、10年以上働いている販売部の従業員の名前
のレポートのようなレポートを時々作成する、従業員デ
ータベースを持っているとする。SQL命令は、データベ
ース・テーブルの名前列から、同じ行の、従業員部署に
対応する列の値が「販売」であり、雇用年数に対応する
列の値が10以上である、すべての従業員名を検索する
ことによって従業員データベースからデータを検索する
ために、使用される。SQL命令は、以下のようになる。
【0006】 上記のSQL命令は、コンピュータ化されたデータベース
・システムに保存されたデータの検索に使用される検索
命令の、簡単な例である。検索は、多くのテーブルおよ
び、検索する行を識別するための行の値に対する多くの
条件を含み、非常に複雑になることがある。
・システムに保存されたデータの検索に使用される検索
命令の、簡単な例である。検索は、多くのテーブルおよ
び、検索する行を識別するための行の値に対する多くの
条件を含み、非常に複雑になることがある。
【0007】データ検索のためにデータベース利用者が
対話的に検索を構築するのを援助する、数多くの市販の
データベース検索ユーザ・インタフェース・プログラム
がある。このようなデータベース・インターフェース・
プログラムには、IBM社のQMF製品がある。利用者がSQL
検索を書くのを援助するQMF製品のひとつの機能は、プ
ロンプト検索と呼ばれる。プロンプト検索においては、
利用者は、DBMSから返される返答のセット(データの
行)を限定する条件を、書くことができる。これらの条
件は、SQLのWHERE句の中に置かれる。条件は、論理積
(AND)および論理和(OR)演算子によって結合される
述語からなる。述語は、置き換えられる変数を持ち、真
または偽の値を持つ文である。例えば、「EMP.DEPT=XY
Z」および「EMP.YEARS>20」は、変数EMP.DEPTおよびEM
P.YEARSの値に基づいて真または偽の値を持つ。
対話的に検索を構築するのを援助する、数多くの市販の
データベース検索ユーザ・インタフェース・プログラム
がある。このようなデータベース・インターフェース・
プログラムには、IBM社のQMF製品がある。利用者がSQL
検索を書くのを援助するQMF製品のひとつの機能は、プ
ロンプト検索と呼ばれる。プロンプト検索においては、
利用者は、DBMSから返される返答のセット(データの
行)を限定する条件を、書くことができる。これらの条
件は、SQLのWHERE句の中に置かれる。条件は、論理積
(AND)および論理和(OR)演算子によって結合される
述語からなる。述語は、置き換えられる変数を持ち、真
または偽の値を持つ文である。例えば、「EMP.DEPT=XY
Z」および「EMP.YEARS>20」は、変数EMP.DEPTおよびEM
P.YEARSの値に基づいて真または偽の値を持つ。
【0008】SQL条件文を書くためのプロンプト検索シ
ステムにおいて、改善を必要とすることのひとつは、述
語の優先順位の指定が制限されていることである。条件
文は、述語間の優先順位を指定するために括弧の中で入
れ子にする必要がある多くの述語を持ち、非常に複雑に
なることがある。例えば一回の検索で、ある部署に10
年間いるすべての従業員、あるいは他の部署に20年間
いる従業員、あるいは会社に30年以上いる従業員の検
索を試みることができる。この条件に対するブール代数
文は、以下のように書くことができる。((EMP.DEPT = X
YZ) AND (EMP.YEARS > 10)) OR ((EMP.DEPT= ABC) AND
(EMP.YEARS > 20)) OR (EMP.YEARS > 30)。括弧は、条
件文を満たすために述語の関係を決定するのに役立つ。
プロンプト検索には、述語を入れ子にする括弧を提供す
ることができないという制限がある。
ステムにおいて、改善を必要とすることのひとつは、述
語の優先順位の指定が制限されていることである。条件
文は、述語間の優先順位を指定するために括弧の中で入
れ子にする必要がある多くの述語を持ち、非常に複雑に
なることがある。例えば一回の検索で、ある部署に10
年間いるすべての従業員、あるいは他の部署に20年間
いる従業員、あるいは会社に30年以上いる従業員の検
索を試みることができる。この条件に対するブール代数
文は、以下のように書くことができる。((EMP.DEPT = X
YZ) AND (EMP.YEARS > 10)) OR ((EMP.DEPT= ABC) AND
(EMP.YEARS > 20)) OR (EMP.YEARS > 30)。括弧は、条
件文を満たすために述語の関係を決定するのに役立つ。
プロンプト検索には、述語を入れ子にする括弧を提供す
ることができないという制限がある。
【0009】述語の数が多くなり、検索を満たす括弧の
順序が複雑になると、括弧を使用している述語間の順序
および関係を指示することが必要になる。そのうえ、利
用者がブール代数文テキスト表現を使用して複雑な検索
を構成することは難しい。
順序が複雑になると、括弧を使用している述語間の順序
および関係を指示することが必要になる。そのうえ、利
用者がブール代数文テキスト表現を使用して複雑な検索
を構成することは難しい。
【0010】多くのブール文は、論理上等価である。し
かし、いくつかのものは、条件文を表現するのにより効
率的である。例えば、ブール代数文「(P1 AND P4) OR
(P3 AND P5) OR (P1 AND P2 AND P5)」によって表すこ
とができる式はまた、ブール代数文「(P5 AND (P3 OR
(P1 AND P2))) OR (P1 AND P4)」および「(P1 AND (P4
OR (P2 AND P5))) OR (P3 AND P5)」によって表わすこ
とができる。すなわち、これらのブール文はすべて論理
上等価である。しかし、後者の2つの文は述語の反復が
最少で、最も効率的な表現である。ブール表現と図形表
現を翻訳する時、翻訳が利用者を混乱させないように、
一貫性を保つ必要がある。
かし、いくつかのものは、条件文を表現するのにより効
率的である。例えば、ブール代数文「(P1 AND P4) OR
(P3 AND P5) OR (P1 AND P2 AND P5)」によって表すこ
とができる式はまた、ブール代数文「(P5 AND (P3 OR
(P1 AND P2))) OR (P1 AND P4)」および「(P1 AND (P4
OR (P2 AND P5))) OR (P3 AND P5)」によって表わすこ
とができる。すなわち、これらのブール文はすべて論理
上等価である。しかし、後者の2つの文は述語の反復が
最少で、最も効率的な表現である。ブール表現と図形表
現を翻訳する時、翻訳が利用者を混乱させないように、
一貫性を保つ必要がある。
【0011】利用者がより容易に検索の結果を理解する
ことができるように、条件の流れを表わす必要もある。
ことができるように、条件の流れを表わす必要もある。
【0012】一般に、利用者がSQL検索の複雑な構文を
知らなくても、データベースをアクセスすることができ
るようにする必要がある。
知らなくても、データベースをアクセスすることができ
るようにする必要がある。
【0013】
【発明が解決しようとする課題】本発明の目的は、デー
タベース利用者が、条件フィルタを通るデータの流れを
図示する図形表現を使用して、検索を公式化することが
できる処理を提供することである。
タベース利用者が、条件フィルタを通るデータの流れを
図示する図形表現を使用して、検索を公式化することが
できる処理を提供することである。
【0014】本発明のなお一層の目的は、流れ図表現お
よびブール代数文テキストの間の条件文を絶えず翻訳す
るための処理を、提供することである。
よびブール代数文テキストの間の条件文を絶えず翻訳す
るための処理を、提供することである。
【0015】
【課題を解決するための手段】中央処理装置(CPU)、
メモリ、ディスプレイ装置および利用者対話型装置を持
つコンピュータ化されたデータベース・システムにおけ
る、データを検索する方法を提供する。検索データを含
む少なくともひとつのテーブル、列および行が、対話的
に識別される。行は、条件文によって識別される。条件
文は、以下の手順によって対話的に公式化される。少な
くともひとつの流れ線が表示され、利用者は、述語およ
び述語の挿入のための流れ線上の位置を指定して、入力
を行う。流れ線は、指定された位置に挿入された述語と
共に表示される。流れ線は対応するブール代数文に変換
され、利用者に表示される。また、利用者は述語をブー
ル代数条件文に加えることができる。ブール代数文は、
対応する図形表現に変換され、利用者に表示される。述
語は、ノード間の流れ線上に表示される。同じ流れ線上
の述語は、論理積(AND)操作によって結合される。同
じノード間の異なる流れ線上の述語は、論理和(OR)操
作によって結合される。
メモリ、ディスプレイ装置および利用者対話型装置を持
つコンピュータ化されたデータベース・システムにおけ
る、データを検索する方法を提供する。検索データを含
む少なくともひとつのテーブル、列および行が、対話的
に識別される。行は、条件文によって識別される。条件
文は、以下の手順によって対話的に公式化される。少な
くともひとつの流れ線が表示され、利用者は、述語およ
び述語の挿入のための流れ線上の位置を指定して、入力
を行う。流れ線は、指定された位置に挿入された述語と
共に表示される。流れ線は対応するブール代数文に変換
され、利用者に表示される。また、利用者は述語をブー
ル代数条件文に加えることができる。ブール代数文は、
対応する図形表現に変換され、利用者に表示される。述
語は、ノード間の流れ線上に表示される。同じ流れ線上
の述語は、論理積(AND)操作によって結合される。同
じノード間の異なる流れ線上の述語は、論理和(OR)操
作によって結合される。
【0016】ブール代数テキスト表現は、最初に構文解
析木(パーズ木)にブール文を配置することによって、
図形表現に変換される。木のすべての要素は、木の各要
素が、述語、論理和演算子(OR)、あるいは論理積演算
子(AND)であり、述語が葉であり、演算子が2つの子
を持つ非葉である、予め順序づけられたトラバーサル
(探索、traversal)に従って配置される。各要素はそ
れぞれ、有効グラフのノードに対応するフロム・ノード
(From-Node)およびツー・ノード(To-Node)を持つ。
パーズ木の根は、結果として生ずる図形の開始ノードお
よび終了ノードの値を割り当てられた、フロム・ノード
およびツー・ノードを持つ。論理和演算子要素の子は、
論理和演算子要素のフロム・ノードおよびツー・ノード
を割り当てられる。論理積演算子要素のためには、新し
いノードがつくられる。左の子のフロム・ノードは、論
理積演算子要素のフロム・ノードが割り当てられる。左
の子のツー・ノードおよび右の子のフロム・ノードは、
新しいノードが割り当てられる。右の子のツー・ノード
は、論理積演算子要素のツー・ノードが割り当てられ
る。述語要素のためにひとつの辺が、要素のツー・ノー
ドとフロム・ノードを結合してつくられ、述語を割り当
てられる。
析木(パーズ木)にブール文を配置することによって、
図形表現に変換される。木のすべての要素は、木の各要
素が、述語、論理和演算子(OR)、あるいは論理積演算
子(AND)であり、述語が葉であり、演算子が2つの子
を持つ非葉である、予め順序づけられたトラバーサル
(探索、traversal)に従って配置される。各要素はそ
れぞれ、有効グラフのノードに対応するフロム・ノード
(From-Node)およびツー・ノード(To-Node)を持つ。
パーズ木の根は、結果として生ずる図形の開始ノードお
よび終了ノードの値を割り当てられた、フロム・ノード
およびツー・ノードを持つ。論理和演算子要素の子は、
論理和演算子要素のフロム・ノードおよびツー・ノード
を割り当てられる。論理積演算子要素のためには、新し
いノードがつくられる。左の子のフロム・ノードは、論
理積演算子要素のフロム・ノードが割り当てられる。左
の子のツー・ノードおよび右の子のフロム・ノードは、
新しいノードが割り当てられる。右の子のツー・ノード
は、論理積演算子要素のツー・ノードが割り当てられ
る。述語要素のためにひとつの辺が、要素のツー・ノー
ドとフロム・ノードを結合してつくられ、述語を割り当
てられる。
【0017】流れ図表現は、最初に図形を圧縮し次にブ
ール文値を割り当てることによって、ブール代数文表現
に変換される。
ール文値を割り当てることによって、ブール代数文表現
に変換される。
【0018】図形は、2つの辺を結合して結果として生
ずるブール代数文が述語として持つひとつの辺に変換す
ることによって、可能な限り少ないノードおよび辺に、
内側から圧縮される。流れ図表現の2つの辺が、同じツ
ー・ノードおよびフロム・ノードを持つ時、2つの辺は
論理和演算(OR)によって1つの辺に結合され、元の2
つの辺によって表わされる条件述語を割り当てられる。
2つの辺が間にノードをはさんで連続しており、そのノ
ードに2つの辺だけが出入りする時、2つの辺は論理積
演算(AND)によって1つの辺に結合され、元の2つの
辺によって表わされる条件述語を割り当てられる。
ずるブール代数文が述語として持つひとつの辺に変換す
ることによって、可能な限り少ないノードおよび辺に、
内側から圧縮される。流れ図表現の2つの辺が、同じツ
ー・ノードおよびフロム・ノードを持つ時、2つの辺は
論理和演算(OR)によって1つの辺に結合され、元の2
つの辺によって表わされる条件述語を割り当てられる。
2つの辺が間にノードをはさんで連続しており、そのノ
ードに2つの辺だけが出入りする時、2つの辺は論理積
演算(AND)によって1つの辺に結合され、元の2つの
辺によって表わされる条件述語を割り当てられる。
【0019】割当てアルゴリズムは図形を通して、開始
ノードから終了ノードに一意的な経路を識別する。圧縮
された図形がトラバース(探索、traverse)され、ブー
ル代数文が生成される。図形を通る各経路は、論理積演
算によって結合された複数の述語を含む。ブール代数文
テキストは、図形表現に対応するために、論理和または
論理積演算子をテキスト文に加える必要があるかどうか
決定することによって、構成される。また、述語および
開始と終了の括弧が、テキスト文に加えられる。新しい
経路が識別されると、ひとつの「OR」がブール文テキス
トに挿入される。スタックは、図形を通る各新しい経路
を保存するために使用される。経路が図形の終了ノード
へ向かわない時、「AND」がブール文テキストに挿入さ
れる。ひとつのノードからのすべての辺が処理されたあ
と、新しい経路が、スタックからポップアップされる。
スタックがからになると、図形の条件に対応する有効な
ブール代数文が完成する。
ノードから終了ノードに一意的な経路を識別する。圧縮
された図形がトラバース(探索、traverse)され、ブー
ル代数文が生成される。図形を通る各経路は、論理積演
算によって結合された複数の述語を含む。ブール代数文
テキストは、図形表現に対応するために、論理和または
論理積演算子をテキスト文に加える必要があるかどうか
決定することによって、構成される。また、述語および
開始と終了の括弧が、テキスト文に加えられる。新しい
経路が識別されると、ひとつの「OR」がブール文テキス
トに挿入される。スタックは、図形を通る各新しい経路
を保存するために使用される。経路が図形の終了ノード
へ向かわない時、「AND」がブール文テキストに挿入さ
れる。ひとつのノードからのすべての辺が処理されたあ
と、新しい経路が、スタックからポップアップされる。
スタックがからになると、図形の条件に対応する有効な
ブール代数文が完成する。
【0020】
【実施例】検索流れ処理は、どのデータが検索されるか
制限するフィルタを通るデータの流れとして、検索公式
化処理を概念化する。
制限するフィルタを通るデータの流れとして、検索公式
化処理を概念化する。
【0021】データベースからデータを検索するために
使用される検索公式化処理のためのユーザ・インタフェ
ースは、図1に示されるデータ処理装置と共に実行され
る。装置は、中央処理装置30(CPU)、直接アクセス
記憶装置32、入出力ポート34および、ディスク記憶
装置または固定記憶装置(ROM)のような不揮発性記憶
装置36を備え、これらはすべて共通バス構造38に接
続している。制御回路40は、適当なクロック信号の提
供およびバス操作の制御のような、準備操作(ハウスキ
ーピング操作)を実行する。アダプタ42は、キーボー
ド44、ディスプレイ装置46およびマウス48のよう
な他の構成要素へのインタフェースとして使用される。
図1に示される汎用データ処理装置が、プログラム制御
下で本発明を実行するために使用される。
使用される検索公式化処理のためのユーザ・インタフェ
ースは、図1に示されるデータ処理装置と共に実行され
る。装置は、中央処理装置30(CPU)、直接アクセス
記憶装置32、入出力ポート34および、ディスク記憶
装置または固定記憶装置(ROM)のような不揮発性記憶
装置36を備え、これらはすべて共通バス構造38に接
続している。制御回路40は、適当なクロック信号の提
供およびバス操作の制御のような、準備操作(ハウスキ
ーピング操作)を実行する。アダプタ42は、キーボー
ド44、ディスプレイ装置46およびマウス48のよう
な他の構成要素へのインタフェースとして使用される。
図1に示される汎用データ処理装置が、プログラム制御
下で本発明を実行するために使用される。
【0022】図2に参照すると、検索の公式化は、検索
されるデータのテーブル選択、行選択、群選択およびソ
ートとして、データベース利用者に表示される。これら
の部分は、検索を通るデータの流れを提供するために、
利用者によって完全に操縦される。
されるデータのテーブル選択、行選択、群選択およびソ
ートとして、データベース利用者に表示される。これら
の部分は、検索を通るデータの流れを提供するために、
利用者によって完全に操縦される。
【0023】ウィンドウ50は、検索を通してデータの
流れを限定するフィルタを表わすアイコン52と共に、
ディスプレイ装置上に利用者に表示される。利用者は、
検索公式化処理のある段階を詳述するために、アイコン
を選ぶ。このように、SQL検索ウィンドウは、利用者がS
QL検索を書き込むことができるウィンドウである。SQL
検索が公式化されると、データ検索はデータベースに移
る。
流れを限定するフィルタを表わすアイコン52と共に、
ディスプレイ装置上に利用者に表示される。利用者は、
検索公式化処理のある段階を詳述するために、アイコン
を選ぶ。このように、SQL検索ウィンドウは、利用者がS
QL検索を書き込むことができるウィンドウである。SQL
検索が公式化されると、データ検索はデータベースに移
る。
【0024】完全なSQL文は、原始データ源を形成する
データベース・テーブルと列および、定義されたデータ
ベース・テーブルから問題となる行を定義する条件を、
定義する。第1のアイコンは、SQL文の語セレクト(SEL
ECT)に続く部分に対応するテーブルおよび列選択を表
わす。利用者は、検索データを提供するテーブルおよび
列を対話的に識別するための一連の手順を続けるため
に、テーブル・アイコン55を選択する。
データベース・テーブルと列および、定義されたデータ
ベース・テーブルから問題となる行を定義する条件を、
定義する。第1のアイコンは、SQL文の語セレクト(SEL
ECT)に続く部分に対応するテーブルおよび列選択を表
わす。利用者は、検索データを提供するテーブルおよび
列を対話的に識別するための一連の手順を続けるため
に、テーブル・アイコン55を選択する。
【0025】テーブルおよび列が選択されると、利用者
は次に、検索するデータを指定するために行条件を公式
化する。単純なSQLセレクト文の語ウエア(WHERE)に続
く部分が、検索データの行条件のブール文述語を含む。
は次に、検索するデータを指定するために行条件を公式
化する。単純なSQLセレクト文の語ウエア(WHERE)に続
く部分が、検索データの行条件のブール文述語を含む。
【0026】行選択を限定するためにSQLの中で使用す
るための、ブール文の述語の作成および操作のためのシ
ステム環境は、有向グラフとして表わすことができる。
図3に参照すると、本発明は、SQL文の「WHERE」句の中
の条件述語間の関係を示すために、テキストおよび図形
の2つの形式での表現を、ディスプレイ上に提供する。
利用者は最初に、以下に記述される処理によって図形条
件56を入力することができる。システムは、以下に説
明される処理によって、対応するブール代数文に有向図
形表現を変換する58。利用者はそれから、直接ブール
代数文を変更するか、あるいは図形表現を変更するか選
択60できる。どちらかの表現が、述語を加えるかある
いは再配置することによって変更された時、両方の表現
が更新される。利用者はまた、最初にブール代数文62
を入力することができる。そしてシステムは、対応する
図形表現にその文を変換する64。
るための、ブール文の述語の作成および操作のためのシ
ステム環境は、有向グラフとして表わすことができる。
図3に参照すると、本発明は、SQL文の「WHERE」句の中
の条件述語間の関係を示すために、テキストおよび図形
の2つの形式での表現を、ディスプレイ上に提供する。
利用者は最初に、以下に記述される処理によって図形条
件56を入力することができる。システムは、以下に説
明される処理によって、対応するブール代数文に有向図
形表現を変換する58。利用者はそれから、直接ブール
代数文を変更するか、あるいは図形表現を変更するか選
択60できる。どちらかの表現が、述語を加えるかある
いは再配置することによって変更された時、両方の表現
が更新される。利用者はまた、最初にブール代数文62
を入力することができる。そしてシステムは、対応する
図形表現にその文を変換する64。
【0027】利用者は、行条件アイコン(図2の66)
を選択することによって、行条件を公式化する。図4に
参照すると、行に対する最初のウィンドウ・ディスプレ
イ70は、行条件が指定されない時、流れ線74上の2
つのノード76の間にからの箱72を表示する。
を選択することによって、行条件を公式化する。図4に
参照すると、行に対する最初のウィンドウ・ディスプレ
イ70は、行条件が指定されない時、流れ線74上の2
つのノード76の間にからの箱72を表示する。
【0028】行条件は、図形を用いて流れ線有向グラフ
形式で表示され、フィルタとして機能する条件述語を通
ってデータが流れることを示す。流れ線は、述語の論理
積および論理和演算を視覚的に定義し、また、条件に優
先順位を与える。述語は、コネクタまたは流れ線上の箱
の間の小さい四角として示されるノードと共に、辺上の
箱の中に置かれる。新しい辺を加えるとき、コネクタは
開始および終了点として使用される。
形式で表示され、フィルタとして機能する条件述語を通
ってデータが流れることを示す。流れ線は、述語の論理
積および論理和演算を視覚的に定義し、また、条件に優
先順位を与える。述語は、コネクタまたは流れ線上の箱
の間の小さい四角として示されるノードと共に、辺上の
箱の中に置かれる。新しい辺を加えるとき、コネクタは
開始および終了点として使用される。
【0029】図形表現は、条件述語のセットを通って流
れると考えられる領域として、条件文を図示し、条件述
語は適用条件を満たす領域要素のみを通すフィルタとし
て機能する。論理積演算は、どんな領域要素も両方のフ
ィルタを通らなければならないように、2つのフィルタ
を続けて置くことによって示される。論理和演算は、別
々にフィルタを持つ並列する経路をつくることによっ
て、示される。条件述語を、複合条件を作成するために
結合させることができる。
れると考えられる領域として、条件文を図示し、条件述
語は適用条件を満たす領域要素のみを通すフィルタとし
て機能する。論理積演算は、どんな領域要素も両方のフ
ィルタを通らなければならないように、2つのフィルタ
を続けて置くことによって示される。論理和演算は、別
々にフィルタを持つ並列する経路をつくることによっ
て、示される。条件述語を、複合条件を作成するために
結合させることができる。
【0030】ブール代数文において、利用者は文字列を
調べ、各条件の入れ子のレベルを決定するために括弧を
突き合わせなければならない。図形表現によって、述語
の入れ子は簡潔に示される。
調べ、各条件の入れ子のレベルを決定するために括弧を
突き合わせなければならない。図形表現によって、述語
の入れ子は簡潔に示される。
【0031】図5に参照すると、図形条件ウィンドウ8
0は、図形領域82、テキスト領域84および条件領域
86、の3つの領域に分けられる。図形領域は、条件を
表わす図形が示されるところである。テキスト領域に
は、図形に対応するブール代数文が示される。そして条
件領域は、すべての実際の述語のリストを含む。
0は、図形領域82、テキスト領域84および条件領域
86、の3つの領域に分けられる。図形領域は、条件を
表わす図形が示されるところである。テキスト領域に
は、図形に対応するブール代数文が示される。そして条
件領域は、すべての実際の述語のリストを含む。
【0032】図形領域は、少なくともひとつ以上の流れ
線88、ノード90およびフィルタ92、の3つの要素
を含む。流れ線は、領域要素が図形を通って動くのに可
能な経路を定義する。左側から入ってくる流れ線におい
て、すべての領域要素は使用可能である。右側から出て
いく流れ線は、首尾よく図形を横断した領域要素を持
つ。中に条件述語テキストをもつ箱は、フィルタであ
る。フィルタは、それらの条件述語を満たす領域要素の
みを通す。箱は、ひと組のノード間の流れ線の辺上にあ
る。条件述語の箱上の条件述語ウィンドウの両側のノー
ドは、新しい流れ線をつくるための開始および終了位置
の役目をする。
線88、ノード90およびフィルタ92、の3つの要素
を含む。流れ線は、領域要素が図形を通って動くのに可
能な経路を定義する。左側から入ってくる流れ線におい
て、すべての領域要素は使用可能である。右側から出て
いく流れ線は、首尾よく図形を横断した領域要素を持
つ。中に条件述語テキストをもつ箱は、フィルタであ
る。フィルタは、それらの条件述語を満たす領域要素の
みを通す。箱は、ひと組のノード間の流れ線の辺上にあ
る。条件述語の箱上の条件述語ウィンドウの両側のノー
ドは、新しい流れ線をつくるための開始および終了位置
の役目をする。
【0033】利用者は、テキスト領域および図形領域の
どちらかを使用するという2つの方法で、条件のセット
を変更することができる。実行できる変更は、挿入、条
件のセットのある部分の削除あるいは更新、を含む。テ
キスト領域を使用する変更は、ブール文文字列の上書き
を含む。ブール文字列への変更は、ブール文字列上に、
そして図形領域に表示される。図形領域を使用して、利
用者は新しいフィルタを加え、既存のフィルタを変更す
ることができる。新しいフィルタは、既存のノードを結
合する新しい流れ線として加えることができる。これは
論理和操作を加えることと等しい。さらに、新しいフィ
ルタを既存の流れ線に挿入することができる。これは論
理積操作を加えることと等しい。
どちらかを使用するという2つの方法で、条件のセット
を変更することができる。実行できる変更は、挿入、条
件のセットのある部分の削除あるいは更新、を含む。テ
キスト領域を使用する変更は、ブール文文字列の上書き
を含む。ブール文字列への変更は、ブール文字列上に、
そして図形領域に表示される。図形領域を使用して、利
用者は新しいフィルタを加え、既存のフィルタを変更す
ることができる。新しいフィルタは、既存のノードを結
合する新しい流れ線として加えることができる。これは
論理和操作を加えることと等しい。さらに、新しいフィ
ルタを既存の流れ線に挿入することができる。これは論
理積操作を加えることと等しい。
【0034】新しい流れ線を図形の2つの既存のノード
間に加えることによって、述語を論理和操作を通して他
の述語と組み合わせることができる。図5に示されるよ
うに、利用者はノード97上にマウス・ポインタ96を
置き、そして選択ボタンを押す。選択ボタンを押したま
まマウスをノードから離して動かす。ひとつの線98
が、最初のノードからの新しい経路を示してマウス・ポ
インタまで現れる。最終的にマウスを、他のノードへ動
かし、選択ボタンをはなす。このようにして2つのノー
ド間に経路を引き、新しい流れ線をつくることができ
る。
間に加えることによって、述語を論理和操作を通して他
の述語と組み合わせることができる。図5に示されるよ
うに、利用者はノード97上にマウス・ポインタ96を
置き、そして選択ボタンを押す。選択ボタンを押したま
まマウスをノードから離して動かす。ひとつの線98
が、最初のノードからの新しい経路を示してマウス・ポ
インタまで現れる。最終的にマウスを、他のノードへ動
かし、選択ボタンをはなす。このようにして2つのノー
ド間に経路を引き、新しい流れ線をつくることができ
る。
【0035】開始ノードによっては、すべてのノードが
新しい経路の終了に有効であるとは限らない。すなわ
ち、図形中に存在する環状の経路になる新しい経路は、
つくることができない。環状の経路とは、ひとつのノー
ドから始まって図形を横断し、最終的に同じノードに戻
って終了することが可能な経路である。マウスが不当な
ノード上にあると、利用者は不当な流れ線がつくられる
と警告される。
新しい経路の終了に有効であるとは限らない。すなわ
ち、図形中に存在する環状の経路になる新しい経路は、
つくることができない。環状の経路とは、ひとつのノー
ドから始まって図形を横断し、最終的に同じノードに戻
って終了することが可能な経路である。マウスが不当な
ノード上にあると、利用者は不当な流れ線がつくられる
と警告される。
【0036】新しい線が完了すると、利用者は、その辺
に割り当てられる述語テキストを入力するようプロンプ
トを出される。述語テキストはフィルタの内側に置か
れ、新しい図形が利用者に表示される。図6に参照する
と、線98は、述語「Y<5」に続くノード99に引か
れ、述語「Z=20」が、述語フィルタ箱100に加えられ
た。
に割り当てられる述語テキストを入力するようプロンプ
トを出される。述語テキストはフィルタの内側に置か
れ、新しい図形が利用者に表示される。図6に参照する
と、線98は、述語「Y<5」に続くノード99に引か
れ、述語「Z=20」が、述語フィルタ箱100に加えられ
た。
【0037】述語は、表示された図形の既存の流れ線に
フィルタを挿入することによって、論理積演算を通して
結合することができる。利用者は、新しいフィルタが入
れられることになっている流れ線上の位置にマウスを置
き、マウスの選択ボタンを2回クリックする。新しいフ
ィルタがその位置に挿入され、新しいフィルタに必要な
新しいノードが挿入される。利用者は、フィルタを満た
す述語のテキストのためにそれからプロンプトを出され
る。
フィルタを挿入することによって、論理積演算を通して
結合することができる。利用者は、新しいフィルタが入
れられることになっている流れ線上の位置にマウスを置
き、マウスの選択ボタンを2回クリックする。新しいフ
ィルタがその位置に挿入され、新しいフィルタに必要な
新しいノードが挿入される。利用者は、フィルタを満た
す述語のテキストのためにそれからプロンプトを出され
る。
【0038】図6に参照すると、述語「X>100」、「C=
5」および「Y<5」を含んでいる流れ線は、論理積演算を
使用してすべて結合される。述語「Z=20」の挿入に先立
ち、述語「X>100」が流れ線102に加えられた時、マ
ウス・カーソルは、ノード103上の述語「B=4」の左
に置かれ、新しいノード97および述語フィルタ箱10
4が、述語「B=4」および「Y<5」を含む流れ線102に
挿入され、そして利用者は、述語箱104に述語「X>10
0」を入力した。
5」および「Y<5」を含んでいる流れ線は、論理積演算を
使用してすべて結合される。述語「Z=20」の挿入に先立
ち、述語「X>100」が流れ線102に加えられた時、マ
ウス・カーソルは、ノード103上の述語「B=4」の左
に置かれ、新しいノード97および述語フィルタ箱10
4が、述語「B=4」および「Y<5」を含む流れ線102に
挿入され、そして利用者は、述語箱104に述語「X>10
0」を入力した。
【0039】この分野の技術者には周知の、対話的に述
語および流れ線を挿入する他の方法もある。
語および流れ線を挿入する他の方法もある。
【0040】図5に参照すると、流れ図表現に等しいブ
ール代数文は、SQL句箱84の中に示される。流れ図表
現における選択された位置への述語「Z=20」の挿入後表
示される等価ブール代数文は、「Z=20 OR(X>100 AND
(A=3 OR ((B=4 OR C=5)AND Y<5)))」である(図6に部
分的に示されている)。
ール代数文は、SQL句箱84の中に示される。流れ図表
現における選択された位置への述語「Z=20」の挿入後表
示される等価ブール代数文は、「Z=20 OR(X>100 AND
(A=3 OR ((B=4 OR C=5)AND Y<5)))」である(図6に部
分的に示されている)。
【0041】述語は、ポップアップ・メニュー・ウィン
ドウから選び、次に変更機能を選ぶことことによって、
変更することができる。マウスまたは同様の利用者対話
型装置を使用して適切なフィルタのまわりに箱を描くこ
とによって、述語が選択される。すべての適切なフィル
タのまわりに箱を描くことによって、ひとつ以上のフィ
ルタを同時に選択することができる。選択された述語フ
ィルタは編集することができ、フィルタ箱の中の述語テ
キストは、編集された述語テキストを満たすための別々
のウィンドウを使用して、変更される。フィルタはまた
削除することができ、その時にはフィルタに対する流れ
線辺もまた削除される。フィルタの削除の結果、2つの
ノードを結合していた流れ線辺がなくなる場合、ノード
はひとつのノードに統合される。
ドウから選び、次に変更機能を選ぶことことによって、
変更することができる。マウスまたは同様の利用者対話
型装置を使用して適切なフィルタのまわりに箱を描くこ
とによって、述語が選択される。すべての適切なフィル
タのまわりに箱を描くことによって、ひとつ以上のフィ
ルタを同時に選択することができる。選択された述語フ
ィルタは編集することができ、フィルタ箱の中の述語テ
キストは、編集された述語テキストを満たすための別々
のウィンドウを使用して、変更される。フィルタはまた
削除することができ、その時にはフィルタに対する流れ
線辺もまた削除される。フィルタの削除の結果、2つの
ノードを結合していた流れ線辺がなくなる場合、ノード
はひとつのノードに統合される。
【0042】図6に参照すると、流れ線上の条件はま
た、否定されるひとつの述語フィルタまたは複数の述語
フィルタのまわりに箱122を描くことによって、否定
することができる。否定を指示するための箱を加えるた
めに、マウスまたは他の利用者対話型装置が、ひとつ以
上の条件述語を選択するために使用される。次に、否定
オプションがメニューから選ばれる。流れ図の選択され
た部分122に否定(NOT)演算子を挿入した後、結果
として生ずるブール代数文は、「Z=20 OR (X>100AND NO
T (A=3 OR ((B=4 OR C=5) AND Y<5)))」である。
た、否定されるひとつの述語フィルタまたは複数の述語
フィルタのまわりに箱122を描くことによって、否定
することができる。否定を指示するための箱を加えるた
めに、マウスまたは他の利用者対話型装置が、ひとつ以
上の条件述語を選択するために使用される。次に、否定
オプションがメニューから選ばれる。流れ図の選択され
た部分122に否定(NOT)演算子を挿入した後、結果
として生ずるブール代数文は、「Z=20 OR (X>100AND NO
T (A=3 OR ((B=4 OR C=5) AND Y<5)))」である。
【0043】有効部分グラフを形成するフィルタだけ
を、一緒に否定することができる。選択された述語フィ
ルタのセットに出入りしている流れ線に基づいて有効部
分グラフを決定することは、簡単な処理である。ただひ
とつの論理的流れ線が、外側の選択されていないフィル
タから選択されたフィルタのセットに入ることができ、
ただひとつの論理的流れ線が、フィルタのセットから出
ることができる。ひとつの論理的流れ線とは、セットに
入るひとつの実際の流れ線または、同じノードから出て
セットにすぐに入る2つ以上の流れ線であると、定義さ
れる。セットから出るひとつの論理的流れ線も、同様に
定義される。それは、すぐに同じノードで終了する、ひ
とつの実際の流れ線または複数の流れ線である。
を、一緒に否定することができる。選択された述語フィ
ルタのセットに出入りしている流れ線に基づいて有効部
分グラフを決定することは、簡単な処理である。ただひ
とつの論理的流れ線が、外側の選択されていないフィル
タから選択されたフィルタのセットに入ることができ、
ただひとつの論理的流れ線が、フィルタのセットから出
ることができる。ひとつの論理的流れ線とは、セットに
入るひとつの実際の流れ線または、同じノードから出て
セットにすぐに入る2つ以上の流れ線であると、定義さ
れる。セットから出るひとつの論理的流れ線も、同様に
定義される。それは、すぐに同じノードで終了する、ひ
とつの実際の流れ線または複数の流れ線である。
【0044】図6に示された例において、フィルタ述語
「A=3」、「B=4」、「C=5」、そして「Y<5」130が選
択され、3つの流れ線辺131〜133がそれぞれ選択
されたフィルタ「C=5」、「B=4」および「A=3」のセッ
トに入る。しかし、これらはすべて同じノード103か
ら始まるので、ひとつの論理的流れ線である。また、選
択されたフィルタから出ているすべての流れ線が、同じ
ノード99で終了する。しかし、フィルタ「Z=20」は否
定演算に含むことができない。なぜなら、セットがはい
ってくる4つの流れ線辺を持ち、そのうち3つの流れ線
はひとつのノード103から派生し、4つめの流れ線は
ノード97から入ることになるからである。流れ線が別
々のノードから始まるので、この有効部分グラフは否定
するには有効ではない。したがって、否定をメニュー上
で選択することはできない。
「A=3」、「B=4」、「C=5」、そして「Y<5」130が選
択され、3つの流れ線辺131〜133がそれぞれ選択
されたフィルタ「C=5」、「B=4」および「A=3」のセッ
トに入る。しかし、これらはすべて同じノード103か
ら始まるので、ひとつの論理的流れ線である。また、選
択されたフィルタから出ているすべての流れ線が、同じ
ノード99で終了する。しかし、フィルタ「Z=20」は否
定演算に含むことができない。なぜなら、セットがはい
ってくる4つの流れ線辺を持ち、そのうち3つの流れ線
はひとつのノード103から派生し、4つめの流れ線は
ノード97から入ることになるからである。流れ線が別
々のノードから始まるので、この有効部分グラフは否定
するには有効ではない。したがって、否定をメニュー上
で選択することはできない。
【0045】行条件公式化の他の例が、図7に示され
る。これは利用者が検索の行を、すべてのマネージャお
よび全所得が15,000ドルより多い歩合制の従業員
に制限したい例である。最初に、ひとつの述語箱が行選
択ウィンドウに現れる。利用者は、述語箱に入れる行条
件述語を入力する。例における第1の述語は、15,0
00ドルを得るすべての従業員140にデータを制約す
ることである。第2の述語は、それから群を、歩合を得
る従業員142に限定するために加えられる。論理積演
算の一部として新しい述語を挿入する手順は、以下のよ
うである。第2の述語箱コネクタおよびプロンプト・パ
ネルが、利用者が、この例では「COMM notNULL」142
である新しいフィルタ述語を入力するために表示され
る。ジョブがマネージャである145という述語を加え
るために、新しい流れ線146が、つくられる。
る。これは利用者が検索の行を、すべてのマネージャお
よび全所得が15,000ドルより多い歩合制の従業員
に制限したい例である。最初に、ひとつの述語箱が行選
択ウィンドウに現れる。利用者は、述語箱に入れる行条
件述語を入力する。例における第1の述語は、15,0
00ドルを得るすべての従業員140にデータを制約す
ることである。第2の述語は、それから群を、歩合を得
る従業員142に限定するために加えられる。論理積演
算の一部として新しい述語を挿入する手順は、以下のよ
うである。第2の述語箱コネクタおよびプロンプト・パ
ネルが、利用者が、この例では「COMM notNULL」142
である新しいフィルタ述語を入力するために表示され
る。ジョブがマネージャである145という述語を加え
るために、新しい流れ線146が、つくられる。
【0046】図8に参照すると、利用者は、論理積演算
子によって結合された述語140、142を積み重ねる
積み重ね形式147となった流れ図を見ることができ
る。
子によって結合された述語140、142を積み重ねる
積み重ね形式147となった流れ図を見ることができ
る。
【0047】条件公式化処理は、また、群(GROUP)条
件のために使用することができる。利用者が、例えば列
選択処理の一部として要約機能を置くことによって、シ
ステムに群の生成を強制する入力をすると、群条件アイ
コン(図2の148参照)が、行選択アイコンの下の付
加テキストと共に現れる。例えば、利用者がテーブルか
ら列、部署、ジョブ、そして平均給与を選択すると、最
上位レベルの検索ウィンドウ(図2)が、テーブル選択
から、群のための行選択、群選択、ソートへのデータの
流れを示す。
件のために使用することができる。利用者が、例えば列
選択処理の一部として要約機能を置くことによって、シ
ステムに群の生成を強制する入力をすると、群条件アイ
コン(図2の148参照)が、行選択アイコンの下の付
加テキストと共に現れる。例えば、利用者がテーブルか
ら列、部署、ジョブ、そして平均給与を選択すると、最
上位レベルの検索ウィンドウ(図2)が、テーブル選択
から、群のための行選択、群選択、ソートへのデータの
流れを示す。
【0048】行選択ウィンドウの中で、群列情報がウィ
ンドウの右側に示される。群列選択の中の何も、直接更
新することはできない。群列を変更するためには、利用
者は後戻りして、検索にある列を選択するか、あるいは
削除しなければならない。群選択アイコンを選択する
と、流れ図条件形式を示すウィンドウ(図9参照)が表
示される。群選択ウィンドウの左側120は、全集合関
数が計算する情報を持つ。リストは、利用者にどの機能
が検索のために評価されているか表示し、行選択ウィン
ドウからの流れが連続するよう援助する。
ンドウの右側に示される。群列選択の中の何も、直接更
新することはできない。群列を変更するためには、利用
者は後戻りして、検索にある列を選択するか、あるいは
削除しなければならない。群選択アイコンを選択する
と、流れ図条件形式を示すウィンドウ(図9参照)が表
示される。群選択ウィンドウの左側120は、全集合関
数が計算する情報を持つ。リストは、利用者にどの機能
が検索のために評価されているか表示し、行選択ウィン
ドウからの流れが連続するよう援助する。
【0049】群のために条件を公式化する処理は、群選
択プロンプト・パネルが要約機能についての情報を持つ
ことを除いては、他の条件に関するものと同じである。
択プロンプト・パネルが要約機能についての情報を持つ
ことを除いては、他の条件に関するものと同じである。
【0050】検索データのためのテーブルと行の選択お
よび、列と群選択に対する条件の公式化に続く検索公式
化処理の次のステップは、検索データのソートである。
ソート機能ウィンドウは最初に、流れ線およびコネクタ
のみを表示する。利用者は、コネクタ上にマウス・カー
ソルを置き、マウス・ボタンに圧力をかけることによっ
て、ソート列を加える。利用者は、昇順のためには線の
上部に、降順のためには線の下部にコネクタを引き、マ
ウスのボタンを離す。ソート箱は、ソートできるすべて
の選択可能な列を持つリスト箱と共に、線の選択された
側に現れる。利用者が列をリスト箱から選択すると、そ
れはソート箱の中に表示される。
よび、列と群選択に対する条件の公式化に続く検索公式
化処理の次のステップは、検索データのソートである。
ソート機能ウィンドウは最初に、流れ線およびコネクタ
のみを表示する。利用者は、コネクタ上にマウス・カー
ソルを置き、マウス・ボタンに圧力をかけることによっ
て、ソート列を加える。利用者は、昇順のためには線の
上部に、降順のためには線の下部にコネクタを引き、マ
ウスのボタンを離す。ソート箱は、ソートできるすべて
の選択可能な列を持つリスト箱と共に、線の選択された
側に現れる。利用者が列をリスト箱から選択すると、そ
れはソート箱の中に表示される。
【0051】図10に参照すると、利用者は、まず部署
名を昇順で、次に従業員名を降順でソートするよう選択
した。部署名が列のリスト箱から選ばれ、ソート箱16
0の中に置かれたあと、付加ソート箱164を既存のソ
ート箱の両側につくることができるように、付加コネク
タ162が表示された。部署名の右へのコネクタが選択
され、従業員名ソートのために下方へ引かれた。ソート
するための優先順位は、左から右に読まれる。任意のソ
ートの左側のソートは、右側のソートの前に適用され
る。つまり、従業員名による降順ソートは、部署名によ
るソートの後に行われる。
名を昇順で、次に従業員名を降順でソートするよう選択
した。部署名が列のリスト箱から選ばれ、ソート箱16
0の中に置かれたあと、付加ソート箱164を既存のソ
ート箱の両側につくることができるように、付加コネク
タ162が表示された。部署名の右へのコネクタが選択
され、従業員名ソートのために下方へ引かれた。ソート
するための優先順位は、左から右に読まれる。任意のソ
ートの左側のソートは、右側のソートの前に適用され
る。つまり、従業員名による降順ソートは、部署名によ
るソートの後に行われる。
【0052】2つ以上の副検索間の和集合演算(UNIO
N)操作を含む検索の公式化は、図11に示される初期
の検索流れ図ウィンドウを使用する。選択されたデータ
行は、和集合演算機能172により統合され、次に、ソ
ートされる174。和集合演算操作は、図形の検索概要
ウィンドウのアクション・バーのプルダウンメニューか
ら選ばれる。和集合演算操作が選択されると、図11に
示されるように、検索図が概要ウィンドウの一部として
表示される。利用者は、検索詳細を指定するために、ア
イコンを広げることによって、検索のためのテーブル、
列および行選択を入力する。第2の検索のためのテーブ
ルおよび列が選択されると、選択された列は、列の数お
よびそれらのデータ型が釣り合うことを確かめるため
に、第1の検索に対して検査される。列数およびデータ
型が一致することが、SQLのUNION操作のために必要であ
る。各検索のための行選択が行われた後、検索データ
は、和集合演算操作によって統合される。
N)操作を含む検索の公式化は、図11に示される初期
の検索流れ図ウィンドウを使用する。選択されたデータ
行は、和集合演算機能172により統合され、次に、ソ
ートされる174。和集合演算操作は、図形の検索概要
ウィンドウのアクション・バーのプルダウンメニューか
ら選ばれる。和集合演算操作が選択されると、図11に
示されるように、検索図が概要ウィンドウの一部として
表示される。利用者は、検索詳細を指定するために、ア
イコンを広げることによって、検索のためのテーブル、
列および行選択を入力する。第2の検索のためのテーブ
ルおよび列が選択されると、選択された列は、列の数お
よびそれらのデータ型が釣り合うことを確かめるため
に、第1の検索に対して検査される。列数およびデータ
型が一致することが、SQLのUNION操作のために必要であ
る。各検索のための行選択が行われた後、検索データ
は、和集合演算操作によって統合される。
【0053】行条件に対する流れ図表現の有向グラフ
は、利用者が行条件を両方の形式で見てよりよく理解で
きるように、ブール代数文としても表示される。有向グ
ラフは、図13、図14および図19、図20、図21
のアルゴリズムを使用して、ブール代数文に変換され
る。ブール文は、図24、図25、図26のアルゴリズ
ムを使用して、有向グラフに変換される。
は、利用者が行条件を両方の形式で見てよりよく理解で
きるように、ブール代数文としても表示される。有向グ
ラフは、図13、図14および図19、図20、図21
のアルゴリズムを使用して、ブール代数文に変換され
る。ブール文は、図24、図25、図26のアルゴリズ
ムを使用して、有向グラフに変換される。
【0054】一般に図形は、辺により結合されていな
い、または辺によって結合されている、ひとつ以上のノ
ードの組である。図形的には、ノードは四角によって表
わすことができ、辺は四角を結合する線によって表わす
ことができる。ノードに対する識別は、四角の内側に置
くことができる。辺は、線の側に置かれた名前によっ
て、または辺が結合する2つのノードを参照することに
よって、識別することができる。図形は、ノードのリス
トまたは辺のリストとして、定義することができる。
い、または辺によって結合されている、ひとつ以上のノ
ードの組である。図形的には、ノードは四角によって表
わすことができ、辺は四角を結合する線によって表わす
ことができる。ノードに対する識別は、四角の内側に置
くことができる。辺は、線の側に置かれた名前によっ
て、または辺が結合する2つのノードを参照することに
よって、識別することができる。図形は、ノードのリス
トまたは辺のリストとして、定義することができる。
【0055】有向グラフは、辺が方向を示す図形の部分
集合(サブセット)である。図形的に、有向グラフは辺
上の矢印によって表される。リスト形式において、有向
グラフ辺は、フロム・ノード(From-Node)およびツー
・ノード(To-Nodes)のリストを持つ。有向グラフのさ
らに発展したサブセットは、ただひとつの開始ノードと
終了ノードを持ち、環状経路を持たないサブセットであ
る。
集合(サブセット)である。図形的に、有向グラフは辺
上の矢印によって表される。リスト形式において、有向
グラフ辺は、フロム・ノード(From-Node)およびツー
・ノード(To-Nodes)のリストを持つ。有向グラフのさ
らに発展したサブセットは、ただひとつの開始ノードと
終了ノードを持ち、環状経路を持たないサブセットであ
る。
【0056】正確に等価なブール条件を持たない有向グ
ラフを持つこともあり得る。しかし、論理上等価なブー
ル条件を生成することは常に可能である。
ラフを持つこともあり得る。しかし、論理上等価なブー
ル条件を生成することは常に可能である。
【0057】本発明において、流れ図表現は、環状経路
のない有向グラフである。実際の条件は辺によって表わ
され、それに対し、ノードは条件中の論理積および論理
和文の構成に従って置かれる。
のない有向グラフである。実際の条件は辺によって表わ
され、それに対し、ノードは条件中の論理積および論理
和文の構成に従って置かれる。
【0058】本発明は、検索流れ表現の有向非環状図形
を、まず図12および図13、図14に示される圧縮ア
ルゴリズムを使用して、対応するブール代数文に変換す
る。圧縮アルゴリズムは常に、2つの辺を組み合わせ
て、それを1つの辺に置き換えようとする。2つの辺が
同じツー・ノードおよびフロム・ノードを持つ180
時、辺はひとつの辺に結合され、論理和操作181によ
って結合されたそれぞれの辺の条件を表す。2つの辺
が、間に第3のノードを持ち連続しており、第3のノー
ドには、それらの2つ辺だけが出入りする182時、2
つの辺はひとつの辺に結合され、論理積操作によって結
合されたそれぞれの辺の条件を表し、間の第3のノード
は削除される183。
を、まず図12および図13、図14に示される圧縮ア
ルゴリズムを使用して、対応するブール代数文に変換す
る。圧縮アルゴリズムは常に、2つの辺を組み合わせ
て、それを1つの辺に置き換えようとする。2つの辺が
同じツー・ノードおよびフロム・ノードを持つ180
時、辺はひとつの辺に結合され、論理和操作181によ
って結合されたそれぞれの辺の条件を表す。2つの辺
が、間に第3のノードを持ち連続しており、第3のノー
ドには、それらの2つ辺だけが出入りする182時、2
つの辺はひとつの辺に結合され、論理積操作によって結
合されたそれぞれの辺の条件を表し、間の第3のノード
は削除される183。
【0059】この目的は、図形を、ただ2つのノードお
よびひとつの辺を持つ完全に縮小された図形に圧縮する
ことである。しかし、図形を完全に圧縮することができ
ない場合もある。図形は、最少数のノードおよび辺に圧
縮された後、拡張および割当てアルゴリズムを使用して
ブール代数文に変換される。
よびひとつの辺を持つ完全に縮小された図形に圧縮する
ことである。しかし、図形を完全に圧縮することができ
ない場合もある。図形は、最少数のノードおよび辺に圧
縮された後、拡張および割当てアルゴリズムを使用して
ブール代数文に変換される。
【0060】圧縮アルゴリズムは、図15に示される単
純な図形を使用して説明することができる。図形184
は、4つのノードA、B、C、およびD185、および
5つの辺(それぞれの辺に割り当てられたP1〜P5の
述語をもつ1〜5の辺)186、からなる。図形の各ノ
ードの、以下の情報が表187に保存される。ノードに
入っている辺の数188、ノードから出ている辺の数1
89、ノードに入っている辺のリスト190、そしてノ
ードから出ている辺のリスト191。
純な図形を使用して説明することができる。図形184
は、4つのノードA、B、C、およびD185、および
5つの辺(それぞれの辺に割り当てられたP1〜P5の
述語をもつ1〜5の辺)186、からなる。図形の各ノ
ードの、以下の情報が表187に保存される。ノードに
入っている辺の数188、ノードから出ている辺の数1
89、ノードに入っている辺のリスト190、そしてノ
ードから出ている辺のリスト191。
【0061】図12および図13、図14に示される処
理において、ノード・テーブル(図15の185)は、
辺を結合しようとして繰返すループ194の中で処理さ
れる。ループは、ノード・アレイを完全に通り、ひとつ
の辺も結合されなかった196時、終了する。2つの辺
が、同じ第1のノードから出て同じ第2のノードに入る
180時、述語の値は、論理和演算子で結合され第1の
辺に割り当てられる。そして第2の述語への参照は、除
去される181。ひとつの辺だけがノードに入り、ひと
つの辺だけがノードから出ている182時、述語の値は
論理積操作で結合され、ノードに入っている辺に割り当
てられる。その辺は、第2の辺のノードに入るように割
り当てられる183。
理において、ノード・テーブル(図15の185)は、
辺を結合しようとして繰返すループ194の中で処理さ
れる。ループは、ノード・アレイを完全に通り、ひとつ
の辺も結合されなかった196時、終了する。2つの辺
が、同じ第1のノードから出て同じ第2のノードに入る
180時、述語の値は、論理和演算子で結合され第1の
辺に割り当てられる。そして第2の述語への参照は、除
去される181。ひとつの辺だけがノードに入り、ひと
つの辺だけがノードから出ている182時、述語の値は
論理積操作で結合され、ノードに入っている辺に割り当
てられる。その辺は、第2の辺のノードに入るように割
り当てられる183。
【0062】(図12および図13、図14のアルゴリ
ズムに従って)図15に示された例図形を処理するにあ
たり、第1の繰返しは、圧縮の基準に会わないのでノー
ドAおよびBをスキップする。しかし、ノードCにはひ
とつ以上の辺が入っているので(図13の197)、入
る辺のリスト(辺1、2、5)がそれぞれ検査される1
81。辺1および辺2は両方とも同じノードから出てい
るので、述語は論理和演算子によって結合され、辺1に
割り当てられる。辺2へのすべての参照が、削除され
る。次にDは、入辺カウントが1および出辺カウントが
1なので、除去される。ノードDに入りそこから出てい
る2つの辺の述語は、論理積演算子によって結合され、
第1の辺に割り当てられる。第1の辺のツー・ノード
は、第2の辺のツー・ノードによって更新され、第2の
辺は削除される。
ズムに従って)図15に示された例図形を処理するにあ
たり、第1の繰返しは、圧縮の基準に会わないのでノー
ドAおよびBをスキップする。しかし、ノードCにはひ
とつ以上の辺が入っているので(図13の197)、入
る辺のリスト(辺1、2、5)がそれぞれ検査される1
81。辺1および辺2は両方とも同じノードから出てい
るので、述語は論理和演算子によって結合され、辺1に
割り当てられる。辺2へのすべての参照が、削除され
る。次にDは、入辺カウントが1および出辺カウントが
1なので、除去される。ノードDに入りそこから出てい
る2つの辺の述語は、論理積演算子によって結合され、
第1の辺に割り当てられる。第1の辺のツー・ノード
は、第2の辺のツー・ノードによって更新され、第2の
辺は削除される。
【0063】変換は最後の繰返しまたはパスの間に行わ
れたので(辺1、辺2そして辺4、辺5は結合され
た)、ノード・アレイの他のパスが実行される。第1の
パスの終わりでは、ノードAは入る辺は持たず、2つの
出る辺(辺1および辺4)を持つ。ノードBは、ひとつ
入る辺(辺3)を持ち、出る辺は持たない。ノードC
は、2つの入る辺(辺1および辺5)を持ち、ひとつの
出る辺(辺3)を持つ。ノードDは、削除されている。
辺1は、述語「(P1)OR(P2)」を割り当てられ、辺2
は削除され、辺3は述語「P3」を割り当てられ、そして
辺4は、述語「(P4) AND (P5)」を割り当てられる。
れたので(辺1、辺2そして辺4、辺5は結合され
た)、ノード・アレイの他のパスが実行される。第1の
パスの終わりでは、ノードAは入る辺は持たず、2つの
出る辺(辺1および辺4)を持つ。ノードBは、ひとつ
入る辺(辺3)を持ち、出る辺は持たない。ノードC
は、2つの入る辺(辺1および辺5)を持ち、ひとつの
出る辺(辺3)を持つ。ノードDは、削除されている。
辺1は、述語「(P1)OR(P2)」を割り当てられ、辺2
は削除され、辺3は述語「P3」を割り当てられ、そして
辺4は、述語「(P4) AND (P5)」を割り当てられる。
【0064】第2のパスにおいて、ノードCは、1より
大きい入辺カウントを持つので、検査される。ノードC
に入っている辺のリストを調べると、辺1および辺4が
同じフロム・ノード、ノードAを持つということがわか
る。したがって、2つの辺、1および4は、論理和演算
で組み合わせられる。第2のパスの終わりでは、ノード
Aは入る辺を持たず、ひとつの出る辺(辺1)を持つ。
ノードBはひとつの入る辺(辺3)持ち、出る辺は持た
ない。ノードCは、ひとつの入る辺(辺1)とひとつの
出る辺(辺3)を持つ。辺1は、述語「((P1) OR (P2))
OR ((P4) AND(P5))」を割り当てられ、辺3は述語「P
3」を割り当てられ、辺4は削除された。
大きい入辺カウントを持つので、検査される。ノードC
に入っている辺のリストを調べると、辺1および辺4が
同じフロム・ノード、ノードAを持つということがわか
る。したがって、2つの辺、1および4は、論理和演算
で組み合わせられる。第2のパスの終わりでは、ノード
Aは入る辺を持たず、ひとつの出る辺(辺1)を持つ。
ノードBはひとつの入る辺(辺3)持ち、出る辺は持た
ない。ノードCは、ひとつの入る辺(辺1)とひとつの
出る辺(辺3)を持つ。辺1は、述語「((P1) OR (P2))
OR ((P4) AND(P5))」を割り当てられ、辺3は述語「P
3」を割り当てられ、辺4は削除された。
【0065】ノード・アレイの次のループにおいて、ノ
ードCは、入辺カウント1および出辺カウント1を持
つ。ノードCに入りそこから出る辺は、論理積演算子に
よって結合される。この圧縮操作の結果、図形は2つの
ノードおよび1つの辺の実現可能な最小限の図形(図1
6の200)に縮小される。ここには、AおよびBの2
つのノードがあり、辺ABに割り当てられた述語は、
「((P1) OR (P2)) OR ((P4) AND (P5)) AND (P3)」であ
る。
ードCは、入辺カウント1および出辺カウント1を持
つ。ノードCに入りそこから出る辺は、論理積演算子に
よって結合される。この圧縮操作の結果、図形は2つの
ノードおよび1つの辺の実現可能な最小限の図形(図1
6の200)に縮小される。ここには、AおよびBの2
つのノードがあり、辺ABに割り当てられた述語は、
「((P1) OR (P2)) OR ((P4) AND (P5)) AND (P3)」であ
る。
【0066】前述の例は、必ずしもその限りではない。
図22に示される図形201は、2つのノードとひとつ
の辺に縮小されていないけれども、ノードおよび辺アレ
イがこれ以上圧縮されることができない図形の例であ
る。
図22に示される図形201は、2つのノードとひとつ
の辺に縮小されていないけれども、ノードおよび辺アレ
イがこれ以上圧縮されることができない図形の例であ
る。
【0067】図17、図18および図19、図20、図
21の割当てアルゴリズムは、圧縮された図形が完全に
縮小されたかどうかに関わらず、対応するブール代数文
を割り当てる。
21の割当てアルゴリズムは、圧縮された図形が完全に
縮小されたかどうかに関わらず、対応するブール代数文
を割り当てる。
【0068】割当てまたは拡張アルゴリズムは、開始ノ
ードから終了ノードへ図形を通る各一意的な経路(パ
ス)を見つけようと試みる。図形それ自身は、それ以上
処理されない。その代わりに、図形がトラバースされ、
ブールテキスト文字列が生成される。一度にただひとつ
の経路しかトラバースすることができないので、スタッ
クが図形を通る各新しい経路を保持するのに使用され
る。スタックがからのとき、これ以上の経路は処理され
ず、ブール条件が完成する。拡張アルゴリズムは、ブー
ル代数文文字列を作りながら、図形を通る各経路をトラ
バースする。アルゴリズムは、主となる文字列に少しづ
つテキストの部分を挿入する。テキストを挿入する必要
がある場所のリストが、スタック上に保持される。
ードから終了ノードへ図形を通る各一意的な経路(パ
ス)を見つけようと試みる。図形それ自身は、それ以上
処理されない。その代わりに、図形がトラバースされ、
ブールテキスト文字列が生成される。一度にただひとつ
の経路しかトラバースすることができないので、スタッ
クが図形を通る各新しい経路を保持するのに使用され
る。スタックがからのとき、これ以上の経路は処理され
ず、ブール条件が完成する。拡張アルゴリズムは、ブー
ル代数文文字列を作りながら、図形を通る各経路をトラ
バースする。アルゴリズムは、主となる文字列に少しづ
つテキストの部分を挿入する。テキストを挿入する必要
がある場所のリストが、スタック上に保持される。
【0069】図形が、図16の圧縮された図形のよう
に、2つのノードとひとつの辺に縮小されているなら
ば、開始から終了まで可能な経路はひとつしかないの
で、拡張アルゴリズムのするべきことはあまりない。
に、2つのノードとひとつの辺に縮小されているなら
ば、開始から終了まで可能な経路はひとつしかないの
で、拡張アルゴリズムのするべきことはあまりない。
【0070】図17、図18および図19、図20、図
21に参照すると、第1のステップは、拡張アルゴリズ
ムのための変数の初期化205である。変数のうち2つ
は、開始ノード(図形の開始ノード)および終了ノード
(図形の終了ノード)である。開始および終了ノード
は、圧縮アルゴリズムの中で使用される入および出アレ
イから、決定することができる。開始ノードは、入辺カ
ウントがゼロであり、出辺カウントがゼロより大きい。
終了ノードは、入辺カウントがゼロより大きく、出辺カ
ウントがゼロである。他の変数ブールテキストは、ブー
ル代数文を持つテキスト文字列である。テキスト変数
は、ヌルの初期値を持つ。
21に参照すると、第1のステップは、拡張アルゴリズ
ムのための変数の初期化205である。変数のうち2つ
は、開始ノード(図形の開始ノード)および終了ノード
(図形の終了ノード)である。開始および終了ノード
は、圧縮アルゴリズムの中で使用される入および出アレ
イから、決定することができる。開始ノードは、入辺カ
ウントがゼロであり、出辺カウントがゼロより大きい。
終了ノードは、入辺カウントがゼロより大きく、出辺カ
ウントがゼロである。他の変数ブールテキストは、ブー
ル代数文を持つテキスト文字列である。テキスト変数
は、ヌルの初期値を持つ。
【0071】スタックは、ノード値およびテキスト位置
ポインタの対を持つ。ノードは、図形中の現在処理が行
われている場所を表わし、位置ポインタはテキスト文字
列の挿入が行われる場所である。開始ノードおよび、テ
キストの開始位置を示す位置値が、最初にスタックに入
れられる。
ポインタの対を持つ。ノードは、図形中の現在処理が行
われている場所を表わし、位置ポインタはテキスト文字
列の挿入が行われる場所である。開始ノードおよび、テ
キストの開始位置を示す位置値が、最初にスタックに入
れられる。
【0072】初期化が完了すると、図形は、スタックが
からになるまで、スタック中に保存されたノードを連続
して処理する。最上位値がスタックからポップアップさ
れ変数の現在ノードおよび現在位置に置かれ、辺カウン
トはゼロにセットされる207。図形の各辺は、辺に対
するフロム・ノードが現在ノードと同じであるならば、
カウントは1増加される208。辺カウントが1より大
きいならば、テキスト「OR」が、ブールテキストの位置
変数(「プレース」)によって定義される場所に挿入さ
れ、位置変数は挿入されたテキストの後の位置まで増加
される209。辺に対するツー・ノードが終了ノードと
同じでない(辺が終了ノードまで行かない)時、開始括
弧「(」がブールテキストの、位置変数によって定義さ
れる位置に置かれ、現在位置は挿入されたテキストの後
の位置を示すように増加される210。辺に割り当てら
れた述語テキストが、ブールテキストの位置変数によっ
て定義される場所に挿入され、位置は挿入の後まで増加
される211。辺に対するツー・ノードが終了ノードと
同じでないならば、テキスト「AND」および開始括弧
が、ブールテキストの位置変数によって定義される場所
に置かれ、位置変数はそのテキストの後の位置まで増加
される。辺のツー・ノードおよび位置変数は、スタック
に入れられる。そして2つの終了括弧テキスト「))」
がまた、テキストの位置変数の位置に加えられ、カウン
タ変数が増加される212。
からになるまで、スタック中に保存されたノードを連続
して処理する。最上位値がスタックからポップアップさ
れ変数の現在ノードおよび現在位置に置かれ、辺カウン
トはゼロにセットされる207。図形の各辺は、辺に対
するフロム・ノードが現在ノードと同じであるならば、
カウントは1増加される208。辺カウントが1より大
きいならば、テキスト「OR」が、ブールテキストの位置
変数(「プレース」)によって定義される場所に挿入さ
れ、位置変数は挿入されたテキストの後の位置まで増加
される209。辺に対するツー・ノードが終了ノードと
同じでない(辺が終了ノードまで行かない)時、開始括
弧「(」がブールテキストの、位置変数によって定義さ
れる位置に置かれ、現在位置は挿入されたテキストの後
の位置を示すように増加される210。辺に割り当てら
れた述語テキストが、ブールテキストの位置変数によっ
て定義される場所に挿入され、位置は挿入の後まで増加
される211。辺に対するツー・ノードが終了ノードと
同じでないならば、テキスト「AND」および開始括弧
が、ブールテキストの位置変数によって定義される場所
に置かれ、位置変数はそのテキストの後の位置まで増加
される。辺のツー・ノードおよび位置変数は、スタック
に入れられる。そして2つの終了括弧テキスト「))」
がまた、テキストの位置変数の位置に加えられ、カウン
タ変数が増加される212。
【0073】拡張アルゴリズムを、図22の完全に圧縮
された図形201の例を使用して、さらに説明する。例
において、4つのノード、A、B、C、D213があ
り、そしてそれぞれ述語P1〜P5を割り当てられた5つの
辺1〜5、214がある。ノード・アレイ215にリス
トされる(そして図形201に示される)ように、辺1
はノードAからノードCへ行き、辺2はノードCからノ
ードDへ行き、辺3はノードAからノードDへ行き、辺
4はノードCからノードBへ行き、辺5はノードDから
ノードBへ行く。ノードへ入る辺およびノードから出る
辺を見ることで、ノードAが開始ノードでありノードB
が終了ノードであることがわかる。スタック216は、
初期化の後、ノードAおよび、位置変数(同様に「プレ
ース」と呼ばれる)に対する値1を保持する。
された図形201の例を使用して、さらに説明する。例
において、4つのノード、A、B、C、D213があ
り、そしてそれぞれ述語P1〜P5を割り当てられた5つの
辺1〜5、214がある。ノード・アレイ215にリス
トされる(そして図形201に示される)ように、辺1
はノードAからノードCへ行き、辺2はノードCからノ
ードDへ行き、辺3はノードAからノードDへ行き、辺
4はノードCからノードBへ行き、辺5はノードDから
ノードBへ行く。ノードへ入る辺およびノードから出る
辺を見ることで、ノードAが開始ノードでありノードB
が終了ノードであることがわかる。スタック216は、
初期化の後、ノードAおよび、位置変数(同様に「プレ
ース」と呼ばれる)に対する値1を保持する。
【0074】ノードA、およびプレース値1が、スタッ
クからポップアップされる。フロム・ノードとしてノー
ドAを持つ辺のために辺リストが検索され、第1の辺、
辺1が識別される。辺カウント変数は、1増加される。
辺1のツー・ノード、ノードC、は終了ノード、ノード
B、ではないので、左括弧がテキストのプレースの位置
に加えられる(図17の210)。次に、辺1と関連す
る実際の述語テキストP1が、文字列テキスト変数のプレ
ースの位置に置かれる。(図17の211)。次に、語
「AND」が左括弧と共に加えられる。辺1のツー・ノー
ド、ノードC、およびプレースの現在値(ANDおよび左
括弧の直後)が、スタックに入れられる。最後に、2つ
の右括弧が文字列に置かれ、プレース変数はその位置ま
で増加される(図18の212)。第1の繰返しの終わ
りには、ブール文テキストは「(P1 AND ( ))」の値を持
ち、プレースの現在値は右端の括弧の次の値である。ま
た、ノードCおよび「AND (」に続くプレース値が、ス
タックに入れられている。
クからポップアップされる。フロム・ノードとしてノー
ドAを持つ辺のために辺リストが検索され、第1の辺、
辺1が識別される。辺カウント変数は、1増加される。
辺1のツー・ノード、ノードC、は終了ノード、ノード
B、ではないので、左括弧がテキストのプレースの位置
に加えられる(図17の210)。次に、辺1と関連す
る実際の述語テキストP1が、文字列テキスト変数のプレ
ースの位置に置かれる。(図17の211)。次に、語
「AND」が左括弧と共に加えられる。辺1のツー・ノー
ド、ノードC、およびプレースの現在値(ANDおよび左
括弧の直後)が、スタックに入れられる。最後に、2つ
の右括弧が文字列に置かれ、プレース変数はその位置ま
で増加される(図18の212)。第1の繰返しの終わ
りには、ブール文テキストは「(P1 AND ( ))」の値を持
ち、プレースの現在値は右端の括弧の次の値である。ま
た、ノードCおよび「AND (」に続くプレース値が、ス
タックに入れられている。
【0075】処理は、続けてフロム・ノードとしてノー
ドAを持っている辺を識別し(図18の220)、辺3
(P3)が識別される。辺カウント変数は2に増加され
る。これは、現在ノードがそこから出る2つの辺を持
ち、辺の述語間に論理和演算があることを示す。テキス
ト「OR」は、文字列の現在位置(右端の括弧の後)に置
かれる。辺3のツー・ノード、ノードDが終了ノードで
はないので、直前の辺、辺1、と同様の処理が実行され
る。つまり、本繰返しの終わりにはブール文テキスト
は、「(P1 AND ()) OR (P3 AND ())」(P3はノードDに
割り当てられた述語である)であり、プレースは右端の
括弧の終了位置であり、スタックは、ノードCおよび
「P1 AND (」に続く位置変数に加えて、ノードDおよび
文字列「P3 AND (」に続く位置ポインタ(プレース)を
持つ。
ドAを持っている辺を識別し(図18の220)、辺3
(P3)が識別される。辺カウント変数は2に増加され
る。これは、現在ノードがそこから出る2つの辺を持
ち、辺の述語間に論理和演算があることを示す。テキス
ト「OR」は、文字列の現在位置(右端の括弧の後)に置
かれる。辺3のツー・ノード、ノードDが終了ノードで
はないので、直前の辺、辺1、と同様の処理が実行され
る。つまり、本繰返しの終わりにはブール文テキスト
は、「(P1 AND ()) OR (P3 AND ())」(P3はノードDに
割り当てられた述語である)であり、プレースは右端の
括弧の終了位置であり、スタックは、ノードCおよび
「P1 AND (」に続く位置変数に加えて、ノードDおよび
文字列「P3 AND (」に続く位置ポインタ(プレース)を
持つ。
【0076】他のいかなる辺も現在ノード、ノードAを
フロム・ノードとして持たないので、新しいノードがス
タックからポップアップされ、ノードDおよびテキスト
「P3AND (」に続く新しい位置ポインタ値が、現在ノー
ドおよびプレース値となる。フロム・ノードとしてノー
ドDを持つただひとつの辺は、辺5である。辺5のツー
・ノードは終了ノード、ノードBであるので、テキスト
変数の現在のプレースの位置に、辺5に割り当てられた
述語を加えればよいだけである。この繰返しの終わりに
は、テキスト文字列は、「(P1 AND ()) OR (P3 AND (P
5))」であり、スタックはまだノードCおよび「P1 AND
(」に続くプレース値を持つ。
フロム・ノードとして持たないので、新しいノードがス
タックからポップアップされ、ノードDおよびテキスト
「P3AND (」に続く新しい位置ポインタ値が、現在ノー
ドおよびプレース値となる。フロム・ノードとしてノー
ドDを持つただひとつの辺は、辺5である。辺5のツー
・ノードは終了ノード、ノードBであるので、テキスト
変数の現在のプレースの位置に、辺5に割り当てられた
述語を加えればよいだけである。この繰返しの終わりに
は、テキスト文字列は、「(P1 AND ()) OR (P3 AND (P
5))」であり、スタックはまだノードCおよび「P1 AND
(」に続くプレース値を持つ。
【0077】スタックは、現在ノードとしてのノードC
およびテキスト部分「P1 AND (」に続く位置値を得るた
めに、ふたたびポップアップされる。フロム・ノードと
してノードCを持つ最初の辺は、辺2である。辺2はツ
ー・ノードとしてノードDを持つ(これは終了ノードで
はない)。現在ノードに対する辺カウントは1の値を持
ち、述語「P2」が辺2に割り当てられる。処理は、上記
のものと同様である。結果として生ずるテキスト文字列
は、「(P1 AND ((P2 AND ( )) )) OR (P3 ANDP5))」で
あり、プレース・ポインタは「( ))」の後の位置を示
す。スタックは、ノードDおよび「P2 AND (」の後の位
置を示すプレース値を持つ。次にフロム・ノードとして
ノードCを持つ辺は、述語「P4」を割り当てられた辺4
である。辺カウントは、2に増加される。辺4のツー・
ノードは、終了ノード、ノードBである。この繰返しの
結果、テキスト文字列は、「P1 AND ((P2 AND ( )) OR
(P4)) OR (P3 AND (P5))」となる。
およびテキスト部分「P1 AND (」に続く位置値を得るた
めに、ふたたびポップアップされる。フロム・ノードと
してノードCを持つ最初の辺は、辺2である。辺2はツ
ー・ノードとしてノードDを持つ(これは終了ノードで
はない)。現在ノードに対する辺カウントは1の値を持
ち、述語「P2」が辺2に割り当てられる。処理は、上記
のものと同様である。結果として生ずるテキスト文字列
は、「(P1 AND ((P2 AND ( )) )) OR (P3 ANDP5))」で
あり、プレース・ポインタは「( ))」の後の位置を示
す。スタックは、ノードDおよび「P2 AND (」の後の位
置を示すプレース値を持つ。次にフロム・ノードとして
ノードCを持つ辺は、述語「P4」を割り当てられた辺4
である。辺カウントは、2に増加される。辺4のツー・
ノードは、終了ノード、ノードBである。この繰返しの
結果、テキスト文字列は、「P1 AND ((P2 AND ( )) OR
(P4)) OR (P3 AND (P5))」となる。
【0078】フロム・ノードとしてノードCを持つ他の
辺はないので、スタックがポップアップされ、現在ノー
ドはノードDとなり、現在プレースは「P2 AND (」の後
の位置になる。フロム・ノードとしてノードDを持つ唯
一の辺は、述語「P5」を割り当てられた辺5である。辺
カウントが1であるので、辺5のツー・ノードは終了ノ
ードである。実行される唯一の操作は、現在位置に「P
5」を挿入することである。その結果テキストは、「P1
AND ((P2 AND (P5)) OR (P4)) OR (P3 AND (P5))」とな
る。ノードDが処理されたあと、スタックがからなので
ループが終了し、ブール代数文の最終的なテキスト値が
完了する。
辺はないので、スタックがポップアップされ、現在ノー
ドはノードDとなり、現在プレースは「P2 AND (」の後
の位置になる。フロム・ノードとしてノードDを持つ唯
一の辺は、述語「P5」を割り当てられた辺5である。辺
カウントが1であるので、辺5のツー・ノードは終了ノ
ードである。実行される唯一の操作は、現在位置に「P
5」を挿入することである。その結果テキストは、「P1
AND ((P2 AND (P5)) OR (P4)) OR (P3 AND (P5))」とな
る。ノードDが処理されたあと、スタックがからなので
ループが終了し、ブール代数文の最終的なテキスト値が
完了する。
【0079】拡張グラフ理論はそれ自身、圧縮アルゴリ
ズムなしで使用することもできる。しかし、つくられる
ブール文テキストは、図形の正確なマッピングであるブ
ール代数文を生成するとは限らない。たとえば、拡張図
形からのテキスト出力が、「((C1) AND (C3)) OR (C2 A
ND C3)」である同じ図形から、圧縮アルゴリズムの後
に、拡張アルゴリズムを適用すると「(C1 or C2) and C
3」というテキストが生成される。後者のブール代数文
は、より有効な表現であり、対応する図形のより正確な
翻訳である。
ズムなしで使用することもできる。しかし、つくられる
ブール文テキストは、図形の正確なマッピングであるブ
ール代数文を生成するとは限らない。たとえば、拡張図
形からのテキスト出力が、「((C1) AND (C3)) OR (C2 A
ND C3)」である同じ図形から、圧縮アルゴリズムの後
に、拡張アルゴリズムを適用すると「(C1 or C2) and C
3」というテキストが生成される。後者のブール代数文
は、より有効な表現であり、対応する図形のより正確な
翻訳である。
【0080】ブール代数文は、図23および図24、図
25、図26のブール文から有向グラフへのアルゴリズ
ムを使用して、流れ図表現に変換される。アルゴリズム
は、「(X > 1) AND (Y = 2)」のような構造のブール文
から、対応する有向グラフを作成する。有向グラフは、
他の手段によって表示あるいは変更することができる。
25、図26のブール文から有向グラフへのアルゴリズ
ムを使用して、流れ図表現に変換される。アルゴリズム
は、「(X > 1) AND (Y = 2)」のような構造のブール文
から、対応する有向グラフを作成する。有向グラフは、
他の手段によって表示あるいは変更することができる。
【0081】アルゴリズムには2つの部分がある。第1
の部分は、ブール代数文のパーズ木をつくること230
であり、第2の部分は、パーズ木を使用しての図形作成
アルゴリズム232である。パーズ木は、葉および非葉
から成る。ひとつの非葉は、根要素である。すべての非
葉は、2つの子、左の子および右の子を持つ。パーズ木
の各要素は、述語、論理和演算子(OR)または論理積演
算子(AND)である。木の葉は常に述語であり、非葉は
演算子である。パーズ木の作成は既知の方法論であるの
で、ここでは詳細に説明しない。パーズ木が作成された
あと、木は有向グラフを作るノードおよび辺を作成しな
がら、トラバースされる。
の部分は、ブール代数文のパーズ木をつくること230
であり、第2の部分は、パーズ木を使用しての図形作成
アルゴリズム232である。パーズ木は、葉および非葉
から成る。ひとつの非葉は、根要素である。すべての非
葉は、2つの子、左の子および右の子を持つ。パーズ木
の各要素は、述語、論理和演算子(OR)または論理積演
算子(AND)である。木の葉は常に述語であり、非葉は
演算子である。パーズ木の作成は既知の方法論であるの
で、ここでは詳細に説明しない。パーズ木が作成された
あと、木は有向グラフを作るノードおよび辺を作成しな
がら、トラバースされる。
【0082】図形作成アルゴリズムは、ツー・ノードお
よびフロム・ノード値を木の根に割り当てることから始
まる234。それから、アルゴリズムは予め順序づけら
れたトラバーサルに従って、木のあらゆる要素を処理す
る。
よびフロム・ノード値を木の根に割り当てることから始
まる234。それから、アルゴリズムは予め順序づけら
れたトラバーサルに従って、木のあらゆる要素を処理す
る。
【0083】要素が「X > 1」のような述語を表わすと
き、その要素のツー・ノードとフロム・ノードを結合す
るひとつの辺が作成され、その辺はその要素の述語を割
り当てられる236。フロム・ノードおよびツー・ノー
ドは、要素の親コネクタを処理した時割り当てられてい
る。要素が論理和演算子を表す時、要素のフロム・ノー
ドおよびツー・ノードは、その要素の2つの子のフロム
・ノードおよびツー・ノードとして割り当てられる23
8。このようにして、子要素が処理される時、それらの
ツー・ノードおよびフロム・ノード値は既に割り当てら
れている。要素が論理積演算子を表す時、新しいノード
を現在のフロム・ノードおよびツー・ノードの間に作成
しなければならない。左の子のフロム・ノードは、この
演算子のフロム・ノードと同じにセットされる。新しい
ノードは、この子のツー・ノードとして割り当てられ
る。この同じ新しいノードはまた、右の子のフロム・ノ
ードとして割り当てられる。右の子のツー・ノードは、
演算子のツー・ノードと同じである240。こうして、
要素間に新しいノードを挿入することができる。このよ
うにして、論理積演算子のすべての子要素に、ツー・ノ
ードおよびフロム・ノード値が割り当てられる。
き、その要素のツー・ノードとフロム・ノードを結合す
るひとつの辺が作成され、その辺はその要素の述語を割
り当てられる236。フロム・ノードおよびツー・ノー
ドは、要素の親コネクタを処理した時割り当てられてい
る。要素が論理和演算子を表す時、要素のフロム・ノー
ドおよびツー・ノードは、その要素の2つの子のフロム
・ノードおよびツー・ノードとして割り当てられる23
8。このようにして、子要素が処理される時、それらの
ツー・ノードおよびフロム・ノード値は既に割り当てら
れている。要素が論理積演算子を表す時、新しいノード
を現在のフロム・ノードおよびツー・ノードの間に作成
しなければならない。左の子のフロム・ノードは、この
演算子のフロム・ノードと同じにセットされる。新しい
ノードは、この子のツー・ノードとして割り当てられ
る。この同じ新しいノードはまた、右の子のフロム・ノ
ードとして割り当てられる。右の子のツー・ノードは、
演算子のツー・ノードと同じである240。こうして、
要素間に新しいノードを挿入することができる。このよ
うにして、論理積演算子のすべての子要素に、ツー・ノ
ードおよびフロム・ノード値が割り当てられる。
【0084】ブール文のパーズ木の有向グラフへの変換
は、図27のパーズ木250に参照して説明される。パ
ーズ木250は、「A<1 or (B<2 and C<3)」のブール文
に対応する。
は、図27のパーズ木250に参照して説明される。パ
ーズ木250は、「A<1 or (B<2 and C<3)」のブール文
に対応する。
【0085】第1のステップは、木の根要素「OR」のツ
ー・ノードおよびフロム・ノード・フィールドを初期化
することである。根ノードのツー・ノードおよびフロム
・ノードは、図形の開始ノードおよび終了ノード(ノー
ド1、ノード2)である。次に、木から予め順序づけら
れたトラバーサルが生成される。
ー・ノードおよびフロム・ノード・フィールドを初期化
することである。根ノードのツー・ノードおよびフロム
・ノードは、図形の開始ノードおよび終了ノード(ノー
ド1、ノード2)である。次に、木から予め順序づけら
れたトラバーサルが生成される。
【0086】予め順序づけられたトラバーサルは根要素
を通り、それから、図27にリストされた順番で他の要
素を通る。第1の要素は根251であり、第2の要素は
(根の左の子は子を持たないので)根の左の子252で
あり、第3の要素は根の右の子253であり、第4の要
素は根の右の子の左の子254であり、そして第5の要
素は根の右の子の右の子255である。したがって、第
1の要素は根「OR」、第2の要素は「A<1」、第3の要
素は「AND」、第4の要素は「B<2」、第5の要素は「C<
3」である。
を通り、それから、図27にリストされた順番で他の要
素を通る。第1の要素は根251であり、第2の要素は
(根の左の子は子を持たないので)根の左の子252で
あり、第3の要素は根の右の子253であり、第4の要
素は根の右の子の左の子254であり、そして第5の要
素は根の右の子の右の子255である。したがって、第
1の要素は根「OR」、第2の要素は「A<1」、第3の要
素は「AND」、第4の要素は「B<2」、第5の要素は「C<
3」である。
【0087】第1の要素の子252、253、および論
理和演算子251のツー・ノードおよびフロム・ノード
は、論理和演算子のツー・ノードおよびフロム・ノード
を割り当てられる。つまり、要素2および要素3のツー
・ノードおよびフロム・ノードは、それぞれノード1お
よびノード2を割り当てられる。
理和演算子251のツー・ノードおよびフロム・ノード
は、論理和演算子のツー・ノードおよびフロム・ノード
を割り当てられる。つまり、要素2および要素3のツー
・ノードおよびフロム・ノードは、それぞれノード1お
よびノード2を割り当てられる。
【0088】次にトラバースされる要素は、子のない述
語である、第2の要素252である。ひとつの辺がこの
要素のフロム・ノードおよびツー・ノード、つまりノー
ド1およびノード2と共に作成され、結果として生ずる
辺は、この要素の述語、「A<1」を割り当てられる(図
28の260)。
語である、第2の要素252である。ひとつの辺がこの
要素のフロム・ノードおよびツー・ノード、つまりノー
ド1およびノード2と共に作成され、結果として生ずる
辺は、この要素の述語、「A<1」を割り当てられる(図
28の260)。
【0089】次の要素、要素3、253は、論理積演算
子(AND)である。左の子254のフロム・ノードはこ
の要素のフロム・ノード(ノード1)が割り当てられ、
そして右の子255のツー・ノードはこの要素のツー・
ノード(ノード2)が割り当てられる。新しいノード
が、左の子のツー・ノードおよび右の子のフロム・ノー
ドとして作成される。新しいノードは、ノード3であ
る。
子(AND)である。左の子254のフロム・ノードはこ
の要素のフロム・ノード(ノード1)が割り当てられ、
そして右の子255のツー・ノードはこの要素のツー・
ノード(ノード2)が割り当てられる。新しいノード
が、左の子のツー・ノードおよび右の子のフロム・ノー
ドとして作成される。新しいノードは、ノード3であ
る。
【0090】次の要素、要素4、254は述語である。
ひとつの辺が、この要素のフロム・ノードからツー・ノ
ード(ノード1からノード3)に作成され、要素の述語
「B<2」を割り当てられる(図28の262)。残って
いる要素、要素5、255もまた述語である。ひとつの
辺が、この要素のフロム・ノード、ノード3から、ツー
・ノード、ノード2に作成され、要素の述語「C<3」を
割り当てられる(図28の264)。結果として生ずる
図表は、図28の辺リスト266である。
ひとつの辺が、この要素のフロム・ノードからツー・ノ
ード(ノード1からノード3)に作成され、要素の述語
「B<2」を割り当てられる(図28の262)。残って
いる要素、要素5、255もまた述語である。ひとつの
辺が、この要素のフロム・ノード、ノード3から、ツー
・ノード、ノード2に作成され、要素の述語「C<3」を
割り当てられる(図28の264)。結果として生ずる
図表は、図28の辺リスト266である。
【0091】流れ図表現は、スペーシング・アルゴリズ
ムを使用してディスプレイ装置上に表示される。スペー
シング・アルゴリズムへの入力は、(ブール文の有向グ
ラフへの変換によって生成された)ノードと述語辺の対
のリストである。この対のリストは、各結合が述語テキ
ストによって記述されている、連結したノードの図形を
表わす。アルゴリズムは、経路の重複およびノードによ
って覆われる領域が最小になるように、ノードおよび対
応するリンクをスペーシングする。このことは、3つの
ノードがある以下の例によって、説明することができ
る。ノード1とノード2の間に、「SALARY>2000」とい
う述語および、「SALARY<5OO」という他の述語がある。
ノード2およびノード3の間に、「JOB=MGR」という述
語および、「JOB=COOK」という他の述語がある。
ムを使用してディスプレイ装置上に表示される。スペー
シング・アルゴリズムへの入力は、(ブール文の有向グ
ラフへの変換によって生成された)ノードと述語辺の対
のリストである。この対のリストは、各結合が述語テキ
ストによって記述されている、連結したノードの図形を
表わす。アルゴリズムは、経路の重複およびノードによ
って覆われる領域が最小になるように、ノードおよび対
応するリンクをスペーシングする。このことは、3つの
ノードがある以下の例によって、説明することができ
る。ノード1とノード2の間に、「SALARY>2000」とい
う述語および、「SALARY<5OO」という他の述語がある。
ノード2およびノード3の間に、「JOB=MGR」という述
語および、「JOB=COOK」という他の述語がある。
【0092】アルゴリズムは、このリストから次の2つ
のリストを生成する。第1のリストはノード・リスト、
第2のリストは述語リストである。ノード・リストはノ
ード対象物のリストを持ち、各対象物は位置値を持つ。
述語リストは、各々が位置値を持つ述語対象物のリスト
を持つ。
のリストを生成する。第1のリストはノード・リスト、
第2のリストは述語リストである。ノード・リストはノ
ード対象物のリストを持ち、各対象物は位置値を持つ。
述語リストは、各々が位置値を持つ述語対象物のリスト
を持つ。
【0093】一般にアルゴリズムは、ノード経路を通し
て最長の経路を計算し、最長の経路上のノードの配置、
最長の経路上の条件の配置、残りの経路上の残りのノー
ドの配置、および、残りの経路上の残りの条件の配置を
決定する。
て最長の経路を計算し、最長の経路上のノードの配置、
最長の経路上の条件の配置、残りの経路上の残りのノー
ドの配置、および、残りの経路上の残りの条件の配置を
決定する。
【0094】最長の経路は、条件を経由してリンクさ
れ、ある場合には多数の経路を形成するノードの鎖の記
述を含む、すべての有効な入力リストによって計算され
る。各経路は、ヘッド・ノード(通常1)から始まり、
テール・ノード(通常n)で終了する。nはノードのカウ
ントである。最長の経路は、ヘッド・ノードで始まりテ
ール・ノードで終わり、ほとんどのノードを通る、ひと
つまたは複数の経路である。
れ、ある場合には多数の経路を形成するノードの鎖の記
述を含む、すべての有効な入力リストによって計算され
る。各経路は、ヘッド・ノード(通常1)から始まり、
テール・ノード(通常n)で終了する。nはノードのカウ
ントである。最長の経路は、ヘッド・ノードで始まりテ
ール・ノードで終わり、ほとんどのノードを通る、ひと
つまたは複数の経路である。
【0095】例を参考にして、エントリ・ノード値とし
てノード1を持つノード対から始めると、2つの候補が
ある。すなわち、ノード1からノード2(SALARY>200
0)およびノード1からノード2(SALARY<500)の2つ
である。これらのノードの第1のノードを選び、出口ノ
ード値2を全述語対リストから同様のリストを生成する
ために使用して、ノード2からノード3(JOB=MGR)お
よびノード2からノード3(JOB=COOK)を生成する。こ
れらの述語の対は、入口ノード値として値2を持つよう
に設定される。これらの前者を使用し、経路は、テール
・ノードである3と等しい出口値を見つけるために、た
どられる。経路は2つの述語を通って終了し、経路の長
さは2となる。これは、与えられたデータセットの最長
の経路を決定するために、使用することができる。
てノード1を持つノード対から始めると、2つの候補が
ある。すなわち、ノード1からノード2(SALARY>200
0)およびノード1からノード2(SALARY<500)の2つ
である。これらのノードの第1のノードを選び、出口ノ
ード値2を全述語対リストから同様のリストを生成する
ために使用して、ノード2からノード3(JOB=MGR)お
よびノード2からノード3(JOB=COOK)を生成する。こ
れらの述語の対は、入口ノード値として値2を持つよう
に設定される。これらの前者を使用し、経路は、テール
・ノードである3と等しい出口値を見つけるために、た
どられる。経路は2つの述語を通って終了し、経路の長
さは2となる。これは、与えられたデータセットの最長
の経路を決定するために、使用することができる。
【0096】次のステップは、最長の経路上のノードの
配置である。与えられた標本データ・セットに対する最
長の経路を表すノード・リストを使用し、最長の経路上
にあるノードに位置が割り当てられる。特に指定しない
場合(100,100)である(この数字の対はスクリ
ーン上の点と関係する)、任意の位置から始めると、特
定の定数が、最長の経路の各ノードに対する最初の値に
加えられる。この特定の定数は、ひとつの文字がスクリ
ーン上でとる点の数を、標本データにある最長の述語文
字ストリングの長さに掛けたものである。
配置である。与えられた標本データ・セットに対する最
長の経路を表すノード・リストを使用し、最長の経路上
にあるノードに位置が割り当てられる。特に指定しない
場合(100,100)である(この数字の対はスクリ
ーン上の点と関係する)、任意の位置から始めると、特
定の定数が、最長の経路の各ノードに対する最初の値に
加えられる。この特定の定数は、ひとつの文字がスクリ
ーン上でとる点の数を、標本データにある最長の述語文
字ストリングの長さに掛けたものである。
【0097】次のステップは、最長の経路上の述語の配
置である。位置値を割り当てられた入口および出口ノー
ドを持つ述語が、こんどはそれら自身の位置を割り当て
られる。ただひとつの述語が特定の入口および出口ノー
ド対を持つ単純な場合、割当てられた2つの点の中間点
が割り当てられる。ノードの一対が、2つ以上の述語に
よってそれらの入口および出口ノード値のために使用さ
れるとき、割当ては他のステップを必要とする。このス
テップは、与えられた入口/出口ノード対の中間点に対
する第2の値に、定数を加える。同じ定数を第1の値に
加えることによって、さらに述語が置かれる。最長の経
路に位置しているすべての述語が置かれるまで、割当て
手順が繰り返される。
置である。位置値を割り当てられた入口および出口ノー
ドを持つ述語が、こんどはそれら自身の位置を割り当て
られる。ただひとつの述語が特定の入口および出口ノー
ド対を持つ単純な場合、割当てられた2つの点の中間点
が割り当てられる。ノードの一対が、2つ以上の述語に
よってそれらの入口および出口ノード値のために使用さ
れるとき、割当ては他のステップを必要とする。このス
テップは、与えられた入口/出口ノード対の中間点に対
する第2の値に、定数を加える。同じ定数を第1の値に
加えることによって、さらに述語が置かれる。最長の経
路に位置しているすべての述語が置かれるまで、割当て
手順が繰り返される。
【0098】次のステップは、最長の経路上にはない残
りのノードの配置である。上記の3つのステップは、最
長の経路に使用されるスペースの外枠を定義した。最長
の経路上にない残りのノードは、スペースの外枠に基づ
いて、位置値を割り当てられる。手順は、簡単である。
入口ノードの第1の値が特定の定数に加えられ、外枠の
最大高は高さ定数を加えた第2の値として使用され、残
りのノードに使用することができる位置を与える。述語
への位置の以降の各割当ては、標本データのスペースの
全外枠を広げる。ノードおよび述語の生成された位置に
おける交差経路を最小にするのを援助するために、フリ
ップ構成要素が、最長の経路上にないすべてのノードお
よび述語の割当てに使用される。このフリップ構成要素
によって、各代替ノード・リストを最長の経路に向かい
合う側に置くことができる。
りのノードの配置である。上記の3つのステップは、最
長の経路に使用されるスペースの外枠を定義した。最長
の経路上にない残りのノードは、スペースの外枠に基づ
いて、位置値を割り当てられる。手順は、簡単である。
入口ノードの第1の値が特定の定数に加えられ、外枠の
最大高は高さ定数を加えた第2の値として使用され、残
りのノードに使用することができる位置を与える。述語
への位置の以降の各割当ては、標本データのスペースの
全外枠を広げる。ノードおよび述語の生成された位置に
おける交差経路を最小にするのを援助するために、フリ
ップ構成要素が、最長の経路上にないすべてのノードお
よび述語の割当てに使用される。このフリップ構成要素
によって、各代替ノード・リストを最長の経路に向かい
合う側に置くことができる。
【0099】最終的なステップは、残りの経路上の残り
の条件の配置である。このステップは、最長の経路上の
条件の配置に対する上記のステップ手順を、最長の経路
上にないノードと、既存のスペース外枠およびフリップ
構成要素を各配置のために考慮すること、を加えて使用
する。
の条件の配置である。このステップは、最長の経路上の
条件の配置に対する上記のステップ手順を、最長の経路
上にないノードと、既存のスペース外枠およびフリップ
構成要素を各配置のために考慮すること、を加えて使用
する。
【0100】本発明の好ましい実施例が詳細に示された
が、この分野の技術者には、本発明の有効範囲から外れ
ないで本実施例を変更することができることは、明白で
ある。
が、この分野の技術者には、本発明の有効範囲から外れ
ないで本実施例を変更することができることは、明白で
ある。
【0101】
【発明の効果】本発明は以上説明したように構成されて
いるので、データベース利用者は、条件フィルタを通る
データの流れを図示する図形表現を使用して、検索を公
式化することができる。
いるので、データベース利用者は、条件フィルタを通る
データの流れを図示する図形表現を使用して、検索を公
式化することができる。
【図1】コンピュータ・システムの概略図である。
【図2】検索流れ処理の概要図である。
【図3】検索条件変更の流れ図である。
【図4】初期行選択ウィンドウである。
【図5】新しい経路の追加を図示している図形条件ウィ
ンドウである。
ンドウである。
【図6】新しい経路および否定演算の追加を図示してい
る、図5の図形のウィンドウ条件である。
る、図5の図形のウィンドウ条件である。
【図7】3行の述語をもつ行選択ウィンドウである。
【図8】積み重ね形式の述語をもつ、図7の行選択ウィ
ンドウである。
ンドウである。
【図9】群選択ウィンドウである。
【図10】ソート列をもつソート・ウィンドウである。
【図11】和集合演算をもつ検索流れ処理の概要図であ
る。
る。
【図12】圧縮アルゴリズムの流れ図である。
【図13】図12の圧縮アルゴリズムの疑似コードであ
る。
る。
【図14】図12の圧縮アルゴリズムの疑似コードであ
る。
る。
【図15】初期図形および表現の例である。
【図16】辺が図12および図13、図14の圧縮アル
ゴリズムを使用して結合された後の、図15の図形であ
る。
ゴリズムを使用して結合された後の、図15の図形であ
る。
【図17】割当てアルゴリズムの流れ図である。
【図18】割当てアルゴリズムの流れ図である。
【図19】図17および図18の割当てアルゴリズムの
疑似コードである。
疑似コードである。
【図20】図17および図18の割当てアルゴリズムの
疑似コードである。
疑似コードである。
【図21】図17および図18の割当てアルゴリズムの
疑似コードである。
疑似コードである。
【図22】割当てアルゴリズムのために初期状態にされ
た完全に圧縮された図形である。
た完全に圧縮された図形である。
【図23】有向グラフからブール代数文へのアルゴリズ
ムの流れ図である。
ムの流れ図である。
【図24】図23の有向グラフからブール代数文へのア
ルゴリズムの疑似コードである。
ルゴリズムの疑似コードである。
【図25】図23の有向グラフからブール代数文へのア
ルゴリズムの疑似コードである。
ルゴリズムの疑似コードである。
【図26】図23の有向グラフからブール代数文へのア
ルゴリズムの疑似コードである。
ルゴリズムの疑似コードである。
【図27】初期のパーズ木である。
【図28】図23および図24、図25、図26のアル
ゴリズムを使用して、図27の初期のパーズ木から結果
として生ずる有向グラフのための、最終的な辺リストで
ある。
ゴリズムを使用して、図27の初期のパーズ木から結果
として生ずる有向グラフのための、最終的な辺リストで
ある。
30 中央処理装置 32 直接アクセス記憶装置 34 入出力装置 36 不揮発性記憶装置 40 制御装置 44 キーボード 46 ディスプレイ装置 48 マウス 50、70 ウィンドウ 52 アイコン 72 条件述語 74、88 流れ線 76、90 ノード 80 図形条件ウィンドウ 84 テキスト領域 86 条件領域 92 フィルタ 172 和集合検索機能
───────────────────────────────────────────────────── フロントページの続き (72)発明者 ブライアン ゲリット ペイトン アメリカ合衆国 95130 カリフォルニ ア州 サン ホセ ウエストモント ア ベニュー 5104 (72)発明者 ハワード アレクサンダー シウェク アメリカ合衆国 95118 カリフォルニ ア州 サン ホセ チェリー アベニュ ー 4951 (56)参考文献 国際公開92/16903(WO,A)
Claims (13)
- 【請求項1】 中央処理装置、メモリ、ディスプレイ装
置および、利用者対話型装置を持つコンピュータ化され
たデータベース・システムにおける、列および行を持つ
テーブルに保存された検索データを検索する方法であっ
て、 検索データを持つ少なくとも1つのテーブルを識別する
入力を受け取るステップと、 検索データを持つ上記識別されたテーブルの、少なくと
も1つの列を識別する入力を受け取るステップと、 対話的に公式化された条件文を使用して、検索データを
持つ上記識別されたテーブルの少なくとも1つの行を識
別する入力を受け取るステップとを含み、 上記1つの行を識別する入力を受け取るステップが、 少なくとも1つの辺と、該各辺に割り当てられた述語
と、複数のノードと、を含む少なくとも1つの流れ線を
含み、該各辺はフロム・ノードおよびツー・ノード間に
置かれ、同じ流れ線上の述語は論理積演算によって結合
され、同じノード間の異なる流れ線上の述語は論理和に
よって結合される、流れ図表現を表示するステップと、 上記述語を挿入するために、上記流れ図表現の上記流れ
線上の位置を指定する入力を受け取るステップと、 上記述語の入力を受け取るステップと、 指定された位置に挿入された上記述語と共に上記流れ図
表現を表示するステップと、 上記流れ図表現を対応するブール代数文に変換するステ
ップと、 上記ブール代数文を表示するステップと、 を含む方法。 - 【請求項2】 上記ブール代数文に述語を追加する利用
者からの入力を受け取るステップと、該ブール代数文を
対応する流れ図表現に変換するステップと、該流れ図表
現を表示するステップと、を含む請求項1に記載の方
法。 - 【請求項3】 上記流れ図表現を上記ブール代数文に変
換するためのステップを含み、該ステップが、最小限の
数のノードおよび辺に図形を圧縮するステップと、圧縮
された図形を通る開始ノードから終了ノードへの少なく
とも1つの経路を識別することによって、対応するブー
ル代数文文字列を作成するステップとを含む、請求項1
に記載の方法。 - 【請求項4】 上記図形を圧縮するステップが、 同じツー・ノードおよびフロム・ノードを持つ辺の各対
を結合して1つの辺にし、元の各辺に割り当てられてい
た述語を論理和によって結合した述語を、該結合した辺
に割り当てるステップと、 第1の辺のツー・ノードおよび第2の辺のフロム・ノー
ドが同じ辺の各対を結合し、元の辺の各対に割り当てら
れていた述語を論理積演算子によって結合した述語を、
該結合した辺に割り当てるステップと、 を含む、請求項3に記載の方法。 - 【請求項5】 拡張ステップが、 図形経路をスタックにセットするステップと、 次の処理のために上記スタックから上記経路をポップア
ップするステップと、新しい経路を識別し、ブール代数
文の一部分を生成するために該経路を処理するステップ
と、 上記スタックに新しい経路をセットするステップと、 上記スタックがからになるまで、上記経路をポップアッ
プするステップと、上記経路を処理するステップと、上
記経路をセットするステップを繰り返すステップと、 を含む、請求項4に記載の方法。 - 【請求項6】 上記ブール代数文表現を上記流れ図表現
に変換するための、 上記ブール代数文を、根を含む複数の要素を含み、該各
要素が葉または非葉であり、該各非葉が左の子および右
の子を持ち、該各要素がフロム・ノードおよびツー・ノ
ードに割り当てられた値を持ち、該各葉が述語を割り当
てられ、該各非葉が論理和演算子あるいは論理積演算子
を割り当てられた、パーズ木に配置する、ステップと、 予め順序づけられたトラバーサルに従って、上記ツー・
ノードと上記フロム・ノードを結合する辺に上記各述語
を割り当てて上記木の各要素を処理するステップと、 を含む、請求項2に記載の方法。 - 【請求項7】 上記各要素を処理するステップが、 上記根のフロム・ノードおよびツー・ノードを、それぞ
れ、上記流れ図の開始ノードおよび終了ノードに割り当
てるステップと、 上記各論理和演算子要素のために、上記論理和演算子の
フロム・ノードおよびツー・ノードを、それぞれ、上記
論理和演算子の左および右の子のフロム・ノードおよび
ツー・ノードに割り当てるステップと、 上記各論理積演算子要素のために新しいノードを作成す
るステップと、 上記論理積演算子要素のフロム・ノードを、上記論理積
演算子要素の左の子のフロム・ノードに割り当てるステ
ップと、 上記新しいノードを、上記論理積演算子要素の左の子の
ツー・ノードおよび右の子のフロム・ノードに割り当る
ステップと、 上記論理積演算子要素のツー・ノードを、上記論理積演
算子要素の右の子のツー・ノードに割り当てるステップ
と、 上記各述語要素のために、上記述語要素のツー・ノード
とフロム・ノードを結合して辺を生成し、該辺に上記述
語を割り当てるステップと、 を含む、請求項6に記載の方法。 - 【請求項8】 論理否定操作を適用する上記流れ図表現
上の任意の部分を対話的に指定するステップを含む、請
求項1に記載の方法。 - 【請求項9】 条件文がデータの群に適用される、請求
項1に記載の方法。 - 【請求項10】 有向グラフの一連のアイコンとして検
索の流れ表現を表示するステップを含み、該アイコン
が、テーブルおよび列選択、行条件公式化およびソート
に対応し、利用者が検索の一部分を公式化するために該
アイコンを選択するようにした、請求項1に記載の方
法。 - 【請求項11】 上記行条件公式化アイコンに続いて1
つの線にまとまる複数の検索図形を持つ有向グラフとし
て、和集合検索を表示するステップを含む、請求項10
に記載の方法。 - 【請求項12】 ブール代数文を、パーズ木の中の各要
素がパーズ木のフロム・ノードおよびパーズ木のツー・
ノードを持ち、該各要素が葉または非葉であり、該各非
葉が、左および右の子を持ち、該葉がコネクタであり、
該非葉が論理和演算子または論理積演算子であるパーズ
木に、配置するステップと、 予め順序づけられたトラバーサルに従って、図形のフロ
ム・ノードと図形のツー・ノードを結合して定義した図
形辺に各条件述語を割り当てる、上記木の各要素の処理
とを含む、ブール代数文表現を図形表現に変換する方法
であって、 上記木の各要素の処理が、 根要素のフロム・ノードおよびツー・ノードを上記図形
の開始ノードおよび終了ノードに割り当てるステップ
と、 上記論理和演算子要素に対しては、上記論理和演算子要
素のフロム・ノードおよびツー・ノードを、上記論理和
演算子要素の両方の子のフロム・ノードおよびツー・ノ
ードに割り当てるステップと、 上記論理積演算子要素に対しては、新しいノードを生成
し、上記論理積演算子要素のフロム・ノードを上記論理
積演算子要素の左の子のフロム・ノードとして割り当
て、上記論理積演算子要素のツー・ノードを上記論理積
演算子要素の右の子のツー・ノードとして割り当て、該
新しいノードを、上記論理積演算子要素の左の子のツー
・ノードおよび右の子のフロム・ノードとして割り当て
るステップと、 上記条件述語要素に対しては、上記条件述語要素のツー
・ノードとフロム・ノードを上記条件述語要素で結合し
て辺を生成するステップと、 を含む、方法。 - 【請求項13】 2つの辺が同じツー・ノードおよびフ
ロム・ノードを持つとき、該2つの辺を、論理和オペラ
ンドによって結合された元の各辺の条件を持つ1つの辺
に結合するステップと、 2つの辺が連続しており、間に該2つの辺が出入りする
第3のノードを持つ時、該2つの辺を、論理積演算子に
よって結合された元の各辺の条件を持つ1つの辺に結合
するステップと、 図形経路をスタックにセットするステップと、 次の処理のために上記スタックから上記経路をポップア
ップするステップと、 新しい経路を識別し、ブール代数文の一部分を生成する
ために該経路を処理するステップと、 上記スタックに新しい経路をセットするステップと、 上記スタックがからになるまで、上記経路をポップアッ
プするステップと、上記経路を処理するステップと、上
記新しい経路をセットするステップを繰り返すステップ
と、 を含む、図形表現をブール代数文表現に変換する方法。
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US3291493A | 1993-03-17 | 1993-03-17 | |
US08/032,914 | 1993-03-17 |
Publications (2)
Publication Number | Publication Date |
---|---|
JPH06324926A JPH06324926A (ja) | 1994-11-25 |
JP2710548B2 true JP2710548B2 (ja) | 1998-02-10 |
Family
ID=21867549
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP6036351A Expired - Fee Related JP2710548B2 (ja) | 1993-03-17 | 1994-02-10 | データを検索する方法およびブール代数文表現と図形表現を互いに変換する方法 |
Country Status (4)
Country | Link |
---|---|
US (1) | US5701456A (ja) |
EP (1) | EP0616289B1 (ja) |
JP (1) | JP2710548B2 (ja) |
DE (1) | DE69424586T2 (ja) |
Families Citing this family (108)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPH0934957A (ja) * | 1995-07-14 | 1997-02-07 | Nippon Telegr & Teleph Corp <Ntt> | ユーザ振る舞いの解析方法及び装置 |
US6023694A (en) * | 1996-01-02 | 2000-02-08 | Timeline, Inc. | Data retrieval method and apparatus with multiple source capability |
US6625617B2 (en) | 1996-01-02 | 2003-09-23 | Timeline, Inc. | Modularized data retrieval method and apparatus with multiple source capability |
US6631382B1 (en) | 1996-01-02 | 2003-10-07 | Timeline, Inc. | Data retrieval method and apparatus with multiple source capability |
US5819257A (en) * | 1997-01-31 | 1998-10-06 | Lucent Technologies Inc. | Process for providing transitive closure using fourth generation structure query language (SQL) |
US5933145A (en) * | 1997-04-17 | 1999-08-03 | Microsoft Corporation | Method and system for visually indicating a selection query |
US5886698A (en) * | 1997-04-21 | 1999-03-23 | Sony Corporation | Method for filtering search results with a graphical squeegee |
CA2230797A1 (en) * | 1997-04-29 | 1998-10-29 | Vladimir Silverman | System and method for secure and scalable database transactions over a network |
US6253194B1 (en) * | 1998-06-16 | 2001-06-26 | Microsoft Corporation | System and method for performing database queries using a stack machine |
GB2343530A (en) * | 1998-11-07 | 2000-05-10 | Int Computers Ltd | Nested graphical representations of Boolean expressions assist database querying |
US6681220B1 (en) * | 1999-05-28 | 2004-01-20 | International Business Machines Corporation | Reduction and optimization of information processing systems |
US6694362B1 (en) | 2000-01-03 | 2004-02-17 | Micromuse Inc. | Method and system for network event impact analysis and correlation with network administrators, management policies and procedures |
JP2001325276A (ja) * | 2000-05-12 | 2001-11-22 | Internatl Business Mach Corp <Ibm> | 情報処理システム、情報処理方法、コンピュータプログラム、記憶媒体及びプログラム伝送装置 |
US6539337B1 (en) * | 2000-06-15 | 2003-03-25 | Innovative Technology Licensing, Llc | Embedded diagnostic system and method |
US6389410B1 (en) * | 2000-09-07 | 2002-05-14 | Oracle Corporation | Method for minimizing the number of sorts required for a query block containing window functions |
US20040056904A1 (en) * | 2001-02-15 | 2004-03-25 | Denny Jaeger | Method for illustrating arrow logic relationships between graphic objects using graphic directional indicators |
US6826566B2 (en) * | 2002-01-14 | 2004-11-30 | Speedtrack, Inc. | Identifier vocabulary data access method and system |
SE521753C2 (sv) * | 2002-02-08 | 2003-12-02 | Xelerated Ab | Förfarande och system för att uppfylla realtidskrav för en dataprocessor |
JP2003308332A (ja) | 2002-04-15 | 2003-10-31 | Sumitomo Electric Ind Ltd | データベースアクセスプログラム、そのプログラムを記録したコンピュータ読取可能な記録媒体およびデータベース操作方法 |
US6983275B2 (en) * | 2002-04-16 | 2006-01-03 | International Business Machines Corporation | Optimizing database query by generating, determining the type of derived predicate based on monotonicity of the column generating expression for each remaining inequality predicate in the list of unexamined predicates |
US7266775B2 (en) * | 2002-05-09 | 2007-09-04 | Siemens Medical Solutions Health Services Corporation | Method for retrieving information from an information repository |
US7383513B2 (en) * | 2002-09-25 | 2008-06-03 | Oracle International Corporation | Graphical condition builder for facilitating database queries |
US6829602B2 (en) * | 2002-12-12 | 2004-12-07 | Microsoft Corporation | System and method for using a compressed trie to estimate like predicates |
US8250107B2 (en) * | 2003-06-03 | 2012-08-21 | Hewlett-Packard Development Company, L.P. | Techniques for graph data structure management |
US20050015368A1 (en) * | 2003-07-15 | 2005-01-20 | International Business Machines Corporation | Query modelling tool having a dynamically adaptive interface |
US20050015363A1 (en) * | 2003-07-15 | 2005-01-20 | International Business Machines Corporation | Method and structure for representing complex query elements in a modelling tool |
US8458164B2 (en) * | 2003-07-15 | 2013-06-04 | International Business Machines Corporation | Query model tool and method for visually grouping and ungrouping predicates |
US20050015361A1 (en) * | 2003-07-15 | 2005-01-20 | International Business Machines Corporation | Model content provider with reusable components for supporting a plurality of GUI API's |
US20050187911A1 (en) * | 2004-02-24 | 2005-08-25 | Microsoft Corporation | Visual query |
US7610308B1 (en) * | 2004-03-17 | 2009-10-27 | Kam-Ming Chiu | Framework for creating database applications |
US9514181B2 (en) | 2004-03-23 | 2016-12-06 | Linguaversal, SL | Calculation expression management |
US7856449B1 (en) * | 2004-05-12 | 2010-12-21 | Cisco Technology, Inc. | Methods and apparatus for determining social relevance in near constant time |
AU2005243114B2 (en) * | 2004-05-13 | 2011-02-24 | Robert John Rogers | A system and method for retrieving information and a system and method for storing information |
US9646107B2 (en) * | 2004-05-28 | 2017-05-09 | Robert T. and Virginia T. Jenkins as Trustee of the Jenkins Family Trust | Method and/or system for simplifying tree expressions such as for query reduction |
US20060095407A1 (en) * | 2004-11-01 | 2006-05-04 | International Business Machines Corporation | Methods and apparatus for adding parenthetical expression capability to a tabular query user interface |
US8868620B2 (en) * | 2007-06-08 | 2014-10-21 | International Business Machines Corporation | Techniques for composing data queries |
US20090132506A1 (en) * | 2007-11-20 | 2009-05-21 | International Business Machines Corporation | Methods and apparatus for integration of visual and natural language query interfaces for context-sensitive data exploration |
JP5065988B2 (ja) * | 2008-05-14 | 2012-11-07 | 日立Geニュークリア・エナジー株式会社 | 検索装置 |
US8429194B2 (en) | 2008-09-15 | 2013-04-23 | Palantir Technologies, Inc. | Document-based workflows |
US8312038B2 (en) * | 2008-12-18 | 2012-11-13 | Oracle International Corporation | Criteria builder for query builder |
US20100241644A1 (en) * | 2009-03-19 | 2010-09-23 | Microsoft Corporation | Graph queries of information in relational database |
US8713012B2 (en) * | 2009-07-02 | 2014-04-29 | International Business Machines Corporation | Modular authoring and visualization of rules using trees |
US8862457B2 (en) * | 2009-07-02 | 2014-10-14 | International Business Machines Corporation | Method and system for smart mark-up of natural language business rules |
US8381178B2 (en) * | 2009-07-02 | 2013-02-19 | International Business Machines Corporation | Intuitive visualization of Boolean expressions using flows |
US9400733B2 (en) | 2010-12-01 | 2016-07-26 | Microsoft Technology Licensing, Llc | Pattern matching framework for log analysis |
US9092482B2 (en) | 2013-03-14 | 2015-07-28 | Palantir Technologies, Inc. | Fair scheduling for mixed-query loads |
US8732574B2 (en) | 2011-08-25 | 2014-05-20 | Palantir Technologies, Inc. | System and method for parameterizing documents for automatic workflow generation |
US8504542B2 (en) | 2011-09-02 | 2013-08-06 | Palantir Technologies, Inc. | Multi-row transactions |
US8560494B1 (en) | 2011-09-30 | 2013-10-15 | Palantir Technologies, Inc. | Visual data importer |
US8887076B2 (en) * | 2011-11-01 | 2014-11-11 | Aver Informatics Inc. | Software user interface allowing logical expression to be expressed as a flowchart |
US9378526B2 (en) | 2012-03-02 | 2016-06-28 | Palantir Technologies, Inc. | System and method for accessing data objects via remote references |
US9798768B2 (en) | 2012-09-10 | 2017-10-24 | Palantir Technologies, Inc. | Search around visual queries |
US9348677B2 (en) | 2012-10-22 | 2016-05-24 | Palantir Technologies Inc. | System and method for batch evaluation programs |
US9471370B2 (en) | 2012-10-22 | 2016-10-18 | Palantir Technologies, Inc. | System and method for stack-based batch evaluation of program instructions |
US9367463B2 (en) | 2013-03-14 | 2016-06-14 | Palantir Technologies, Inc. | System and method utilizing a shared cache to provide zero copy memory mapped database |
US9740369B2 (en) | 2013-03-15 | 2017-08-22 | Palantir Technologies Inc. | Systems and methods for providing a tagging interface for external content |
US9898167B2 (en) | 2013-03-15 | 2018-02-20 | Palantir Technologies Inc. | Systems and methods for providing a tagging interface for external content |
US8909656B2 (en) | 2013-03-15 | 2014-12-09 | Palantir Technologies Inc. | Filter chains with associated multipath views for exploring large data sets |
US8868486B2 (en) | 2013-03-15 | 2014-10-21 | Palantir Technologies Inc. | Time-sensitive cube |
JP6136685B2 (ja) * | 2013-07-16 | 2017-05-31 | 富士通株式会社 | データ抽出方法及びデータ抽出プログラム |
JP6102594B2 (ja) * | 2013-07-16 | 2017-03-29 | 富士通株式会社 | データ出力方法及びデータ出力プログラム |
US9105000B1 (en) | 2013-12-10 | 2015-08-11 | Palantir Technologies Inc. | Aggregating data from a plurality of data sources |
US20150261860A1 (en) * | 2014-03-12 | 2015-09-17 | Kaushal MITTAL | Predicate execution in shared distributed computing environment |
US8935201B1 (en) | 2014-03-18 | 2015-01-13 | Palantir Technologies Inc. | Determining and extracting changed data from a data source |
US20160026923A1 (en) | 2014-07-22 | 2016-01-28 | Palantir Technologies Inc. | System and method for determining a propensity of entity to take a specified action |
AU2014101081A4 (en) * | 2014-09-05 | 2014-10-09 | Jonathan Robert Burnett | System, method and graphical user interface for facilitating a search |
US9092484B1 (en) | 2015-03-27 | 2015-07-28 | Vero Analyties, Inc. | Boolean reordering to optimize multi-pass data source queries |
US9348880B1 (en) | 2015-04-01 | 2016-05-24 | Palantir Technologies, Inc. | Federated search of multiple sources with conflict resolution |
US9514205B1 (en) | 2015-09-04 | 2016-12-06 | Palantir Technologies Inc. | Systems and methods for importing data from electronic data files |
US10558339B1 (en) | 2015-09-11 | 2020-02-11 | Palantir Technologies Inc. | System and method for analyzing electronic communications and a collaborative electronic communications user interface |
US9772934B2 (en) | 2015-09-14 | 2017-09-26 | Palantir Technologies Inc. | Pluggable fault detection tests for data pipelines |
US9652510B1 (en) | 2015-12-29 | 2017-05-16 | Palantir Technologies Inc. | Systems and user interfaces for data analysis including artificial intelligence algorithms for generating optimized packages of data items |
US10554516B1 (en) | 2016-06-09 | 2020-02-04 | Palantir Technologies Inc. | System to collect and visualize software usage metrics |
US9678850B1 (en) | 2016-06-10 | 2017-06-13 | Palantir Technologies Inc. | Data pipeline monitoring |
US10318526B2 (en) * | 2016-07-05 | 2019-06-11 | Zymergen Inc. | Complex chemical substructure search query building and execution |
US10133782B2 (en) | 2016-08-01 | 2018-11-20 | Palantir Technologies Inc. | Techniques for data extraction |
US10621314B2 (en) | 2016-08-01 | 2020-04-14 | Palantir Technologies Inc. | Secure deployment of a software package |
US11256762B1 (en) | 2016-08-04 | 2022-02-22 | Palantir Technologies Inc. | System and method for efficiently determining and displaying optimal packages of data items |
US10552531B2 (en) | 2016-08-11 | 2020-02-04 | Palantir Technologies Inc. | Collaborative spreadsheet data validation and integration |
US10373078B1 (en) | 2016-08-15 | 2019-08-06 | Palantir Technologies Inc. | Vector generation for distributed data sets |
EP3282374A1 (en) | 2016-08-17 | 2018-02-14 | Palantir Technologies Inc. | User interface data sample transformer |
US10650086B1 (en) | 2016-09-27 | 2020-05-12 | Palantir Technologies Inc. | Systems, methods, and framework for associating supporting data in word processing |
US10152306B2 (en) | 2016-11-07 | 2018-12-11 | Palantir Technologies Inc. | Framework for developing and deploying applications |
US10261763B2 (en) | 2016-12-13 | 2019-04-16 | Palantir Technologies Inc. | Extensible data transformation authoring and validation system |
US11157951B1 (en) | 2016-12-16 | 2021-10-26 | Palantir Technologies Inc. | System and method for determining and displaying an optimal assignment of data items |
US10509844B1 (en) | 2017-01-19 | 2019-12-17 | Palantir Technologies Inc. | Network graph parser |
US10180934B2 (en) | 2017-03-02 | 2019-01-15 | Palantir Technologies Inc. | Automatic translation of spreadsheets into scripts |
US10572576B1 (en) | 2017-04-06 | 2020-02-25 | Palantir Technologies Inc. | Systems and methods for facilitating data object extraction from unstructured documents |
US10824604B1 (en) | 2017-05-17 | 2020-11-03 | Palantir Technologies Inc. | Systems and methods for data entry |
US10534595B1 (en) | 2017-06-30 | 2020-01-14 | Palantir Technologies Inc. | Techniques for configuring and validating a data pipeline deployment |
US10204119B1 (en) | 2017-07-20 | 2019-02-12 | Palantir Technologies, Inc. | Inferring a dataset schema from input files |
US10754820B2 (en) | 2017-08-14 | 2020-08-25 | Palantir Technologies Inc. | Customizable pipeline for integrating data |
US11016936B1 (en) | 2017-09-05 | 2021-05-25 | Palantir Technologies Inc. | Validating data for integration |
US11379525B1 (en) | 2017-11-22 | 2022-07-05 | Palantir Technologies Inc. | Continuous builds of derived datasets in response to other dataset updates |
US10783162B1 (en) | 2017-12-07 | 2020-09-22 | Palantir Technologies Inc. | Workflow assistant |
US10552524B1 (en) | 2017-12-07 | 2020-02-04 | Palantir Technolgies Inc. | Systems and methods for in-line document tagging and object based data synchronization |
US10360252B1 (en) | 2017-12-08 | 2019-07-23 | Palantir Technologies Inc. | Detection and enrichment of missing data or metadata for large data sets |
US11176116B2 (en) | 2017-12-13 | 2021-11-16 | Palantir Technologies Inc. | Systems and methods for annotating datasets |
US10853352B1 (en) | 2017-12-21 | 2020-12-01 | Palantir Technologies Inc. | Structured data collection, presentation, validation and workflow management |
GB201800595D0 (en) | 2018-01-15 | 2018-02-28 | Palantir Technologies Inc | Management of software bugs in a data processing system |
US10599762B1 (en) | 2018-01-16 | 2020-03-24 | Palantir Technologies Inc. | Systems and methods for creating a dynamic electronic form |
US10885021B1 (en) | 2018-05-02 | 2021-01-05 | Palantir Technologies Inc. | Interactive interpreter and graphical user interface |
US11263263B2 (en) | 2018-05-30 | 2022-03-01 | Palantir Technologies Inc. | Data propagation and mapping system |
US11061542B1 (en) | 2018-06-01 | 2021-07-13 | Palantir Technologies Inc. | Systems and methods for determining and displaying optimal associations of data items |
US10795909B1 (en) | 2018-06-14 | 2020-10-06 | Palantir Technologies Inc. | Minimized and collapsed resource dependency path |
US11429627B2 (en) | 2018-09-28 | 2022-08-30 | Splunk Inc. | System monitoring driven by automatically determined operational parameters of dependency graph model with user interface |
US10621235B1 (en) * | 2019-05-13 | 2020-04-14 | Redis Labs Ltd. | Methods, systems, and media for resolving database queries using algebraic expressions using matrix-matrix multiplication |
US20210318851A1 (en) * | 2020-04-09 | 2021-10-14 | Virtualitics, Inc. | Systems and Methods for Dataset Merging using Flow Structures |
Family Cites Families (9)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US4506326A (en) * | 1983-02-28 | 1985-03-19 | International Business Machines Corporation | Apparatus and method for synthesizing a query for accessing a relational data base |
US5175814A (en) * | 1990-01-30 | 1992-12-29 | Digital Equipment Corporation | Direct manipulation interface for boolean information retrieval |
US5201046A (en) * | 1990-06-22 | 1993-04-06 | Xidak, Inc. | Relational database management system and method for storing, retrieving and modifying directed graph data structures |
US5287493A (en) * | 1990-08-31 | 1994-02-15 | International Business Machines Corporation | Database interactive prompted query system having named database tables linked together by a user through join statements |
JP2819517B2 (ja) * | 1990-12-17 | 1998-10-30 | インターナショナル・ビジネス・マシーンズ・コーポレイション | データベース照会を行う方法およびシステム |
DE69126795T2 (de) * | 1991-03-12 | 1998-02-19 | Wang Laboratories | Dateienverwaltungssystem mit graphischer benutzerschnittstelle zum aufstellen von fragen |
US5355474A (en) * | 1991-09-27 | 1994-10-11 | Thuraisngham Bhavani M | System for multilevel secure database management using a knowledge base with release-based and other security constraints for query, response and update modification |
US5428737A (en) * | 1991-10-16 | 1995-06-27 | International Business Machines Corporation | Comprehensive bilateral translation between SQL and graphically depicted queries |
US5421008A (en) * | 1991-11-08 | 1995-05-30 | International Business Machines Corporation | System for interactive graphical construction of a data base query and storing of the query object links as an object |
-
1994
- 1994-02-10 JP JP6036351A patent/JP2710548B2/ja not_active Expired - Fee Related
- 1994-02-24 DE DE69424586T patent/DE69424586T2/de not_active Expired - Fee Related
- 1994-02-24 EP EP94301335A patent/EP0616289B1/en not_active Expired - Lifetime
-
1995
- 1995-08-30 US US08/520,903 patent/US5701456A/en not_active Expired - Fee Related
Also Published As
Publication number | Publication date |
---|---|
JPH06324926A (ja) | 1994-11-25 |
EP0616289A1 (en) | 1994-09-21 |
US5701456A (en) | 1997-12-23 |
DE69424586D1 (de) | 2000-06-29 |
EP0616289B1 (en) | 2000-05-24 |
DE69424586T2 (de) | 2001-01-18 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JP2710548B2 (ja) | データを検索する方法およびブール代数文表現と図形表現を互いに変換する方法 | |
US7734619B2 (en) | Method of presenting lineage diagrams representing query plans | |
Stolte et al. | Polaris: A system for query, analysis, and visualization of multidimensional relational databases | |
Ozsoyoglu et al. | Example-based graphical database query languages | |
US5455945A (en) | System and method for dynamically displaying entering, and updating data from a database | |
US6470335B1 (en) | System and method for optimizing the structure and display of complex data filters | |
US5193182A (en) | Computer system for defining logical operations on design data including retrieve entity-set, send, receive, signal, when, reference to entity-set, reference to entity method, connect and disconnect | |
EP1796005B1 (en) | A method of configuring a device | |
US5212771A (en) | System for establishing concurrent high level and low level processes in a diagram window through process explosion and implosion subsystems | |
CA2170235C (en) | Method and apparatus for the modeling and query of database structures using natural language-like constructs | |
JP3030786B2 (ja) | ユーザー拡張の可能なデータベースシステム | |
US7464096B2 (en) | Method and apparatus for information mining and filtering | |
US7165064B2 (en) | Systems and methods for retrieving data | |
US8219560B2 (en) | Assessing relevant categories and measures for use in data analyses | |
KR101517460B1 (ko) | 데이터 관계의 그래픽 표현 | |
US7401095B2 (en) | Method and system for composing a query for a database and traversing the database | |
US9069831B2 (en) | Retrieving data objects | |
US20060116999A1 (en) | Sequential stepwise query condition building | |
EP0650130A2 (en) | Method and apparatus for specifying layout processing of structured documents | |
JPH09510565A (ja) | データベース問い合わせシステム | |
US8027997B2 (en) | System and article of manufacture for defining and generating a viewtype for a base model | |
JP5096464B2 (ja) | 関係データベースシステムを制御するための方法 | |
US20040227759A1 (en) | Plotting numerical data | |
JPH01123320A (ja) | 探索コマンドの形成方法と装置 | |
Seamark | Beginning DAX with Power BI: The SQL Pro’s Guide to Better Business Intelligence |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
LAPS | Cancellation because of no payment of annual fees |