屏幕抓取通常被认为是一个不雅的解决方案,这是有一定的原因的。它有两个主要的固有缺点。第一个缺点在于,与使用接口的 API 不同,抓取在内容提供者和内容消费者之间没有明确的联系。抓取者必须围绕一个源内容模型设计自己的工具,并且希望提供者一直采用这种模型来呈现内容。Web 站点倾向于周期性地更新外观,以保持新奇和时髦,对于抓取者来说,这是一项非常头痛的维护任务,因为工具很可能会失效。
第二个问题是缺少成熟的可重用屏幕抓取工具包软件,通俗地说就称为 scrAPI。此类 API 和工具包的消亡很大程度上是由于每种抓取工具都有极为特定于应用程序的需求。这为开发人员带来了过多的开发工作,他们必须对内容进行反向工程处理、开发数据模型、分析并从提供者站点上汇集原始数据。
语义 Web 和 RDF
屏幕抓取不好的一面直接源自于一个事实:为阅读而创建的内容并不太适合机器自动处理。这促进了语义 Web 的诞生,它是现有 Web 的增强版本,在为人们设计的内容中增加了足够多的可供机器阅读的信息。在语义 Web 环境中,信息这个术语与数据有所差异;数据只有在传达了自己的含义(即数据可被理解)之后才会变成信息。语义 Web 的目标是创建 Web 基础设施,使用元数据对数据进行增强,从而使数据变得有意义,最终使数据变得适合进行自动化、集成、推理和重用。
被称为资源描述框架(RDF)的 W3C 系列规范就是服务于这个目的的技术,它用来建立描述数据的语义结构。XML 本身并不足以实现这种功能;它太过随意,我们可以使用很多方法进行编码来对相同的数据进行描述。RDF-Schema 补充了 RDF 的能力,提供了以机器可读的方式编码概念的功能。一旦可通过一种数据模型描述数据对象,RDF 就提供了通过主语-谓语-对象三元组(主语 S 与对象 O 具有关系 R)在数据对象之间构建关系的能力。数据模型与关系图之间的区别让我们可以进行存在式的构建,这是可以进行搜索和形式化推理的知识的层次化结构。例如,我们可以定义这样一个模型:“肉食动物” 是 “动物” 的一个子类,条件是它 “吃” 其他 “动物”;并创建两个实例:一个实例是印度豹和北极熊,并提供它们的生存环境;另外一个是瞪羚和企鹅,并提供它们的生存环境。假设我们将这些单独的模型实例集成在一起,就可以推论说印度豹可能会以瞪羚为食,但却不会吃企鹅。
RDF 数据在很多领域中都迅速得到了应用,包括社交网络应用程序(例如 FOAF —— Friend of a Friend)和联合(例如 RSS,接下来就会介绍)。另外,RDF 软件技术和组件都正在成熟到一定规模,尤其是在 RDF 查询语言(例如 RDQL 和 SPARQL)、编程框架和推理引擎(例如 Jena 和 Redland)领域。
RSS 和 ATOM
RSS 是一系列基于 XML 的联合格式。在这种情况中,联合(syndication)是指一个发布内容的 Web 站点可以创建 RSS 文档并在 RSS 发布系统中注册自己的文档。支持 RSS 的客户机可以查看新内容,并通过适当的方式连接到这些内容上。RSS 已经被用来联合广泛的内容,从新闻到头条、CVS 或 WIKI 页面的修改日志、项目更新甚至诸如无线电节目之类的视听数据。版本 1.0 基于 RDF,但最新的 2.0 版本不以 RDF 为基础。
Atom 是一种更新但非常类似的联合协议。它是 Internet Engineering Task Force(IETF)提出的一项草案标准,人们希望通过 Atom 提供比 RSS 更好的元数据维护;提供更好、更为全面的文档,并结合构建通用数据表示的概念。
这些联合技术对于集成基于事件或更新驱动内容的 mashup 来说都非常有用,例如新闻和 weblog 聚集程序。
评论加载中…
![]() |