歷史學家知識工程/建模 簡介:上下文
由於這是一本面向歷史學家的書籍,我們將提到,關於以下討論中所述概念的完整歷史,但我們現在不會深入探討,因為它們不會有助於對初始理解的理解。
知識工程的基本問題是,執行實際推理的邏輯理論無法很好地處理不一致或矛盾的資訊(還記得星際迷航中那些爆炸的計算機嗎?)。不幸的是,知識工程模型所模擬的人類理論往往是相互矛盾的。
引入上下文,它基本上允許我們將單個陳述分配給單個說話者。
更像是我們正在努力成為的知識工程師,我們可以透過引入一個新的關係來最好地解釋上下文:讓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-TheMovie和Austria18thCenturyContext,所共享的一些背景知識現在可以移到一個父上下文中,例如,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 的需求,模擬上下文可能會很困難。
在簡要概述了上下文對知識工程推理的貢獻之後,我們準備進入一個大型示例,該示例將突出顯示我們迄今為止討論的所有功能。希望這將把不同的部分彙集在一起,並讓您瞭解歷史學家知識工程如何變得可操作。