zoukankan      html  css  js  c++  java
  • 重构之美-跨越Web标准,触碰语义网[开门见山:Microformat]

    连接
    ◆《重构之美》总目录
    上一篇:重构之美-跨越Web标准,拥抱语义网[废话先] (8-3 14:57)
    下一篇:重构之美-跨越Web标准,触碰语义网[分离:程序员请“远离”Web标准] (8-20 00:06)


    回锅文,写于2007-5-23 12:21

    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……

    开门见了山,横在路中间……登还是绕?


    连接
    下一篇:重构之美-跨越Web标准,触碰语义网[分离:程序员请“远离”Web标准] (8-20 00:06)
    上一篇:重构之美-跨越Web标准,拥抱语义网[废话先] (8-3 14:57)
    ◆《重构之美》总目录

  • 相关阅读:
    elasticsearch 中的Multi Match Query
    activiti 流程部署的各种方式
    elasticsearch 嵌套对象之嵌套类型
    elasticsearch Java High Level REST 相关操作封装
    elasticsearch 字段数据类型
    ubuntu 安装 docker
    elasticsearch 通过HTTP RESTful API 操作数据
    facenet 人脸识别(二)——创建人脸库搭建人脸识别系统
    POJ 3093 Margaritas(Kind of wine) on the River Walk (背包方案统计)
    墨卡托投影, GPS 坐标转像素, GPS 坐标转距离
  • 原文地址:https://www.cnblogs.com/yuntian/p/756917.html
Copyright © 2011-2022 走看看