跳轉到內容

歷史學家知識工程/建模 簡介:上下文

來自 Wikibooks,開放世界中的開放書籍

簡介:上下文

[編輯 | 編輯原始碼]

由於這是一本面向歷史學家的書籍,我們將提到,關於以下討論中所述概念的完整歷史,但我們現在不會深入探討,因為它們不會有助於對初始理解的理解。

知識工程的基本問題是,執行實際推理的邏輯理論無法很好地處理不一致或矛盾的資訊(還記得星際迷航中那些爆炸的計算機嗎?)。不幸的是,知識工程模型所模擬的人類理論往往是相互矛盾的。

引入上下文,它基本上允許我們將單個陳述分配給單個說話者。

上下文作為附加引數

[編輯 | 編輯原始碼]

更像是我們正在努力成為的知識工程師,我們可以透過引入一個新的關係來最好地解釋上下文:讓ist表示“在(上下文)中為真”。

;; the controversy surrounding Wolfang Amadeus Mozart's relationship
;; with Antonio Salieri represented
kills(AntonioSalieri,WolfgangAmadeusMozart)
not(kills(AntonioSalieri,WolfgangAmadeusMozart))
;; contextualizing the claims via ist
ist(Amadeus-TheMovie,kills(AntonioSalieri,WolfgangAmadeusMozart))
ist(Austria18thCenturyContext,not(kills(AntonioSalieri,WolfgangAmadeusMozart)))

雖然第一個表示會明顯導致矛盾,但第二個不必;事實上,這些主張很好地隔離在不同的上下文中。然而,語境化是一個非此即彼的命題;要麼每個語句都與一個上下文“柯里化”,要麼都沒有。通常,這種情況透過識別一個基本或預設上下文來處理,在這個上下文中,那些沒有意義地進行語境化(即由所有上下文共享)的東西可以被放置。

上下文層次結構

[編輯 | 編輯原始碼]

上下文可以組織成包含關係層次結構,就像我們看到型別層次結構可以一樣。

我們兩個上下文,Amadeus-TheMovieAustria18thCenturyContext,所共享的一些背景知識現在可以移到一個父上下文中,例如,GenericMozartFama或類似的。這種將知識移到其他上下文中的行為有時被稱為提升。這種方法使得開發新上下文非常經濟實惠:所需的大部分知識已經在其他上下文中陳述過,然後可以簡單地在新的上下文中包含起來。

上下文不是一階邏輯

[編輯 | 編輯原始碼]
  • 解釋為什麼使用引數的一階化不起作用

推論到上下文

[編輯 | 編輯原始碼]

ist對上下文表示方法的一個副作用是,它可以相對簡單地推論到其他上下文。例如,以下查詢可用於查詢電影和莫扎特的現實生活存在差異的所有情況

;; get the points of contention
ist(?CONTEXT-A,?SENTENCE) 
&& subsumesContext(?CONTEXT-A,GenericMozartFama)
&& ist(?CONTEXT-B,not(?SENTENCE))
&& subsumesContext(?CONTEXT-B,GenericMozartFama)

同樣,這不再是一階邏輯查詢,因為我們不再僅僅關注關係,而是關注包含謂詞的整個句子。這是一個更高階的查詢。

關於實現的一些說明

[編輯 | 編輯原始碼]

一些表示語言,如CycL,是在對上下文的可用性做出強假設的情況下設計的;在這些語言中,它們被稱為微理論,並在OpenCyc和其他CycL實現中得到特殊實現支援。不幸的是,許多表示或推理系統都沒有對上下文進行明確的支援。由於非 FOL 的需求,模擬上下文可能會很困難。

在簡要概述了上下文對知識工程推理的貢獻之後,我們準備進入一個大型示例,該示例將突出顯示我們迄今為止討論的所有功能。希望這將把不同的部分彙集在一起,並讓您瞭解歷史學家知識工程如何變得可操作。

事不宜遲,讓我們看一下我們的建模示例,聖誕故事建模(另請參見聖誕節)。

華夏公益教科書