問題タブ [datalog]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
artificial-intelligence - フォワード チェーンとバックワード チェーン
一方が役に立ち、もう一方が実際に役に立たないのは何ですか? 私は彼らが何をするのか理論を理解していますが、実際の使用における制限と機能は何ですか? 新しい AI プロジェクトの Drools と Java プロローグを検討していますが、他の提案も受け付けています。複雑なリレーショナル データ セットまたは代替データを推論するための一般的なアプローチは何ですか?
prolog - データログvsCLIPSvsプロローグ
多くのプログラマーと同じように、私は大学でPrologを勉強しましたが、ごくわずかです。PrologとDatalogは密接に関連していることを理解していますが、Datalogの方が簡単ですか?また、Datalogは論理句の順序に依存しないことを読んだと思いますが、なぜこれが利点であるのかわかりません。CLIPSはおそらく完全に異なっていますが、私には理解できないほど微妙です。誰かが他の言語よりも言語の一般的なハイライトを提供してくれませんか?
datalog - 次の Datalog プログラムが同等なのはなぜですか?
一部の存在述語 a,b について、これはなぜですか。
これと同等:
? 最上位の再帰が拡大し続けることができないのはなぜですか?
sql - Datalog から SQL への変換
Datalog プログラムの再帰性を次のような SQL に変換する方法をまだ考えています。
はA/1
EDB 述語です。これは、 と の間に共依存関係がP
ありQ
ます。より長いクエリの場合、この問題を解決するにはどうすればよいですか?
また、翻訳を完全に実装するシステムはありますか? ある場合、どのシステムまたはどの論文を参照すればよいか教えていただけますか?
datalog - 階層化された Datalog プログラムの完全な固定点を計算するにはどうすればよいですか?
Datalog プログラムの命令の評価順序は? 完全な固定点は常に最小の固定点ですか?
database - モデルから同じ値の属性を見つけるためのデータログ
私はデータログを初めて使用し、次のことを解決したいと考えています。
私はstudent
モデルを持っています
次に、同じ都市の学生のペアを見つけるためのデータログプログラムを作成します。次のようにプログラムを書けば正しいですか?
ここr1
でr2
はそれほど重要ではないので_
、頭と体の両方で置き換えることはできますか?
フィードバックは大歓迎です!
database - Datalogルールがnullをプルーニングしないようにするにはどうすればよいですか?
私には次の事実とルールがあります。
ここで、「飲酒者」「頻繁」が0より大きい各パブで利用可能な「いいね」ビールの数が「真」を返す述語のように機能するルールを作成したいと思います。
ルールがタプルを返さない場合、述語はtrueと見なされます。述語が偽の場合、「いいね」したビールが1つもないバーを返すように計画していました。
ご覧のとおり、私はすでに、特定のパブで特定の酒飲みに適したビールを数えるルールを持っています。また、提供できるビールの数を指定するルールもあります。
ご覧のとおり、カウンターには頻繁に訪れたパブは返されませんが、好きなビールは0本あります。左外側の結合を使用してこれを回避することを計画していました。
これはほとんど正しいですが、それは私に頻繁ではないパブも与えていることを除いて。条件を追加してみます:
今、私はどういうわけかnullを含むすべてをフィルターで除去しました!これはDESのnull値ロジックが原因だと思います。
私はこの問題全体に間違った方法で取り組んでいる可能性があることを認識しています。どんな助けでも大歓迎です。
編集:割り当ては「very_happy(D)ist wahr、genau dann wenn jede Bar、die Trinker D besucht、wenigstens ein Bier ausschenkt、dasermag」です。これは、「very_happy(D)が真であり、各バーを飲む人Dが訪れた場合、彼が好きなビールを少なくとも1杯提供する」という意味になります。この課題はDatalogに関するものなので、Prologを使わなくても間違いなく解決できると思います。
android - Android での複数のセンサー データのロギング
Androidデバイスで利用可能なすべてのセンサーのデータをログに記録するデータログアプリケーションに取り組んでいます。どの方法が効率的か知りたいですか?すべてのセンサーに単一のリスナーを登録するか、センサーごとに個別のリスナーを登録しますか?
ありがとうディーパック
prolog - データログの階層化
だから私はDatalogがどのように機能するかを理解しようとしています.DatalogとPrologの違いの1つは、否定と再帰に階層化の制限があることです. ウィキペディアを引用するには:
述語 P が述語 Q から積極的に派生する場合 (つまり、P がルールの先頭であり、Q が同じルールの本体で積極的に発生する場合)、P の層化数は層化よりも大きいか等しくなければなりません。 Qの数
述語 P が述語 Q の否定から派生する場合 (つまり、P がルールの先頭であり、Q が同じルールの本体で否定的に発生する場合)、P の層化数は Q の層化数よりも大きくなければなりません。 、
したがって、これにより、次の 2 つの述語は単純に同じ成層番号を割り当てることができるため、成層エラーにはなりません。したがって、循環定義にもかかわらず、これらの述語は問題ありません。
- A(x) :- B(x)
- B(x) :- A(x)
しかし、否定が含まれる定義がある場合に何が起こるかとは対照的です(〜は否定です)
- A(x) :- ~ B(x)
- B(x) :- ~ A(x)
ここでは成層化は不可能です。A(x,y) は B(x,y) よりも大きい成層数を持たなければならず、B(x,y) は A(x,y) よりも大きな成層数を持たなければなりません。私の最初の考えでは、これは循環定義であるため、これは問題ありませんでしたが、述語が否定されない限り、階層化は循環性で問題ありません。しかし、なぜ?真の値は単純に 2 進数です。否定記号を持つ式をこのように異なる方法で処理することは、非常に恣意的に思えます。この層化は、最初のケースにはない 2 番目のケースで防止しようとしているものは何ですか?
clojure - n-ary 述語 Datomic (n != 2) は可能ですか?
Datalog について読んだことと、Datomic の説明を一致させようとしています。私が Datomic で目にするすべての述語はトリプル、つまり [entity attribute value] またはよりプロロジアンな構文の attribute(e,v) です。一方、Datalog は pred(a,b,c,d) のような n-ary 述語をサポートします。
これをどう合わせるか。
- Datomic の機能が欠けているのでしょうか。つまり、n 項述語があるのでしょうか、それともどうにかモデル化できますか?
- Datomics Datalog は、通常 Datalog と呼ばれるものの制限付きバージョンですか?