Alpha 阶段进度报告 4——RSS


作者:郑凯

接 [url=[archive=7]]报告 1[/url] 所说的,今天开始研究 RSS 部分,以前看到过一个 google 的什么的 XML 的格式,给了个 dtd,打开之后眼花缭乱当场晕厥……那玩意太不直观了,除非有工具,否则但凭脑力不可能想象出这个树到底是什么形状的,不过这个 rdf 已经已经有现成的例子了,直接看一下即可,就看了三个,[url=http://www.chedong.com/]车东[/url]、[url=http://hedong.3322.org/]竹笋炒肉[/url] 和 [url=http://keso.donews.net/keso/]洪波[/url],这也是我最常去的的三个 blog,前两个是用的 MT,donews.net 的是 aspx,不了解,可能是自己写的吧,下载其 rdf,两种头部的声明差别很大。

这是 MT 的:

[quote]
<?xml version="1.0" encoding="gb2312"?>(这是竹笋炒肉的,车东用的 UTF-8)

<rdf:RDF
xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
xmlns:dc="http://purl.org/dc/elements/1.1/"
xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
xmlns:admin="http://webns.net/mvcb/"
xmlns:cc="http://web.resource.org/cc/"
xmlns="http://purl.org/rss/1.0/">
[/quote]

这是 donews 的:

[quote]
<rss version="2.0"
xmlns:dc="http://purl.org/dc/elements/1.1/"
xmlns:trackback="http://madskills.com/public/xml/rss/module/trackback/"
xmlns:wfw="http://wellformedweb.org/CommentAPI/"
xmlns:slash="http://purl.org/rss/1.0/modules/slash/">
[/quote]

从字面上看,MT 是 RSS 1.0,donews 是 2.0,看来 2.0 革命的比较彻底,连几乎在所有 XML 里都能看到的“http://www.w3.org/1999”都没有了,再从上面提供的这些网址找下去,得到如下结果

两种 RSS 都有的地址是 http://purl.org/dc/elements/1.1/,顺着就去了
[url=http://dublincore.org/documents/dces/]Dublin Core Metadata Element Set v1.1 Reference Description[/url]
原来所有的 :dc 都是指 Dublin Core 定义的 Element

再看 mlns:trackback="http://madskills.com/public/xml/rss/module/trackback/",看到这么一句话:“The RSS TrackBack module builds off of the TrackBack system originally developed by the MovableType personal publishing system.”,原来是 MT 的首创,当然去其老家找最好了,于是发现了这个:
[url=http://www.movabletype.org/docs/mttrackback.html]TrackBack Technical Specification[/url],有这两个文档应该足够了,现在写去

另,用 RssReader 看这几个 blog 的 properties,language 都写着 unknown,看来还是不够标准,落了点东西。

[hr]

已经开始迷惑了,本来 RSS 的官方地址应该是 [url=http://purl.org/rss/1.0/]RDF Site Summary (RSS) 1.0[/url],是 RDF Site Summary 的缩写,结果又在[url=http://www.xml.com/pub/a/2002/12/18/dive-into-xml.html?page=2]XML.com 搜索到一篇名叫《What is RSS》[Dec. 18, 2002][/url]的帖子里看到在介绍了 RSS 的 n 个版本之后给出的链接里有这些:
[quote]
Specifications: [url=http://www.purplepages.ie/RSS/netscape/rss0.90.html]RSS 0.90[/url], [url=http://backend.userland.com/rss091]RSS 0.91[/url], [url=http://purl.org/rss/1.0/]RSS 1.0[/url], [url=http://backend.userland.com/rss]RSS 2.0[/url].
[/quote]

于是去了 2.0 的网页,看起来做的比之前见到的任何一个手册的网页都要好看些,结果里面一开始就写着:“RSS is a Web content syndication format. Its name is an acronym for [b]R[/b]eally [b]S[/b]imple [b]S[/b]yndication.”faint,到底谁是正宗?

转了半天在之前提到的《What is RSS》的第一页看到了这个:

[quote]
[b]A brief history[/b]

But coders beware. The name "RSS" is an umbrella term for a format that spans several different versions of at least two different (but parallel) formats. The original RSS, version 0.90, was designed by Netscape as a format for building portals of headlines to mainstream news sites. It was deemed overly complex for its goals; a simpler version, 0.91, was proposed and subsequently dropped when Netscape lost interest in the portal-making business. But 0.91 was picked up by another vendor, UserLand Software, which intended to use it as the basis of its weblogging products and other web-based writing software.

In the meantime, a third, non-commercial group split off and designed a new format based on what they perceived as the original guiding principles of RSS 0.90 (before it got simplified into 0.91). This format, which is based on RDF, is called RSS 1.0. But UserLand was not involved in designing this new format, and, as an advocate of simplifying 0.90, it was not happy when RSS 1.0 was announced. Instead of accepting RSS 1.0, UserLand continued to evolve the 0.9x branch, through versions 0.92, 0.93, 0.94, and finally 2.0.

What a mess.
[/quote]

在 w3c 发布的[url=http://www.w3.org/TR/2002/WD-rdf-primer-20020319/]《RDF Primer》[/url]里关于 RSS 1.0 的介绍里有这些:

[quote]
Care should be taken when discussing "RSS" in the scope of RDF. There are currently two RSS specification strands. One strand (RSS 0.91,0.92,0.93,0.94 and 2.0) does not use RDF. The other strand (RSS 0.9 and 1.0) does.
[/quote]

最后在 [url]http://www.cnblog.org/wiki/?p=rss[/url] 找到了像样的中文介绍(原作者可能是 [url=http://www.isaacmao.com/]Isaac[/url],因为给出的出处 URL 已经失效了,在其历史记录里看到主要是 Isaac 在修改):

[quote]
讨论与Blog相关的技术,不可不谈的就是RSS,这个缩写在英文中可以有几个源头,并被不同的技术团体做不同的解释。既可以是“Rich Site Summary”,或“RDF Site Summary”,也可以是“Really Simple Syndication”。为什么有这么多含义呢?这还要从RSS的一段今天也没有理清的关系说起。

今天肯定有人还记得IE 4刚刚推出来的时候有一个有趣的功能,那就是新闻频道。这个新闻频道的功能与Netscape推出的新闻频道是很相似的(当时Netscape还是市场上领先的浏览器)。为此Netscape 定义了一套描述新闻频道的语言,这就是RSS,只不过Netscape自当时起每况愈下,所以最终也没有发布一个正式的RSS规范(只发布了一个0.9版本)。而微软也在当时推出了支持自己IE的CDF(Channel Definition Format)数据规格,与RSS非常接近。微软试图用新闻频道的功能把“推”(Push)技术变成一个应用主流,并与Netscape抗衡。不过出乎预测的是,“推”技术自始至终没有找到合适的商业模型,而且伴随着其他各类网络特性的出现,也日益无法显现自身的优势。新闻频道在浏览器中的地位最终日暮西山,最后也在IE的后续版本中消失了。

新闻频道的确进入了低谷,但是RSS并没有被业界人士所抛弃。过去两年,Blog从一个专业群体开始,逐步成为了网络上最热门的新话题。而RSS成为了描述Blog主题和更新信息的最基本方法。于是RSS这项技术被著名Blogger/Geek戴夫·温那(Dave Winner)的公司UserLand所接手,继续开发新的版本,以适应新的网络应用需要。新的网络应用就是Blog,因为戴夫·温那的努力,RSS升级到了0.91版,然后达到了0.92版,随后在各种Blog工具中得到了应用,并被众多的专业新闻站点所支持。在广泛的应用过程中,众多的专业人士认识到需要组织起来,把RSS发展成为一个通用的规范,并进一步标准化。一个联合小组根据W3C新一代的语义网技术RDF对RSS进行了重新定义,发布了RSS 1.0,并把RSS定义为“RDF Site Summary”。这项工作并没有与戴夫·温那进行有效的沟通,而戴夫则坚持在自己设想的方向上进一步开发RSS的后续版本,也并不承认RSS 1.0的有效性。RSS由此开始分化形成了RSS 0.9x/2.0和RSS 1.0两个阵营,也由此引起了在专业人群中的广泛争论。

因为争论的存在,一直到今天,RSS 1.0还没有成为标准化组织的真正标准。而戴夫·温那却在2002年9月独自把RSS升级到了2.0版本,其中的定义完全是全新的模式,并没有任何RSS 1.0的影子。这引发了网络上进一步争议,究竟让一个越来越普及的数据格式成为一个开放的标准,还是被一家公司所定义和控制,成为了争议的焦点。戴夫·温那并没有为自己辩解,他的观点是RSS还需要进一步发展,需要专业人士更明确的定义,不过恐怕这种轻描淡写不能消除人们对RSS“被一家商业公司独占”的担心。
[/quote]

不过在我看来 1.0 要比 2.0 强,有这么几个理由:

1.这两个的网 PageRank 站一个 9 分一个 8 分
2.其他内容没大多看,不过在时间上,一个是支持[url=http://www.w3.org/TR/NOTE-datetime]w3 推荐的时间格式[/url],一个是莫名其妙的[url=http://asg.web.cmu.edu/rfc/rfc822.html]RFC 822[/url]
3.MT 在用的是 1.0 :)

不过还看到有些网站是同时提供两种标准

一个挺简单的事结果扯出了这么多标准,哎……