- 在线时间
- 55 小时
- 专家
- 0
- UID
- 120645
- 注册时间
- 2004-8-2
- 帖子
- 135
- 精华
- 0
- 积分
- 155
- 离线
- 624 天
- 帖子
- 135
- 体力
- 120
- 威望
- 35
|
|
重构之美-跨越Web标准,触碰语义网
回锅文,写于2007-5-23 12:21。
开门见山:Microformat
Microformat,认识它的时候很神奇。我查了一下在标准群里的聊天记录:
2006-06-23 16:42:45 爆牙齿郑旻()
晕,标准就标准嘛,微软又偷换概念了,微格式(Microformats)
http://www.xml.com/lpt/a/2005/03/23/deviant.html
2006-06-23 16:44:46 old9()
http://microformats.org/
2006-06-23 16:51:49 爆牙齿郑旻()
看了几个hcard的实例,真TMD乱来
懒得理
2006-06-23 16:52:52 爆牙齿郑旻()
居然还可以堂而皇之的冠名:hCard
确实牛
2006-06-23 19:25:30 Realazy.org()
这是微软的吗?
2006-06-23 19:26:45 Realazy.org()
看清楚哦
2006-06-26 22:05:10 Realazy.org()
嗯,对,最近谁在关注microformats没?
2006-06-26 22:05:21 old9()
暴牙?
2006-06-26 22:05:35 Realazy.org()
Yahoo已经用上了。http://upcoming.org
2006-06-26 22:05:48 x5.liu()
最近看到太多人提microformats了
谁能给我简单解释一下
2006-06-26 22:06:11 爆牙齿郑旻()
我没关注
2006-06-26 22:06:21 Realazy.org()
简单的说,是在兼容当前XHTML的前提下组织信息的一种方式
2006-06-26 22:06:47 Realazy.org()
通过这个标准的格式,方便于各种不同的用户端来处理
2006-06-26 22:07:00 爆牙齿郑旻()
定个小规矩取个名字就OK了
2006-06-26 22:07:09 jjgod()
Microformats 要有一些比较漂亮的演示才会有人关注阿 XD
2006-06-26 22:07:43 Realazy.org()
http://upcoming.org/ 上有一些不错的例子
2006-06-26 22:07:45 x5.liu()
恩,近期我研究研究这个东东
2006-06-26 22:08:09 爆牙齿郑旻()
Microformats的XHTML结构就不好,烂,依赖class算啥,我简单这么认为的哈
2006-06-26 22:08:44 Realazy.org()
当前只能做到如此了
2006-06-26 22:08:51 Realazy.org()
http://corkd.com/
2006-06-26 22:08:59 Realazy.org()
这里也有些应用
2006-06-26 22:09:32 x5.liu()
我上upcoming.org了,具体哪个地方是microformats的应用?
2006-06-26 22:09:39 Realazy.org()
如果使用单纯的XML当然好,但是会提高门槛
2006-06-26 22:09:49 Realazy.org()
http://upcoming.org/event/46123/
2006-06-26 22:10:18 爆牙齿郑旻()
XHTML它也用的很烂啊,还没说xml呐
2006-06-26 22:10:26 Realazy.org()
Export...那里有简单的应用
2006-06-26 22:10:42 Realazy.org()
怎么个烂法?
2006-06-26 22:11:18 爆牙齿郑旻()
还没看
之后群里不时的对microformat的一些讨论就不发来凑字数了,我只是想说当我第一眼看见microformat的时候极为不齿,甚至没细看,肤浅的因为“micro”就想当然的认为它是微软的东东,我大概记得当时还说过这么一句:“不就是一套class命名规则嘛,老子也定义一套 class命名规则,然后叫它爆格式。”但是3个月后,当我在部署标准过程中遇到了一个很棘手的问题时,我猛然想起了microformat,可惜当时自己身陷在繁琐流程、大小会议和沉重的编码设计压力中无法静心思考。今年年初的时候,我终于有机会安静下来,带着自己一直的困惑再度审视 microformat后,终于感觉上有所斩获。具体怎样下次再表,我们先还是来认识一下曾被我鄙视的,大名鼎鼎的Microformat。
Microformat到底是什么东东?上面对话中,其实Realazy已经做了简单总结:是在兼容当前XHTML的前提下组织信息的一种方式,通过这个标准的格式,方便于各种不同的用户端来处理。这个比较抽象,我们把它扩展开来。
google了好一阵,都没能找到Microformat的起点,能找到的最早的文献就是我上面的那个链接:http://www.xml.com/lpt/a/2005/03/23/deviant.html。从时间上看是2005年3月23日,发展至少都两年多了,我是在一年多后才接触,两年后才思考,真不合时代节奏,落伍啊。
对Microformat的解释大家可以通过google进行了解,英文强的兄弟可以直接访问Microformats.org了解和学习,中文资料方面比较零散和缺乏,我也没什么好建议。
文字没有实例直观,就像文档没有设计稿直观一样。那么现在我们先直接来看一个实例:将“<cite>Dr. John Philip Paul Stevenson, Jr., M.D., A.C.P.<cite>”格式化为hCard Microformat。
格式化后的结果是:
<cite class="fn n">
<span class="honorific-prefix">Dr.</span>
<span class="given-name">John</span>
<span class="additional-name">Philip</span>
<span class="additional-name">Paul</span>
<span class="family-name">Stevenson</span>,
<span class="honorific-suffix">Jr.</span>,
<span class="honorific-suffix">M.D.</span>,
<span class="honorific-suffix">A.C.P.</span>
</cite>
怎么样?感受如何?我的第一个反应,第二个反应……反应无数次后就是放在现在仍然是两个字:夸张。至于嘛,一句话用这么多的标签来格式化,每个都有 class,每个class都很大方,长长的。当然这里我例举了一个比较极端的实例(晕人的专例^_^)。其实Microformat在大多数情况下相对而言代码上是没那么冗余的。下面我们来看另外一个不极端的Microformat。
这是常规的一个页脚呈现,来自http://microformatique.com/:
© 2007 John Allsopp | Thanks, WordPress | Barthelme theme by Scott Allan Wallick | Standards compliant XHTML & CSS | RSS: Posts & Comments
在这个页脚里面有两个微格式:
1、John Allsopp
<span class="vcard">
<a class="url fn n" href="http://westciv.com">
<span class="given-name">John</span>
<span class="family-name">Allsopp</span>
</a>
</span>
2、Scott和上面类似我就不写了。
我加粗部分就是为了微格式化而必要的代码,这么一看好像也不怎么常规,如果不使用微格式,同样的表现只需要短短的<a href="http://westciv.com">John Allsopp</a>就可以完成。看起来冗余代码依旧很多,那么是否冗余呢?其实这也是我一直迷惑的。其实我也一直在试图说服自己和他人包括现在的读者你:这是有用的。但是……这个这个先暂且放下。
为什么要这么做,增加这么多的标记?Microformat曰:语义化、API。通过这种方式申明数据的语义,形成API,将数据开放出来。问题又来了,需要吗不需要吗需要吗?研究研究?我相信未来的互联网,语义网一定是开放的互联网,不会像现在这样数据无法畅通无阻,存在大量的信息孤岛和信息盲点。但是我们不在明天我们在今天啊,今天需要吗不需要吗需要吗?……靠,不研究了还是先暂且放下。
好吧,增加了这么多代码,好处在哪里?给我一个应用实例。Microformat曰:firefox的Operator插件。耐着性子下载下来,再打开http://microformatique.com/,Operator 工具栏上的Export Contact有了数字“3”,他识别出了页面上的3个hCard,选择John Allsopp,Operate提示Outlook打开或下载,下载下来一个hCard.vcf文件,vcf是一种通用的电子名片文件格式。可以被导入各种识别该格式的设备(如手机)和软件(如Outlook)中。打开这个hCard.vcf文件,看见如下代码:
BEGIN:VCARD
PRODID:
SOURCE:http://microformatique.com/?p=160
NAME:microformatique - a blog about microformats and data at the edges : some finer points of hCard and n optimization
VERSION:3.0
N;CHARSET=UTF-8:Allsopp;John;;;
FN;CHARSET=UTF-8:John Allsopp
UID:
URL:http://westciv.com/
END:VCARD
我加粗的地方是可以从页面中获取的数据,而其他部分是Operator按.vcf标准对数据进行的转换,可不可以这么理解呢:Operate充当了 xsl的角色,将“xml”转为“xhtml”,将一种标准转为另一种标准。这么一看,要实现这种转换确实需要添加代码申明每个数据的语义,否则无法使得程序读懂数据从而匹配的进行转换。
好了,有所理解了,也对为此增加的额外的、大量的标记有了理论上的认可……可是但是以及But,理论终究是理论,放到实践中,根本没有多大的意义嘛!
1. 目前支持microformat只有Firefox的Operator插件。
2. Firefox市场占有率对于中国,即便它在发展壮大,还是奇低。平均高估一下:FF占有率10%吧。
3. 使用Firefox的人群能有几个人知道Operator?连我都一直不知道,更不要说其他人了,更不要说人民群众了。再平均高估一下:1%吧(100个Firefox中有1个装了Operator)
4. 装了Operator的人已经处于领域浪尖了,好了,有几个人真正在使用,而不是看着Operator上出现的识别数字YY?坦白的说,我装了 Operator后,行为上属于后者,纯粹YY。去导出hCard?然后干嘛呢?我疯了,我有病!……继续高估:1%(100个安装了Operator的人中有1个人在真正使用)
5. 好了,你突破了上述种种关卡,成为了浪尖上冒泡的水花,精英中中奖的英雄,骄傲吧……请问你访问100次网站,能用几次?你雄心壮志的以为中奖,结果是什么都没有,安全期……TT,最后的结局是:1%。
计算计算:10%×1%×1%×1%等于多少?千万分之一!!!那个使用microformat的家伙、用户,是千万分之一的恐龙人。为了这千万分之一的应用可能,我们有必要去学习和应用吗?我们这些打工仔们跳槽的机率,几个数量级的高于我们应用的microformat被用户所使用。……
什么是梦想,什么是现实,什么是梦想照不进现实,诠译得多么准确。microformat……
开门见了山,横在路中间……登还是绕?
爆牙齿
2008 08 11
[ 本帖最后由 blank 于 2008-8-11 10:12 编辑 ] |
|