2005/11/01 | 关于BLOG与RSS的全面介绍
类别(计算机) | 评论(0) | 阅读(32) | 发表于 20:34
这个问题的答案要看你问的是谁,rss 的版本有好多个,0.90、0.91、0.92、0.93、0.94、1.0 和 2.0。要弄清楚这些版本之间的差别是巨大的挑战之一。理解它们需要了解一些有关它们的历史背景。netscape 创建了 rss 的最初版本 0.90,起初的名字是“rdf site summary”或者“rich site summary”(规范中说前者是正式名称)。netscape 创建 rss 0.90 用于其 web 门户,这个时候,其他人看到了 rss 的使用潜力。userland software 是第一个开始将 rss 用于其网志商业产品者之一。
  版本 0.90 在很大程度上基于 w3c 的 resource description framework (rdf)。许多人都认为 rdf 过于复杂,虼硕冀ㄒ槌鲆桓雒夥训募蚧姹?0.91。这个任务恰好就给了 userland software。userland software 便继续发展 rss 的简化版本,随后出台的版本包括:0.92、0.93 和 0.94。为了强调其所做的简化工作,他们将 rss 的全称定为“really simple syndication”。
  正当 userland software 继续专注于其简化工作时,另外一组开发人员在复兴最初的 rdf 版本(0.90),因为 rss 号称自己更灵活。他们最终发布了一个 rss 1.0 的版本,其正式名称还是“rdf site summary”。由于使用 rdf,这个版本完全不同于 userland software 所控制的版本。userland software 当然不太愿意看到 rss 1.0 似乎要取代其 0.94 版本的事实,于是出了一个新版本,并将版本号一下子跳到了 2.0。
  这就是今天的这种局面,形成了两个主要的竞争版本:一个基于 rdf 1.0,而另一个则不是(2.0),但它们两个都共用相同的名字。这是一种可怕的混乱,因为版本号导致人们误认为 2.0 是 1.0 的改进版本,而实际上它们是两个目标完全不同的规范。另一组开发人员已经下狠心着手解决这种混乱问题,通过定义新的摘要(syndication)规范来与 rss 名字的随意性决裂。这个解决方案称为 atom(原子)项目。本文稍后将会详细讨论。
  使用哪个版本其实是无关痛痒的,大多数 rss 聚合机制支持所有的 rss 版本(有些甚至支持 atom)。最终的决定取决于你是否想使用 rdf,可谓萝卜白菜,各有所爱,它完全要看某人所信奉的 semantic web 概念而定。

rss 1.0 和 rss 2.0 各是什么样子?

rss 1.0 和 2.0 格式所包含的核心信息相同,但其结构不一样。我提供了一个 rss 1.0 文档(参见 figure 1)以及一个同等的 rss 2.0(参见 figure 2)用于对照。
你会注意到顶行右边开始的根元素的差异,rss 1.0 的根元素是 rdf:rdf,而 rss 2.0 的根元素是 rss。rss 还包含一个强制版本属性用以表示所用的rss的准确格式(可能的值包括:0.91, 0.94 等)。另一个主要差别是 rss 1.0 文档有名字空间限定,rss 2.0 的文档就没有。不管怎样,包含在两个文档中的信息本质上是一样的。
  两个版本都包含 channel 元素,而 channel 元素又包含三个必须的元素:title、description 和 link,其代码如
  除了这些必须的元素外,rss 1.0 还定义了三个附加元素:image、items 和 textinput,其中,image 和 textinput 是可选的。另一方面,rss 2.0 提供了 16 个附加元素,其中也包括 image、items 和 textinput,此外还有 language、copyright、managingeditor、pubdate 和 category。rss 1.0 允许通过定义在单独的 xml 名字空间中的可扩展元素来创建这种类型的元数据。
  这两种格式在结构上的主要区别必须要看其 item、image 和 textinput 节点的表示形式。rss 1.0 中,channel 元素包含对 item、image 和 textinput 节点的引用,这些节点存在于 channel 节点本身之外。这样在 channel 和 所引用的节点之间建立了一种 rdf 关联。如 figure 1 所示,channel 元素与一个 image 元素以及两个 item 元素关联。rss 2.0 中,item 元素只是在 channel 元素中连续排放(如 figure 2 所示)。item 元素包含实际的新闻项信息。item 的结构在两个版本中是相同的。item 元素通常包含 title、link 和 description 元素


  在 rss 1.0 中,title 和 link 是必须的,description 是可选的。而在 rss 2.0 中,title 或 description 必须提供其中的一个;其它均可选。这些只是定义在 rss 1.0 中的 item 元素。rss 2.0 提供几个其它可选元素,其中有 author、category、comments、enclosure、guid、pubdate 和 source。rss 1.0 获取这样的元数据是通过定义在单独的 xml 名字空间中称为 rss 模块的可扩展元素来实现的。例如,在 figure 1 中,item 的日期是用 dublic core 模块的 元素表示的。

有关不同格式的完整信息请参考 rss 1.0 和 2.0 规范。

那么,何为 atom?

前面我提到过,atom 乃一项目的名字,主要是开发一个新的网志摘要格式以解决目前 rss 存在的问题(混乱的版本号,不是一个真正的开放标准,表示方法的不一致,定义贫乏等等)。atom 希望提供一个清晰的版本以解决每个人的需要,其设计完全不依赖于供货商,任何人都可以对之进行自由扩展,完整详细说明。
  当今许多 blog 引擎已经支持当前的摘要格式。figure 3 是一个atom 0.3 提要例子,它与前述 figure 1 及 figure 2 rss 提要等同。注意 atom 提要用名字空间限定的,但它不使用 rdf。这使得 atom 和 rss 1.0 及 rss 2.0 在某些地方有相似之处。atom 在未来是否能被接受,人们拭目以待。
  除了定义新的摘要格式之外,atom 还希望定义一个标准的档案文件格式和一个标准的网志编辑 api(atom api)。有关 atom 详细规范以及其它 atom 资源请访问 the atom project。

什么是 blogroll?

blogroll 是网志提要的集合,大多数 blogger(博客)在其个人网志上都提供 blogroll。这就允许读者连接到其他趣味和写作风格相投的人的网志上。blogroll 方便了网络上的沟通。通过使用outline processor markup language (opml),人们可以用 xml 格式文件交换 blogroll。figure 4 是 blogroll 的一个例子。
  大多数网志引擎都自己管理 blogroll,每当读者请求 blogroll 时都自己产生相应的 xml 格式。同样,大多数聚合器都能导入 blogroll 并自动预定所包含的摘要。有关 opml 更多的信息参见 opml.scripting.com

能解释 referrers、trackbacks 和 pingbacks 是什么吗?

大多数网志软件都能让读者添加网志评论。但更常见的做法是让读者在其自己的网志添加一个入口回链到原来的帖子。博客们(bloggers)都乐于跟踪连接发生的时间以便新读者能理解整个会话内容。
  所谓 referrer 是一个外部站点,用户单击该站点上一个超链接便可以到达你的网站。许多网志引擎当读者导航到你的网志的某个入口时都能自动保持跟踪。大多数引擎都会在网志入口底部显示一个 referrers 清单,以便读者能往回导航到 referrer 的站点,并清楚他们关于该入口要说些什么,这基于一个假设,那就是如果他们链接到它,可能就此会写些什么。referrer 存在的问题是必须要有这个假设才成立——没有足够的信息说明是否引用的页面事实上包含有关信息。实际上,垃圾信息的发布者为了营销企图已经利用了这个漏洞来重定向读者。
  trackback 和 pingback 同一个规范,被用来弥补上述问题的方案。使用 trackback 和 pingback,其他博客们能自动发送一个 ping 到你的网志以明确表示他们已经写了一个引用特定帖子的入口。
  这种类型的反链允许你的网志以更明显的方式显示所有评论的清单。当今大多数网志软件支持所有这些技术。参见 trackback technical specification 和 pingback 1.0。
0

评论Comments

日志分类
首页[278]
思想[40]
计算机[56]
视觉[59]
触觉[56]
会计[7]
网络资源[18]
采集[22]
情感[12]
游戏外挂[6]
赤裸HUMOUR[2]