-- 作者:duxiong
-- 发布时间:7/10/2008 8:16:00 AM
-- 知识表示(学习笔记2)逻辑——历史背景
逻辑(I):历史背景 初次发表于:http://hi.baidu.com/sunnybill/blog/item/efb0352d933a5e31349bf79b.html Part I History bacground The very first lesson that we have a right to demand that logic shall teach us is, how to make oue ideas clear; and a most important one it is, depreciated only by minds who stand in need of it. To know what we think, to be masters of our own meaning, will make a solid foundation for great and weighty thought. by Charles Sanders Peirce, "How to make our ideas clear" 逻辑首先需要教给我们的是如何清楚地表达我们的思想,重要的一条是你轻视它的时候正需要它。正是要了解自己的思想,主宰自己的意图的追求,为伟大而强劲的思想构筑了坚实的基础。 ——查尔斯桑德斯皮尔斯 《如何清晰地表达思想》 知识和表达引起的哲学论战长达2500年。“We know very little, if anything”,苏格拉底无情的质问,打碎了人们自以为了解关于真善美和公正(Truth, Beauty, Virtue and Justice)这些基本命题的得意。柏拉图给老师苏格拉底的辩证探寻过程注入了活力,创立了认识论(Epistemology)。 认识论(Epistemology)研究知识的本质及其思辨。 Epistemology ——the study of the nature of knowledge and its justification. 由于他质问世人所珍视的信仰时的所谓不敬,苏格拉底被当作雅典青年道德的沦丧者而判处死刑。 For his alleged impiety in questioning cherished beliefs, Socrates was condemned to death as a corrupter of the morals of Athenian youth. 术语学(terminology) 柏拉图的弟子亚里斯多德把重点转向了更加实际的知识表达。他毕生的工作是编纂那个年的知识的百科全书,定义了各个学科的范围,包括逻辑学(Logic)、物理学(Physics)、形而上学(Metaphysics)、生物学(Biology)、心理学(Psychology)、语言学(Linguistics)、政治学(Politics)、伦理学(Ethics)、修辞学(Rhetorics)和经济学(Economics)等。他在这些领域中所创造和采用的术语已经成为当今国际专业词汇的核心。 三段论(Syllogisms) 三段论的基本模式是两个前提推到一个结论。亚里斯多德在他的《后分析》中有个例子: The basic pattern of syllogism combines two premises to derive a conclusion. Here is a example from Aristotle's Posterior Analytics: If all broad-leafed plants are deciduous, and vanes are broad-leafed plants, then all vanes are deciduous. 第一个前提叫做大前提(major premise);第二个前提叫做小前提(minor premise)。上例中用的是自然语言,亚里斯多德在《后分析》中将三段论用更加形式化的方式表达: For if A is predicated of every B and B of every C, It is necessary for A to be predicated of every C. 在他的三段论模式中,亚里斯多德历史上首次使用了变量! 经院派逻辑(Scholastic Logic) 经院哲学用四个元音字母A, I, E, O表示四个基本命题: A: All a id b. (Universal affirmative); 全称肯定,凡 a 即 b. I: Some a is b. (Particular affirmative); 特称肯定,有 a 是 b. E: No a is b. (Universal negative); 全称否定,凡 a 非 b. O: Some a is not b. (Particular negative)。 特称否定,有 a 非 b。 语义网络(Semantic Networks) 除了线性逻辑符号,人工智能研究者还为逻辑开发了图形符号,叫做语义网络。 Besides the linear notations for logic, reaschers in artificial intelligence have developed graphic notations called semantic networks. 第一个语义网络图是公元3世纪Porphyry在一篇关于亚里斯多德分类的评论的页边空白写下的,将亚里斯多德的类别按属(genus)和种(species)(父类和子类,Supertype and subtype)组织成树形结构。 亚里斯多德定义新类时使用的类(genus)和种差(differentia)一直是人工智能、面向对象系统以及所有词典的基础。 自动推理(Automated reasoning) 十三世纪西班牙诗人,哲学家,传教士罗曼鲁尔(Roman Lull)发明了首台机械推理设备。它以分类树为主干,右边是十类问题:Wether? What? From what? Why? How much? What kind? When? Where? How? With what?。 要回答这些问题,树的左侧是字母顺序排列的标签,这些字母被录入到圆盘上。圆盘可分若干层,最外层是字母,其他层则是属性(包括善良、数量、持久、权力、智慧、勇气、愿望、真理、荣誉等——Goodness, Magnitude, Duration, Power, Wisdom, Strength, Will, Truth, Glory);以及描述属性的形容词等。这样就可以就How is God?这样的问题作出回答: God's Goodness is Good; Duration is Lasting... 数理逻辑(Mathematical logic) 来本尼兹(Leibniz)用数学方法形式化表达演绎推理模式,他从中国的易经(I Ching, or Book of Changes)的阴阳二元模式中受到启发,并在他的首个二进制算法中采用。在哲学领域,他还引入了“可能性世界”(Possible world, See also http://en.wikipedia.org/wiki/Possible_worlds) 的观念来阐述观概念的模态、同一性和连续性(Modality, Identity and Continuity)。他用“可能性世界”的术语对模态的定义,在模态逻辑(Modality logic)中一直沿用至今,即在基本逻辑中加入可能性和必要性操(Possibility and Necessity)作符。 来本尼兹被Lull的《大术》(Ars Magna)中的各种可能组合所吸引,想要建立一个更好的数学模型。给每个原始概念分配一个质数,两质数相乘就产生一个组合概念,这样就能够判别概念间的继承和包含关系。来本尼兹的数学模型对三个命题都是全称肯定的Barbara类型命题非常有效。将该方法用于特称肯定,也可以表达Darii类型命题。但这种编码方式有重大局限,乘法只能表示复合命题(Conjunction),不能表示否定(negation)、析取(disjunction)和推论(implication)命题。 术语推理和断言推理(T-Box And A-Box) T-box: Terminologial Reasoner; A-Box: Assertional Reasoner. 莱布尼兹只取得了部分成功,但依然令人影响深刻,尽管没有产生断言的完整系统,但他却发现了定义术语的强大方法。对现代人工智能系统来说,罗恩 布拉奇曼(Ron Brachman,1985)及其同事对定义术语的“术语推理”(Terminological reasoning)以及为术语产生断言的“断言推理”(Assertional reasoning)进行了区分。作为一种TBox,来本尼兹的质数构成了一种体系结构叫做格子(lattice),其所支持的两种推理,Barbara 和Darii 都是属于体系中有关继承的基本规则。他的数字格子甚至还支持多重继承。这种继承在现代人工智能系统和面向对象的系统中已将相当普遍。 莱布尼兹的目标是要用数学计算的方法进行推理。但随着分类越细,就会产生单调而冗长的数字。数字越大,也容易产生计算错误。但莱布尼兹依然胜任,因为他的计算机械可以进行乘除法运算。而早在几年前,哲学家布来兹 帕斯卡尔(Blaise Pascal)就发明了能够进行加减运算的机械,那时莱布尼兹就预言这样的机械能够进行机器推理。正是这个伟大的预见,使他被尊为人工智能之父。 ------------------------------------------------------------------------------------ 在计算机领域,TBox是“术语组件”,是与一组事实断言(ABox)相关的词汇表。 ABox是“断言组件”,是与知识库中的术语词汇相关的事实。 ABox 和 TBox用来描述本体的两种不同的声明。TBox声明用控制词汇术语描述系统,比如一组类和属性。ABox是关于这些词汇的与TBox相适应的声明。TBox声明更倾向于本质定义,就像词典中的单词。TBox声明有时与面向对象的类关联,而ABox声明则与类的实例关联。 ABox与TBox一起构成知识库。 In Computer Science, a TBox is a "terminological component"—a vocabulary associated with a set of facts ABox. An Abox is an "assertion component"—a fact associated with a terminological vocabulary within a knowledge base. The terms ABox and TBox are used to describe two different types of statements in ontologies. TBox statements describe a system in terms of controlled vocabularies, for example, a set of classes and properties. ABox are TBox-compliant statements about that vocabulary.TBox statements tend to be more definitional in nature such as a dictionary of words.TBox statements are sometimes associated with object-oriented classes and ABox statements associated with instances of those classes. Together ABox and TBox statements make up a knowledge base. Abox 和Tbox 声明实例: Abox声明典型形式: A是B的一个实例。 A is an instance of B 或 约翰是一个人。 John is a Person 与此对应的TBox声明:所有学生都是人。 All Students are Persons 或 有两种类型的人:学生和老师。 There are two types of Persons: Students and Teachers Tbox声明在知识库中更具永久性,以数据模型或元数据注册表存储 。而ABox声明本质上是动态的,更倾向于以关系数据库中事务处理系统的实例数据存储。 ------------------------------------------------------------------------------------ 布尔代数(Boolean Algebra) 关于断言逻辑的形式化表达的最主要突破是乔治布尔(George Boole 1854)的《思想法则调查》(Investigation into the Laws of Thought)。像来本尼兹一样,布尔也用算法作为逻辑操作的模型,不过他用数字表示“真”“假”,而不是表示类别,只需要“1”和“0”表示“真”和“假”,除了用乘法表示“与(and)”(conjunction),布尔使用加法表示“或(or)”(disjunction),用减法表示“否(not)”(negation),例如: 用p表示命题“阳光明媚”(The sun is shining); 用q表示命题“天在下雨”(It is raining) 那么,这些命题的逻辑组合就可以用算法表示为: p X q 表示“阳光明媚”并且“天在下雨”(The sun is shining and It is raining) p + q 表示“阳光明媚”或“天在下雨”(The sun is shining or It is raining) -p 表示“不是阳光明媚”(The sun is not shining) 操作符“X”就像相乘,如果两个命题都是真,1X1=1也是真,如果两个命题有一个是假或两个都是假,即0X1=0, 0x0=0 也是假。 对加减法,布尔作了重新定义,以免结果大于1或小于0: 定义:-1=0, -0=1 对于或操作,他选择了“异或”(exclusive disjunction)即 1+1=0 (1 XOR 1 =0) 那么,对于逻辑加p + q,则可以理解为 “要么阳光明媚,要么天在下雨,但不可能两个同时出现”(两个真命题经过异或运算结构为假)。 真言表(Truth Tables) 美国哲学家查尔斯• 桑德斯• 皮尔斯 (Charles Sanders Peirce)对布尔代数进行了修改和扩充,他把操作符组织在真言表中,共定义四种运算:“与(And)”、“或(Or)”、“非(Not)”、“实质蕴含(If-Then)”。 皮尔斯的“与”和“非”操作跟布尔的一样,他的“或”操作是“逻辑或(Inclusive Or)”,即1+1=1。“实质蕴含”是皮尔斯增加的。 皮尔斯的“实质蕴含”(Material Implication)是一个条件句操作,相当于小于等于(≤),0≤0 ,0≤1,1≤1都是真,1≤0是假。但皮尔斯使用的是“-<”符号,他觉得“≤”是小于和等于运算符的组合,而“-<”是一个单一的操作符。 皮尔斯真言表: And Or Not If-Then _x_|_0__1___ _+_|_0__1___ _-_|____ _-<_|_0__1___ 0 | 0 0 0 | 0 1 0 | 1 0 | 1 1 1 | 0 1 1 | 1 1 1 | 0 1 | 0 1 弗雷格的概念文字(Frege's Begriffsschrift) 戈特罗布•弗雷格没有追随亚里斯多德的自然语言逻辑,这位德国哲学家致力于“打破言辞表达对人类思想的统治”。费雷格1879年出版《概念文字》(Begriffsschrift--Concept Writing or Concept Notation,小标题是《一种按算术公式构成的思维语言》),开发了首个“谓词算法”或“谓词逻辑系统”系统。其最初符号有: 断言 p 否定 not 蕴含 If-Then 全称量词 |-- p ┯ p ____ p __ ___p(x) I__ q (x) assert p not p if p then q for every x, p(x) 尽管弗雷格用他的《概念文字》(Begriffsschrift)为数学和逻辑学的基础做出了先驱性的贡献,但并未被其他人采用,其中最大的缺陷是映射到自然语言时的尴尬。弗雷格选择蕴含作为主要的联接来简化其推理规则,但却导致了其他表达因此变得非常复杂。 弗雷格的符号实例: 上面的符号表达的概念依次为: 1. Every ball is red. 翻译成逻辑表达:For every x, if x is a ball then x is red. 2. Some ball is red. 翻译成逻辑表达:It is false that for all x, if x is a ball then x is not red. 3. Every cat is on a mat. 翻译成逻辑表达: For every x, if x is a cat, it is false that for all y, if y is a mat then x is on y. 代数符号(Algebraic notation) 现代谓词算法都是基于皮尔斯1883年开发的代数符号。与弗雷格不同,皮尔斯引入了两个特别的符号,连续“或”操作符∑(逻辑加)和连续“与”操作符∏(逻辑乘)。他发现,要使逻辑加∑xPx的结果是真,只要Px中至少有一个是真;而使∏xPx的结果为真则必须Px全部为真。皮尔斯把∑叫做存在量词(Existential Quanifier),把∏叫做全称量词(Universal Quanifier)。 对上图中弗雷格的表示法,用皮尔斯的符号可表示为: 1. Every ball is red. 翻译成逻辑表达:For every x, if x is a ball then x is red. ∏x (ball(x) —< red(x)) 2. Some ball is red. 翻译成逻辑表达:There exist an x, where x is a ball and x is red. ∑x(ball(x) • red(x)) 3. Every cat is on a mat. 翻译成逻辑表达: For every x, if x is a cat, then exist a y which is a mat and x is on y. ∏x(cat(x) —< (∏y(mat (y) • on(x,y)))) 弗雷格的同胞恩斯特施洛德(Enrst Schroder)注意到了《概念文字》(Begriffsschrift),但并不喜欢其中的符号,而是在他的三版《逻辑代数的演讲》(Vorlesungen Uber die Algebra der Logik——Lectures on Algebra of Logic)中采用了皮尔斯的符号。 后来意大利数学家皮亚诺(Giuseppe Peano)采用施洛德的符号,但他做了修改,以便在同一个公式中使用数学和逻辑符号。皮亚诺通过把字母反转、倒置等方式来代表逻辑符号: 存在量词, Existential quanifier:把“E”反转“∃”表示; 蕴含,Implication:用Consequence的“C”反转“⊃”表示; 析取(“或”),disjunction,用拉丁文的“vel”中“∨”表示; 合取(“与”),conjunction,把用拉丁文的“vel”中“V”反转“∧”表示; 否定(“非”),negation,用西班牙文n上的读音符号“~”(读作tilde)表示; 等于,equivalence,用等于号中间加一横线“≡”表示。 用这些符号,皮尔斯的三种表达方式可写成: 1. Every ball is red. 翻译成逻辑表达:For every x, if x is a ball then x is red. (x)(ball(x) ⊃ red(x)) 2. Some ball is red. 翻译成逻辑表达:There exist an x, where x is a ball and x is red. (∃x)(ball(x) ∧red(x)) 3. Every cat is on a mat. 翻译成逻辑表达: For every x, if x is a cat, then exist a y which is a mat and x is on y. (x)(cat(x) ⊃((∃y)(mat (y) ∧ on(x,y)))) 英国数学家波特兰 • 罗素(Bertrand Russell)采用皮亚诺的符号,他的《数学原理》(Principia Mathematica, Alfred North Whitehead and Russell, 1910)是当今逻辑工作的基础。皮亚诺没有给全称量词制定符号,因为它似乎没法对“Omins”中的“O”进行改造。德国逻辑学家用“alle”的字母“A”倒置“∀”来表示全称量词。 上述三个式子就可以写成: 1. Every ball is red. 翻译成逻辑表达:For every x, if x is a ball then x is red. (∀x)(ball(x) ⊃ red(x)) 2. Some ball is red. 翻译成逻辑表达:There exist an x, where x is a ball and x is red. (∃x)(ball(x) ∧red(x)) 3. Every cat is on a mat. 翻译成逻辑表达: For every x, if x is a cat, then exist a y which is a mat and x is on y. (∀x)(cat(x) ⊃((∃y)(mat (y) ∧ on(x,y))))
|