XML+RDF——实现Web数据基于语义的描述
2008-04-02 14:03
453 查看
XML+RDF——实现Web数据基于语义的描述 |
周竞涛 (zhoujtnet@yahoo.com.cn)西北工业大学CAD/CAM国家专业实验室 王明微 (wangmv@hotmail.com)西北工业大学CAD/CAM国家专业实验室 2003 年 3 月 01 日 本文介绍了XML结合RDF实现Web数据基于语义的描述。 今天,越来越多的Web应用需要通过交换数据来实现互操作。XML的出现使实现Web应用之间的语法互操作成为可能,而RDF则可以借助XML来实现Web应用之间的语义互操作。那么XML和RDF是如何来完成它们各自职能的呢? 引言——语义 语义到底是指什么?这是一个比较难回答的问题,就像有人问起Ontology到底指什么一样。如果读者已经对Semantic Web有一些了解的话,就会知道语义是一个正在改变我们所熟悉的Internet的一个关键元素,甚至是提高全球经济发展效率不可或缺的重要元素[1]。本文并不是要给出语义的一个精确解释,因为这确实很困难,尤其当这个概念被不同领域所引用的时候,它的含义往往存在着一些差异。讨论语义的目的是希望我们能够更好地理解XML和RDF到底在数据表示和交换中起到什么作用,更清楚地看到XML和RDF之间的区别,各自的优点和不足。我们可以将语义简单地看作是数据(符号)所代表的概念的含义,以及这些含义之间的关系,是对数据的抽象或者更高层次的逻辑表示。对于计算机领域来说,语义一般是指用户对于那些用来描述现实世界的计算机表示的解释,即用户用来联系计算机表示和现实世界的途径。或许这听起来还是不够通俗,让我们通过一个的例子来进一步说明语义的含义:以关系数据库为例,数据库中的数据可以简单的认为是存储在一张张表中,例如我们将学生的基本信息存入到一张"学生"表中。这时,对于表中的每一列数据所构成的集合,其所隐含的意思就是该列数据所要表达的对应的概念,这个概念往往体现为设计人员对该列数据对应的属性所给定的名称,例如"姓名"、"性别"等等。这些属性之间的关系就相当于数据对应的概念之间所存在的关系,它们都是学生这个实体的属性。数据库表中的属性和关系都可以看作数据的语义信息。当然,语义并不是这么简单,它代表的关系可能更为复杂,甚至超过E-R模型等数据库建模语言的表达范围。其实语义并不是引入到IT领域的新概念,数据库长期以来已经在用语义来区分模式和数据,并作为数据库建模、查询和事务管理技术的一部分,语义是保证数据管理系统达到可扩展性、高效性和健壮性要求的一个关键元素。
在了解了什么是语义之后,让我们来进一步讨论语法和语义在数据描述和交换中的作用。事实上,数据交换所要达到的真正目的是得到所交换数据所代表的含义,实现数据在含义上的交换,而不是单纯的数据本身的交换,这同人与人之间的信息交换类似。对于人类来说,我们可以通过相同的语言进行交互,交互双方以他们所共同遵守的语言组织规律(相当于语法)对所要表达的信息含义(相当于语义)进行组织才能使对方理解。人与人之间信息的传达并不需要非常严格的语法,即便是对方在语言表达上存在着一定的错误,我们仍然可能理解对方所要表达的意思。但对于计算机之间的信息交换来说,语法与语义缺一不可。数据正确的语法表达是保证计算机之间能够进行信息交换和处理的前提,而数据语义的描述则是数据可被计算机正确理解和推理的基础。 对于今天的大部分计算机应用来说,其所产生的信息并没有采用统一的语法描述格式,信息在语法描述上存在着千差万别,这就造成了信息表达上的语法异构;而对于信息所代表含义(即语义)的解释,则是以硬编码的方式写入到了应用中,这种所谓程序式语义(procedural semantics)[2]的信息语义建模方法,分离了信息的语义和信息的语法描述,将对信息的理解固化到了特定的代码逻辑中。因此程序式语义有很大的局限,既不具备扩展性也不具备通用性,难于维护和集成。与程序式语义的信息建模方法相反,声明式的语义建模方法[2]通过将数据的语义描述与特定应用逻辑的分离,将数据的语义描述纳入到数据层,将数据语义的解释留给了通用的形式化系统(例如一阶逻辑,描述逻辑,Datalog等推理系统),而与具体的数据和应用逻辑无关,具有非常好的适应性、可重用性。数据基于语义的描述就是以声明式的语义建模方法对数据的语义进行描述。通过实现数据的语义描述可以大大减轻应用处理数据的压力。
信息在语法描述上的差异,我们往往可以通过必要的数据格式转化来将信息转化为目标应用能够处理的语法格式。当然,更为理想的情况应该是所有的信息都采用同样的语法来描述,XML的出现使得不同类型的数据表示成同一格式成为了可能。XML已经成为了Web上数据表示和交换的事实标准,是应用之间或者机器之间共享数据的一种有效方式。XML及其相关技术的发展极大地促进了信息表达和交换过程中语法描述上的统一,越来越多的应用开始选用XML作为其数据、配置信息、消息以及服务的语法描述模式。迄今为止,XML已经成为了Web上最理想的数据表达方式。XML的可扩展性是XML区别其他标记语言的最基本特征。XML的核心在于以一种标准化的方式来建立数据表示的结构,而将具体标记的定义留给了用户。XML的可扩展性使XML可以满足各种不同领域数据描述的需要,并可以对计算机之间交换的任何数据进行编码。
当我们刚刚接触XML时,我们可能会因为XML的表现能力,可扩展性和光明的前景而激动不已,可是随之而来的问题是:两个用XML表示的消息或数据,如何才能实现交换?是不是我们只要采用了XML格式,二者的交换就万事大吉了?。XML除了给我们提供了一个可以被应用自动化读取的格式外,并不能进一步促进数据交换的自动化程度,我们还需要通过专用的程序来对XML数据进行解释,以获取目标应用能够处理的数据部分。注意,这里的解释并不同于对XML文档的解析。当然,对XML文档解释的前提是首先完成对XML文档的解析。尽管XML已经拥有了各种版本的解析器,但解析器的真正作用是一个XML的读取和处理器,并不是一个解释器。因此我们必须采用特定的应用程序来对XML的内容解释,很显然这些程序之间并不存在互换性和通用性。 尽管XML的灵活性使得用户可以快速、容易的描述任意的内容,但由于XML并不能解释它标记的含义,大多数处理应用要求这些标记集合能够满足某种标准或者双方的约定。XML允许用户通过XML模式来定义这些标记的集合。XML模式(诸如XML DTD和XML Schema等)为XML文档提供了一种约束机制,用来限定XML文档所用到的标记和这些标记之间的结构关系。XML模式为XML文档提供了一定的语义描述能力,然而XML模式的语义仍然是隐含的。XML模式的元素含义要么由用户根据元素的名称(通过自然语言描述)去推断,要么通过另外一个文档来描述,XML模式并不能对其所含有的语义进行任何解释。 为了实现XML文档的解释或者转换,用户必须将这些语义编码到工具中,而将数据的最终解释留给了特定的应用。不仅如此,由于XML模式只能对XML的语法合法性进行验证,而不能区分XML属性和元素在含义上的不同,因此对于同样的信息内容,我们可以将其映射为多种不同的XML结构。例如我们要说明某本书(Book)的作者(Author)是哪个作家(Name),可以得到例1中的多种XML Schema的定义。 例1 对于同一信息的多个XML Schema的定义
XML所存在的问题是因为XML不具备语义描述能力。为此,W3C推荐以RDF(resource Description Framework)标准来解决XML的语义局限。RDF提出了一个简单的模型用来表示任意类型的数据。这个数据类型由节点和节点之间带有标记的连接弧所组成。节点用来表示Web上的资源,弧用来表示这些资源的属性。因此,这个数据模型可以方便的描述对象(或者资源)以及它们之间关系。RDF的数据模型实质上是一种二元关系的表达,由于任何复杂的关系都可以分解为多个简单的二元关系,因此RDF的数据模型可以作为其他任何复杂关系模型的基础模型。 RDF和XML是互为补充的。首先,RDF希望以一种标准化,互操作的方式来规范XML的语义。XML文档可以通过简单的方式实现对RDF的引用。如例2所示。 例2 XML对RDF的引用示例
通过在XML中引用RDF,可以将XML的解析过程与解释过程相结合。也就是说,RDF可以帮助解析器在阅读XML的同时,获得XML所要表达的主题和对象,并可以根据它们的关系进行推理,从而做出基于语义的判断。XML的使用可以提高Web数据基于关键词检索的精度,而RDF与XML的结合则可以将Web数据基于关键词的检索更容易地推进到基于对象的检索。 其次,由于RDF是以一种建模的方式来描述数据语义的,这使得RDF可以不受具体语法表示的限制。但是RDF仍然需要一种合适的语法格式来实现RDF在Web上的应用。虽然RDF(模型)既可以用Notation3[3]来表示,也可以用XML来表示。但是,由于XML已经成为被广泛支持的Web数据表示标准,便于应用的读取,因此将RDF序列化为XML表示可以使RDF获得更好的应用可处理特性,并使得RDF数据可以像XML数据一样的容易使用、传输和存储。 因此,RDF是定制XML的良伴,而不只是对某个特定类型数据的规范表示[4],XML和RDF的结合,不仅可以实现数据基于语义的描述,也充分发挥了XML与RDF的各自优点,便于Web数据的检索和相关知识的发现。
与XML中的标记(tags)类似,RDF中的属性(properties)集也是没有任何限制的。也就是说我们既可以<rdf:Description about=http://www.w3.org/test><s:Creator>张三</s:Creator></rdf:Description>也可以用<rdf:Description about=http://www.w3.org/test1><s:Author>张三</s: Author ></rdf:Description> 来表示某个作品的创作者。这就是我们通常所说的同义词现象,即同一个概念可以以不同的词汇来描述。在实际应用中这个词汇并不一定要和词典中的词汇有一定的对应关系,例如英文语法中常见的缩写就属于此种情况。与同义词现象相对应的另一个问题就是一词多意,即同一个词汇在不同的应用背景下可以表示不同的意思。RDF的模型不具备解决这两个问题的能力,而RDF Schema虽然可以为RDF资源的的属性和类型提供词汇表,但是基于RDF的数据语义描述仍然可能存在语义冲突。为了消解语义冲突,我们在描述数据语义的时候可以通过引用Ontology的相关技术,对语义描述结果作进一步的约束。幸运的是,RDF(Schema)在提供了简单的机器可理解语义模型的同时,为领域化的Ontology语言(OIL(Ontology Interchange Language),OWL(Web Ontology Language))提供了建模基础,并使得基于RDF的应用可以方便地与这些Ontology语言所生成的Ontology进行合并。RDF的这一特性使得基于RDF的语义描述结果具备了可以和更多的领域知识进行交互的能力,也使基于XML和RDF的Web数据描述具备了良好的生命力。 参考资料 Amit Sheth, Robert Meersman. Amicalola Report: Database and Information Systems Research Challenges and Opportunities in Semantic Web and Enterprises. SIGMOD Record Special Issue on Semantic Web, Database Management and Information Systems, December 2002.充分讨论了Semantic Web的发展给多个领域所带来的机遇和挑战。 Stefan Decker, Sergey Melnik, Frank Van Harmelen, Dieter Fensel, Michel Klein, Jeen Broekstra, Michael Erdmann, and Ian Horrocks. The semantic web: The roles of xml and rdf. IEEE Expert, 15(3), October 2000. 该文论述了XML和RDF在Semantic Web中的不同角色和各自的作用。 SEAN B P. The Semantic Web: An Introduction [EB/OL]. http://infomesh.net/2001/swintro, 2001-09.对Semanitc Web的介绍。 Uche Ogbuji.Generate RDF using XSLT. http://www.ibm.com/developerworks/library/x-think4/ , July 1, 2001. 讨论如何从已有的XML 格式数据转化为RDF模型的描述,突出了RDF 可用作定制 XML 的搭挡,而不仅仅用作某些数据类型的规范表示的观点。 [tttt]Tim Berners-Lee. Why RDF model is different from the XML model. http://www.w3.org/DesignIssues/RDF-XML.html September 1998 主要从查询的角度来比较XML于RDF。 Graham Klyne. Information Modelling using RDF - Constructs for Modular Description of Complex Systems. citeseer.nj.nec.com/422203.html. 该文介绍了以RDF对复杂系统建模的一些实验性工作。 Uche Ogbuji. Thinking XML # 1: XML和语义:实际情况: 介绍了语义透明性的思想,讨论了XML 相关开发的重要性。 作者简介
|
相关文章推荐
- XML+RDF——实现Web数据基于语义的描述
- XML+RDF——实现Web数据基于语义的描述
- XML+RDF——实现Web数据基于语义的描述
- XML+RDF——实现Web数据基于语义的描述(转载)
- 使用ServletContext实现数据共享和获得web.xml中的参数
- 基于web的全景漫游自动生成加编辑平台的技术实现(三)----krpano主XML文件
- 基于web的龙芯开发板远程数据获取实现
- 基于XML的Web数据挖掘在数字图书馆中的应用
- 基于XML的WEB系统报表精确打印实现
- [续]基于XML的WEB系统报表精确打印实现
- 触发器+存储过程+程序集(CLR)+XML+Web service————实现数据同步
- Spark数据挖掘-基于 LSA 隐层语义分析理解APP描述信息(1)
- 基于 Web 的数据挖掘 (自动抽取用 HTML、XML 和 Java 编写的信息)
- 基于webmagic的java网页爬虫,抓取网页指定节点,然后使用dom4j分析xml数据
- Spark数据挖掘-基于 LSA 隐层语义分析理解APP描述信息(2)
- json和xml数据格式基于ajax的实现方式
- 基于 Web 的数据挖掘--自动抽取用 HTML、XML 和 Java 编写的信息
- 基于TMS320VC5409的嵌入式WEB数据服务器的实现
- ArcXML——基于INTERNET的空间数据描述语言
- JAVA WEB开发之基于xml配置文件的分页实现(一) 分页配置原理