
资源描述框架
资源描述框架(Resource Description Framework,RDF)是一个使用XML语法来表示的资料模型(Datamodel),用来描述Web资源的特性,及资源与资源之间的关係。
基本介绍
- 中文名:资源描述框架
- 外文名:Resource Description Framework
- 简称:rdf
- 领域:计算机
框架解释
RDF用于信息需要被应用程式处理而不是仅仅显示给人观看的场合。RDF提供了一种用于表达这一信息、并使其能在应用程式间交换而不丧失语义的通用框架。既然是通用框架,应用程式设计者可以利用现成的通用RDF解析器。
资源描述框架(Resource Description Framework,RDF)是一个使用XML语法来表示的资料模型(Data model),用来描述Web资源的特性,及资源与资源之间的关係。RDF是W3C在1999年2月22日所颁布的一个建议(Recommendation),制定的目的主要是为元数据在Web上的各种套用提供一个基础结构(Infrastructure)使应用程式之间能够在Web上交换元数据,以促进网路资源的自动化处理。RDF能够有各种不同的套用,例如在资源检索(Resource discovery)方面,能够提高搜寻引擎(Search engine)的检索準确率;在编目方面(Cata loging),能够描述网站、网页或电子出版物等网路资源的内容及内容之间的关係;而借着智慧型代理程式(Intelligent software agents),能够促进知识的分享与交换;套用在数字签章(Digital signatures)上,则是发展电子商务,建立一个可以信赖的网站(Weboftrust)的关键;其它的套用还可涉及到诸如内容分级(Contentrating)、智慧财产权(Intellectual property)、隐私权(Privacy policies)等。
资料模型
RDF资料模型是一种与语法无关(Syntax neutral)的表示法。如果两个RDF语法对应的资料模型相同,则代表这两个RDF语法具有同样的意义,反过来说,如果两个RDF语法具有同样的意义,则它们的资料模型应该相同。RDF的基本资料模型包括了三个对象类型(Object types):
- 资源(Resource):所有以RDF表示法来描述的东西都叫做资源,它可能是一个网站,可能是一个网页,可能只是网页中的某个部分,甚至是不存在于网路的东西,如纸本文献、器物、人等。在RDF中,资源是以统一资源标识(URI,Uniform Resource Indentifiers)来命名,统一资源定位器(URL,Uniform Resource Locators)、统一资源名称(URN,Uniform Resource Names)都是URI的子集。
- 属性(Properties):属性是用来描述资源的特定特徵或关係,每一个属性都有特定的意义,用来定义它的属性值(Value)和它所描述的资源形态,以及和其它属性的关係。RDF的(Property,Property value)在概念上和传统的(Attribute,Attribute value)是相同的。
- 陈述(Statements):特定的资源以一个被命名的属性与相应的属性值来描述,称为一个RDF陈述,其中资源是主词(Subject),属性是述词(Predicate),属性值则是受词(Object),陈述的受词除了可能是一个字元串,也可能是其它的资料形态或是一个资源。
语法特点
RDF资料模型只是一个抽象与概念的框架,要真的能够承载或交换元数据,需要通过具体的语法。RDF以XML作为编码与传输的语法,此外,RDF也需要透过XML的名称空间(Namespace)来指定宣告属性(Property)辞彙的纲要(Schema)。RDF规格提供了两种XML语法来对RDF资料模型进行编码,第一种称为序列语法(Serialization syntax),是以正规的方式来表达完整的RDF资料模型,第二种称为简略语法(Abbriviatedsyntax),是以较精简的方式来表达RDF资料模型的一部分,理想的状况是希望RDF解释器(Interpreter)能够支持这两种语法,让Metadata的作者能自由混合使用。
下面是RDF语法的一个实例,用序列语法表示如下:
<?xml version=“1.0”?> <RDF xmlns=http://www.w3.org/1999/02/22-rdf-syntax-ns#xmlna:DC=http://purl.org/metadata/dublin-core#> <Description about=http://www.dlib.org/dlib/may98/miller> <DC:title> An introduction to the Resource Description Framework </DC:title> <DC:creator> Eric Miller </DC:creator> <DC:date> 1998-0501 </DC:date> </Description> </RDF>
上面的写法第一行表示这是一段XML档案,第二行声明了RDF、DC两个名称空间(Namespace),其中RDF是预设的Namespace,在描述(Description)中所有的属性(Properties)都是来自这两个Namespace其中一个;RDF的主要部分写在Description这对标籤之中,这里以title、creator、date三个属性(properties)来描述一个资源(Resource),这个Resource的URI就是Description的属性about的值(http://www.dlib.org/dlib/may98/miller)。
这个例子如果以RDF简略语法来表示则为:
<?xml version=“1.0”?> <RDF xmlns=http://www.w3.org/1999/02/22-rdf-syntax-ns#xmlna:DC=http://purl.org/metadata/dublin-core#> <Description about=http://www.dlib.org/dlib/may98/miller> DC:title = “An introduction to the Resource Description Framework" DC:creator = "Eric Miller" DC:date = "1998-0501" </Description> </RDF>
上面的写法,其中描述(Description)是一个空元素(Emptyelement),因此在语法上要遵守XML空元素的表示法。比较一下RDF序列语法与简略语法,可以发现在序列语法中,属性(Title、creator、date)以Description的子元素(Subelement)来表示;而在简略语法中,属性(Title、creator、date)以Description的属性(Attributes)来表示。由于这两种表示法对应到相同的数据模型,所以这两种表示法是相等的,不过这两种表示法在浏览器中的呈现可能会不同。在序列语法中,Properties是以元素(Elements)来表示,因此Propertyvalue会被显示出来;而在简略语法中,由于Properties是以属性(Attributes)来表示,因此Propertyvalue不会被显示出来。
容器机制
我们除了描述单一的资源,有时也需要描述一群的资源,比如说,某个新闻组(Newsgroup)可能包含了许多成员,某本书可能许多个作者,某个软体可能有许多个下载地址。RDF容器(Container)就是用来包装或装载一群资源的机制,RDF定义了三种形态的容器:
- 封装(Bag):用来包装一群没有顺序性的资源。Bag通常用在一个属性(Property)有多个值(Value),而这几个值的先后顺序并不重要,例如通讯录可能包含了许多姓名。Bag所包含的值要在0个以上,也就是可以不包含值,也可以有多个重複的值。
- 顺序(Sequence):用来包装一群有顺序性的资源。Sequence通常用在一个Property有多个值,而这些值的先后顺序是重要的,例如一本书如果作者在一个以上,可能有必要区分出主要作者、次要作者。Sequence所包含的值要在0个以上,也就是可以不包含值,也可以有多个重複的值。
- 选择(Alternative):Alternative通常用在一个Property有多个值可以选择,例如某个软体可能提供许多个下载网址。Alternative所包含的值要在一个以上,而第一个值是预设值。
RDF纲要
RDF Schema的作用就象是一部辞典,宣布一组辞彙,也就是在RDF Statement中可以使用的Properties,并描述每个property的意义、特性,以及Propertyvalue的限制。RDF Schema可以是为了让人阅读的描述,也可以是机器可以处理的表示法,如果是后者,则应用程式便可以直接透过RDFSchema来了解每个Property的意义,并作自动化处理。机器可以处理的RDFSchema也是以RDF资料模型为基础,目前仍在发展之中,W3C在1999年3月3日发表了“Resource Description Framework(RDF) Schema Specification” Proposed Recommendation,在W3C所发表的档案中,Proposed Recommendation表示这还只是一份草案(draft),仍有可能修改或被其它的档案所取代。
重要特点
从上述对RDF一些基本概念的简要介绍可以看出RDF具有如下两个重要的特点。
独立性
RDF实际上是一种元数据模型,具有很大的独立性,它可以嵌入DC这种元数据,也可以嵌入别的类型的元数据。正是由于现实中有多种元数据形式并存,所以各种元数据之间的转换就成为不容迴避的问题。RDF就是为解决这一问题应运而生的一种工具,它所具备的独立性,使得各种元数据间的转换成为可能。概括地说,RDF可以协助跨越不同语言和增加语意互通性,可以增加DC与其它元数据的连结能力。
使用XML做为其描述语法
XML是从SGML衍生出来的简化格式,也是一种元语言(Meta-language),可以用来定义任何一种标记语言。XML屏弃了SGML过于複杂及不利于在Web上传送的选项功能,又弥补了HTML过于简单的不足,是目前最具发展前景的标记语言。RDF採用XML做为其描述语法,自然也就成为了一种可以携带多种元数据来往于网路上的框架工具。
好处
这里有一些可能的好处:
- 通过提供一个一致的框架,资源描述框架将会鼓励提供关于网际网路资源的元数据。
- 因为资源描述框架将会包含一个描述和查询数据的标準语法,使用元数据的软体可以更容易和快速的製造。
- 标準语法和查询能力将允许套用软体更容易地交换信息。
- 基于元数据而不是从正文得来的索引,搜寻者将得到更精确的搜寻结果。
- 聪明的软体代理人将会有比较精确的数据。