2012-10-12 163 views
9

許多博客使用「標籤」和「類別」的概念向文章添加元數據。這種信息的語義標記的最佳做法是什麼,使閱讀博客文章的機器可以輕鬆識別標籤?博客文章標籤和類別的HTML5語義標記

當前我將"tag"添加到鏈接上的rel屬性,例如,

<a rel="tag" class="tag" href="/tags.html#site-configuration">#site-configuration</a> 

我想一個可以使用都柏林核心的HTML格式的關鍵字:

<meta name = "DC.Subject" 
      content = "site-configuration"> 

和它添加到頁面頭部,或可meta標籤的身體去了?其中一個或另一個更可取,或者一些完全不同的選擇?

在爲內容提供精確和標準化的定義方面是否有更好的策略?

如果我想對元數據如此挑剔,還是應該使用XML文檔類型,那麼HTML5是合理的選擇?

不同方法的優缺點是什麼?

+0

''可能更可取,因爲我不認爲DC.Subject是有效的html5。不知道什麼是「類別」的正確屬性(即HTML5標準(?)中沒有'rel =「category」'屬性) – cboettig

+0

XHTML5在使用grddl或xslt時會比較經濟具有語義豐富的內容。 –

回答

13

第一步將獲得/使用普通的HTML在語義上是正確的。在(X)HTML5的情況下,您應該使用分段內容元素sectionarticle,asidenav來構建適當的輪廓,並使用headerfooter來將元數據內容與主內容分開;還可以考慮time(發佈日期),dfn(定義),abbr(縮寫/首字母縮略詞)等行內語義。並利用規範中定義的meta-namerel值。

第二步驟將是使使用元數據屬性未在說明書中所定義的值,但在指定的地方被登記(所以它們是有效的使用),如name keywords for meta elementsrel values for a/area/link elements

第三步將用語義機器可讀註釋來增強標記。有three common ways to do this

  • 微格式(使用預先定義的classrel值)
  • RDFa的(使用屬性和URI)
  • 微數據(使用屬性和URI)

RDFa和微是相似的(既可擴展又相當複雜),而微格式更簡單(但不是如此表達/可擴展​​)。我在程序員中寫了一個short answer關於差異的更多詳細的解答,關於differences between Microdata and RDFa

對於RDFa或Microdata,您的主要工作是查找能夠描述/分類您的內容的詞彙表/本體。這樣的詞彙表可以由每個人創建(你甚至可以自己創建),但通常使用知名/受歡迎的詞彙是可取的,例如搜索引擎可以使用你的註釋(例如:Schema.org)。

在微格式的情況下,您必須找到適合您需求的微格式(在wiki at microformats.org上)。如果你的情況沒有,你可以提出一個新的Microformat(但是這需要一些時間,直到它被「接受」,如果有的話)。


HTML5是一個合理的選擇,如果我想得那麼挑剔的元數據,或者我應該使用XML文檔類型?

如果您需要/需要XML支持,您也可以使用XHTML5。如果您「僅」使用規範中定義的(X)HTML並且不使用其他XML模式/詞彙表,則從語義角度來看,如果使用HTML(5)或XHTML(5),則無關緊要。

+0

很好的答案,謝謝。聽起來像在html標籤(如鏈接)上使用標準的「類」屬性是「微格式」的一個例子。是否也使用「rel」屬性?您鏈接的wiki定義了['rel =「tag」'](http://microformats.org/wiki/rel-tag)和['rel =「category」'](http://microformats.org/wiki/ rel-category)也稱爲「微格式」。像

這樣的HTML5標籤是否被視爲微格式?似乎它們比'p class =「vcard」>具有更強的類型含義,即使沒有明確的名稱空間 – cboettig

+0

特別是,使用HTML5標準定義關鍵字<元名稱=「關鍵字」內容=「我的關鍵字」>與都柏林核心''元名稱=「DC.Subject」內容=「我的關鍵字」>與任何RDFa的方式說,這將是什麼? – cboettig

+0

@cboettig:是的,一些微格式也使用'rel'值(我將它添加到我的答案中)。請注意,如果它是在microformats.org的wiki中指定的,那麼它只被稱爲「微格式」。因此,在其他地方定義的所有'class' /'rel'值都不是微格式。另請注意,'rel'值''tag''在HTML5 *和*中也定義在微格式中 - 而且定義略有不同。 HTML元素(比如'footer')永遠不能是微格式。微格式定義了一種方法,通過這些預定義的「class' /'rel'屬性值來」分類「HTML元素的內容。這只是一個慣例。 – unor