本体【Ontology】综述
原文地址:http://blog.csdn.net/moonsheep_liu/article/details/22329873
本体作为一种能在语义和知识层次上描述领域概念的建模工具,其目标是捕获相关领域的知识,确 定该领域内共同认可的词汇,通过概念之间的关系来描述概念的语义,提供对该领域知识的共同理解。语义Web(the Semantic Web)是在本体理论基础之上对现有Web所进行的扩展[15],其目标是使Web上的信息具有计算机可以理解的语义,在本体的支持下实现信息系统间语义 上的互操作性,以及对Web资源所进行的智能访问和检索[16]。充分实现语义Web的潜力,需要大规模采用基于本体的方法来共享信息和资源,本体是语义 Web得以实现的基础和关键。
本章主要介绍论文工作涉及的本体、语义Web、语义Web服务等基本概念。
1.1Ontology
Ontology 的概念最早源于亚里士多德(公元前384-322年)对事物存在本质的研究,在哲学上的定义为“对世界上客观存在物的系统地描述,即存在论”,是客观存在 的一个系统的解释或说明,关心客观现实的抽象本质[17]。近几年,Ontology作为信息抽象和知识描述的工具,被计算机领域所采用。
计 算机领域的Ontology是否应该叫做“本体”,存在一定的争议。目前,Ontology主要有“本体”和“本体论”两种中文译法。大连海事大学智能信 息处理学科梯队的黄映辉教授从人工智能引入Ontology时候Ontology的定义开始,分析了Ontology的哲学意义和Ontology被引入 到计算机领域后的实质内容,认为计算机领域的Ontology不应该译作“本体”或者“本体论”。Ontology作为从哲学领域借用的术语,其实质是 “概念模型”,应该被翻译为“本体论模型”[19]。
将Ontology翻译成“本体”已经是计算机领域一个约定俗成的做法。本文在讨论Ontology的时候,为了行文方便并符合业界习惯,仍然使用“本体”的说法。这里讨论的本体的相关知识,均限于计算机领域的本体。
1.1.1 本体的定义
本 体在计算机领域的定义经历了一个演化过程。在人工智能界,最早给出本体定义的是Neches等人,他们将本体定义为“给出构成相关领域词汇的基本术语和关 系,以及利用这些术语和关系构成的规定这些词汇外延的规则的定义[19]”。1993年,Gruber给出了本体的一个最为流行的定义,即“本体是概念模 型的明确的规范说明[20]”。后来,Borst在此基础上,给出了本体的另外一种定义:“本体是共享概念模型的形式化规范说明[21]”。
Studer 等人在对本体做了深入研究后,扩展了Gruber的定义,认为“本体是共享概念模型的明确的形式化规范说明(An ontology is a formal, explicit specification of a shared conceptualisation.)[22]”。该定义包含四层含义:
1)概念模型(Conceptualization),即本体是通过抽象客观世界的概念而得到的模型,它表示的含义独立于具体的环境状态;
2)明确性(Explicit),即本体所使用的概念及在这些概念之上的约束都有明确的定义,没有二义性;
3)形式化(Formal),即本体是计算机可处理的,而不是自然语言;
4)共享(Shared),即本体体现的是共同认可的知识,反映的是相关领域中公认的概念集合,它所针对的是团体而不是个体。
本体的目标是捕获相关的领域的知识,提供对该领域知识的共同理解,确定该领域内共同认可的词汇,并从不同层次的形式化模式上给出这些词汇和词汇之间相互关系的明确定义[23]。
1.1.2 本体建模元语
本体中的知识是通过类、关系、函数、公理和实例来形式化地表示的[20]。Perez等人用分类法组织了本体,归纳出5个基本的建模元语[24]:
1) 类(Classes)或概念(Concepts)
指任何事务,如工作描述、功能、行为、策略和推理过程。从语义上讲,它表示的是对象的集合,其定义包括概念的名称,与其他概念之间的关系的集合,以及用自然语言对概念的描述。
2) 关系(Relations)
在领域中概念之间的交互作用,形式上定义为n维笛卡儿积的子集。如子类关系(subClassOf)。在语义上关系对应于对象元组的集合。
3) 函数(Functions)
一类特殊的关系。该关系的前n-1个元素可以唯一决定第n个元素。形式化的定义为F: C1×C2×…×Cn-1→Cn。如motherOf就是一个函数,motherOf(x, y)表示y是x的母亲。
4) 公理(Axioms)
代表永真断言,如概念乙属于概念甲的范围。
5) 实例(Instances)
代表元素。从语义上讲实例表示的就是对象。
本 体与面向对象的理论非常类似,但这两者本质是不同的。本体是对某个领域静态概念模型的描述。面向对象是一种软件开发方法,主要思想是使用对象、类、继承、 封装、消息和多态等基本概念来构造系统。在面向对象的理论中,对象或类不仅包括描述对象静态特征的属性,也包括描述对象动态特征(行为)的方法。对象的属 性和方法结合在一起形成一个独立的系统单位,尽可能对外隐蔽对象的内部细节,对外提供统一的接口。
1.1.3 本体描述语言
本 体描述语言起源于人工智能(Artificial Intelligence, AI)领域对知识表示的研究,这方面的本体描述语言主要有:KIF(Knowledge Interchange Format)[25]、Ontolingua[4]、OKBC(Open Knowledge Base Connectivity)[26]、OCML(Operational Conceptual Modeling Language)[27]、Frame logic[28]、Loom[29]等。近年来,随着Web技术的发展,Web与本体理论的结合成为必然趋势,诞生了一些Web本体描述语言,主要有 RDF(Resource Description Framework)[30]、RDF Schema[31]和SHOE(Simple HTML Ontology Extension)[32]等。
描述逻辑(Description Logics, DLs)[33]是人工智能领域研究的一种重要的知识表示语言,目前正被积极应用于本体的描述。以描述逻辑为基础的本体描述语言主要有OIL[34]、DAML+OIL[35]和OWL[1]。
Web 本体语言OWL(Web Ontology Language, OWL)[1]是W3C2004年推荐的本体描述语言的标准,是在WWW上发布和共享本体的语义标记语言。OWL作为RDF/RDF(S)的扩展,是在 DAML+OIL的基础上发展起来的,目的是提供更多的原语以支持更加丰富的语义表达并支持推理。OWL 有三个子语言:OWL Lite、OWL DL和OWL Full。其中,OWL Lite用于提供给那些只需要一个分类层次和简单属性约束的用户。推理系统能够保证计算完备性(即所有的结论都能被计算出来)和可判定性(即所有计算都在 有限时间完成)。OWL Full支持那些需要在语法自由的RDF上进行最大程度表达的用户,它允许一个本体在预定义的(RDF或OWL)词汇表上增加词汇。
1.1.4 本体构建的准则
目前已有的本体很多,出于对各自问题域和具体工程的考虑,构造本体的过程也是各不相同的。由于没有一个标准的本体构造方法,不少研究人员出于指导开发本体的目的,从实践出发,提出了不少有益于构造本体的标准。下面列举一些在实践中被证明比较有用的本体构建准则。
1) 清晰性和客观性(Clarity and Objectivity)[20]:本体应该通过客观定义和自然语言文档对所定义的术语给出明确的、客观的语义定义。
2) 完全性(Completeness)[20]:本体所给出的术语定义是完整的,完全能表达所描述术语的含义。
3) 一致性(Coherence)[20]:由术语得出的推论与术语本身的含义是相容的,即支持与其定义相一致的推理,不会产生矛盾;所定义的公理以及用自然语言进行说明的文档也应该具有一致性。
4) 最大单调可扩展性(Maximum Monotonic Extendibility)[20]:向本体中添加通用或专用的术语时,不需要修改其已有的概念定义和内容,支持在已有的概念基础上定义新术语。
5) 最小本体承诺(Minimal Ontological Commitments)[20]:本体约定应该最小,对待建模对象应给出尽可能少的约束。而所谓的承诺,在本体中指的是对怎样以一致的、相容的方式使用 共享词汇所达成的共识。一般地,本体约定只要能够满足特定的知识共享需求即可,这可以通过定义约束最弱的公理以及只定义交流所需的词汇来保证。
6) 本体描述原则(Ontological Distinction Principle)[36]:本体中的类应该是互不相交的。
7) 概念层次多样化(Diversification of hierarchies)增强多继承机制的能力[37]。
8) 模块化设计(Modularity)以最小化模块化之间的耦合度[38]。
9) 语义距离最小化(Minimization of the semantic distance)[37]:兄弟概念之间的语义距离最小化,尽可能把含义相似的概念抽象出来,用相同的元语来表示。
10) 命名标准化(Standardization of names)[37]:尽可能使用标准的名字。
在 这十条准则中,Gruber在1995年所给出的五条原则(上述十条原则的前五条)最具有影响力。这十条构建准则给出了构造本体的基本思路和框架,然而, 明显的不足之处就是它们所反映的内容非常模糊且难于把握。目前人们普遍认为,在构造特定领域的本体的过程中,需要领域专家的参与。
1.1.5 本体的应用
本体的应用主要涉及两个方面:第一,本体作为一种能在知识层提供知识共享和重用的工具在语义Web中的应用;第二,在信息系统中的应用,主要包括处理信息组织、信息检索和异构信息系统互操作问题[23]。
常 规的基于关键词的信息检索技术已不能满足用户在语义上和知识上的需求,寻找新的检索方法也就成为目前研究的热点。本体具有良好的概念层次结构和对逻辑推理 的支持,因而在信息检索,特别是在基于知识的检索中得到了广泛的应用。由于本体具有能通过概念之间的关系来表达概念语义的能力,所以能够提高检索的查全率 (Recall)和查准率(Precision)。
传统的信息集成技术很难解决 信息源之间的结构和语义的异构,要解决这些问题,根本的方法就是要减少、甚至消除在概念和用词上的混乱,达成对事物相互一致的共同认识,并将其作为一种统 一的框架和基础。因此,将本体技术引入到信息集成中来,对异构信息进行形式化和规范化表示,以期解决传统信息集成中存在的语法和语义异构问题。在信息集成 中使用本体具有以下优势:首先,本体提供了一个共享词汇库,可作为与数据源的稳定的概念接口,并且独立于数据源模式;其次,本的描述能力可以解决同名异义 及异名同义,描述概念间的相互关系,显示的描述数据的语义,支持相关信息源之间的信息交换,提高应用的互操作性,促进领域知识共享和重用;第三,由于本体 的描述能力,配合推理机可以进行一些推理查询,发掘一些蕴涵的数据关系。
本体【Ontology】综述的更多相关文章
- OWL本体语言和Protege本体编辑器
OWL本体语言和Protege本体编辑器 演讲稿原作者:Wala Abdulaziz译者:Wu Di (pimgeek)转载.编辑:Tan Liwei原文发布日期:2013年6月5号原文链接:http ...
- 对象关系映射ORM
对象关系映射(英语:Object Relational Mapping,简称ORM,或O/RM,或O/R mapping),是一种程序技术,用于实现面向对象编程语言里不同类型系统的数据之间的转换.从效 ...
- W3C词汇和术语表
以A字母开头的词汇 英文 中文 abstract module 抽象模组 access 访问.存取 access control 存取控制 access control information 存取控 ...
- [python] 使用Jieba工具中文分词及文本聚类概念
声明:由于担心CSDN博客丢失,在博客园简单对其进行备份,以后两个地方都会写文章的~感谢CSDN和博客园提供的平台. 前面讲述了很多关于Python爬取本体Ontology.消息盒Inf ...
- GENIA语料库学习【转载】
来自论文:GENIA corpus—a semantically annotated corpus for bio-textmining 2003 1.介绍 GENIA corpus, a sema ...
- 杂项:ORM
ylbtech-杂项:ORM 对象关系映射(英语:(Object Relational Mapping,简称ORM,或O/RM,或O/R mapping),是一种程序技术,用于实现面向对象编程语言里不 ...
- [python爬虫] Selenium定向爬取PubMed生物医学摘要信息
本文主要是自己的在线代码笔记.在生物医学本体Ontology构建过程中,我使用Selenium定向爬取生物医学PubMed数据库的内容. PubMed是一个免费的搜寻引擎,提供生物医学方 ...
- ORM是什么?
对象关系映射(Object Relational Mapping,简称ORM)是一种为了解决面向对象与关系数据库存在的互不匹配的现象的技术. 简单的说,ORM是通过使用描述对象和数据库之间映射的元数据 ...
- ORM对象/关系模型
1 ORM 对象关系映射(ORM)提供了概念性的.易于理解的模型化数据的方法.ORM方法论基于三个核心原则: 简单:以最基本的形式建模数据. 传达性:数据库结构被任何人都能理解的语言文档化. 精确性: ...
- 知识图谱与机器学习 | KG入门 -- Part1 Data Fabric
介绍 如果你在网上搜索机器学习,你会找到大约20500万个结果.确实是这样,但是要找到适合每个用例的描述或定义并不容易,然而会有一些非常棒的描述或定义.在这里,我将提出机器学习的另一种定义,重点介绍一 ...
随机推荐
- scp 的用法
scp用于在linux下远程拷贝文件, 与rsync相比,scp不占资源,不会提高多少系统负荷,虽然 rsync比scp会快一点,但当小文件众多的情况下,rsync会导致硬盘I/O非常高,而scp基本 ...
- synchronized的实现原理与应用
Java代码在编译后会变成Java字节码,字节码被类加载器加载到JVM里,JVM执行字节码,最终需要转化为汇编指令在CPU上执行,Java中所使用的并发机制依赖于JVM的实现和CPU的指令. sync ...
- protobuf for java
本文档为java编程人员使用protocol buffer提供了一个基本的介绍,通过一个简单的例程进行介绍.通过本文,你可以了解到如下信息: 1.在一个.proto文件中定义一个信息格式. 2.使用p ...
- Eclipse Jee Oxygen安装svn插件
转: Eclipse Jee Oxygen安装svn插件 技术标签: eclipse svn Eclipse Jee Oxygen安装svn插件 入主题: 选择Eclipse->菜单-> ...
- 01-HTML5的介绍
本章知识点 HTML5介绍 什么是 HTML5 HTML的新特性 HTML新增的语义化标签 HTML5介绍 HTML5,在2014年10月由万维网联盟(W3C)完成标准制定. HTML5的设计目的是为 ...
- Python协程笔记 - yield
生成器(yield)作为协程 yield实际上是生成器,在python 2.5中,为生成器增加了.send(value)方法.这样调用者可以使用send方法对生成器发送数据,发送的数据在生成器中会赋值 ...
- js动画最佳实现——requestAnimationFrame
我们经常用setInterval来实现动画,其实这种做法不是太好,因为不同浏览器的刷新频率也不一样(一般认为设置16为最佳,按每秒60帧算,1000/60≍16.67) var dis = 0,tim ...
- js event 冒泡和捕获事件详细介绍【转】
冒泡和捕获 冒泡: 事件从内向外,从下向上执行 (默认行为) 捕获: 事件从外向内,从上向下执行 vue之capture 捕获事件 capture.html <!DOCTYPE html> ...
- docker入门(三)
docker容器IP"暴露"到外网(宿主机外) 首先将docker容器IP固定 Docker自身的4种网络工作方式,简略说明下: host模式,使用--net=host指定. co ...
- Composer 安装和使用
1.linux下安装 curl -sS https://getcomposer.org/installer | php mv composer.phar /usr/local/bin/composer ...