于江生;幸运;温珍珊;靳志辉;欧阳佑
Yu Jiangsheng,Xing Yun,Wen Zhenshan,Jin Zhihui, Ouyang You
摘要: 在一次机器学习的讨论班上,老师和学生甲、学生乙就ontology的话题展开了下面的对话。笔者恰巧在场并对他们的谈话产生了兴趣,于是记录下来稍加整理以飨读者。
甲生:老师,近来我们在阅读文献时常遇到ontology这个词,却不知怎么理解它,您能解释一下吗?
老师:这个词来源于古希腊哲学,中文有人翻译为“本体论”、“万有论”、“有论”、“存在论”、“生存论”、“是论”等等。
乙生:为什么ontology在哲学里有这么多的中文译名?
老师:主要是因为对being这个词的理解不同造成的,亚里士多德在其著作Metaphysics里定义ontology是研究being之为being的学问,现在有一种倾向把它译为“是论”。
甲生:我觉得中文译名是什么并不重要,像拓扑学不就是topology的音译吗?ontology干脆就音译为“昂拓学”,省了在译名上争论不休。
乙生:那不一样。拓扑学是数学分支,学问内容是严格形式化了的,可以不关心译名是否恰当;而ontology研究的内容跟数学不沾边,译名会影响人们对它的理解。
老师:哲学家关心译名主要是出于研究东西方语言、历史文化的差异,还是很有必要的。而且,ontology和数学并不是“不沾边”。我们是否该把话题限制一下,还是谈跟计算机科学有关的ontology吧,这也是你们关注的。
乙生:老师,我搞不懂ontology怎么和数学沾上边了呢?
老师:人工智能里ontology一般定义为“共享概念模型的明确的形式化规范说明”,Perez等学者归纳出5个建模基元,包括概念、关系、函数、公理和实例。
甲生:是不是像普林斯顿大学的WordNet,Fillmore的FrameNet,微软的MindNet等一些用于自然语言处理的机读词典都是ontology?
老师:你指的是词典本身,还是词典的描述语言?
甲生:我指的是词典本身,因为它们对足够多的概念及其之间的关系都进行了明确的形式化的描述。
乙生:我感觉词典的描述语言更符合ontology的定义。但是,“共享概念模型”字面上有两种理解,一是“共享概念的模型”,二是“共享的概念模型”,到底是哪个呢?
老师:应该是前者。把你们的分歧搁在一边,我们先来谈谈共享概念。你们知道北京大学的中文概念词典沿用的是WordNet的描述语言,这两个知识库之间是否是一一对应呢?
乙生:不是。至少中文没有uncle这个概念,舅舅和叔叔在我们看来意义是不同的。
甲生:难道不能在中文里虚构一个uncle概念吗?
乙生:倒是允许通过短语虚构概念,但不能引入逻辑运算。在中文里如果要虚构uncle这个概念,需用“父亲的兄弟或母亲的兄弟”,有一个析取词。
甲生:老师,为什么SynSet中要排斥逻辑运算呢?
老师:WordNet里最小的组成单位是SynSet,即同义词集合或称概念,所有的逻辑运算都是基于概念的。而我们知道SynSet的构造不允许嵌套,所以SynSet中不能有逻辑运算。
甲生:喔,我明白了。如果某个SynSet中有逻辑运算,将会导致它不是最小组成单位的矛盾。可是,即便中英文概念之间由于文化背景不同不是一一对应的,难道它们不都是对世界的某种看法吗?
乙生:那倒不假,但不是共享的……
甲生:我相信绝大多数是可以共享的,像uncle这样的概念毕竟是少数。
乙生:你有证据吗?还没听说谁做过统计——在WordNet框架下不同语言之间可共享的概念占绝大多数,这只是你一厢情愿的猜测罢了。
甲生:不是猜测!至少几乎所有的科技概念都是可共享的。自然语言是比较复杂一点,但认为它们不可共享的证据目前也没有。
老师:ontology体现的是common knowledge,最好是领域受限的。现在网络环境这么好,要让世界各地众多的领域专家参与制定或规范专业术语、描述概念间的关系并非难事,现在许多生物信息库的构建就是采用这种方法——数据按照规定的格式提交。具体的知识库可以千奇百怪,只要它的描述语言符合既定标准。我们暂且没有什么现成的方法比较其优劣,如果硬要分个高下,只能看其应用效果的好坏了。但是,这又跟具体问题和算法扯上了关系,很难辨别出这坏的效果就是知识库造成的。比这更糟的是,如果知识表示的手段不同,两个知识库之间的比较就难上加难了……
乙生:于是我们需要对知识表示语言制定标准,描述哪些东西以及如何描述,目的是为了便于比较。
甲生:还有共享!在同一标准下的不同知识库之间可以相互取长补短,或避免重复建设。
老师:现在你们认为这个ontology指的是具体知识库本身呢,还是它的描述语言?
甲生:我现在倾向于接受它指的是知识库的描述语言了。
老师:那么结合WordNet,你们如何理解Perez的那5个建模基元?
乙生:在WordNet框架下,概念就是同义词集合;名词概念的关系包括上下位、部分整体、对立等等。
甲生:数学里,关系就是笛卡尔积的某个子集,而函数是一类特殊的关系。
老师:是的。如果记概念集合为C,则n元关系就是C×Λ×C的某个子集,WordNet里的关系到目前为止都是二元关系。你们一定还记得WordNet每个类中概念按上位关系构成一棵树,所以即使某个概念的父节点有多个,但限制在具体的类里只能有一个,这就是“直接上位函数”。只要有助于语义推理,我们可以在概念间定义各种各样的关系,而函数只是其中特殊的——它要求前n-1个元素惟一确定第n个元素。
乙生:明白了。WordNet的公理和实例又是什么呢?
甲生:我举个例子,如果B是A的下位概念,则P(A)→
P(B)。实例譬如,如果麻雀是鸟的下位概念,则所有的鸟会飞蕴含所有的麻雀会飞。一个概念A的实例就是以A为根节点的所有子树的叶子节点,类似面向对象中对象和类的关系。
乙生:可是有的概念不能加全称量词,譬如{北京,北京市}。我觉得所有的叶子节点都不能加全称量词,因为它们不再有实例了。
老师:对,WordNet里的关系除了kind-of,part-of之外还有个是attribute-of,全称量词这个概念不是{北京,北京市}这个概念的属性。好,对WordNet的分析暂且到此,我们再来聊聊最近几年和ontology如影随形的Semantic Web。
甲生:是啊,最近ontology之所以成为热点,似乎都是Semantic Web在“作祟”,呵呵。
乙生:刚才咱们还讨论ontology该怎么翻译,Semantic Web现在通常怎么翻译呢?语义网吗?
甲生:由于历史的原因,“语义网”已经被Sema-ntic Net占据了,因此,一般不把Semantic Web翻译成“语义网”,而通常翻译成“语义Web”,或者“语义万维网”,我自己认为翻译成“语义互联网”也是可以接受的。
老师:对Semantic Web的翻译已经基本有定论,正如甲所说的一样。甲,你来谈谈你对Semantic Web的了解。
甲生:Semantic Web也是World Wide Web(万维网)的创立者Tim Berners-Lee提出的,他认为现在的World Wide Web只是面向人的资源传输平台,他认为这还不够,他希望有一个面向计算机的知识交流的平台,因此提出了Semantic Web这个框架。之所以在Web前加上Semantic,是因为现在的Web Resource(万维网资源)对计算机来说是没有语义、也无法分析语义的,他希望下一代的Web能为计算机进行语义分析提供基础。
乙生:确实,现在大多数的Web Resource只能通过句法分析来发现,例如最常用的关键字匹配就是现今搜索引擎的搜索基础。
老师:World Wide Web发展到现在,Web上的资源已经相当丰富了,而且每天都以“爆炸”的方式膨胀,人们从最初对资源的需求转向了考虑如何最大限度地利用这些资源。
甲生:所以现在搜索引擎热得让人眼红嘛。
乙生:虽然现在的搜索引擎技术已经到了一个非常高的水平,google的搜索结果通常让人比较满意,但是光靠搜索引擎解决不了一些固有的问题。
老师:对,搜索引擎归根到底还是面向人的,搜索结果是Web Resource,人能看懂,但是机器怎么利用?
甲生:所以根本的问题还是在资源的建设上,现在的Web Resource的基础是html(超文本链接标示语言),html是描述format的语言,是用来给人看的,不是为计算机利用服务的。因此我们需要一种描述语义的机器可读的语言,这就是xml(可扩展标记语言)。未来的Web Resource应该用xml来描述,这样计算机就可以利用了。
乙生:照你这么说来,那些描述语义的xml标签,又是如何定义的呢?
老师:这就涉及到ontology了。Semantic Web的基础就是ontology。为了计算机能够理解,必须用形式化的ontology来定义Web Resource中数据和元数据的意义。那些Web Resource中使用的xml标签,就是数据;而元数据,就是用来定义那些数据的数据。
甲生:那也就是说,先有Semantic Web的提出,然后发现必须定义好底层的ontology才可能顺利构造出Semantic Web。
老师:可以这么理解。
乙生:刚才老师举了WordNet的例子,来说明WordNet对应于ontology的5个要素,那么作为Semantic Web基础的ontology是又是什么样呢?
老师:刚才提到,Semantic Web的基础是形式化的ontology。现在计算机界达成的一个共识是作为Semantic Web基础的ontology的建设应该是一个系统的工程。Decker和Melnik在2000年提出了一个分层的体系框架,具体来说,分成4层:句法层、数据层、表示词汇层和逻辑/操作层。句法层是最低层,用xml保证了ontology的一致句法表示;数据层基于资源描述框架(Resource Description Framework,abbr.RDF),提供了ontology的一种简单数据模型,并且RDF也用xml作为它自己的句法表示;表示词汇层提供表示ontology的不同词汇集;至于逻辑/操作层,主要提供语义推理机制。
甲生:ontology的5个要素:概念、关系、概念层次、函数、公理,在这个层次框架中如何体现呢?
乙生:公理自然是在逻辑层体现,其他的呢?
老师:其他的主要反映在数据层,可不要小看了RDF,RDF是理解Semantic Web的ontology的关键。
甲生:Resource Description Framework,据我所知,Class和Property是其中两个重要的概念。
老师:对,ontology里的概念体现在RDF中就是rdfs: Class;而rdf:Property就是ontology里的关系;rdfs:Class有一个属性rdfs:subClassOf,表示的就是ontology里的概念层次,即子概念;函数用rdf:Property和它的两个属性rdfs:domain、rdfs:range表示。
甲生:原来如此。
老师:举个例子,有三个rdfs:Class:Person、Employee、Organization,一个rdfs:Property:WorksAt,并且Employee有一个属性rdfs:subClassOf是Person,WorksAt的domain是Employee,range是Organization。这样一个用RDF表示的ontology数据模型,它的那四个要素是什么?
甲生:我明白了,概念就是Person,Employee和Organization,关系是WorksAt,概念层次仅有Employee是Person的子概念,函数是WorksAt->(Employee,Organization)。
老师:正确。那你们现在弄清楚了Semantic Web和ontology之间的关系了吗?
甲、乙生:嗯,我想我们基本弄清楚了。
老师:好吧,今天的讨论就到这里。从ontology这个词可以窥探出科学和哲学之间的渊源,对ont-ology这个概念的理解是一个不断发展的过程,因此其翻译存在很多争议。希望今天的讨论对你们以后的学习、研究产生一些启发。