Ontology理论研究和应用建模.docx
《Ontology理论研究和应用建模.docx》由会员分享,可在线阅读,更多相关《Ontology理论研究和应用建模.docx(84页珍藏版)》请在冰豆网上搜索。
Ontology理论研究和应用建模
Ontology理论研究和应用建模
——《Ontology研究综述》、w3cOntology研究组文档以及Jena编程应用总结
1关于Ontology
1.1Ontology的定义
Ontology最早是一个哲学的范畴,后来随着人工智能的发展,被人工智能界给予了新的定义。
然后最初人们对Ontology的理解并不完善,这些定义也出在不断的发展变化中,比较有代表性的定义列表如下:
范畴
提出时间/提出人
定义
哲学
客观存在的一个系统的解释和说明,客观现实的一个抽象本质
计算机
1991/Neches等
给出构成相关领域词汇的基本术语和关系,以及利用这些术语和关系构成的规定这些词汇外延的规则的定义
1993/Gruber
概念模型的明确的规范说明
1997/Borst
共享概念模型的形式化规范说明
1998/Studer
共享概念模型的明确的形式化规范说明
关于最后一个定义的说明体现了Ontology的四层含义:
●概念模型(cerptualization)
通过抽象出客观世界中一些现象(Phenomenon)的相关概念而得到的模型,其表示的含义独立于具体的环境状态
●明确(explicit)
所使用的概念及使用这些概念的约束都有明确的定义
●形式化(formal)
Ontology是计算机可读的。
●共享(share)
Ontology中体现的是共同认可的知识,反映的是相关领域中公认的概念集,它所针对的是团体而不是个体。
Ontology的目标是捕获相关的领域的知识,提供对该领域知识的共同理解,确定该领域内共同认可的词汇,并从不同层次的形式化模式上给出这些词汇(术语)和词汇之间相互关系的明确定义。
1.2Ontology的建模元语
Perez等人用分类法组织了Ontology,归纳出5个基本的建模元语(ModelingPrimitives):
●类(classes)或概念(concepts)
指任何事务,如工作描述、功能、行为、策略和推理过程。
从语义上讲,它表示的是对象的集合,其定义一般采用框架(frame)结构,包括概念的名称,与其他概念之间的关系的集合,以及用自然语言对概念的描述。
●关系(relations)
在领域中概念之间的交互作用,形式上定义为n维笛卡儿积的子集:
R:
C1×C2×…×Cn。
如子类关系(subclass-of)。
在语义上关系对应于对象元组的集合。
●函数(functions)
一类特殊的关系。
该关系的前n-1个元素可以唯一决定第n个元素。
形式化的定义为F:
C1×C2×…×Cn-1→Cn。
如Mother-of就是一个函数,mother-of(x,y)表示y是x的母亲。
●公理(axioms)
代表永真断言,如概念乙属于概念甲的范围。
●实例(instances)
代表元素。
从语义上讲实例表示的就是对象。
另外,从语义上讲,基本的关系共有4种:
关系名
关系描述
part-of
表达概念之间部分与整体的关系。
kind-of
表达概念之间的继承关系,类似于面向对象中的父类与子类之间的关系。
instance-of
表达概念的实例与概念之间的关系,类似于面向对象中的对象和类之间的关系。
attribute-of
表达某个概念是另一个概念的属性。
如“价格”是桌子的一个属性。
在实际建模过程中,概念之间的关系不限于上面列出的4种基本关系,可以根据领域的具体情况定义相应的关系。
1.3Ontology和语义网络
Ontology和语义网络的联系和区别列表如下:
联系
它们都是知识表示的形式,均可以通过带标记的有向图来表示,适合于逻辑推理。
区别
比较方面
Ontology
语义网络
描述的对象和范围
是对共享概念模型的规范说明,即其概念在某个特定领域是公认的,是面向特定领域的概念模型。
从数学上讲是一种带有标记的有向图,最初用于表示命题信息,现广泛用于专家系统表示知识。
其节点表示物理实体、概念或状态,边用于表示关系,但是对节点和边都没有特殊规定,所以描述的范围比Ontology广。
【例子】:
语义网络中可以表达“我的汽车是红色的”,而Ontology则适合表达如“团体组织的内部构成”等整体内容。
表示的深度上
有5个要素“元语,类,关系,函数,公理和实例”,它通过这5个要素来严格、正确地刻画所描述的对象。
深度上不如Ontology,对建模没有特殊要求。
建模条件
建立必须有专家的参与,相对更加严格和困难,这也是Ontology目前的主要缺点之一。
不必有专家的参与。
1.4Ontology的描述语言
目前在具体应用中Ontology的表示方式主要有4类:
●非形式化语言
●半非形式化语言
●半形式化语言
●形式化语言
可以用自然语言来描述Ontology,也可以用框架、语义网络或逻辑语言来描述。
目前普遍使用的方法列表如下:
名称
描述
特点
Ontolingua
一种基于KIF(knowledgeinterchangeformat)的提供统一的规范格式来构建Ontology的语言。
✓为构造和维护Ontology提供了统一的、计算机可读的方式;
✓由其构造的Ontology可以方便地转换到各种知识表示和推理系统(Prolog、CORBA的IDL、CLIPS、LOOM、Epikit、Algernon和KIF),从而将Ontology的维护与使用它的目标系统隔开;
✓主要用于Ontology服务器。
CycL
Cyc系统的描述语言,一种体系庞大而非常灵活的知识描述语言。
✓在一阶谓词演算的基础上扩充了等价推理、缺省推理等功能;
✓具备一些二阶谓词演算的能力;
✓其语言环境中配有功能很强的可进行推理的推理机。
Loom
Ontosaurus的描述语言,一种基于一阶谓词逻辑的高级编程语言,属于描述逻辑体系。
后来发展为PowrLoom语言(采用前后链规则(backwardandforwardchainer)作为推理机制)。
✓提供表达能力强、声明性的规范说明语言;
✓提供强大的演绎推理能力;
✓提供多种编程风格和知识库服务。
1.5已有的Ontology及其分类
目前广泛使用的Ontology列表如下:
名称
描述
Wordnet
基于心理语言规则的英文词典,以synsets(在特定的上下文环境中可互换的同义词的集合)为单位组织信息。
Framenet
英文词典,采用称为FrameSemantics的描述框架,提供很强的语义分析能力,目前发展为FramenetII。
GUM
面向自然语言处理,支持多语种处理,包括基本概念及独立于各种具体语言的概念组织方式。
SENSUS
面向自然语言处理,为机器翻译提供概念结构,包括7万多概念。
Mikrokmos
面向自然语言处理,支持多语种处理,采用一种语言中间的中间语言TMR表示知识。
Guarino提出以详细程度和领域依赖度两个维度对Ontology进行划分。
具体说明如下:
维度
说明
分类级别
详细程度
描述或刻画建模对象的程度
高的称作参考(Reference)Ontologies
低的称作共享(share)Ontologies
领域依赖程度
-
顶级(top-level)Ontologies描述的是最普遍的概念及概念之间的关系,如空间、时间、事件、行为等,与具体的应用无关,其他Ontologies均为其特例。
领域(domain)Ontologies描述的是特定领域中的概念和概念之间的关系。
任务(task)Ontologies描述的是特定任务或行为中的概念及概念之间的关系。
应用(application)Ontologies描述的是依赖于特定领域和任务的概念和概念之间的关系。
1999年Perez和Benjamins归纳出了10种Ontologies:
●知识表示Ontologies
●普通Ontologies
●顶级Ontologies
●元(核心)Ontologies
●领域Ontologies
●语言Ontologies
●任务Ontologies
●领域-任务Ontologies
●方法Ontologies
●应用Ontologies
但它们之间有交叉,层次不够清晰。
1.6构造Ontology的规则
出于对各自问题域和具体工程的考虑,构造Ontology的过程各不相同。
目前没有一个标准的Ontology的构造方法。
最有影响的是Gruber在1995年提出的5条规则:
●明确性和客观性:
Ontology应该用自然语言对所定义的术语给出明确、客观的语义定义。
●完全性:
所给出的定义是完整的,完全能表达所描述的术语的含义。
●一致性:
由术语得出的推论与术语本身的含义是相容的,不会产生矛盾。
●最大单调可扩展性:
向Ontology中添加通用或专用的术语时,不需要修改已有的内容。
●最小承诺:
对待建模对象给出尽可能少的约束。
目前大家公认在构造特定领域的Ontology的过程中需要领域专家的参与。
2Ontology的研究和应用
Ontology的研究和应用主要包括以下3方面:
●理论上的研究,主要研究概念及其分类,Ontology上的代数;
●信息系统中的应用,主要包括处理信息组织、信息检索和异构信息系统互操作问题;
●Ontology作为一种能在知识层提供知识共享和重用的工具在语义Web中的应用。
2.1Ontology的理论研究
Ontology的理论研究包括概念和概念分类、Ontology上的代数。
最有代表性的是Guarino等人对概念的分类所做的深入和细致的研究,他们从一般的意义上分析了什么是概念、概念的特性、概念之间的关系以及概念的分类,提出了一套用于指导概念分类的可行理论。
基于这个理论,他又提出了Ontology驱动的建模方法,在理论上为建模提供了一个通用的模式。
Guarino认为概念之间的差别不仅体现在概念的定义上,同时也体现在概念的某些特性上。
从这些特性出发,归纳出概念的元特性(最基本的特性),从而用公式给出元特性的严格的形式定义。
在此基础上,他们又讨论了元特性之间的关系和约束,最终把研究结果作为概念分类的基本理论工具并提出一套完成的概念分类体系结构。
Guarino的理论可以归纳如下:
概念分类理论的基础是概念的元特性。
以概念的元特性为出发点,按照一定的规则,把具有相同元特性组合的概念归为一类,进而给出一般意义上的概念分类体系。
概念的基本元特性包括:
持久特性、非持久特性、反持久特性、半持久特性、载体标识特性、支持标识特性、外部依赖特性等。
以下是对各种特性的说明:
名称
描述
举例
持久特性
严格定义为:
。
代表某个概念,
代表x是
的一个实例,
表示其后的断言永远为真。
Person具有持久性,而Student不具有持久性。
非持久特性
对某个概念而言,存在某些实例不会永远属于该概念。
Student具有非持久性。
反持久特性
对概念的任何一个实例,这个实例不会永远属于该概念。
Youth具有反持久性。
半持久特性
非持久性和反持久性的差集。
——
载体标识特性
——
如Student具有载体标识特性,因为学生之间的区别不是靠学生,而是作为人来区分的。
支持标识特性
每个实例相互之间是可以区分的。
Person具有支持标识特性,人和人之间可由标识(人的指纹)来区分。
外部依赖特性
一个概念对另外一个概念的某种依赖关系。
概念A对概念B的外在依赖关系表现为概念A中的任何一个实例a必蕴涵属于概念B的实例b,而b不是a的一部分。
Parent外在依赖于Child,某人的父母蕴涵他(她)有小孩,而他的小孩当然不是他身体的一部分。
2.2Ontology在信息系统中的应用
目前信息检索技术的分类和对他们的描述列举如下:
分类
特点
缺点
全文检索(Textretrieval)
把用户的查询请求和全文中的每一个词进行比较,不考虑查询请求和文件语义上的匹配。
虽然可以保证查全率,但是查准率大大降低。
数据检索(Dataretrieval)
查询要求和信息系统中的数据都遵循一定的格式,具有一定的结构,允许对特定字段检索。
需要有标识字段的方法。
性能取决于所使用的字段标识方法和用户对方法的理解,具有很大的局限性,支持语义匹配的能力较差。
知识检索(Knowledgeretrieval)
基于知识的、语义上的匹配,在查准率和查全率上有更好的保证。
是信息检索的重点,特别是面向Web信息的知识检索的重点。
——
Ontology具有良好的概念层次结构和对逻辑推理的支持,在知识检索中有广泛应用。
基于Ontology的信息检索的基本思想有:
●在领域专家的帮助下,建立相关领域的Ontology;
●收集信息源中的数据,并参照已建立的Ontology把收集来的数据按规定格式存储在元数据库(RDB,KDB等)中;
●对用户检索界面获取的查询请求,查询转换器按照Ontology把查询请求转换成规定的格式,在Ontology的帮助下从元数据库中匹配出符合条件的数据集合;
●检索的结果经过定制处理返回给用户。
关于Ontology的表达,主要分为两种情况进行处理:
●检索系统如不需要太强的推理能力,Ontology可用概念图的形式表示并存储,数据可以保存在一般的关系数据库中,采用图匹配技术完成检索;
●如要求较强的推理能力,一般需要一种描述语言(Loom等)表示Ontology,数据保存在知识库中,采用描述语言的逻辑推理能力完成检索。
目前Ontology用于信息检索的项目列举如下:
项目名称
说明
(Onto)2Agent
为了帮助用户检索所需要的WWW上已有的Ontology,主要采用参照Ontology,即以WWW上已有的Ontology为对象建立起来的Ontology,保存各类Ontology的元数据。
Ontobroker
面向WWW上的网页资源,目的是帮助用户检索所需的网页,这些网页含有用户关心的内容。
SKC
解决信息系统语义异构的问题,实现异构的自治系统间的互操作。
希望通过在Ontology上的一个代数系统来实现Ontology之间的互操作,从而实现异构系统之间的互操作。
2.3Ontology和语义Web
提高Web信息检索的质量包括两方面的内容:
●如何在现有的资源上面设计更好的检索技术;
●如何为Web上的资源附加上计算机可以理解的内容,便于计算机处理,即给出一种计算机能够理解的表示资源的手段。
基于后一种考虑,Berners-Lee在2000-12-18的XML2000的会议上提出了语义Web。
语义Web的目标是使得Web上的信息具有计算机可以理解的语义,满足智能软件代理(Agent)对WWW上异构和分布信息的有效访问和检索。
下面是Berners-Lee为未来Web发展提出的基于语义的体系结构-语义Web体系结构:
层数
名称
描述
第一层
UNICODE和URI
整个语义网络的基础,Unicode处理资源的编码,URI负责标识资源。
第二层*
XML+NS+xmlschema
用于表示数据的内容和结构。
第三层*
RDF+rdfschema
用于描述Web上的资源及其类型。
第四层*
Ontologyvocabulary
用于描述各种资源之间的联系。
第五层
Logic
在下面四层的基础上进行的逻辑推理操作。
第六层
Proof
第七层
Trust
*核心层,用于表示Web信息的语义。
XML和RDF都能为所表述的资源提供一定的语义。
但是XML中的标签(tags)和RDF中的属性(properties)集都没有任何限制。
一个例子是:
XML可以用“TOM”表示TOM是教师。
而“Descriptionabout=http:
//www.w3.org/Home/Lassila>Creator>OraLassila
Creator>
Description>”这个RDF片断描述了Web页的创建者问题。
而上面的Author和Creator完全可以用Writer来代替。
另一个例子是:
某医院和某大学的Web页上都有,但是不知道它代表医生还是博士。
综上,XML和RDF在处理语义上存在的问题是:
●同一概念有多种词汇表示;
●同一个词汇有多种概念(含义)。
Ontology通过对概念的严格定义和概念之间的关系来确定概念精确含义,表示共同认可的、可共享的知识,从而解决上面的问题。
因此在语义Web中,Ontology具有非常重要的地位,是解决语义层次上Web信息共享和交换的基础。
为了便于Web上应用程序使用方便,需要有一个通用的标准语言来表示Ontology,就像XML作为标准的数据交换语言一样。
目前正在开发中的语言有:
SHOE、OML、XOL、Riboweb、RDFS和OIL。
下面将就w3c提出的OWL(WebOntologyLanguage)做进一步的分析。
目前语义Web是一个新兴的研究方向,Ontology在其中的应用刚刚起步。
3WebOntologyLanguage(OWL)概述
3.1OWL简介
OWL(WebOntologyLanguage)适用于这样的应用,在这些应用中,不仅仅需要提供给用户可读的文档内容,而且希望处理文档内容信息。
OWL能够被用于清晰地表达词汇表中的词条(term)的含义以及这些词条之间的关系。
而这种对词条和它们之间的关系的表达就称作Ontology。
OWL相对XML、RDF和RDFSchema拥有更多的机制来表达语义,从而OWL超越了XML、RDF和RDFSchema仅仅能够表达网上机器可读的文档内容的能力。
3.2OWL在语义网中的地位
语义网是对未来网络的一个设想,在这样的网络中,信息都被赋予了明确的含义,机器能够自动地处理和集成网上可用的信息。
语义网使用XML来定义定制的标签格式以及用RDF的灵活性来表达数据,下一步需要的就是一种Ontology的网络语言(比如OWL)来描述网络文档中的术语的明确含义和它们之间的关系。
OWL是w3c推荐的语义网络“栈”中的一部分,这个“栈”被表达如下:
名称
描述
XML
结构化文档的表层语法,对文档没有任何语义约束。
XMLSchema
定义XML文档的结构约束的语言。
RDF
对象(或者资源)以及它们之间关系的数据模型,为数据模型提供了简单的语义,这些数据模型能够用XML语法进行表达。
RDFSchema
描述RDF资源的的属性和类型的词汇表,提供了对这些属性和类型的普遍层次的语义。
OWL
添加了更多的用于描述属性和类型的词汇,例如类型之间的不相交性(disjointness),基数(cardinality),等价性,属性的更丰富的类型,属性特征(例如对称性,symmetry),以及枚举类型(enumeratedclasses)。
下图给出了w3c的Ontology语言栈描述:
W3C2002年7月31日透露了发行OWLWeb本体论语言(OWLWebOntologyLanguage)工作草案的细节,其目的是为了更好地开发语义网(SemanticWeb)。
W3C发言人IanJacobs说,开发语义网的目的是能够在互联网上进行更结构化的智能处理,例如,当一个人确定要参加某个城市的会议后,就可以自动查找有关航班和酒店的信息。
W3C称,W3CWeb本体论工作小组正在对OWLWeb本体论语言进行设计,OWL是本体论Web语言(OntologyWebLanguage)的字母缩写。
设计的最终目的是为了提供一种可以用于各种应用的语言,这些应用需要理解内容,从而代替只是采用人类易读的形式来表达内容。
作为语义网的一部分,XML、RDF和RDF-S支持通过提供针对术语描述的词汇表,共同推进了机器的可靠性。
W3C发行的三种工作草案名为《特色大纲》(WebOntologyLanguage(OWL)GuideVersion1_0)、《抽象句法》(OWLWebOntologyLanguage1_0AbstractSyntax)和《语言参考》。
W3C本周还发行了其Web服务架构使用方案集合的工作草案,目的是为下一代的Web服务提供使用案例和方案。
W3CWeb服务架构工作小组特别发行的方案包括诸如旅行社使用案例和类似电子数据交换的采购等情形。
Jacobs说:
“W3C官员正在制定有关Web服务架构范围的文件。
”
3.3OWL的三个子语言——OWLLite、OWLDL、OWLFull
3.3.1子语言描述
OWL的三个子语言描述列表如下:
子语言
描述
例子
OWLLite
用于提供给那些只需要一个分类层次和简单的属性约束的用户。
支持基数(cardinality),只允许基数为0或1。
OWLDL
支持那些需要在推理系统上进行最大程度表达的用户,这里的推理系统能够保证计算完全性(computationalcompleteness,即所有地结论都能够保证被计算出来)和可决定性(decidability,即所有的计算都在有限的时间内完成)。
它包括了OWL语言的所有约束,但是可以被仅仅置于特定的约束下。
当一个类可以是多个类的一个子类时,它被约束不能是另外一个类的实例。
OWLFull
支持那些需要在没有计算保证的语法自由的RDF上进行最大程度表达的用户。
它允许在一个Ontology在预定义的(RDF、OWL)词汇表上增加词汇,从而任何推理软件均不能支持OWLFULL的所有feature。
一个类可以被同时表达为许多个体的一个集合以及这个集合中的一个个体。
3.3.2子语言间以及子语言和RDF的关系
这三种子语言之间的关系是:
●每个合法的OWLLite都是一个合法的OWLDL;
●每个合法的OWLDL都是一个合法的OWLFull;
●每个有效的OWLLite结论都是一个有效的OWLDL结论;
●每个有效的OWLDL结论都是一个有效的OWLFull结论。
用户在选择使用哪种语言时的主要考虑是:
●选择OWLLite还是OWLDL主要取决于用户需要整个语言在多大程度上给出了约束的可表达性;
●选择OWLDL还是OWLFull主要取决于用户在多大程度上需要RDF的元模型机制(如定义类型的类型以及为类型赋予属性);
●在使用OWLFull而不是OWLDL时,推理的支持不可预测,因为目前还没有完全的OWLFull的实现。
这三种子语言与RDF的关系是:
●OWLFull可以看成是RDF的扩展;
●OWLLite和OWLFull可以看成是一个约束化的RDF的扩展;
●所有的OWL文档(Lite,DL,Full)都是一个RDF文档;
●所有的RDF文档都是一个OWLFull文档;
●只有一些RDF文档是一个合法的OWLLite和OWLDL文档。
3.4OWL语言大纲
【说明】:
以下用斜体标出的为OWL中的词条(ter