JPH0950372A - 宣言的言語の仕様を自動変換する方法およびシステム - Google Patents

宣言的言語の仕様を自動変換する方法およびシステム

Info

Publication number
JPH0950372A
JPH0950372A JP8092312A JP9231296A JPH0950372A JP H0950372 A JPH0950372 A JP H0950372A JP 8092312 A JP8092312 A JP 8092312A JP 9231296 A JP9231296 A JP 9231296A JP H0950372 A JPH0950372 A JP H0950372A
Authority
JP
Japan
Prior art keywords
module
options
language
option list
condition
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Pending
Application number
JP8092312A
Other languages
English (en)
Inventor
Paul Sanders
サンダース ポール
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Texas Instruments Inc
Original Assignee
Texas Instruments Inc
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Priority claimed from US08/421,337 external-priority patent/US5758032A/en
Application filed by Texas Instruments Inc filed Critical Texas Instruments Inc
Publication of JPH0950372A publication Critical patent/JPH0950372A/ja
Pending legal-status Critical Current

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/40Transformation of program code
    • G06F8/51Source to source
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/20Software design
    • G06F8/22Procedural
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N5/00Computing arrangements using knowledge-based models
    • G06N5/01Dynamic search techniques; Heuristics; Dynamic trees; Branch-and-bound

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • General Engineering & Computer Science (AREA)
  • Software Systems (AREA)
  • General Physics & Mathematics (AREA)
  • Physics & Mathematics (AREA)
  • Computing Systems (AREA)
  • Evolutionary Computation (AREA)
  • Data Mining & Analysis (AREA)
  • Mathematical Physics (AREA)
  • Computational Linguistics (AREA)
  • Artificial Intelligence (AREA)
  • Devices For Executing Special Programs (AREA)
  • Stored Programmes (AREA)

Abstract

(57)【要約】 【課題】本願発明は、問題の宣言的言語の仕様をその問
題の手続き的言語の仕様に変換するものである。 【解決手段】本願発明は、問題を詳細化律の集合に従っ
て、連続した、独立のサブ問題に分割するための分割モ
ジュール(16)、および与えられた最適化レベルに従
って、連続した、独立のサブ問題の各々に対してフォー
ム・オプション・モジュール(20)によって発生され
たオプションの集合に、保証されたシェアリング・モジ
ュール(22)によって与えられたドメインの特定ヒュ
ーリルティックスの集合を用いて、サブ問題の各々の手
続き的言語のインプリメンテーションを発生するための
インプリメント・モジュール(30)を含む。

Description

【発明の詳細な説明】
【0001】
【発明の属する技術分野】本発明は、自動コード発生器
に関し、特に、宣言的言語のプロセス仕様を手続き的言
語のプロセス仕様に自動的に変換するための方法よびシ
ステムに関する。
【0002】
【従来の技術】ビジネス問題に対する解決は、しばし
ば、コンピュータソフトウエアで実行される方法を含む
いろいろな方法によって解決することができるプロセス
として特定される。ソフトウエアにおいて実行されるプ
ロセスの解決は、しばしば、手続き的言語を用いて特定
される。プロセスの解決の手続き的言語の仕様は、プロ
セスを完成するために続けられるべき正確な一連のステ
ップを特定する。手続き的言語の仕様は、それらがコン
ピュータ上で実行することができる形式に容易に変換さ
れるという点において有用である。手続き的言語の例
は、C,コボル(Cobol) およびパスカル(Pascal)であ
る。他の手続き的言語は、IEF TM, Release 5.3,コンピ
ュータ支援ソフトウエア・エンジニアリング(a Compute
r Aided Software Engineering: CASE) ツール、テキサ
ス・インスツルメント・インコーポレーテッドの製品に
よる作成者において使用されるアクション・ダイアグラ
ム言語(Action Diagram Language)であり、 IEFTM Ele
ctronic Book with TI Part Number 2616313-0001 に、
そっくりそのまま参照により用いられている。しかし、
手続き的言語の仕様に直接プロセス解決を記すること
は、いろいろな問題を引き起こす。第1に、手続き的言
語を用いて、直接プロセス解決を記することによって、
プロセスが何をするか、プロセスがそれをどのようにす
るかの間に分離がない。これは、将来同じ問題を解決す
るための一般的なビジネスルールがコード効率のように
使用される手続き的言語に特定の付加的な関係を解決す
ることなく表現することができないことを意味してい
る。一般的なビジネスルールから直接発生される手続き
的言語の仕様は、一般に、より複雑で、容易に伝達さ
れ、検証され、変更されない仕様である。
【0003】プロセス解決から直接的に手続き言語仕様
を発生することに伴う第2の問題は、単一のビジネスル
ールが多くの異なる場所において記されなければならな
いかも知れない点において、手続き的言語の仕様が標準
化されていないことである。これは、再び仕様を変更す
ることを困難にし、エラーの可能性を増大する。更に、
プロセス解決の手続き的言語の仕様がプロセス解決から
直接発生されると、手続き的言語の仕様はしばしば低い
レベルの構成を用いて表現されなければならない。大き
な、或いは複雑なプロセスに対して、これは、殆どの場
合、手続き言語仕様も大きく且つ複雑であることを意味
している。再び、エラーの可能性が増大する。代わりの
アプローチは、最初に宣言的言語(例えば、述語微積分
学)を用いてプロセス解決を記すことであり、続いて、
宣言的言語を同等の手続き的言語の仕様に翻訳すること
である。プロセス解決の宣言的言語の仕様は、プロセス
がそれをどのようにすべきかに全く関係ない形でプロセ
スが何をすなければならないかを記す。宣言的言語は、
一般に、完全な数学的原理に基づかれており、高いレベ
ルの抽象化での記述を可能にする。数学的論理に基づく
宣言的言語の例は、ロジック(PROLOG)、構造的質問言語
(Structured query language:SQL)およびZにおけるプ
ログラミングを含む。
【0004】宣言的言語を用いてプロセス解決を記すこ
とは、手続き的言語を用いることによって生じる幾つか
の問題を解決するが、代わって、このアプローチは他の
問題を引き起こす。先ず、宣言的言語の仕様を直接実行
することは、しばしば商用システムにとって不可能であ
るか、或いは非常に非効率的である。したがって、宣言
的言語の仕様は、通常マニュアルで手続き的言語の仕様
に変換される。しかし、宣言的言語の仕様から手続き的
言語の仕様をマニュアルで生成することは、エラーの可
能性を殆ど減少させない。更に、宣言的言語の仕様とマ
ニュアルで生成した手続き的言語の仕様の何れも変更が
必要になると常に変更さねなけばならない。従って、手
続き的言語の仕様を直接生成する代わりに、宣言的言語
にプロセス解決を記すことから得られる利点の幾つかが
失われる。従って、プロセス解決の宣言的言語の仕様
を、宣言的言語の仕様を出来る限り効率的な方法で実現
する同等な手続き的言語の仕様に自動的に翻訳する方法
およびシステムが必要とされる。
【0005】
【本発明の概要】本発明は、プロセスの宣言的言語の仕
様をプロセスの手続き的言語の仕様に自動的に変換する
ための方法およびシステムを含む。本発明は、最も低い
関連コストで宣言的言語の仕様を手続き的言語の仕様に
変換するために、ドメインの特定ヒューリスティックス
(domain specific heuristics)の集合と与えられた最適
レベルに従って、詳細化律(refinement law)を宣言的言
語の仕様に繰り返し適用するものである。本発明は、多
くのモジュールの反復的な使用によって、これらの詳細
化律を適用する。これらのモジュールは、問題を連続し
た、独立のサブ問題の集合を分割する分割モジュールを
適用し;フォーム・オプション・モジュール(a form op
tions module) 、保証されたシェアリング・モジュー
ル、選択モジュール、シェア・モジュール、プルーン・
モジュール(prune module)およびインプリメント・モジ
ュールがサブ問題の各々を変換する。
【0006】
【発明の実施の形態】本発明は、プロセス解決の宣言的
言語の仕様を、与えられたコストモデルと最適レベルに
従って、最適化された手続き的言語の仕様に自動的に翻
訳する。生じた、プロセス解決の手続き的言語の仕様
は、図1に示されたように、一般的な目的のコンピュー
タ2を使って生成され、コンピュータによって実行する
のに適した形態にある。コンピュータ2はディスプレイ
4、処理装置6、キーボード8およびマウス9を有して
いる。本発明の実施の形態は、いろいろな他のコンピュ
ータ・プログラミング言語の一つを用いることができる
が、図2に示されるように、プログラミング言語PROLOG
を用いて実行され、プロセス解決の宣言的言語の仕様を
アクション・ダイアグラム(action diagram)言語で実行
される同等な手続き的言語の仕様に翻訳する。アクショ
ン・ダイアグラム言語は、IEFTMによるCASEツー
ルコンポーザ(CASE tool Composer) を用いて、ターゲ
ット・データベース管理システム(a target database
manegement system: DBMS)、例えば、IBMの製品であ
るDB2 TMに対して実行されるSQLコードを発生する
ために用いることができる。
【0007】宣言的言語の仕様は、[pre, post] の形を
用いてプリコンディション(precondition) およびポス
トコンディション(postcondition)によって表される。
この[pre, post] の形は、“もし、プリコンディション
が満たされるなら、プロセスは、ポストコンディション
を満たす状態で終わらなければならない。”“もし、プ
リコンディションが満たされないなら、最後の状態は定
義されない(実際に、プロセスは決して終わることがで
きない。)”と読まれる。ポストコンディションは、ル
ールの集合として表現される。Wiley Press によって19
85年に発行された"Expert System" と題するテキストに
おいて、Paul Harmon とDavid Kingによって定義された
ように、ルールは、最初の部分、即ちif節が、もし第2
の部分、即ち、次の節、即ちアクションが解決されるべ
きであるならば、適用されなければならないコンディシ
ョン(条件)を確立する単なる条件記述である。宣言的
言語の仕様からのパス(path)は一連の詳細化として記述
され、それらの各々は、解決(宣言的言語の仕様を実行
する手続き的言語の仕様である解決)に向かって1ステ
ップをとる。各詳細化はターゲット手続き言語の構造を
導くことができる、或いは解決されなければならないサ
ブ問題を残して、宣言的言語の仕様を変更することがで
きる。各詳細化は、特別な詳細化律を適用することの結
果である。各詳細化律は、有効に適用されるべき、それ
のために保持しなければならないいろいろな条件を有し
ている。
【0008】本発明は、宣言的言語の仕様を手続き的言
語に詳細化するための詳細化律を含む詳細化律ライブラ
リー32を有している。詳細化律ライブラリー32に含
まれる詳細化律は、宣言的言語の仕様が表現されている
宣言的言語、宣言的言語の仕様が変換されるターゲット
手続き的言語および宣言的言語によって定義されたプロ
セスの一般的性質に特有である。各詳細化律は、有効に
適用されるべきそれのために保持しなければならないい
ろいろな条件を有しおり、特別な形式の詳細化律の各適
用は、まだ解決されるべきサブ問題を発生することがで
きる。本発明のこの実施の形態に含まれるいろいろな形
式の詳細化律があり、それらは、
【0009】・アクションを取る(take an action),
アクション・ダイアグラムSET, ESCAPE,或いはINCREMEN
T ステートメントの使用による: これは、全ての残りの
ルールから成る単一のサブ問題を発生する; ・条件をテストする(test a condition), アクション・
ダイアグラムIF, READ或いはREAD EACH 記述の使用によ
る: これは2つのサブ問題を発生する:テストの成功ブ
ランチ(success branch)内で実行されるべきルールの集
合(ポジティブ集合)、およびその後実行されるべき残
りのルール(残りの集合).(プロトタイプは否定を扱
わない、従ってテストの失敗ブランチ(failure branch)
におけるルールを要求しない。)オリジナルなルールの
各々は、以下のように、これら2つの集合間で、独立し
て分配される。 ・ポジティブ集合内で完成される(completed within p
ositive set):ルールは、ポジティブ集合からテストさ
れた条件を除いた後に、ポジティブ集合に置かれる; ・ポジティブ集合内にフラッグが立てられる(flagged w
ithin positiveset):フラッグをセットするルールはポ
ジティブ集合に置かれ、そのフラッグのテストによって
テストされる条件を代えた後、オリジナルルールは残り
の集合に置かれる; ・ポジティブ集合内に累積される(accumulated within
positive set): 集合的な表現を扱うために、(1ある
いはそれ以上の)アキュミュレータを増加するルールは
ポジティブ集合に置かれ、オリジナルルールは、適切な
アキュミュレータによって、(1あるいはそれ以上の)
集合的な表現、TOTAL(.....)を代えた後、残りの集合に
置かれる。 ・残りの集合内に完成される(completed within remai
ning set):ルールは残りの集合に変更されずに置かれ
る; ・分割 (partition):連続的にN集合の各々を分割する
ことが、ルールのオリジナル集合を実行する場合に、ル
ールの集合はN個の独立した集合に分割される。且つ ・論理的な平易化を行う(make logical simplificatio
n): 平易化はあらゆる論理的に同等な形に再書き込みさ
れる。
【0010】本発明の実施の形態において、多くのこれ
らの詳細化は単一ステップに結合されることができる。
内包のために考慮される他の詳細化律の例は、“最初の
繰り返しだけの条件をテストする" 、“局部的な繰り返
しグループの観点におけるテーブルを記憶する”、或い
は“スタック(stack) の使用による再帰を実行する”で
ある。例示的な詳細化律は、アペンディックスBに記述
される。各々の点において、異なる選択が宣言的言語の
仕様を実行する異なるアクション・ダイアグラムログを
導く場合に、有効に適用され得る多くの詳細化律と特定
の詳細化律に適用する多くの異なる方法がある。各々の
可能なアクション・ダイアグラムは、本発明のこの実施
の形態によって定義されたコストモデルによるその評価
された実行時間によって費用がかけられる。これは、一
般に、発生された各アクション・ダイアグラム記述に対
するターゲット・データベース管理システム(DBMS) に
依って選択されるアクセス・プラン(access plan) を予
測すること、およびこのようなアクセス・プランのコス
トを評価することを意味する。
【0011】従って、最も低く見積もられたコストでア
クション・ダイアグラムを作る詳細化のシークェンスを
見つけるために、詳細化律ライブラリー32は本発明に
おいて使用されるサーチスペースを定義する。本発明の
実施の形態は、特別な方法でこのサーチスペースを調査
する。しかしながら、いろいろな変更、置き換え、改変
が本発明の精神および範囲から逸脱することなく可能で
あることが考えられる。本発明の実施の形態において、
各モジュールは、最も高い最適化レベルでのその働きに
よって記載されている。従って、本発明は、更に、ユー
ザーに対して定義できる最適化レベルを提供する。高い
レベルの最適化で、変換プロセス自体は長時間かかるで
あろうが、その結果のアクション・ダイアグラムは、よ
り効率的である。しかし、本発明は、ユーザが最大の実
行時間を記入することを可能にもし、それにより、もし
必要なら、限られた、予め定められた時間内に変換タス
クを完了するために、変換プロセスは最適化レベルを自
動的に減少する。
【0012】本発明の実施の形態において用いられる変
換プロセスは、次のサーチ技術を適用する。 (1)境界のある深さ−第1サーチが可能なアクション
・ダイアグラムのサーチスペースに渡って行われ、もし
既に調査された最新の最良オプションより悪いことが保
証されるなら、オプションは調査されない。 (2)繰り返しの努力を避けるために、解決されたサブ
問題と費用のかかるアクション・ダイアグラム・ステー
トメントのヒストリーは、維持される。従って、各問題
を開始すると、本発明の実施の形態は、同等な、或いは
簡単な問題が以前に処理されているかどうかを決定する
ために、問題を存在するヒストリーと照合しようとす
る。 (3)ドメインの特定ヒューリスティックスが、全くサ
ーチされていないか、あるいは2番目にサーチされてい
る他のオプションで、いろいろな点で最良のオプション
を選定するために用いられる(それにより、発生時間を
減少する)。含まれているドメインの特定ヒューリステ
ィックスは、使用されたコストモデルおよび予め決めら
れた標準の見積もりに基づかれる。適用されたドメイン
の特定ヒューリスティックスの正確な集合は、要求され
る最適レベルに依存する。
【0013】本発明の実施の形態は、問題のデータ構
造、解決のデータ構造、状態のデータ構造、オプション
リストのデータ構造およびヒストリーのデータ構造を含
むいろいろなデータ構造を含んでいる。本発明の実施の
形態において、データ構造の各々は、コンピュータ2の
メモリに一次的なオブジェクトとして記憶されるPROLOG
として実行される。アペンディックスAに詳細に記載さ
れている問題のデータ構造は、維持されるべきルールの
リストおよび維持されなければならないこれらのルール
間の依存性のリストによって解決されるべき問題を定義
している。これらのルールは、図8に示され、以下に詳
細に記載される例示的なエンティティ(Entity)−関係−
属性のデータモデルのような、エンティティ−関係−属
性のデータモデルに対して表現される。依存性は、ルー
ルが満たされるあらゆる必要なシーケンスを定義してい
る。解決のデータ構造は、アクション・ダイアグラムお
よびアクション・ダイアグラムの見積りコストの形態で
生じた解決を含む。状態のデータ構造は、変換の現状に
適合した情報を含み、且つ変換の現状でセットされてい
るフラグの可能性を有している、変換中に導入されるフ
ラグに関するあらゆる情報を含む。
【0014】オプションのデータ構造は、各問題に対し
て発生され、変換プロセスにおける次のステップに対し
て考慮するために、どのオプションであるかを決定する
ために用いられる。オプションのデータ構造は、ステッ
プ間は維持されず、その条件が保持するために知らされ
ているアクションのリスト、およびもし条件が保持する
なら実行されるべきルールと一緒に、いま何がテストさ
れているかの条件のリストである。ヒストリーのデータ
構造は、遭遇した以前の問題および費用のかかった以前
の条件の変換結果を有している。従って、ヒストリーの
データ構造は、変換中に遭遇した各問題の変換結果およ
び変換中にいろいろなアクション・ダイアグラム・エレ
メントにかかる費用の結果を記憶するために用いられ
る。図2は、分割を伴う変換モジュール14に結合され
た変換モジュール(transform module)12を有する、本
発明のブロック図10を示す。分割を伴う変換モジュー
ル(transform with partitioning module)14は、分割
モジュール(partitioning module) 16とトランス・モ
ジュール(trans module)18に結合されている。トラン
ス・モジュール18は、フォーム・オプション・モジュ
ール(form options module) 20、保証されたシェアリ
ング・モジュール(guaranteed sharing module) 22、
選択モジュール(select module) 24、シェア・モジュ
ール(share module)26、プルーン・モジュール(prune
module)28およびインプリメント・モジュール(imple
ment module)30に結合される。条件コスト・モジュー
ル(condition cost module) 40は、インプリメント・
モジュール30に結合される。トランス・モジュール1
8は、また詳細化律ライブラリー32、ヒストリー・フ
ァイル36およびドメインの特定ヒューリスティックス
・ファイル38にも結合される。モジュールの各々の動
作は以下に詳細に述べられる。
【0015】変換モジュール12は、問題が最初に与え
られる最高レベルのモジュールである。図3のフロー図
に示されているように、変換モジュール12は、ブロッ
ク52で初期化を行い、各詳細化後に保証されたサブ問
題を処理するために、変換中に繰り返して呼出される、
ブロック54の分割を伴う変換モジュールを呼出す。問
題のデータ構造を用いて定義された問題定義および入力
として最適レベルが与えられると、変換モジュール12
は、ブロック56に示された解決のデータ構造におい
て、変換中に見積もられたコストを含む、見つけられた
最良の解決をする。変換モジュール12は、大部分の問
題を分割を伴う変換モジュール14に与える。解決のた
めに問題と最大のコストが与えられると、分割を伴う変
換モジュール14は、見つけられた最良の解決をする
か、もし解決が記入された最大コスト以下に対して見つ
けることができなければ、“ナル(null)" を生じる。分
割を伴う変換モジュール14の動作は図4のフロー図に
示される。分割を伴う変換モジュール14は、ブロック
72に示されるように、問題を分割モジュール16を用
いて独立の問題に分割し、そして、決定ブロック74を
通して順番に独立の問題の各々の1つを処理するため
に、ブロック76のトランス・モジュール18を実施す
る。見つけられた最良の結果は、ブロック78で、変換
モジュール12に戻される。
【0016】トランス・モジュール18の動作は図5に
示されたフローのダイアグラムに記載される。トランス
・モジュール18は、もし、決定ブロック82に示され
るように、可能なら、現在の独立の問題に対してブロッ
ク84で見つけられた前の解決を検索して、ヒストリー
・ファイル36からのヒストリー・データを用いる。別
な方法で、トランス・モジュール18は、直接的に或い
は間接的に、ブロック86のフォーム・オプション・モ
ジュール20、ブロック88の保証されたシェアリング
・モジュール22、ブロック90の選択モジュール2
4、ブロック94のシェア・モジュール26、ブロック
98のプルーン・モジュール28およびブロック102
のインプリメント・モジュール30を実施して、また決
定ブロック104で決定される各オプションのブロック
102のインプリメント・モジュール30によって実行
中に発生される各サブ問題に対して、ブロック106の
分割を伴う変換モジュール14を繰り返し実施して、実
際に最適レベルに適した全てのオプションを発生し、調
査する。各オプションは、前のオプションの実施から見
つけられた最良の解決によって強制された実施で、順番
に行われる。
【0017】全ての実際的なオプションが実施される。
後のオプションを実施することが価値があるかどうかを
判断するために、1つのオプションの実施から得られる
情報を用いることが可能であるかぎり、これは不必要な
複雑さを加えることと考えられる。二重のオプションが
発生され、その各々は独立に実施されるが、しかし、問
題のヒストリーを使用するために、これは深刻な問題で
はない。単一の問題が与えられると、分割モジュール1
6は独立のサブ問題の連続した集合を生じ、連続してこ
れらの独立のサブ問題の各々を実行することは、全体と
して問題に対する解決を発生することに関する解決の総
コストを非常に増大することなく、与えられた問題を実
行する。独立したサブ問題の連続した集合の決定におい
て、問題を定義している問題のデータ構造におけるルー
ルのリストは、ルール間の処理をシェアする機会は失わ
れず(即ち、同じアングランド・ビュー(unground vie
w) 、或いは同じ属性を含む2つのルールは同じ集合に
なければならない)、また問題のデータ構造にある依存
性のリストによって定義されたルール間の依存性は維持
されることを保証する限り、分割モジュール16によっ
て、可能なかぎり多くの異なる集合に分割される。
【0018】“ビュー”は、ある形の変数に対して、テ
キサス・インスツルメント・インコーポレイテッドの製
品である、IEF によるコンポーザーにおいて用いられる
用語である。例えば、“一次顧客”と呼ばれるビュー
は、タイプ“顧客”の変数である。カレンシー(Currenc
y)は、アクション・ダイアグラム READ 或いは READ EA
CHステートメントによってビュー上に確立される。用語
“グランド・ビュー(ground view)"は、カレンシーが確
立されているビューを記述するために用いられ、用語
“アングランド・ビュー(unground view)"は他の状態で
用いられる。全ての最適化レベルに対して、集合は、ES
CAPEアクションを含むあらゆる集合(ESCAPEアクション
を含まない集合の前に)を処理している間に、依存性に
従う様な方法で連続される。各々の集合は、独立したサ
ブ問題として解決される。分割モジュール16によって
発生された独立したサブ問題が与えられると、フォーム
・オプション・モジュール20は、サブ問題に対してオ
プションの初期のリストを戻す。各オプションは、
(1)あるアクションを取るかべきか、あるいは(2)
ある条件をテストするべきかの何れかであるステップを
伴う、可能な次のステップである。そしてもし条件が合
致するならばルールの1集合をそして条件が合致する
か、あるい合致しないに関係なくルールの他の集合を反
復して実行する。
【0019】フォーム・オプション・モジュール20は
各ルールをそのいろいろな要素の条件に分解する。各要
素の条件はそれが現れるルールにクロスレファレンスさ
れている。オプション・リストは、次に取られるアクシ
ョンのリストを含むルールの集合、および各条件が異な
るルールにわたって共有される方法に従って次にテスト
される条件に対して発生される。保証されたシェアリン
グ・モジュール22は、ドメインの特定なヒューリステ
ィックスに記憶された、“保証されたシェアリング”の
ヒューリスティックスをフォーム・オプション・モジュ
ール20によって発生されたオプション・リストに与え
るように実施される。フォーム・オプション・モジュー
ル20によって発生されたオプション・リストが与えら
れると、保証されたシェアリング・モジュール22は、
(“保証されたシェアリング”・ヒューリスティックス
(Guaranteed Sharing heuristics) を用いてヒューリス
ティックス的に決定される)有利な結果を発生するよう
に保証された条件間で全てのシェアリングで更新された
オプション・リストを戻す。“保証されたシェアリン
グ”・ヒューリスティックスの適用は、追加的なサーチ
を行う必要を避けて、2つのルール間の努力をシェアー
することが確かに有利である場合に、検出する。
【0020】保証されたシェアリング・ヒューリスティ
ックスは、(1)共通のグランド条件(現在のビューを
参照する条件)は常にシェアされ得る;(2)もし2つ
の条件の共通部分は、これらの条件に現れる全てのビュ
ーを含むならば、2つの条件は常にシェアされ得る;
(3)もし、2つの条件が独立して与えられると、ター
ゲットDBMSは同じ方法でそれらの両方をスタートす
ることが確かであるなら、ある条件に従って、この“共
通のスタート”を定義する条件は、常にシェアされる。
チェックされなければならない追加の条件は、とくに条
件が同じアクション内に含まれる場合、条件のコンテク
ストが与えられると、シェアすることが安全であること
を保証する。選択のために考慮されるべきオプションが
与えられると、選択モジュール24は、次に調査されな
ければならない選択されたオプションとまだ考慮されな
けばならない代わりのオプションの集合を戻す。選択モ
ジュール24は、決定する場合に、ドメインの特定なヒ
ューリスティックスから“選択ヒューリスティックス”
を適用する。連続することは、また“選択ヒューリステ
ィックス”を用いて、ヒューリスティックス的に決定さ
れる。
【0021】一般に、オプション・リストに含まれる全
ての可能性を試みることは必要である。“選択ヒューリ
スティックス”は、オプションの数が非常に減少される
場合に検出し、そして最初に調査された最良のオプショ
ンの可能性を増加するように適用される。先ず、あらゆ
る依存性のないルールは、優先的に選択されるESCAPEル
ールで、選択される(同じアプローチが分割を伴うアク
ション集合のヒューリスティックな連続に対して採用さ
れる)。条件は、このルール(あるいは、ルールで重な
るもの)から選択されるであろう。この選択に対するヒ
ューリスティックスは: (1)もし、条件の一つがあるルールにおいて明確に必
要であり、いまそれをテストすることに不必要なコミッ
トメント(commitment)がないならば、その条件は選択さ
れ得るし、他のものは考慮されない; (2)さもないと、全ての意味のないオプションは除か
れ、一つの選択が(近似コスト法を用いて)最も安価も
のに基づいて残りのものから、選択が行われ、そしてこ
の内で、最大のルールに現れるものを優先的に選択す
る。条件を選択することが、意味のないものと考えらえ
るかどうかを決定することに用いられる多くのヒューリ
スティックスがある。全てのものは、以下に基づかれて
いる。
【0022】(a)もし、条件が常に非常に安いものを
伴って現れるなら、条件を選択することは意味がない。 (b)もし、不満足な条件がまだあるなら、アクション
部分に関係しているなら、条件を選択することは意味が
ない(例えば、ある条件が合うなら、トータル命令の量
を見つけ、全ての条件を検索することによって開始しな
いが、しかしその条件をを複雑にする)。選択ヒューリ
スティックスは、発生し得る全ての特別な場合をカバー
することは決してない。特に、代りのものの集合を、よ
り選択的に発生することができる(例えば、もし、いろ
いろな条件が合うことが保証されるなら、いろいろな条
件を代わりのものとして考慮しないことによって、命令
の関係下での“ホリゾン・ギャザリング(horizon gathe
ring)"に対して真実であるように、)。しかしながら、
適用された選択ヒューリスティックスの現在の集合は、
多くの場合良好な選択をする可能性を増加する。単一の
オプションおよび利用可能なオプションの完全なリスト
が与えられると、シェア・モジュール26はオプション
の集合に戻り、戻されたオプションの集合における各オ
プションは、利用可能なオプションのリストにおける1
以上の他のオプションで、単一のオプションのできるだ
け多くのシェアリングの方法を表す。
【0023】従って、シェア・モジュール26は、全て
の可能なシェアされた条件を決定する。しかし、シェア
・モジュール26は、それが、関連し、またドメインの
特定ヒューリスティックスに含まれる、“コネクティビ
ティー(Connectivity)" ヒューリスティックスを無視す
ることなくそうすることができるなら、2つの条件間で
シェアリングの可能性を考慮するだけである。“コネク
ティビティー" ヒューリスティックスを適用すること
は、2つの条件がオーバラップしていても、それらは、
各条件がグランド・ビュー(1つのビュー上に、カレン
シーが既に確立されているが、全ての条件は確立してい
ない)との関係を独立して含むなら、シェアされないこ
とを意味している。さもないと、シェア・モジュール2
6は、オーバラップ条件のできるだけ大きな部分をシェ
アするし、どのビューが1つのリードであるべきかを決
定する。これがより効率的であるなら、実際に、条件の
部分のみがシェアされるべきであるかどうかを決定する
ことは、コーリングトランスモジュール18までであ
る。トランス・モジュール28は、各シェアされた条件
に対して、プルーン・モジュール28を呼び出すことに
よってこの決定をする。プルーン・モジュール28は、
2つ以上の条件C1,C2,...Cn間でシェアされ
る条件Cを与えられる。ここで、“C”は、Ci間で最
大の共通オーバラップであり、“i”は整数である。応
答おいては、プルーン・モジュール28は、オプション
として考えられるCに等しいか、それ以下の条件の全て
を戻す。
【0024】最大の共通オーバラップ、C、より少なく
シェアすることが、できる限りより効率的である場合、
あるいはCが、ターゲットDBMSがサポートしないあ
る構造を含んでいる場合、オプションが起こる。これ
は、ターゲットDBMSがCiの各々に対して合理的に
取るかもしれない可能なアスセス・パスに照らして、条
件を確立して、外で動作することによりなされる。オプ
ション、全ての問題および最大のコストが与えられる
と、インプリメント・モジュール30はそのオプション
を実行するために見いだされた最善の解決を戻す。この
解決は、分割を伴う変換モジュール14を繰り返し呼び
出すことによって見いだされる、オプション自身を実行
するために必要とされるアクション・ダイアグラム・ス
テートメントと、条件のポジティブブランチ(positive
branch) において満足されるべきであるあらゆるアクシ
ョンを実行するために必要とされるアクション・ダイア
グラム・ステートメントを含む。見つけられた最善の解
決に加えて、また、インプリメント・モジュールは、ま
だ解決されなければならない残りの問題に戻る。残りの
問題を解決するために、分割を伴う変換モジュール14
を繰り返し呼び出すことは、トランスモジュール18の
責任(役目)である。
【0025】テストされるあらゆる条件は、“ガード条
件(guard condition)"のあるインプリメント・モジュー
ルによって拡張され得る。ガード条件は、テストされる
条件が現れる全てのルールの条件に基づいている。ガー
ド条件のあるテストされる条件を拡張することは、幾つ
かの場合に無駄な努力を除く(一般に、ガード条件のあ
るテストされる条件を拡張することは、READ或いはREAD
EACH 上の条件の分離を有するが、テストされた条件を
ガードするIFステートメントの導入を含むことができ
る)。それから、条件をテストすることの見積もりコス
トが得られる。問題は、2つの部分、即ちテストの成功
ブランチ内で実行されるべきルール(ポジティブ集合:
positive set) およびその後に実行されるべき残りのル
ール(残りの集合)、に分離される。分離するプロセス
の間、アキュミュレータを増加するルールが加えられ
る。そしてこのアキュミュレータを用いるためにルール
が再書き込みされ、そしてもしあるなら、どのルールを
遅らせるかについての決定がなされる。ルールを遅らせ
ることは、ポジティブ集合内でそれを完成する代わり
に、インプリメント・モジュール30は、残りの集合に
その完成を遅らせることを意味する。これは、もしポジ
ティブ集合内のそのルールの処理を完成することが依存
性の要求を無視するか、そのルールおよびミスされるべ
き残りの集合におけるある他のルールとの間でシェアリ
ングを行う機会を生じる場合に、行われる。もしテスト
されている条件が些細なことでない(即ち、IFステー
トメントを単純化しない)ならば、インプリメント・モ
ジュール30は、それが、ポジティブ集合においてフラ
ッグをセットすること、および条件を再テストする代わ
りに、そのフラッグの状態をテストする他のルールを再
書き込みすることによって、再テストされる必要がない
ことを保証する。
【0026】そのポジティブ集合におけるルールは与え
られた最大コストに基づくコスト、および分割を伴う変
換モジュール14を繰り返し呼び出すことによって、こ
の条件のコスト内で変換される。一つの条件が与えられ
ると、条件コストモジュール40は、フィルター・ファ
クター(この条件が合う時間の見積もられた数を示す
数)および条件をテストするコスト(ディスク・ページ
・アクセスにおいて計られる)を戻す。IFステートメン
トあるいはREADステートメントによって実行される条件
に対して、フィルター・ファクターは、条件が合う可能
性を表す、0と1の間の数である。READ EACH ステート
メントによって実行される条件に対しては、フィルター
・ファクターは、条件を合わす発生の評価数を表す0よ
り大きな数である。条件コスト・モジュール40によっ
て実行されるコスト・モジュールは、効率を考慮に入れ
るだけで、サイズのようなアクション・ダイアグラムの
他の特性を無視し、特徴および明瞭性を固定する。コス
トは、ディスク・ページへのアクセスの数によって計ら
れる。評価は、アクション・ダイアグラム・ステートメ
ント、データ構造の設計および各々のエントリー形式お
よび関係の発生の見積もり数を定義するデータ・モデル
の部分として定義されるモデルの統計に基づかれてい
る。本発明の実施の形態において、READとREAD EACH ス
テートメントから離れた全てのアクション・ダイアグラ
ム・ステートメントのコストは0として取られる。READ
あるいはREAD EACH ステートメントのコストはターゲッ
トDBMSに対して実行するために発生されるSQLス
テートメントの見積もられたコストに等しい。
【0027】もし可能なら、ヒストリー・ファイル36
におけるコストのヒストリー・データが用いられ、さも
ないと、コストは、ターゲットDBMSの最適者によっ
て選ばれるアクセス・パス(access path) を予想し、そ
のパスを実行するコストを見積もることにより見積もら
れる。このアクセス・パスは、ターゲットDBMSが考
慮する全てのアクセス・パスにわたって調査し、最も低
いコストのものを戻すことによって、見積もられる。こ
の調査は束縛される。
【0028】次の一般的なヒューリスティックスが、タ
ーゲットDBMSによって取られたアクセス・パスを決
定することに関して、条件コスト・モジュール40によ
ってなされる全ての決定に適用される。 (1)グランド・ファースト(ground first):全ての他
のものに優先して、グランド条件(グランド・ビュー(g
round views)のみを含む条件)を行う; (2)接続性:利用できる場合に、関係条件を伴う; (3)任意の発生シーケンス:発生(即ち、関連条件に
合う高々1つの発生があるビュー)をアクセスするシー
ケンスは重要でない; (4)検索前の発生:発生は検索ビューの前に常にアク
セスされる(即ち、関連条件に合う1より多い発生があ
るビュー);および (5)考えのトレイン(train of thought): 可能な場合
に、アクセスされた最後の非発生ビューに接続されたビ
ューをアクセスする。これらのヒューリスティックス
は、変換中に一貫して適用される。しかしながら、本発
明の他の実施の形態においては、条件コスト・モジュー
ル40はターゲットDBMSの最適者によって用いれる
同じルールを用いるために実行され得ることが考えらえ
る。
【0029】可能な拡張 本発明の実施の形態において用いられるDBMSのコン
セプトの他の特徴は、条件コスト・モジュール40の実
行において省略されたDBTMは、 (a)単一の発生中の不完全サーチ−単一の発生は任意
のシーケンスにおいてアクセスされる。 (b)デノーマリゼーション(Denormalization)&フォー
リン・キー(Foreign keys)−コスト・モデルは、その全
ての特性がデノーマライズされ、あるいはフォーリン・
キーであるとしても、ビューがアクセスされなければな
らないことを想定する(フォーリン・キーのコンセプト
がまだ多少含まれており、関連の任意性に適しているフ
ィルター・ファクターは、発生をアクセスする前に適用
されるけれども)。制限された問題がこれを含むことに
よって起こされ、初期のプロトタイプによって処理され
る。 (c)インデックス(Indexes) −条件コスト・モジュー
ル40は、識別子に対するインデックスを考慮せず、各
関連に対するインデックスがある(そして他にはない)
ことを想定する。制限された問題は、データ構造設計か
らの実際の情報を含むことによって起こされる。 (d)テーブル・サイズとページ・サイズ(Table size
& Page size)−40バイトのテーブル・サイズが、全て
のテーブルに対して想定され、4000バイトのページ
・サイズが、全てのページに対して想定される。制限さ
れた問題は、データ構造設計からの実際の情報を含むこ
とによって起こされる。 (e)他の結合方法(Other join method) −入れ子型の
ループ結合のみが含まれる。一方、幾つかのDBMSが
追加の方法をサポートする(例えば、大きな質問に対し
て、非常に適切であるマージ・スキャン結合(merge sca
n join))。 (f)ソート・コスト(Sort cost) −適用する他の制限
が与えられると、ソート・コストの見積もりは生成され
ない。重要な問題を生じる可能性はない。 (g)テーブル空間セグメンテーションと非マッチング
・インデックス・スキャン(Table Space Segmentation
& non-matching index scan)−テーブル空間はセグメン
ト化されることが安全な仮定として取られ、従って、非
マッチング・インデックス・スキャンは適当でない。
【0030】(h)インデックス・ページ・アクセスと
インデックス・オンリー・アクセス(Index Page access
& Index only access) −インデックス・ページにアク
セスするためのコストは含まれし、同様に、インデック
スのみがアクセスされる必要がある場合の計算は行われ
ない。 (i)インデックス・クラスタリング(Index Clusterin
g)−インデックス・クラスタリングの計算は行われな
い。含むことによって起きる問題は、クラスターされた
インデックス(>90%)に対するクラスタリングの一
定の程度を想定することができるが、“偶発的な(accid
ental)" なクラスタリング(従って0%と仮定する)に
関する利用できる情報はないことである。 (j)CPUコストとステージ1/2述部(CPU cost &
Stage 1/2 predicates) −CPUコストは含まれない。 (k)自由空間(Fee Space) −パーセンテージ自由空間
の効果はページ・サイズを調整することによって簡単に
含まれ得る。 (l)シーケンシャル・プリフェッチ(Sequential Pref
etch) −大きな質問をもたらす。
【0031】本発明の第2の実施の形態において、最適
化のレベルは、例えば、(1)“検索前の発生(occurre
nces before retrievals)"および“考えのトレイン(tra
in of thought)”のヒューリスティックス(それらは1
つの検索が2以上の結果を戻すヒューリスティックスに
基づかれるように、これらの2つは、一緒に行うべきで
ある)を和らげ、また(2)付随的に“接続性(connect
ivity)" のヒューリスティックスを和らげる高いレベル
を可能にするように拡張され得る。これらのヒューリス
ティックスを和らげることは、本発明の第2の実施のけ
いたいが、除外されるかも知れない最適な解決を見つけ
ることを可能にする。しかしながら、プルーン・モジュ
ール20に発生するプルーニング・バック(pruningbac
k)を最大にするために、和らげられたヒューリスティッ
クスに従うこれらのオプションは、和らげられたヒュー
リスティックスに従わないこれらのオプションを調査す
る前に、調査されるべきである。宣言的言語の仕様のイ
ンプリメンテーションは、プロセスのプリコンディショ
ンが合致することをチェックするために、必要な有効ロ
ジックの発生を含んでいる。仕様は: [pre, post]: pre が真なら、postが2つの仕様に初め
に再書き込みされることを満足する状態で終了する。 [true, ESCAPE <-not(pre)]: pre が合致しないなら、
常にエスケープ(ESCAPE)する (即ち、更に処理をしな
い) 。 [pre, post]: pre が真なら、postを満足する状態で終
了する。 これら2つの仕様は、変換を用いて独立して実行され、
その結果生じる2つのアクション・ダイアグラムは、最
終結果を作るために追加される。この小さな初期の再書
き込みと生じたアクション・プログラムの次の追加はマ
ニュアルで行うことができるが、それは、本発明の実施
の形態においては、変換モジュール12の部分として自
動的に行うことができることも考えらえる。
【0032】 本発明の実施の形態を更に説明するために、以下のルー
ルの集合はアクション・ダイアグラムに変換されなけれ
ばならないことを考慮されたい。 図6に示されたダイアグラムは、記号300で示された
これらのルールの詳細化のために利用できる全てのオプ
ションを示す。
【0033】オプションを定義する、図6に用いられた
表現は以下のように記述される: ・A1<−C2a^C3^C4は、条件C2a,C3および
C4が全て合致すれば、あるアクションA1が実行され
なければならないことを表す(アクションはある表現に
ある特性をセットするべきである)。 ・C2a、C3等は、条件がオーバーラップする事実を表
す。即ち、我々は、それらの間のある努力をシェアす
る。C2ab はそれら間でシェアされた条件の一部を表
し、C2a' は、まだ残っている条件の一部を表す。例え
ば、2つの条件: CURRENT order is placed by Some customer AND THAT customer type =‘A' and CURRENT order is placed by Some customer AND THAT customer type = ‘B' can both be shared with: CURRENT order is placed by Some customer with two remainin g conditions: CURRENT customer type =‘A' and CURRENT customer type =‘B' ( CURRENT命令は、あるカスタマーとそのカスタマーのタイプ= `A' によって 配置される および CURRENT命令は、あるカスタマーとそのカスタマーのタイプ= `B' によって 配置される は、2 つの残りの条件: CURRENTカスタマータイプ =‘A' および CURRENTカスタマータイプ =‘B' でカスタマーによって 配置される で、両方ともシェアされる。) ・{C1:A1}等は、テストされるべき次の条件とし
て条件C1を選択することを表し、そのテストのポジテ
ィブ集合におけるアクションA1のみを含む。 ・{C2ab: A1,A2}等は、テストされるべき次の
条件として条件C2ab,Ca とCb のシェアされた部分を
選択することを表し、2つのアクションA2とA3間の
努力をシェアする。
【0034】・READ C1 ...END は、詳細化を適用
することによって導入されるアクション・ダイアグラム
・ステートメントを表す。従って、{C1:A1}を選
択することから生じるアクション・ダイアグラムは、 READ C1 <the action diagram implementing [A1]> END <the action diagram implementing[A2 ←C2a^C3^C4, A3 ←C2b, A4 ←C2c > (READ C1 <[A1]を実行するアクション・ダイアグラム> END <[ A2 ←C2a^C3^C4, A3 ←C2b, A4 ←C2c]を 実行するアクション・ダイアグラム>) である。 ・{C2ab: A1,A2}等は、Ca, Cb およびCc
がシェアされる1つの方法である条件C2abc1 を選択す
ることを表す(他はC2abc2 である) 。
【0035】最初の詳細化ステップに対して、ブロック
302〜322において示される11のオプションがあ
る。 ・いかなるシェアリングもなく、単一の条件を選択す
る:我々は、ブロック302〜312に示されている
({C1 :A1 }、{C2a:A2 }等)を選択する条件
に対して6つのチョイスを有している。 ・2つのルール間でシェアリングして、条件を選択す
る:シェアすることができる条件は、C2a, C2b, C2c
である。従って、我々はブロック314〜318に示さ
れる3つのチョイス({C2ab:A2,A3 }、{C2ac:A
2,A4 }および{C2bc:A3,A4 }) を有する。 ・3つのルール間でシェアリングして、条件を選択す
る:この例においては、我々は、ブロック320〜32
2に示される、この({C2abc1:A2,A3,A4 }および
{C2abc2:A2,A3,A4 }) に対して2つのオプション
があると考える。これらのオプションは2つの理由に対
して生じる: −それは、ターゲットDBMSが付随するアクセス・パ
スとして、オバーラップ条件の一部分だけがシェアする
ために選択されることであり、そして −あらゆる条件がターゲットDBMSがサポートする構
造を含んでいるなら、その回りで作業する多くの異なる
方法があるからでかる。
【0036】ブロック324〜332に示されるよう
に、作られたサブ問題を実行するため選ばれる多くのア
クション・ダイアグラムがある。次の詳細化のステップ
に対するオプションの集合はサブ問題の1つ、特にブロ
ック326に示されたサブ問題に対してなされる。変換
がブロック302〜322に示された11のオプション
のサブ集合を発生する方法は図7で図示されている。オ
プションは、それらが既に含まれている1つのオプショ
ンから生じるものより優れているあらゆる解決を生まな
いことが多分、ヒューリスティック的に決定されないな
ら、発生される必要がない。先ず、トータル的に、独立
して2つの集合を実行し、その結果生じるアクション・
ダイアグラムを合成することによって導入される非効率
性がないことが証明される場合は(そして依存性は無視
されないであろう)、ルールの集合が、例えばブロック
402〜404に示されるように、2つの独立集合に分
割〔分割モジュール16〕される。ブロック404で、
これらの集合のだだ1つの次のインプリメンテーション
を考慮して、オプションのリストはブロック406に示
されるように形成(フォーム・オプション・モジュール
20)される。これは、単に次に取られるアクションの
リストであり、各々が異なるルールを横切ってシェアさ
れる必要がある方法で、次にテストされ得る条件であ
る。
【0037】このオプション・リストは、ブロック40
8で(“保証されたシェアリング”のヒューリステッィ
クスを用いて)ヒューリスティック的に決定されるよう
に、明らかに良いアイデアである全てのシェアリングで
(保証されたシェアリング・モジュール22)更新され
る。ブロック408において、例えば、C2aおよびC2b
は常にC2ab にシェアされる必要がることが決定され
る。セレクション(セレクト・モジュール24)は、ブ
ロック410と412に示されるように、更に考慮さ
れ、優先順位でシーケンスされる必要があるオプション
のより少ない集合を発生するために、全ての異なる条件
から作られる。このセレクションとシーケンシングは、
(“セレクション”のヒューリステッィクスを用いて)
ヒューリステッィクス的に行われる。選択された条件の
各々に対して、他の条件とそれをシェアするためのオプ
ションは(シェアのないものを含んで)発生される [シ
ェア・モジュール26] 。ブロック410における選択
された条件をシェアするためのオプションはブロック4
14と416に示される。ブロック412における選択
された条件をシェアするためのオプションはブロック4
18に示される。例えば、C2ab が与えられると、それ
はブロック414に示されるように、他のものとシェア
されないか、ブロック416に示されるように、C2abc
を与えるためにC2cとシェアされる得る (CabとCc 間の共通の完全なオーバラップ条件)ブロ
ック414、416および418のこれらのオプション
の各々に対して、条件はブロック420〜426にしめ
されるオプションを発生して“プルーンバック” [プル
ーン・モジュール28] される。上で議論されたよう
に、条件をプルーンバックすることは、完全なオーバラ
ップ条件よりすくなくシェアするか、ターゲットDBM
Sによって支持されない構造に簡単に取りかかるため
に、行われる。異なるオプションは、プルーンバックが
行われるいろいろな方法をもたらすために発生すること
ができる。
【0038】最後に、ブロック420〜426に示され
るオプションの各々が実行され [インプリメント・モジ
ュール30] 、単純な手段が、ブロック428〜434
に示されるように必要なアクション・ダイアグラム・ス
テートメントあるいはステートメンツを導入し、適切な
サブ問題を繰り返して変換する。従って、図7に示され
た例において、C2ab が選択された詳細化として選ばれ
る全ての解決が、C2abc1 等を調査する前に、先ず調査
される。上述されたステップの各々において発生される
オプションの集合は最適化レベルに事実上依存する。RE
ADステートメントの例示的な変換とプリコンディション
の例示的な変換に伴うアクション・ダイアグラムへのデ
ビエーション・ルールの集合が、ことごとくレファレン
スによって挿入されているアペンディックスCに記載さ
れている。アペンディックスCに記載された例は、図8
に示されたエンティティ関係ダイアグラムは、エンティ
ティ形式(Entity type) 間に書かれたライン上のラベル
によって指示された2つのエンティティ形式間の関係を
有するボックスとして各エンティティー形式を図示して
いる。2つのエンティティ形式間に引かれたラインは、
エンティティ形式と関係間のカーディナリティ(cardina
lity: 濃度)をも指示している。例えば、ターム(TERM)
エンティティ形式202からオーダー(ORDER) エンティ
ティ形式206へのライン204の“上にある(is on)"
関係は、一つから多数であるのに対し、オーダー・エン
ティティ形式206からターム・エンティティ形式20
2のライン204の" 上にある" 関係が多数から一つの
関係である。本願発明について、詳細に述べられたが、
特許請求の範囲に記載された本願発明の精神および範囲
から逸脱することなく、いろいろな変化、置き換え、変
更が可能であることを理解されるべきである。
【0039】以上の記載に関連して、以下の各項を開示
する。 (1)メモリを有するコンピュータを用いて、問題の宣
言的言語の仕様を前記問題の手続き的言語の仕様に自動
変換する方法であって、前記方法は、与えられた最適レ
ベルに従って、複数の手続き的言語のインプリメンテー
ションを生成するために、複数の詳細化律とドメインの
特定ヒューリスティックスを前記宣言的言語の仕様に適
用するステップ、前記複数の手続き的言語のインプリメ
ンテーションの各々に関連するコストを決定するステッ
プ、および前記コストに従って、前記問題の手続き的言
語の仕様を形成するために、前記複数の手続き的言語の
インプリメンテーションの一部を選択するステップを有
することを特徴とする方法。 (2)メモリを有するコンピュータ上で、問題の宣言的
言語の仕様を前記問題の手続き的言語の仕様に変換する
方法であって、前記方法は、前記コンピュータの前記メ
モリに前記問題の宣言的言語の仕様を与えるステップ
と、前記コンピュータの前記メモリに詳細化律のライブ
ラリーを与えるステップと、前記コンピュータの前記メ
モリにドメインの特定ヒューリスティックスのを与える
ステップと、前記ドメインの特定ヒューリスティックス
と前記詳細化律を用いて、前記問題を連続した、独立の
サブ問題の集合に分割するステップと、与えられた最適
化レベルに従って、前記ドメインの特定ヒューリスティ
ックスと前記詳細化律を用いて、前記サブ問題の各々の
手続き的言語のインプリメンテーションを発生するステ
ップと、前記発生したステップに応答して、発生された
追加のサブ問題に対して、前記分割および発生ステップ
を繰り返すステップと、前記問題の前記手続き的言語の
インプリメンテーションを発生するために、前記手続き
的言語のインプリメンテーションの各々に関連するコス
トに従って、前記コンピュータの前記メモリにおいて、
前記手続き的言語のインプリメンテーションの一部を選
択するステップ、を有する方法。 (3)メモリを有するコンピュータ上で、問題の宣言的
言語の仕様を前記問題の手続き的言語の仕様に変換する
方法であって、前記方法は、前記コンピュータの前記メ
モリに前記問題の宣言的言語の仕様を与えるステップ
と、前記コンピュータの前記メモリに詳細化律のライブ
ラリーを与えるステップと、前記コンピュータの前記メ
モリにドメインの特定ヒューリスティックスの集合を与
えるステップと、前記ドメインの特定ヒューリスティッ
クスと前記詳細化律を用いて、前記問題を連続した、独
立のサブ問題の集合に分割するステップと、与えられた
最適化レベルに従って、前記ドメインの特定ヒューリス
ティックスおよび前記詳細化律を用いて、前記サブ問題
の各々の手続き的言語のインプリメンテーションを発生
するステップであって、前記手続き的言語のインプリメ
ンテーションは関連するコストを有し、前記手続き的言
語のインプリメンテーションの各々の前記関連したコス
トは、すでに発生された前記手続き的言語のインプリメ
ンテーションの最小コストより小さいけれど、前記発生
したステップに応答して、発生された追加のサブ問題に
対して、前記分割および発生ステップを繰り返すステッ
プと、前記問題の前記手続き的言語のインプリメンテー
ションを発生するために、前記手続き的言語のインプリ
メンテーションの各々に関連するコストに従って、前記
コンピュータの前記メモリにおいて、前記手続き的言語
のインプリメンテーションの一部を選択するステップ、
を有する方法。 (4)メモリを有するコンピュータ上で、問題の宣言的
言語の仕様を前記問題の手続き的言語の仕様に変換する
方法であって、前記方法は、(a) 前記コンピュータの前
記メモリに前記問題の宣言的言語の仕様を与えるステッ
プと、(b) 前記コンピュータの前記メモリに詳細化律の
ライブラリーを与えるステップと、(c) 前記コンピュー
タの前記メモリにドメインの特定ヒューリスティックス
の集合を与えるステップと、(d) 前記ドメインの特定ヒ
ューリスティックスと前記詳細化律を用いて、前記問題
を連続した、独立のサブ問題の集合に分割するステッ
プ、前記サブ問題はルールによって定義され、前記ルー
ルは条件とアクションを含み、(e) 前記複数の条件の各
々と前記宣言的言語のルールの各々間の第1のオプショ
ン・リストを発生するステップと、(f) 保証されたシェ
アリング・ヒューリスティックスを前記第1のオプショ
ン・リストに与えるステップ、それにより、第2のオプ
ション・リストを発生し、(g) 選択ヒューリスティック
スを前記第2のオプション・リストに与えるステップ、
それにより、複数の選択された条件を含む第3のオプシ
ョン・リストを発生し、(h) 複数のシェアされた条件を
有する第4のオプション・リストを発生するために、保
証されないシェアリング・ヒューリスティックスを前記
第3のオプション・リストにある前記複数の選択された
条件の各々に適用するステップと、(i) 複数のプルーン
された条件を有する第5のオプション・リストを発生す
るために、前記第4のオプション・リストにある前記シ
ェアされた条件をプルーンするステップと、(j) 前記第
5のオプション・リストにおける前記プルーンされた条
件から前記宣言的言語のステートメントの手続き的言語
のインプリメンテーションを発生するステップと、(k)
前記手続き的言語のインプリメンテーションの各々に関
連するコストを決定するステップと、(l) 前記サブ問題
の各々に対して、ステップ (e)−(k) を繰り返すステッ
プと、(m) 前記問題の前記手続き的言語のインプリメン
テーションを発生するために、前記コストに従って、前
記手続き的言語のインプリメンテーションのサブ集合を
選択するステップ、を有する方法。 (5)所定の実行時間を与えるステップを更に含み、前
記与えるステップは前記所定の実行時間内で前記変換を
完成するために、前記与えられた最適化レベルを減少す
るステップを有する前記(1)項に記載の方法。 (6)前記決定するステップは、ディスク・ページ・ア
クセスによって、前記代わりの手続き的言語のインプリ
メンテーションの各々に関連する前記コストを決定する
ステップを含む前記(1)項に記載の方法。 (7)前記与えるステップは、前記宣言的言語、前記手
続き的言語および前記問題に従って決定される前記詳細
化律を与えるステップを含む前記(1)項に記載の方
法。 (8)前記決定するステップは、前記手続き的言語のイ
ンプリメンテーションの各々に関連した前記コストを発
生するために、前記手続き的言語の仕様に対するターゲ
ット・データ管理システムによって選択されたアクセス
・プランを決定するステップを含む前記(1)項に記載
の方法。 (9)前記与えるステップは、前記コンピュータのメモ
リに記憶されたヒストリー・ファイルから前記問題の前
の手続き的言語のインプリメンテーションを検索するス
テップを含む前記(1)項に記載の方法。 (10)ルールによって定義された問題の宣言的言語の
仕様を前記問題の手続き的言語の仕様に変換するシステ
ムであって、前記システムは、初期化設定をするための
変換モジュールと、発生したサブ問題の変換を制御する
ための、前記変換モジュールに結合された分解を伴う変
換モジュールと、前記問題を独立したサブ問題の連続し
た集合に分解するための、前記分解を伴う変換モジュー
ルに結合された分解モジュールと、変換された以前の問
題のヒストリーと与えられた最適レベルに従って、前記
サブ問題の各々を変換するための、前記分解を伴う変換
モジュールに結合されたトランス・モジュールと、前記
サブ問題の一つに対してオプション・リストを発生し、
前記ルールの各々をその成分条件に分解するための、前
記トランス・モジュールに結合されたフォーム・オプシ
ョン・モジュールと、前記条件の決定が、更新されたオ
プション・リストを発生するために、前記条件の他の一
つで限定的に共有されるべきであることについての決定
に従って、前記オプション・リストを更新するための、
前記トランス・モジュールに結合された保証されたシェ
アリング・モジュールと、選択オプション・リストを発
生するために、前記オプションの更新されたオプション
・リストは次に処理されるべきである更新されたオプシ
ョンリストから決定するための、前記トランス・モジュ
ールに結合された選択モジュールと、シェアされたオプ
ション・リストを発生するための、前記トランスモジュ
ールに結合された共有モジュール、前記共有されたオプ
ションリストは、前記選択オプション・リストにおける
前記オプションの一つが前記選択オプション・リストに
おける少なくとも一つの他のオプションとどのようにシ
ェアされ得るかを定義しており、オプションを生成する
ための前記シェア・モジュールに結合されたプルーン・
モジュール、前記オプションの各々は、前記選択オプシ
ョン・リストの前記条件がどのように減少され得るかを
定義しており、前記オプションの前記一つの手続き的言
語の仕様を発生するための、前記トランスモ・ジュール
に結合されたインプリメント・モジュールと、前記手続
き的言語の仕様に関連したコストを発生するために前記
インプリメント・モジュールに結合された条件コスト・
モジュールを有することを特徴とするシステム。 (11)本願発明は、問題の宣言的言語の仕様をその問
題の手続き的言語の仕様に変換するものである。本願発
明は、問題を詳細化律の集合に従って、連続した、独立
のサブ問題に分割するための分割モジュール(16)、
および与えられた最適化レベルに従って、連続した、独
立のサブ問題の各々に対してフォーム・オプション・モ
ジュール(20)によって発生されたオプションの集合
に、保証されたシェアリング・モジュール(22)によ
って与えられたドメインの特定ヒューリルティックスの
集合を用いて、サブ問題の各々の手続き的言語のインプ
リメンテーションを発生するためのインプリメント・モ
ジュール(30)を含む。
【0040】 著作権 この特許資料の開示の部分は著作権保護に従うマテリア
ルを含む。著作権の所有者は、米国特許商標庁の特許フ
ァイルあるいは記録に現れるような特許資料あるいは特
許開示の何れかによるファクシミル複製に異議はない
が、しかしそうでない場合は、全ての著作権の権利を保
留する。
【0041】
【図面の簡単な説明】
【図1】本願発明の実施の形態を実現するために使用さ
れる例示的なコンピュータである。
【図2】本願発明を図示するブロック・ダイアグラムで
ある。
【図3】本願発明の実施の形態における変換モジュール
の動作を示すフローのダイアグラムである。
【図4】本願発明の実施の形態における分割を伴う変換
モジュールの動作を示すフローのダイアグラムである。
【図5】本願発明の実施の形態におけるトランス・モジ
ュールの動作を示すフローのダイアグラムである。
【図6】本願発明の実施の形態を用いる例示的な変換を
示す。ある。
【図7】本願発明の実施の形態を用いる例示的な変換の
一部を詳細にを示す。
【図8】例示的なエンティティ関係ダイアグラムを示
す。

Claims (2)

    【特許請求の範囲】
  1. 【請求項1】メモリを有するコンピュータを用いて、問
    題の宣言的言語の仕様を前記問題の手続き的言語の仕様
    に自動変換する方法であって、前記方法は、 与えられた最適レベルに従って、複数の手続き的言語の
    インプリメンテーションを生成するために、複数の詳細
    化律とドメインの特定ヒューリスティックスを前記宣言
    的言語の仕様に適用するステップ、 前記複数の手続き的言語のインプリメンテーションの各
    々に関連するコストを決定するステップ、および前記コ
    ストに従って、前記問題の手続き的言語の仕様を形成す
    るために、前記複数の手続き的言語のインプリメンテー
    ションの一部を選択するステップを有することを特徴と
    する方法。
  2. 【請求項2】ルールによって定義された問題の宣言的言
    語の仕様を前記問題の手続き的言語の仕様に変換するシ
    ステムであって、前記システムは、 初期化設定をするための変換モジュールと、 発生したサブ問題の変換を制御するための、前記変換モ
    ジュールに結合された分解を伴う変換モジュールと、 前記問題を独立したサブ問題の連続した集合に分解する
    ための、前記分解を伴う変換モジュールに結合された分
    解モジュールと、 変換された以前の問題のヒストリーと与えられた最適レ
    ベルに従って、前記サブ問題の各々を変換するための、
    前記分解を伴う変換モジュールに結合されたトランス・
    モジュールと、 前記サブ問題の一つに対してオプション・リストを発生
    し、前記ルールの各々をその成分条件に分解するため
    の、前記トランス・モジュールに結合されたフォーム・
    オプション・モジュールと、 前記条件の決定が、更新されたオプション・リストを発
    生するために、前記条件の他の一つで限定的に共有され
    るべきであることについての決定に従って、前記オプシ
    ョン・リストを更新するための、前記トランス・モジュ
    ールに結合された保証されたシェアリング・モジュール
    と、 選択オプション・リストを発生するために、前記オプシ
    ョンの更新されたオプション・リストは次に処理される
    べきである更新されたオプション・リストから決定する
    ための、前記トランス・モジュールに結合された選択モ
    ジュールと、 シェアされたオプション・リストを発生するための、前
    記トランスモジュールに結合されたシェア・モジュー
    ル、前記シェアされたオプション・リストは、前記選択
    オプション・リストにおける前記オプションの一つが前
    記選択オプション・リストにおける少なくとも一つの他
    のオプションとどのようにシェアされ得るかを定義して
    おり、 オプションを生成するための前記シェア・モジュールに
    結合されたプルーン・モジュール、前記オプションの各
    々は、前記選択オプションリストの前記条件がどのよう
    に減少され得るかを定義しており、 前記オプションの前記一つの手続き的言語の仕様を発生
    するための、前記トランス・モジュールに結合されたイ
    ンプリメント・モジュールと、 前記手続き的言語の仕様に関連したコストを発生するた
    めに前記インプリメント・モジュールに結合された条件
    コスト・モジュールを有することを特徴とするシステ
    ム。
JP8092312A 1995-04-13 1996-04-15 宣言的言語の仕様を自動変換する方法およびシステム Pending JPH0950372A (ja)

Applications Claiming Priority (4)

Application Number Priority Date Filing Date Title
US08/421,337 US5758032A (en) 1995-04-13 1995-04-13 Method and system for automated transformation of declarative language process specification
US08/473,691 US5815713A (en) 1995-04-13 1995-06-07 Method and system for automated transformation of declarative language process specifications
US08/421337 1995-06-07
US08/473691 1995-06-07

Publications (1)

Publication Number Publication Date
JPH0950372A true JPH0950372A (ja) 1997-02-18

Family

ID=27025196

Family Applications (1)

Application Number Title Priority Date Filing Date
JP8092312A Pending JPH0950372A (ja) 1995-04-13 1996-04-15 宣言的言語の仕様を自動変換する方法およびシステム

Country Status (3)

Country Link
US (1) US5815713A (ja)
EP (1) EP0737918A3 (ja)
JP (1) JPH0950372A (ja)

Families Citing this family (25)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6772409B1 (en) * 1999-03-02 2004-08-03 Acta Technologies, Inc. Specification to ABAP code converter
GB2356946B (en) * 1999-12-01 2003-11-05 Int Computers Ltd Computer system user interface design
US7159041B2 (en) * 2000-03-07 2007-01-02 Microsoft Corporation Method and system for defining and controlling algorithmic elements in a graphics display system
US20090106353A1 (en) * 2001-09-19 2009-04-23 Belovich Steven G Method and system for providing an event auditing client server software arrangement
US7739671B1 (en) 2003-12-22 2010-06-15 The United States Of America As Represented By The Administrator Of The National Aeronautics And Space Administration Systems, methods and apparatus for implementation of formal specifications derived from informal requirements
US7587708B2 (en) * 2004-07-20 2009-09-08 International Business Machines Corporation Method for testing converted source code
US7661090B2 (en) * 2006-01-11 2010-02-09 Dell Products L.P. Task generation runtime engine
US8561019B2 (en) * 2006-08-11 2013-10-15 Adaptive Intelligence Llc System and method for data abstraction using formatted system variables
US8589869B2 (en) 2006-09-07 2013-11-19 Wolfram Alpha Llc Methods and systems for determining a formula
US8056054B2 (en) * 2007-06-07 2011-11-08 International Business Machines Corporation Business information warehouse toolkit and language for warehousing simplification and automation
US8434076B2 (en) * 2007-12-12 2013-04-30 Oracle International Corporation Efficient compilation and execution of imperative-query languages
US8321833B2 (en) * 2008-10-03 2012-11-27 Microsoft Corporation Compact syntax for data scripting language
US8060857B2 (en) * 2009-01-31 2011-11-15 Ted J. Biggerstaff Automated partitioning of a computation for parallel or other high capability architecture
US9213768B1 (en) 2009-05-15 2015-12-15 Wolfram Alpha Llc Assumption mechanism for queries
US8601015B1 (en) 2009-05-15 2013-12-03 Wolfram Alpha Llc Dynamic example generation for queries
US9207921B2 (en) * 2009-06-22 2015-12-08 Oracle America, Inc. Fault tolerant compilation with automatic optimization adjustment
US8484015B1 (en) 2010-05-14 2013-07-09 Wolfram Alpha Llc Entity pages
US8812298B1 (en) 2010-07-28 2014-08-19 Wolfram Alpha Llc Macro replacement of natural language input
US9069814B2 (en) 2011-07-27 2015-06-30 Wolfram Alpha Llc Method and system for using natural language to generate widgets
US9734252B2 (en) 2011-09-08 2017-08-15 Wolfram Alpha Llc Method and system for analyzing data using a query answering system
US9851950B2 (en) 2011-11-15 2017-12-26 Wolfram Alpha Llc Programming in a precise syntax using natural language
US8938713B2 (en) * 2012-02-09 2015-01-20 International Business Machines Corporation Developing a collective operation for execution in a parallel computer
US9405424B2 (en) 2012-08-29 2016-08-02 Wolfram Alpha, Llc Method and system for distributing and displaying graphical items
US9223570B2 (en) * 2013-03-14 2015-12-29 Red Hat, Inc. Migration assistance using compiler metadata
US8713515B1 (en) * 2013-05-13 2014-04-29 Ted J. Biggerstaff Automated synchronization of design features in disparate code components using type differencing

Family Cites Families (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
GB8805120D0 (en) * 1988-03-03 1988-03-30 Hewlett Packard Co Testing digital circuits
US4924408A (en) * 1988-08-19 1990-05-08 International Business Machines Corporation Technique for compilation of knowledge bases
US5212791A (en) * 1989-09-27 1993-05-18 International Business Machines Corporation Dynamic scheduling
US5487135A (en) * 1990-02-12 1996-01-23 Hewlett-Packard Company Rule acquisition in knowledge based systems
US5301317A (en) * 1992-04-27 1994-04-05 International Business Machines Corporation System for adapting query optimization effort to expected execution time
US5442792A (en) * 1992-08-07 1995-08-15 Hughes Aircraft Company Expert system compilation method
EP0602263A1 (en) * 1992-12-15 1994-06-22 International Business Machines Corporation User interface program generator
JPH07117962B2 (ja) * 1993-03-27 1995-12-18 日本電気株式会社 ネットワーク型データベースのリレーショナルアクセス方式

Also Published As

Publication number Publication date
EP0737918A3 (en) 1998-04-08
EP0737918A2 (en) 1996-10-16
US5815713A (en) 1998-09-29

Similar Documents

Publication Publication Date Title
JPH0950372A (ja) 宣言的言語の仕様を自動変換する方法およびシステム
US8160999B2 (en) Method and apparatus for using set based structured query language (SQL) to implement extract, transform, and load (ETL) splitter operation
US6678674B1 (en) Data retrieving method and apparatus data retrieving system and storage medium
CN107515887B (zh) 一种适用于多种大数据管理系统的交互式查询方法
US20040015481A1 (en) Patent data mining
US20030061209A1 (en) Computer user interface tool for navigation of data stored in directed graphs
CN1987861A (zh) 处理数据库查询的系统和方法
JP4543563B2 (ja) 統合データベースシステムにおける問合せ最適化方法
Shaker et al. The biomediator system as a tool for integrating biologic databases on the web
Galhardas et al. An extensible framework for data cleaning
Schuler et al. A high-level user-oriented framework for database evolution
Schuler et al. Chisel: a user-oriented framework for simplifing database evolution
US5758032A (en) Method and system for automated transformation of declarative language process specification
KR102491753B1 (ko) 쿼리를 이용한 프레임워크 딥러닝 학습 시스템 및 방법
US20070150458A1 (en) System for extending data query using ontology, and method therefor
Rother et al. Columba: multidimensional data integration of protein annotations
US8738601B2 (en) String searches in a computer database
Piatetsky-Shapiro et al. An intermediate database language and its rule-based transformation to different database languages
Cerbah Learning ontologies with deep class hierarchies by mining the content of relational databases
Yerneni Mediated query processing over autonomous data sources
Kasaei et al. TrackMine: Topic Tracking in Model Mining using Genetic Algorithm
Rheinländer Scalable and Declarative Information Extraction in a Parallel Data Analytics System
Wangmo et al. An Experimental Evaluation of Summarisation-Based Frequent Subgraph Mining for Subgraph Searching
Medina Rodríguez et al. A fuzzy database engine for mongoDB
SRAI et al. INTEGRATION OF THE MDA APPROACH IN DOCUMENT-ORIENTED NOSQL DATABASES, GENERATION OF A PSM MODEL FROM A PIM MODEL

Legal Events

Date Code Title Description
A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20050509

A601 Written request for extension of time

Free format text: JAPANESE INTERMEDIATE CODE: A601

Effective date: 20050808

A602 Written permission of extension of time

Free format text: JAPANESE INTERMEDIATE CODE: A602

Effective date: 20050811

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20051019

A711 Notification of change in applicant

Free format text: JAPANESE INTERMEDIATE CODE: A711

Effective date: 20051019

RD02 Notification of acceptance of power of attorney

Free format text: JAPANESE INTERMEDIATE CODE: A7422

Effective date: 20051019

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20051109

RD04 Notification of resignation of power of attorney

Free format text: JAPANESE INTERMEDIATE CODE: A7424

Effective date: 20051017

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A821

Effective date: 20051019

A02 Decision of refusal

Free format text: JAPANESE INTERMEDIATE CODE: A02

Effective date: 20051221