演繹資料庫中的子句形式
在 SQL 或任何其他資料庫系統中,演繹資料庫是一種可以根據資料庫中已存在的規則和資訊得出關於新事實結論的工具。在演繹資料庫中,Datalog 是通常用於表達事實、規則和查詢的語言。公式以子句形式表達時,由多個子句組成,每個子句由多個文字組成,這些文字僅由用 OR 符號表示的邏輯連線詞連線。
公式中可能包含以下量詞:
全稱量詞 - 可以理解為“對於所有 x,P(x) 成立”,表示 P(x) 對宇宙中所有 x 的例項都成立。
例如,所有卡車都有輪子。
存在量詞 - 表示 P(x) 至少對宇宙中的一個專案 x 成立,表示為“存在一個 x 使得 P(x)”。
例如:有人關心你。
子句形式公式必須轉換為具有以下特性的公式:
公式的每個元素都有一個量詞。因此,無需為所有元素顯式新增全稱量詞。當去除量詞時,公式中的所有變數都由全稱量詞隱式量化。
鑑於公式由多個子句組成,每個子句由多個文字組成,這些文字僅由邏輯連線詞 OR 連線,因此公式由子句構成。因此,每個句子都是文字的析取。
句子本身僅由 AND 邏輯連線詞連線以構成公式。因此,公式的子句形式是子句的合取。
可以證明,任何公式都可以轉換為子句形式。就我們而言,主要關注的是各個子句的結構——每個子句都是文字的析取。記住這些文字可以是肯定的也可以是否定的。考慮以下子句:
NOT(P1) OR NOT(P2) OR ..... OR NOT(Pn) OR Q1 OR Q2 OR ..... OR Qm
上述子句中有 m 個肯定文字和 n 個否定文字。可以使用以下類似的邏輯公式來表示此子句:
P1 AND P2 AND ..... AND Pn => Q1 OR Q2 OR ..... OR Qm
例如,隱含的符號是“=>”。
只有當至少一個 Q 為真時,第二個公式才為真,這是 (蘊含) 符號的含義。如果所有 p 文字 i = (1, 2,...) 都為真,則此公式為真。對於第一個公式,如果任何一個 P 文字 i = (1, 2,..., n) 為真,則其所有否定也為真。因此,在這種情況下,只有當至少一個 Q 為真時,它才可能為真。
因此,上述兩個公式的真值總是相同的,因為它們是可比的。
結論
在子句形式中,公式寫成一系列句子,每個句子由多個文字組成,這些文字僅由 OR 型別的邏輯連線詞連線。