这些例子中共同的地方都是,它们有着分离的数据表示,这使得它们在最终用户的眼里看起来很烂。

我们如何给“烂”下定义?在这些例子中,烂,意味着不连贯、不同步以及分离。我们应做点什么让web变得智能点儿?我们需要更只能的应用或更智能的网络架构吗?

 

聪明的web应用

web上充满了智能应用,新发明每天都有,原来看着不可能的想法现在变得很普通,搜索引擎使极其看起来深沉又有知觉,商业网站根据你的购物模式给予聪明的个人化建议,地图网站包括了整个世界地理的细节,它们能够制作路线,并计算两地距离。

任何一个可见技术都可以被用到网站当中,它们中有很多都已被使用了。

但web架构在使这些网站变得聪明中扮演怎样的角色呢?架构越先进,web表现就越聪明,是这样吗?

 

其实聪明的行为是来自于聪明的web应用,并不是来自于架构。

改进web架构的原因是希望发挥智能应用的潜力。

设计语义web的挑战并不是让web架构尽可能变得聪明,而是让架构对于整个web上的处理信息工作是最合适的。

语义网并不是让数据智能,因为智能的数据并不是语义网需要的,把对的数据放到对的地方,以便于应用可以完成它们的工作,这才是语义网需要的。所以我们的问题并不是该如何让架构更聪明,而是“让web架构能为改进web数据的连续性和可见性做些什么”。

 

相联的数据就是聪明的数据。

即使面对着智能程序,不联系的数据依然会造成愚蠢的行为,但web数据不必要是聪明的,因为聪明是程序的事儿。

web看起来是聪明的,因为聪明的应用程序给了用户想要的数据。这里关乎的仅仅是得到正确信息的技术而已。

 

语义化数据

在这些案例中,数据描述的是信息世界的表述,而非实体。

就没有其他方法了吗?一个应用能否提供一个现实世界的整体描述及对象关系,而不仅仅是它们的表示?答案是“yes”,实际上这样的做法在网站设计的实践中是被鼓励的。

这里有许多知名的方法。

一个让web应用更协调的办法是采用关系数据库支持它们,通过数据库查询来更新页面,通过更新数据库来更新站点。所有从特定数据记录中获取信息的网页,都会随着记录的改变而改变。不需要web维护者采取其他的行动。

数据库自己掌握着实体的信息,而一个网页和另一个网页或表示的关系,由不同的查询来表达。

考虑一下national park和hotel的案例。若这些网页是由统一数据库支持的话,那么national park的页面将基于“Find all hotels with location=national park”这个查询语句,同时hotel页面也会基于“Find all hotels from chain=Mogotel”这个查询上面。如果Mogotel在national park附近有一个位置,那么它将会在两个页面上都显示出来,或者,两个都不显示。但这两个页面间是有联系的。

这个例子中的难点在于不太可能把这些网页建在一个数据库之上。因为其中的一个库是由National park Service支持和发布的,而另一个由Mogotel供应链管理。

那个太空案的解决办法与旅馆案类似,同一个信息可以从两个位置取得,即使面对不同的表示,也需要确保信息的连贯性。

在这些案例中,通过增加一个有序查询,去调节数据与表示的统一显示的做法显得很粗糙。

数据没比从前好到哪里去,但至少它们是集中的,应用或者Web页面可以组织这些数据,让它们在用户眼中看起来更连续。

是Web页面显得更聪明了,不是数据。不过虽然这个方法有助于支持数据连续性,它并没对会议地图案例起到什么作用。

另一个让web应用变聪明的办法是使用特定语言编写代码,这些代码的作用是让来自不同地方的数据保持更新。在hotel案例中,这样的程序可以让National park页面随着任何一个hotel页面的更新而更新。该方法也可以使太空网站的数据更加连贯。

以此为目的的代码常以“存储算法”的形式组织数据库,在XML应用中,它采用XSLT那样的转换语言来组织。

这样的方案实现起来更加笨重,因为他们需要为数据的而每个联系编写特定代码,但它们相比较于统一数据库是有优势的,因为它们不需要所有的数据发布者只分享同个数据源。

更重要的是,通过将数据从一个源转移到另一个源,该方法解决了会议地图问题。如同查询\表示问题一样,该方法没有使得数据变得更聪明,它只是在数据上建立起有序结构,该结构使不同数据源保持一致。

这些方法的共同特点都是从收集表示的网站转向收集数据的网站。在这过程中,页面的表示进化了。应用不再聚焦于表示,而是转向对表示的组织。正是基于此,这些应用才是语义化的应用,因为它们明确表达了应用间的关系,并随需求更新表示。

 

一个分布式数据网

语义网使分布式数据网这个概念更进一步,将它应用在一体化的web中。目前的web架构支持分布式网络,网络中的页面通过URIs相连。就如我们所看到的那样,高水平的站点在后端采用数据库或XML取代这一结构以确保页面间的连贯性。

语义网的主要构想是在数据层支持分布式网络而不仅仅是在表示层,采用统一标示符(URLs),用互联的数据记录取代互联的网页。web架构提供了一个数据模型,在那里,单个实体的信息可以分布在网络上,这种分布性允许Mongotel案例及会议旅馆方案可以像太空案例那样运作,尽管这种分部的信息由不只一个组织来管理。这种单一同步的数据模型,将不只为一个应用采用,而是可以作为web架构的一部分。当Mongote为自己的旅馆和位置发布信息时,它不仅要发布一个人类可读的表示,还要发布一个分布的,机器可读的描述。这个语义网用于表示分布式数据的模型叫做Resource Description Framework (RDF),它将是本书第三章的主题。

这个单一的分布式信息模型是语义网为更聪明的网络(smarter web)所做的贡献,如同数据支持的web应用一样,语义网架构以数据驱动表示,所以允许各个页面将视图变为连续信息的一部分。这样,语义网使数据看起来不再那么笨。

 

posted on 2012-01-19 15:16  Ballad1939  阅读(266)  评论(0编辑  收藏  举报