microformats

マイクロフォーマット (HTML)

[43] マイクロフォーマットは、マイクロフォーマットコミュニティーにより開発されている HTML文書へのデータの埋め込みに関する仕様群です。

[44] マイクロフォーマットには、連絡先情報を記述する hCard、 予定情報を記述する hCalendar などがあります。いずれも HTMLclass 属性rel 属性などを使って文書の構造に追加の意味を付与する形になっています。

代替

[66] マイクロフォーマットは、 W3CHTML の開発を中断し、 MicrosoftIE の開発を停止したため HTML の表現力の拡張が限界に達していた 00年代初期に、当時の HTML の範囲内で記述することを要件に開発されたものでした。

[67] マイクロフォーマットの経験を踏まえた新機能として HTML5マイクロデータが追加され、 業界標準語彙として schema.org が整備された現在、 古い IE も撲滅され class 属性を使わずとも CSS の指定が可能なこともあり、もはやマイクロフォーマットを積極的に使う理由はありません。

[68] 現在もマイクロフォーマットの実装や利用例は多々残っていますし、 有害なものでもありませんが、新規開発であればマイクロフォーマットを採用するよりも、 マイクロデータschema.org を組み合わせて用いるべきでしょう。 新規にマイクロフォーマットを実装しようという話もほとんど聞こえてきませんし、 マイクロフォーマット自体の開発も10年代半ば以後ほぼ中断状態にあります。

仕様

[45] マイクロフォーマットの主な仕様は次に示す通りです。 この他にもいくつもの仕様が提案されています。

構文

[56] HTML要素属性、とりわけ class 属性rel 属性を使って、 HTML だけでは表現できないより細かな意味を持った構造を記述していきます。

[57] しばしば比較対象となる RDFa とは違って、HTML に存在しない属性を使ったり、 HTML で認められていない場所で要素を使ったりすることはありません。

[58] 当初のマイクロフォーマット各仕様はそれぞれの語彙でそれぞれの要素属性の用法を規定しており、 類似はしているもののそれぞれに異なるものでした。

[59] microformats2語彙に依存しない共通の構文を規定しており、 事前に特定の語彙の知識を持たなくてもマイクロフォーマットとしての構造を把握できるという“拡張性”を備えています。

標準化

[46] マイクロフォーマットの標準化はマイクロフォーマットコミュニティー (microformats.org の WikiメーリングリストIRC など) で行われています。

[47] マイクロフォーマットは一般名詞ではなく固有名詞です。 マイクロフォーマット風の仕様であってもマイクロフォーマットコミュニティー以外のものは、 マイクロフォーマットではありません。

[48] なお、 XFNXMDP は前身である GMPG で出版されたものですが、 最初のマイクロフォーマットとして扱われています。

[49] マイクロフォーマットコミュニティーは Tantek Çelik を中心に運営されています。

実装

[50] Firefoxマイクロフォーマットを構文解析するための JavaScript API を実装しています。 (Web からは利用できません。)

[51] Google検索エンジンでいくつかのマイクロフォーマットに対応しています。

[52] Webアプリケーションの類でマイクロフォーマットを出力するものは多々あります。

関連

HTML5 との関係

[28] 元々マイクロフォーマット・コミュニティWHATWG は関わりが深く、 両者の仕様にも親和性があります。既存の HTML の拡張機構に則るか HTML そのものを改良していくかとアプローチの違いこそあれ、 現実の要求に基づき実用性と体系的整合性を重視して HTML の表現能力を向上させていく姿勢はいずれにも共通しています。

直接の取り込みの試み

[25] HTML5 仕様書がまだ Web Applications 1.0 と呼ばれていた頃、 hCardhCalendar を取り込む予定があり、 card 要素calendar 要素の追加提案が示されていました。

[26] しかし、 Ian Hickson はこの自らの提案を 「マイクロフォーマット処理モデルを明確に規定していないので取り込めない」 として後に削除しています。

拡張点管理コミュニティとしての採用

[27] HTML5リンク型meta name の値を WHATWG wiki における登録制としていますが、 値の審査の仕組みの1つとしてマイクロフォーマットにおける標準化を採用しています。

class 属性

[29] マイクロフォーマットclass 属性を積極的に活用していますが、 HTML5 も同様に class 属性に定義済みの値を導入したり、 >>27 同様の WHATWG wiki による登録制度を設けようとしました。 これによってマイクロフォーマットHTML5 がある意味でシームレスに統合されるとも言えそうなところでしたが、 既に様々に用いられている class 属性値との衝突の懸念が多く、 結局定義済みの値や登録制度は削除されました。詳しくは class 属性の項をご覧ください。

profile 属性

[30] マイクロフォーマットの出発点である XMDPprofile 属性に依拠していましたが、 HTML4XHTML1 における profile 属性の定義の曖昧性はかねてから問題視されてきました。

[31] HTML5profile 属性の定義を明確化しましたが、 その後も一向に profile 属性は普及せず、結局削除されました。

[32] マイクロフォーマットXFN などではHTMLメタ情報プロファイルが定義され、 profile 属性値の多数が XFN を表すものでしたが、 その後のほとんどのマイクロフォーマットではそもそもプロファイルURL が定義されず、利用されていないのが実態でした。

マイクロデータ

[33] 2009年春に HTML5 にはマイクロデータの仕組みが導入されました。 マイクロデータマイクロフォーマット的手法による HTML の拡張の新たな手段を提供するもので、仕組み的には RDFa とも類似していますが、 より従来の HTML の構文やマイクロフォーマット・コミュニティにおける慣習との整合性も意識され、 かつ処理モデルが明確に規定された機構となっています。

time 要素と data 要素

[53] 2011年に HTMLtime 要素 (第2世代) と data 要素が追加されましたが、 Tantek をはじめとるするマイクロフォーマットコミュニティーの調査と実装経験が反映されたものです >>54。 両要素マイクロフォーマットでも必要性が高かった (のに従来 HTML に欠如していた) ものだけに、以後マイクロフォーマットコミュニティーでも重用されているようです。

マイクロフォーマットやそれに似たもの

[3]

[2] microformats <http://microformats.org/>

[1] 武田の近況報告: Microformats (とSemantic Web) <http://www-kasm.nii.ac.jp/mt/archives/000063.html>

[4] What are Microformats? <http://tantek.com/presentations/2005/06/what-are-microformats/>

入門用にどうぞ (英語) (名無しさん)

[5] microformats についての誤解と,ぼくが理解している範囲 / おのひろきおんらいん <http://onohiroki.cycling.jp/2005-08-15-1#d20050815n1> (名無しさん 2005-08-22 06:27:11 +00:00)

[6] 檜山正幸のキマイラ飼育記 - Microformatsと多重マークアップ <http://d.hatena.ne.jp/m-hiyama/20050722/1122023064>

これを見ると、「いつか来た道」というデジャブを感じますね。

と、 CONCURHyTime との類似性を指摘している。確かに! (名無しさん 2005-08-22 06:36:18 +00:00)

[7] XHTML Microformats for the Atom Publishing Protocol <urn:ietf:id:draft-sayre-atompub-xhtml-micro-00>

分類を定義するための hCatHTTP 誤りのお知らせのための hError が提案されています。 (名無しさん 2005-09-16 08:44:05 +00:00)

[8] adr - Microformats <http://microformats.org/wiki/adr>

住所表記用のマイクロ書式。 (名無しさん)

[9] ongoing &#183; Word Processing Blues <http://www.tbray.org/ongoing/When/200x/2005/11/12/Resume-Blues> (名無しさん 2006-01-31 02:23:39 +00:00)

[10] Microformats Search BETA <http://kitchen.technorati.com/search/>

βでもせめて title くらい埋めてから公開して欲しいものです。

(名無しさん 2006-06-04 07:59:08 +00:00)

[11] Mario Kart DS ID microformat <http://www.merkwelt.com/people/stan/marioKartDSMicroformat.html> (名無しさん 2006-07-09 06:23:08 +00:00)

[12] bulknews.typepad.com: Tetris DS ID microformat <http://bulknews.typepad.com/blog/2006/05/tetris_ds_id_mi.html> (名無しさん 2006-07-09 06:23:31 +00:00)

[13] Compound microformat のプロパティ一覧 - 2xup <http://2xup.org/log/2006/07/24-0130> (名無しさん 2006-07-24 13:01:15 +00:00)

[14] Vitamin Features &#187; Add microformats magic to your site <http://www.thinkvitamin.com/features/design/how-to-use-microformats> (名無しさん 2006-08-27 01:00:00 +00:00)

[15] microformatique - a blog about microformats and “data at the edges” <http://microformatique.com/> (名無しさん 2006-08-27 01:00:44 +00:00)

[16] microformats に対応したサービスなどまとめ - 2xup <http://2xup.org/log/2006/04/21-2154> (名無しさん)

[17] Highlight Microformats with CSS :: journal :: hicksdesign Ο° <http://www.hicksdesign.co.uk/journal/highlight-microformats-with-css> (名無しさん 2006-09-15 15:18:28 +00:00)

[18] Validating microformats <http://norman.walsh.name/2006/04/13/validatingMicroformats> (名無しさん 2006-10-05 13:07:55 +00:00)

[19] “まず人にとって読みやすいこと、機械はその次”--Brian Suda氏が語るMicroformats - ZDNet Japan <http://japan.zdnet.com/sp/interview/story/0,2000056426,20262447,00.htm> (名無しさん 2006-10-08 02:21:12 +00:00)

[20] >>19 Human readable first にもっと突っ込まないと・・・。 (名無しさん 2006-10-08 02:25:19 +00:00)

[21] Why Microformats - Home <http://www.whymicroformats.com/pages/home> (名無しさん 2006-10-20 00:54:18 +00:00)

[22] rel-lint lint tool / validator for XFN, rel-tag and stuff - tools.microformatic.com <http://tools.microformatic.com/help/xhtml/rel-lint/> (名無しさん)

[23] John Resig - Microformats in Firefox 3 (2007-02-01 22:12:34 +09:00 版) <http://ejohn.org/blog/microformats-in-firefox-3/> (名無しさん 2007-02-01 13:16:15 +00:00)

[24] Microformatsの仕様がパブリックドメインに - 行動記録 (IWAI, Masaharu 著, 2007-07-26 03:35:13 +09:00 版) <http://iwaim.beering.be/2007/07/microformats-copyright.html> (名無しさん 2007-07-28 04:14:49 +00:00)

[34] IRC logs: freenode / #whatwg / 20090717 ( 版) <http://krijnhoetmer.nl/irc-logs/whatwg/20090717#l-335>

[35] html5 · Microformats Wiki ( 版) <http://microformats.org/wiki/html5>

[36] process · Microformats Wiki ( 版) <http://microformats.org/wiki/process>

[37] microformats 2.0 · Microformats Wiki ( ( 版)) <http://microformats.org/wiki/microformats-2>

[38] WDC - RDFa, Microdata, and Microformat Data Sets ( ( 版)) <http://webdatacommons.org/structureddata/index.html>

[39] microformats 2 · Microformats Wiki ( ( 版)) <http://microformats.org/wiki/microformats2>

[40] [uf-discuss] Process to handle decentralized creation of new microformats? ( ( 版)) <http://microformats.org/discuss/mail/microformats-discuss/2006-October/006019.html>

[41] Parsing microformats in JavaScript | MDN ( ( 版)) <https://developer.mozilla.org/en-US/docs/Parsing_microformats_in_JavaScript>

[54] IRC logs: freenode / #whatwg / 20130306 ( ( 版)) <http://krijnhoetmer.nl/irc-logs/whatwg/20130306#l-119>

[60] Linked Data and a new Browser API event ( 版) <https://lists.mozilla.org/pipermail/dev-platform/2015-June/010201.html>

[61] Linked Data and a new Browser API event ( 版) <https://lists.mozilla.org/pipermail/dev-platform/2015-June/010249.html>

[62] The microformats process · Microformats Wiki ( 版) <http://microformats.org/wiki/process>

[63] microformats2 parsing specification · Microformats Wiki () <http://microformats.org/wiki/microformats2-parsing>

[64] microformats/microformats2-parsing: For collecting and handling issues with the microformats2 parsing specification: http://microformats.org/wiki/microformats2-parsing () <https://github.com/microformats/microformats2-parsing>

[65] microformats/tests: Microformats test suite () <https://github.com/microformats/tests>

[69] Post Type Discovery () <https://www.w3.org/TR/2017/WD-post-type-discovery-20170301/>

[70] Micropub () <https://micropub.net/draft/#json-syntax-p-1>

In order to support more complex values of properties, you can create a post with JSON syntax by sending the entry in the parsed Microformats 2 JSON format.

[71] Micropub () <https://micropub.net/draft/#source-content-p-9>

If the source of the post was written as HTML content, then the endpoint must return the content property as an object containing an html property. Otherwise, the endpoint must return a string value for the content property, and the client will treat the value as plain text. This matches the behavior of the values of properties in [microformats2-parsing].