Datalog -Wikipedia、無料百科事典

before-content-x4

コンピュータサイエンス – 演ductiveデータベースに使用されるプロローグ言語でモデル化されたクエリの言語。これは、正式なロジックで知られている推論の方法に基づいています。公理と推論ルールで構成されています。 Datalogの始まりは、論理プログラミングの始まりに関連付けられています。締め切りの作成者として コンピュータサイエンス デビッド・マイアーは認められています。この用語の開発は、指定することです データベースロジック – 「データベースロジック」。

after-content-x4

さまざまな出版物では、他の言語とコンピューティングモデルの認識または拡張として登場したため、言語自体の作成者の特定のグループを示すことはできません。科学研究の独立分野としてのDatalogの歴史は、1977年にHervéGallaireとJacek Minkerによって組織された論理とデータベースに関するワークショップに関連しています。 [初め]

Datalogは、1980年代半ばから90年代半ばまで最も人気がありますが、今日でも、研究プロジェクトの質問とデータベースの演ductive的な実装の言語として使用されています。

Datalogは、機能的なシンボルがないホーナ条項で作られた言語と見なされることがよくあります。データログのプログラム(プロローグのように)は、予測(論理関数の名前)、リレーショナル原子(述語とその引数)、および算術原子(引数を含む算術式)を含む「〜」タイプで構成されています。

各ルールは次のとおりです。

  • ヘッダ – リレーショナル原子
  • シンボル – 通常、「if」という言葉として読みます
  • コンテンツ – 呼び出される1つまたは複数のリレーショナルまたは算術原子 受けた 論理的接続詞と( “i”)および( “or”)に接続されています)

Datalogのルールの例は次のとおりです。

彼はシンダ(x、y)←彼はメンバー(x)であり、回路(y、x)です
より高価な生産(x、y)←製品(x、price1)および製品(y、rish2)およびprice1> cena2 

より一般的に強調されているDatalogプロパティの1つは、プログラムセマンティクスを定義するための3つの同等の(著しく異なる)アプローチの存在です。これらの3つのアプローチは次のとおりです。

アプローチで TheoryRodel ルールは、ターゲット依存の特性を決定する最初の順序論理文として認識されます。このアプローチでは、述語の入り口コレクションに基づいています(呼ばれます Predykatami ekstensjonalnymi )指定されたデータログルールから生じる述語のセットを推測します( 強度を予測します ) – このコレクションはと呼ばれます モデル 。そのようなモデルがたくさんあるため、結果のモデルは最小モデルでなければなりません。

after-content-x4

アプローチで 固定点 アイデアは、1つ以上のよく知られた関係(抽出の述語)から始めることです。他の予測は、ルールのヘッダーで定義されています。これらの予測は、空の値の割り当てから始まり、次のステップで、以前のステップで計算された既存の述語と値にルールを適用することによって計算された新しい値をそれらに添付して、再帰的に計算されます。新しい要素が作成されなくなったときの議事録を終了します。

アプローチで 証拠 入り口で事実の事実を得ると仮定し、特定のデータログプログラムへの答えはあなたができる事実のコレクションであると仮定します 証明 これらの事実とこのプログラムのルールに基づいています。新しい事実の「コマンド」方法の中にはSO -CALLEDを作成する方法決議の証拠とSLD。

Datalogのプログラムの例は次のとおりです。

i = {Film( "Sexmission"、1983、 "Juliusz Machulski"、120)、Film( "Angels and Demons"、2009、 "Ron Howard"、138)、
フィルム(「Ronin」、1998、「John Frankenheimer」、121)、Film(「Da Vinci Code」、2006、「Ron Howard」、149)、
grałw( "da vinci code"、 "Tom Hanks")、grałw( "da Vinci code"、 "Jean Reno")、Grałw( "Angels and Demons"、 "Tom Hanks")、
Grałw( "Ronin"、 "Jean Reno")、Grałw( "sexmission"、 "Jerzy Stuhr")} 

これが強度述語のコレクションです(初期データベースのインスタンス)

否定のあるデータログ [ 編集 | コードを編集します ]

Datalogの基本構造は、実際のアプリケーションで有用な否定を考慮に入れていないため、理論的な観点からは、初期理論の多くの拡張が作成されています。それらのほとんどに、2つの確立された用語があります。

  • プログラム 半対照 -Datalogプログラム。既存の予測の前にのみ否定を許可する(ルールで定義)
  • 層別化 (敷設) – プログラムのレイヤー/サブリプロへの区分。

Datalogの実装のほとんどは、アカデミック環境から派生しており、特定の形式の否定を持つDatalog拡張機能が含まれています。

  • bdddbdb -Stanford Universityで開発されたDatalogの実装は、Javaのバイトコードに関するクエリを作成するために使用されました [2]
  • コンセプトベース -datalogを言語言語として使用したオブジェクト – deductiveデータベース。概念モデルを作成するためのプラットフォームの意図で [3]
  • 虹彩 – 型制御メカニズムを備えたオープンソースライセンスの下での自動コマンドシステムエンジン。クエリの言語は、とりわけ拡張されたDatalogバージョンです機能的なシンボルの場合、予測に組み込まれ、「安全条件」をバイパスする可能性 [4]
  • – オープンソースライセンスに基づくプロローグにおけるdatalogの実装 [5]
  • Pydatalog -PythonでのDatalog実装
after-content-x4