当前位置:首页 » 业界资讯 » 网络评论

到底什么是RSS频道呢?

...

原文作者:Mark Nottingham 译者:yii

一,开始

虽然很多人争议它的历史,但多数人还是都能认同rss是出于实际目的而出现的,就像其他各种良好的格式一样。rss的0.91规格一开始就声称“所有档案都要达到100 % 有效的xml格式 " ,并且它做的也并不差。一开始只是做为头条新闻的聚合的应用的它逐渐发展和完善了有关的格式。

什么是聚合呢?词典上这样说:“通过一个集团,把(一本漫画带或专栏之类的)同时出售给报纸或期刊。”

rss社区一开始就声称RSS做的是“聚合(syndication)” (如, "真正简单的聚合" ) ,因为它是全是以散发内容为主要应用。然而,rss聚合通常不会有收益,它不仅是为了再版;另外,一些专门的客户则称聚合将内容直接面向最终用户,使他们能按他们的意愿混合匹配各种频道。

用rss来做头条新闻的聚合,我们看到的是直截了当的内容;而一个频道则是是以按近期到远期的时间顺序整理链接列表新闻的链接,每个连接都显示为标题或者有时是一个内容的描述。这是大多数rss开发者和用户都铭记的这个时代的一个有用的模型。

但是,一些人很快就注意到,那些rss提供的链接内容容易扩展到其他东西上面;事实上,几乎任何东西都能作为一个元素加入到rss连接里。

这种元数据摘要的观点将rss频道当成一个能装各种能够成为列表的东西的货柜——从市场数据到MP3播放列表到行程日历甚至到系统。模块化的rss1.0使得rss技术能使用在各种情境下,从华尔街到开放源码软件的分发。

另一方面,博客们却一直在使用着rss做些完全不同的东西——内容上的联合。他们在另一端再生产内容而不是简单地应用rss频道上的链接,这样,新出现的网络资源就能被复制到整个聚合器里或者其他网页上。

所有这些对rss应用的观点说起来,就是利用频道将各种项目集合在一起成为一个组。然而,他们之中没有人真正回答rss频道到底是什么。换句话来说,尽管项目(items)这东西很容易理解(经鉴定的与它们有联系的数据),项目和频道里的内容的关系却没有得到充分的讨论。

翻开频道

rss最引以为豪的东西是它的频道(译注:channel,或译为渠道)。这是一个信息理论里的词,字典里的定义为:通过某种方向或途径的信息传输。这强调了信息不断变化的性质;它的流动、更新。

另一种经常对rss频道使用的词语是种子(译注:feed,或译为饲料), 这一定义强化了这个:通过卫星,网际网路,或广播网站的给当地一家电台或电视节目的发送或传送(译注:即是喂养它们)。

把rss频道当成一个不断生产供应的东西是很有趣的,有下面几个原因:

1.许多rss聚合器会保存频道里的历史内容并且随着时间的推移增加内容,建立完整的输出的内容。

2.有些人会还记得去年用户看到的内容快照,所以他们能够知道有些什么事发生了。

从更根本上说,像表象化状态转变(译注:英文:Representational State Transfer,简称REST,是Roy Fielding博士在2000年他的博士论文中提出来的一种软件架构风格)所解释的那样,rss的定义需要不断变化调整。根据表象化状态转变 (REST),一个网站体现为三个组成部分——标识符(URLs) ,协议(例如,http)和格式(例如,HTML;RSS)

格式代表一种资源的状态(被URL确定的)在一个快照里(称为一个representation)通过协议送出的东西。 但rss往往是一个局部快照;它通过种子(feed)描述了最近的少数项目,而不是完整的按日期出现的内容。虽然其他格式并不总是给出完整的资源内容(想想CNN的html主页;它将最新的最新消息显示给你,而不是他们报道过的所有东西),但rss仍给了我们一个能做到这些的期盼;随着时间的推移重建内 容,建立起新的rss特质和应用。 其中一些东西已在使用中(如上所述),但它们是在一个特设的基础上放在一起。

对一个频道概念的的明确界定将允许rss超越单纯的头条新闻聚合;聚合器可以更智能决定如何展示种子,以建立更多的内容——从我的Netflix队列,到 我的亚马逊购物购物车,以及个人的待办事项列表。就像博客将rss从头条新闻聚合方式改变为他们想要的展示方式,我们也可以找到自己对rss的新的应用。 相反,如果我们明确地说出种子现在还隐藏的功能(从反向顺序排序上想想),我们就能够为现有的标准建立新的应用以及新的功能。

采集收藏品

那么,频道的定义又是什么呢,我们怎样在这个定义里加上所有的特殊的功能呢?

有一阵子,我想将一个rss种子作为一个列表——通过某种关系暗示的顺序的一列项目。 然后,我意识到——从别人那里得到的启示——这未必是一个序列;有时候,一个频道,只是个没有一个隐含的命令blob。例如,你可能想用一个rss频道, 去时时关注一组软件包(IIRC, RedHat就是这样用rss的;嗯,有谁可以提供一个链接?) 。

想到更多的一点,我相信下面的话有些意义:

  1. * 一个rss频道是一个装任意一些东西的集装箱,这意味着它们有着相同的潜在元数据签名。例如,如果你有一个和,可能他们都有,即使有些可能会忘记。
  2. * 集装箱中包含着一些关系,它是由上下的货柜决定的。如果这个频道是一个“鲍勃喜爱的书签”,这影响物品的意义;同时,将其中的一些项目拿出来,并贴到“玛丽最近的浏览器的历史记录”时,该项目的性质就发生变化。
  3. * 该集装箱里可能包含一些隐含的或者没有顺序的项目。
  4. *该集装箱形成一些可能随时改变的收藏项目,可能会增加,改变,被取而代之,或者删除。
  5. * 一个rss文件也可能是一些特定的时间里,作为完全或部分收藏品快照出现。

如果上面的成立的话,我们可以将一些频道打扮成包含特别的内容的频道。在我看来,他们可以是:

  1. * 项目签字 -什么数据是一个典型项目频道该拥有的?我认为是选择性和有信息性的,而不是限制性的。
  2. * 频道背景——频道本身是什么性质的呢?它是怎样组成它的项目内容呢?就目前而言,频道的,和应该回答这两个问题。
  3. * 有序——有序的项目指的是什么?它是按字母顺序,时间顺序排列吗(如果是的话,它的最新补充,修改日期等怎么办呢?) ?
  4. * 组合——如果这两个项目在频道里有同样的标识,它们会怎么样呢?是一个取代另一个还是结合起来呢?
  5. * 范围——RSS/XML是否代表代表整个频道的收集,抑或只是一部分呢?

继续阅读
企业不愿使用RSS的5个原因
发表评论

昵称:
最新评论
暂时没有评论!