本節書摘來異步社群《移動網頁設計與開發 html5+css3+javascript》一書中的第2章,第2.6節,作者:【英】peter gasston,更多章節内容可以通路雲栖社群“異步社群”公衆号檢視。
通過建立被稱為微資料的簡單文法,html5解決了語義問題。根本上,微資料是一系列提供富有意義的機讀資料的名稱值對。和前面一樣,與其設法去解釋它,還不如使用這個更簡單易行的方法—向讀者展示它是如何運作的:

此标記建立了一個單項。itemscope屬性被用于标記此特定項的界限或範圍的包含元素。裡面含有被稱為property的名稱值對:itemprop屬性的值是名稱—在此示例中,是“city”—而元素的内容是值—在此示例中,是“london”。最後的結果是一個具有單個屬性的項:
但是,這并不局限于每一項的單個屬性;我們想要有多少屬性就能有多少屬性:
在這個示例中,該項的屬性清單将會是這個樣子:
正如我們所看到的那樣,此标記有點類似于rdfa;也就是因為它像rdfa格式,才可以分别給人和機器不同的值。再看看下面使用datetime屬性的例子:
和使用rdfa一樣,通過itemtype屬性連結到内容,我們可以用預定義架構來描述内容:
我們還可以使用諸如前面提及的都柏林核心這樣的架構,甚至還可以像上面示範的那樣,自己發明一個構架。
微資料有一個伴随物,叫做dom api,對提取頁面中的資料很有作用,并且,它在現代浏覽器中已經被相當廣泛地實作。api的關鍵是getitems方法,使用getitems方法會傳回一張節點清單(nodelist),清單中包含頁面上所有的項:
從這些項中,我們可以選擇一個單項,例如,想知道它包含多少個屬性,可以使用properties對象:
或者,我們能發現其中一個屬性的值:
讀者可以去檢視範例檔案microdata-api.html,其中有很多相關的示例。控制台裡已經存錄了結果,是以,隻需打開你最喜歡的浏覽器就能看到。是以,我鼓勵讀者自己打開浏覽器去看看。對于任何手邊沒有浏覽器的讀者,圖2-2顯示了在firebug中存儲的結果。
如果你已經決定給網頁添加上機器可讀的語義資料,并且認為這是一個正确的選擇;那麼,應該使用哪種格式呢?答案當然是視情況而定。先對内容進行評估,再閱讀每種資料類型的優點和缺點,最後,選擇那種對你來說最好的格式。在未來,我們通常看到的是簡單微格式與微資料的混合體,當然,這隻是我的個人看法。由于微資料文法靈活,是以出現一種很有趣的現象:它可以同時适應微格式和rdfa。下面的示例,顯示了如何使用微資料來标記hcard:
同樣,我們還可以輕松地使用rdfa資料架構:
在本人看來,微資料的靈活性将會讓它的使用頻率越來越高。即便如此,這并不表示對于一切來說,微資料都是完美的。一些微格式,例如rel-tag,它本身就非常簡潔、易于使用,根本沒必要試圖用微資料去替換它們。
一般來看,使用微資料有兩個原因。其中一個原因是為了征服微格式和rdfa;另一個原因是它能給我們帶來很大的優勢,讓我們的内容能被搜尋引擎和門戶網站所注意并推廣。2011年,四大網絡巨頭—谷歌、微軟、雅虎和yandex發起了一個新的網站:schema.org,該網站介紹了一組使用微資料标記常見模式的共享詞彙。
這些模式包括評論、事件、地點、項和對象,這類經常在網絡中被大家讨論的東西。舉例說明,假設你正在網站上寫一篇書評(我們可以随機選擇一本書,并給予它不偏不倚的評論):
這一評論實際上包含兩個項:這本書的詳細内容和對該書的評論。我們可以使用schema.org中的兩個詞彙為這兩個項提供語義上的标記。這兩個詞彙是book和review。通路相關的節,就知道應該使用哪種微資料模式。然後,上面的标記就可以更新為:
盡管現在标記變得更加複雜,但它的意義也更豐富了。你使用的每個詞彙用itemtype屬性中有關架構的連結來定義,而這些項被标記為預設定的itemprop值。
schema.org特定架構繼承屬性的方式很有趣,它能從更廣泛的架構中繼承屬性。例如,“書”有來自自己架構的屬性,還有來自更廣泛的creativework詞彙的屬性,以及來自最高階層thing(真是個很棒的名稱!)的屬性。thing,它具有最通用的屬性。
如果我們使用schema.org模式來對内容進行标記,所有到達該頁面的爬網程式就會知道作者和書名,還能知道我們對這本書做了點評,甚至還能知道我們給了它一個五顆星的評級。如果有人搜尋這本書,我們的評論就會出現在搜尋結果中,與其他人的評論一道,為讀者提供了對該書相當全面的概述。
這是一種在搜尋結果中給予額外資訊的方法,它被許多搜尋引擎所使用,谷歌把它命名為rich snippets(富摘要)。當使用者搜尋查詢時,富摘要能為使用者提供更多上下文,使使用者無需切換到網頁,就能夠更好地評估結果的相關性。圖2-3是一個富摘要的示例:
富摘要能與微格式和rdfa一起使用,但其首選的文法是微資料。在google的網站管理者頁面上,有大量的資料和文檔可供開發人員使用,其中有一個很有用的工具,它能幫助我們測試微資料的格式是否正确。在圖2-4中,我們可以看到使用該工具從在上一節建立的書評中提取出的資料