RDFa介绍——构建更友好的web页面
作者:rainaxin 发布时间:2009-09-19 17:01:00
看着这个题目可能大家会有点陌生,不知道是什么,说的直白一点,RDFa就是让你的页面更好的被机器所理解,而不简简单单是展示你的页面,下面就关于此对什么是RDFa做个简单介绍。
背景:
为什么会出现RDFa这个东西呢?
现在的互联网主要是为人类的使用而创造的,虽然机器可读的数据是互联网上最先出现的,但是这些机器可读的数据一般是以单独的文件和单独的格式被发布在互联网上的,机器可读的和人类可读的数据之间的关联是相当少的。结果就是现在的浏览器在解析和处理web数据上的能力很差,因为浏览器只负责展示这些信息。
但是浏览器能够识别这些数据又有什么用呢?
用处多了,如果浏览器可以很好的识别这些数据,它就会形成一个固有的数据结构,而如果将这些数据结构加里利用,那我们就不需要记录一些信息都是通过无数次的ctrl+c和ctrl+V来完成了,一键操作就很方便了,而对于搜索引擎来说,就是更好的搜索结果展示以及更强大的数据挖掘能力了。
所以基于这个目的,RDFa出现了,就是为了达成我们的这个目的,它的全称是“Resource Description Framework in attributes”,其实从它名字的全称就可以获取到很多信息了,呵呵。
RDFa介绍:
提到了为什么会出现RDFa这个东西,那什么是RDFa呢,主要体现在下面几点:
连接机器与Web数据之间的一座桥梁
通过为一些可视化的数据提供一系列的XHML属性而使得这些数据可以被机器所理解。
基于XHTML+RDFaDTD
而与我们平时做的页面相比,使用RDFa技术的时候,它的头部doctype是这样定义的:
<!DOCTYPE html PUBLIC “-//W3C//DTD XHTML+RDFa 1.0//EN”
"http://www.w3.org/MarkUp/DTD/xhtml-rdfa-1.dtd">
上面的这种是基于XHTML的,主要是因为此标签的可扩展性,可以使得RDFa更好的嵌入,但是虽然html无法有这么好的扩展,但是仍然有针对它的标准,定义如下:
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML4+RDFa 1.0//EN"
http://www.w3.org/MarkUp/DTD/html4-rdfa-1.dtd>
而对于html来说,唯一需要解决的问题就是对名字空间缺乏的问题。
优势:
增强的搜索功能
Publisher Independence
数据再利用性
自我控制
模块化架构
可提升可访问性
实现原理:
在实现主要是通过引入名字空间的方法在已有的标签中加入RDFa相应的属性来使得支持RDFa技术的浏览器或者搜索引擎可以解析到,从而达到优化的目的,就通过一段简单的代码做实例吧:
<div xmlns:dc="http://purl.org/dc/elements/1.1/" about="http://www.example.com/books/wikinomics">
<span property="dc:title">Wikinomics</span>
<span property="dc:creator">Mr right</span>
<span property="dc:date">2006-09-02</span>
</div>
在上面的代码示例中主要用到了RDFa属性中的about属性和property属性,这段代码示例说明了一篇文章,然后描述了和这篇文章相关的信息,比如说标题,创建者和创建日期,而这些属性就可以使得支持RDFa的机器识别,从而形成跟我们人类所理解的那种结构的一个体系,达到我们的目的。
而我们要做的就是在我们了解这个网络的同时,我们也要让机器跟我们一样懂。
前景:
W3C刚出不久的一个标准(2008/10/14)
目前firefox已经有了针对RDFa的插件,可以对使用RDFa的页面进行解析。
Google已经在今年的5月12日发布支持RDFa以及微格式的宣言。
而在Google之前,yahoo已经支持了RDFa了,而且目前已经有相应的优化页面。
通过这些我们可以看出,RDFa的前景还是很不错,如果某一天真的浏览器也支持了,那我们的互联网上将会出现一种新的局面,期待中,大家有什么问题,也可以一起探讨。
原文:http://www.rainaxin.com/2009/08/technology-share-about-rdfa/
猜你喜欢
- 前言本文主要介绍的是关于python中open函数用法的相关资料,用法如下:name = open('errname.txt'
- router 动态路由清除重置matcher可达到路由还原效果在用户退出时调用 resetRouter(router) 即可还原路由impo
- 程序运行,产生如下结果,然后进程终止,导致这一结果的原因很有可能是内存 * 。当两个较大的 (e.g., 10000*10000 维)ndar
- parent.html 中的代码为:<iframe marginwidth="0"
- MERGE存储引擎把一组MyISAM数据表当做一个逻辑单元来对待,让我们可以同时对他们进行查询。构成一个MERGE数据表结构的各成员MyIS
- 我们在选择一件商品的时候,会先了解一些相关的商品信息,根据自己的需求和情况再进行选择。这种现象也同样适用于找工作,筛选一个岗位的重要环节,就
- 本文实例讲述了Python多进程multiprocessing、进程池用法。分享给大家供大家参考,具体如下:内容相关:multiproces
- 这篇文章主要介绍了python文字和unicode/ascll相互转换函数及简单加密解密实现代码,下面我们来了解一下。import reim
- 游标为您提供了在逐行的基础上而不是一次处理整个结果集为基础的操作表中数据的方法。 1.如何使用游标 1)定义游标语句 Declare <
- 一、安装pip install pymongo二、连接数据库import pymongo# 方式一client = pymongo.Mong
- <script language="JavaScript"> //得到字符总数function getCha
- 有些时候,我们需要画图后的二进制数据流,matplotlib没有提供相关的api,通过源码查看与百度,得到下面此方法import matpl
- Windows Registry Editor Version 5.00 [HKEY_LOCAL_MACHINE\SOFTWARE\Micr
- 设想这样一种情况,你在一个平台上操作你的工程,但你希望在另外一个平台上完善并运行它,这就是为什么Pycharm做了很多工作来支持远程调试。在
- 详解微信小程序中的页面代码中的模板的封装 最近在进行微信小程序中的页面开发,其实在c++或者说是js中都
- 继续鼓捣爬虫,今天贴出一个代码,爬取点点网「美女」标签下的图片,原图。# -*- coding: utf-8 -*- #----------
- 原理形态学是图像处理中常见的名词,图像处理的形态学基本属于数学形态学的范畴,是一门建立在格论和拓扑学基础上的图像分析学科。黑帽运算是结合了腐
- 一、简介urllib.request.urlopen()函数用于实现对目标url的访问。函数原型如下:urllib.request.urlo
- 复制代码 代码如下: public partial class CMS_DBDataContext { partial void OnCre
- 1、 select top 10 * from ( select top (@Page * 10) ROW_NUMBER() OVER (o