RSS的版本演变

RSS的版本演变

(河北大学管理学院2004级图书馆学研究生 071002)

    摘要:通过追溯RSS的历史演变,及对其多个版本之间的比较,提供对RSS技术的全面         认识。

    关键词:RSS RDF

    分类号:G202 TP393

Histoy of Rss and Version Comparison

Guo JunCheng

Library Science Of Management College in HeBei University 071002)

    Abstract:In order to give people a true rss,this paper introuduces the history              of Rss and lists the comparison of different version。

    Key word:RSS RDF

    Class code: G202 TP393

    不经意间,RSS的触角已经渗入了我们网络生活的每个角落。类似于 RSS 、 的链接标记在各主流媒体或门户网站上大行其道,尤其是在Webblog领域。但对于不搞技术的人来说,这些字母的英文原文和类似名词解释式的定义,根本不能让这些甚至连技术名词都难以理解的使用者明白。本文旨在介绍RSS技术的历史演变、不同版本比较,以澄清人们对RSS的认识。

1.     RSS版本的历史演变。

    RSS是一种用于共用新闻和其他Web內容的数据交换规范,目前普遍公认起源网景Netscape技术,將订户订阅的內容传送給他们的通讯协同格式(Protocol)。RSS通常被译为“简单信息聚合”,或“真正简单联合供稿系统”,也有人将其译为“真正简单的聚合”。它主要来自于“Really Simple Syndication”这个词组的首字母缩写。其实几个不同的技术团体对RSS有不同的解释,还可以是“Rich Site Summary”,或“RDF Site Summary”。造成概念如此混淆的原因来自于RSS的发展历史,下面列出的是RSS发展年记:

96.12 苹果公司的Ramanathan Guha提出了Meta Content Framework格式: “它用来代表元内容框架,是一种描述关于内容的信息的开放格式”。MCF被用于描述网站的结构,拥有包括Yahoo!在内的500个用户.当时Dave Winer就成了最早的拥趸。

97.2 Business Week 首创了Push――推送技术时代,但是当时互联网上的主要原因是当时互联网上的内容少得可怜,最终日渐衰微。

97.3 微软向W3C递交了其频道定义格式CDF(Channel Definition Format)。

97.7 Netscape也向W3C递交了其基于XML 的Meta Content Framework (MCF)的频道格式框架,该技术用来实现My Netscape Network服务,RSS(Site Summary format)在这时已经初见端倪。Ramanathan Guha在这个项目中也作出了卓越贡献。

97.8 W3C公布了第一份公共W3C RDF工作草案,灵感来源于MCF和PICS (Platform for Internet Content Selection)。后者旨在利用元数据标记来描述互联网内容,最初由家长和老师用来过滤孩童或学生访问互联网的内容,后来也应用到其他使用标记的领域,如代码设计和隐私保护。

97.12 Dave Winer在它的ScriptingNews中使用了一种比cdf轻便许多的数据格式。

99.3 以RSS0.9版本为基础的my.netscape.Com网站面世。该版本使用了RDF的语法和XMl的命名空间(namespace)。有趣的是Netcenter的营销人员将其称之为“语义丰富的RDF”的精简版本。RDF的作者之一,Dan Libby在一份非常象今天的RSS 1.0的前瞻性资料中表述了RSS的设计理念。

99.4 Dave Winer把ScriptingNews升级到2.0b1版本,并重申了与Netscape合作的意愿。这个版本剔除了正文信息而只留下了摘要或纲领,引发了大众对RSS的关注。

99.4  尽管“推送”技术的泡沫已经幻灭,但是信息聚合技术的拥趸们仍然坚持推出了即使是基于“poll then pull”的应用程序。

99.7 Netscape已经失去了在这种数据格式上发展的耐性,但仍在Userland和其他用户的呼吁下,推出了重新命名为“Rich Site Summary”的RSS0.91版本,这个版本中摒弃了命名空间,基于一个简单的DTD (Document Type Definition),沿袭了Userland的scriptingNews中的元素集。目前官方声明RSS0.91版本已经被RSS2.0版本替代,但是仍然占据主流用于基本的信息聚合,需要时可以轻松扩展到RSS2.0。

00.12 Userland发布了RSS0.92,它与RSS0.91兼容,只是增加了一些新的、可选择的、属性或元素集。

00.12 为了避免RSS被一个商业公司垄断,在O'Reilly的支持下的一个第三方的非商业组织RSS-DEV group发布了RSS 1.0,它象RSS0.9一样继承了RDF的语法,更加贴近Dan Libby 开发RDF的原始理念,重新在RSS中启用XML的命名空间,致力于模块化和可扩展性,主要适用基于RDF的应用或当用户需要使用更多RDF规范。而这显然没有和userland做好沟通,且RSS1.0与0.9x版本之间也没有什么继承关系。早在9月,Dave Winer就指责开发中的RSS1.0是在盗窃和干涉,并提出分化RSS这个名称。从此Dave Winer与RSS1.0之间争执不休。

01.4 RSS0.93的发布进入日程。

02.08 Dave Winer发布了的RSS2.0,通过模块化实现扩展、可从RSS0.9x版本轻松移植并且支持xml命名空间。该版本目前比较稳定,更多功能还在开发中。RSS2.0可以用于一般用途,也适用与多元数据的聚合。但是版本号的连续导致人们误认为2.0是1.0的改进版本,而实际上它们是两个目标完全不同的规范。于是一些RDF社区的成员开始讽刺性的提出所谓的RSS3.0版本。

2003年6月 鉴于RSS混乱不堪的家族谱系带来的弊端,由IBM的工程师SamRuby提出了ATOM。ATOM的初衷是建立适用于信息聚合和Weblog,这是一个标榜完全卖主中立、人人可实现、人人可扩展、语义明确详实的新数据格式。

2004年2月 Google宣布旗下的Blogger.com服务放弃RSS格式而选择了Atom,给混乱不堪的RSS阵营带来外部冲击。

2004年3月  Dave Winer宣布:IETF正在努力协调三个技术阵营之间(RSS0.9x系列、RSS1.0、atom)的关系,希望能最终将三者合而为一,做成一份真正的国际化标准。

对于RSS的名分之争, Dave Winner后来有一段妙论:“There is no consensus on what RSS stands for,so it’s not an acronym, it’s a name. Later versions of this spec may say it’s an acronym, and hopefully this won’t break into too many applications”。意思就是说“RSS”本身就是一个名称,区分它是哪个缩写没有意义。但是RSS目前有7个之多的版本给开发人员带来了很大的困扰却是不争的事实。因为你必须提供至少两个版本的RSS 种子(feed)给用户,分别兼容RSS1.0和RSS2.0规范。具体的方法有两种:直接产生两个版本的RSS;或生成一个XML源,然后使用XSL/XSLT转换成RSS1.0/RSS2.0格式。这些都加倍了开发的成本。

2.     RSS的版本比较      

2.1不同版本的RSS文件的结构的比较  

下面将分别列出RSS0.91、RSS1.0、RSS2.0版本的典型RSS文件来说明之间结构的区别,这三个范例文件都用来描述同样的内容,为了突出结构上的差异忽略了实际的内容,至列出文件的结构框架。

RSS0.91的典型文件结构如下:

<rss version="0.91">
        <channel>
            <title></title>
            <link></link>
            <description></description>
            <language>en-us</language>
            <item>
                <title></title>
                <link></link>
                <description></description>
            </item>

        <item>
                <title></title>
                <link></link>
                <description></description>
            </item>
        </channel>
    </rss>

至简至易,也许就是RSS 0.91可以游刃于各种网站的原因所在。每一个RSS0.91种子(feed)文件都有名称(title)、链接(link)、摘要(description),语言种类(language)是可选的项;接下来就是一系列的款目(item),每一个款目都有名称(title)、链接(link)、摘要(description)等内容。这些也是后来各个版本必备的元素。RSS1.0的典型文件结构如下:

    <rdf:RDF
      xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
      xmlns="http://purl.org/rss/1.0/"
      xmlns:dc=http://purl.org/dc/elements/1.1/ >
    <channel rdf:about=channel link>
        <title></title>
        <link></link>
        <description></description>
        <language></language>
        <items>
            <rdf:Seq>
                <rdf:li rdf:resource=item1 link />
                <rdf:li rdf:resource=item2 link />

                </rdf:Seq>
        </items>
    </channel>
    <item rdf:about= item1 link >
        <title></title>
        <link></link>
        <description></description>
        <dc:creator></dc:creator>
        <dc:date></dc:date>    
    </item>
    <item rdf:about= item2 link >
        <title></title>
        <link></link>
        <description></description>
        <dc:creator></dc:creator>
        <dc:date></dc:date>    
    </item>
    </rdf:RDF>

    RSS发展到这个版本就略现冗长繁琐。标引同样的内容,RSS1.0版本就比RSS0.91版本更加详细,包含了更多的相关信息:

    (一):RSS1.0中每个款目(item)中都包括了作者元素和发布的日期元素。

    (二):RSS0.91种子文件的根元素是Rss ,而RSS1.0版本是rdf:RDF。

    (三):在RSS1.0版本中广泛的使用了命名空间(namespace)以便引入RDF和都柏林        核心集(Dublin Core)中的元素。

            RSS1.0的默认命名空间是http://purl.org/rss/1.0/;

            RDF框架的命名空间是http://www.w3.org/1999/02/22-rdf-syntax-ns#;

            都柏林核心集的命名空间是http://purl.org/dc/elements/1.1/。

    (四): RSS1.0版本与RSS0.9X系列的另一个区别是频道(channel)元素和款目(item)     元素的关系。在0.9X系列中所有Item元素都是被整个包括在Channel元素中的;       而在1.0版本中Item元素和Channel元素是属于同一级别的Xml文件节点,

        只是在Channel元素中存放了一个Item集合的索引。

    同样由Userland开发的RSS2.0版本与RSS0.9X版本保持了兼容,文件结构如下:

    <rss version="2.0" xmlns:dc="http://purl.org/dc/elements/1.1/">
    <channel>
        <title></title>
        <link></link>
        <description></description>
        <language></language>
        <item>
            <title></title>
           <link></link>
            <description></description>
            <dc:creator></dc:creator>
            <dc:date>/dc:date>    
        </item>
        <item>
            <title></title>
            <link></link>
            <description></description>
            <dc:creator></dc:creator>
            <dc:date></dc:date>    
        </item>

    </channel>
    </rss>

    如上述文件所示,RSS2.0版本也使用了命名空间(namespace),与RSS1.0版本不同的是RSS2.0的命名空间不是来自因繁重复杂而遭人诟病的RDF,而是都柏林核心集(Dublin Core).其他方面则与Userland系列的RSS保持了充分的兼容。

    2.2不同版本的RSS的在元素集方面的详尽比较列表如下:

特性

0.90

1.0

0.91

0.92

2.0

File Header

DOCTYPE

N

N

R

N

N

RDF xmlns="http://my.netscape.com/RDF/simple/0.9/"

R

N

N

N

N

RDF xmlns="http://purl.org/RSS/1.0/

N

R

N

N

N

RSS <RSS version="{version number}">

N

N

R

R

R

XML <?xml version="1.0"?>

R

R

R

R

R

XML <?xml version="1.0" encoding="{character set name}"?>

N

R

R

R

R

Channel

elements

<Category>

N

N

N

O

O

<cloud>

N

N

N

O

O

<image>

 O

O

O

O

O

<title><url><link>

R

R

R

R

R

<description><width><height>

N

N

N

O

O

<textinput>

O

O

O

O

O

<title><description><link><name>

R

R

R

R

R

Channel

<channel>

R

R

R

R

R

<title><description><link>

R

R

R

R

R

<language>

N

N

R

O

O

<copyright><docs><lastBuildDate>

<managingEditor><pubDate><rating>

<skipHours><skipDays>

N

N

O

O

O

<generator><ttl>

N

N

N

O

O

Item

elements

<Category>

  domain attribute

N

N

N

O

O

<enclosure>

N

N

N

O

O

url attribute;length attribute;type attribute

N

N

N

R

R

<guid>

isPermaLink attribute

N

N

N

N

O

<source>

N

N

O

O

O

url attribute

N

N

N

R

R

Item

<item>

R

R

R

R

R

  <title>

R

R

R

O

R

  <description>

N

O

O

O

R

  <link>

R

R

R

O

O

<author><comments><pubDate>

N

N

N

N

O

    注:N表示不支持;R表示需;O 表示可选;O表示不再需要。Item中的R表示至少一个元素应该被表示。

   

    综上所述网络上方兴未艾的RSS技术并不是一个新生的事物,只是在当前网络信息资源空前繁荣、人们在网络中检索和利用的环境下获得新生的一种元数据描述框架,且目前还没有形成一种国际标准,再加上不断发展的过程中有过多的机构和个人对其施加影响,所以RSS的本来面目反而迷失。通过本文的努力希望能够给相关的机构和研究人员提供一个真实、清楚RSS的介绍,便利基于RSS的基础研究和应用开发的进行。

参考文献

1.http://zh.wikipedia.org/wiki/RSS

2.http://blogs.law.harvard.edu/tech/RSS

3.http://www.yesky.com/SoftChannel/72347873731149824/20040918/1855649_2.shtml

4.http://blogs.law.harvard.edu/tech/RSS

5.http://goatee.net/2003/RSS-history.html

6.http://www.opikanoba.org/xml/040315/

7.http://blogs.law.harvard.edu/tech/RSS#sampleFiles

8.http://RSS-net.sourceforge.net/documents/version_comparison.html 9.http://www.guha.com/cv.html

10.http://www.w3.org/PICS/

11.http://www.blogchina.com

 

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 2
    评论
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值