[43] [DFN[[[マイクロフォーマット]]]]は、マイクロフォーマットコミュニティーにより開発されている
[[HTML文書]]へのデータの埋め込みに関する仕様群です。

[44] [[マイクロフォーマット]]には、連絡先情報を記述する [[hCard]]、
予定情報を記述する [[hCalendar]] などがあります。いずれも [[HTML]]
の [CODE(HTMLa)@en[[[class]]]] [[属性]]や [CODE(HTMLa)@en[[[rel]]]]
[[属性]]などを使って文書の構造に追加の意味を付与する形になっています。

[REFS[
- [42] [CITE@en[Microformats]] ([TIME[2014-09-03 02:20:18 +09:00]] 版) <http://microformats.org/>
]REFS]

* 代替

[66] [[マイクロフォーマット]]は、 [[W3C]] が [[HTML]] の開発を中断し、
[[Microsoft]] も [[IE]] の開発を停止したため [[HTML]] の表現力の拡張が限界に達していた
[[00年代]]初期に、当時の [[HTML]] の範囲内で記述することを要件に開発されたものでした。

[67] [[マイクロフォーマット]]の経験を踏まえた新機能として [[HTML5]] に[[マイクロデータ]]が追加され、
[[業界標準]]の[[語彙]]として [[schema.org]] が整備された現在、
古い [[IE]] も撲滅され [CODE(HTMLa)@en[class]] [[属性]]を使わずとも [[CSS]]
の指定が可能なこともあり、もはや[[マイクロフォーマット]]を積極的に使う理由はありません。

[68] 現在も[[マイクロフォーマット]]の実装や利用例は多々残っていますし、
有害なものでもありませんが、新規開発であれば[[マイクロフォーマット]]を採用するよりも、
[[マイクロデータ]]と [[schema.org]] を組み合わせて用いるべきでしょう。
新規に[[マイクロフォーマット]]を実装しようという話もほとんど聞こえてきませんし、
[[マイクロフォーマット]]自体の開発も[[10年代]]半ば以後ほぼ中断状態にあります。

* 仕様

[45] [[マイクロフォーマット]]の主な仕様は次に示す通りです。
この他にもいくつもの仕様が提案されています。

[FIG(short list)[
- [[hCalendar]]
- [[hCard]]
- [[rel-license]]
- [[rel-nofollow]]
- [[rel-tag]]
- [[XFN]]
- [[XMDP]]
- [[XOXO]]
- [[hAtom]]
- [[microformats2]]
]FIG]

* 構文

[56] [[HTML]] の[[要素]]や[[属性]]、とりわけ [CODE(HTMLa)@en[[[class]]]]
[[属性]]や [CODE(HTMLa)@en[[[rel]]]] [[属性]]を使って、 [[HTML]]
だけでは表現できないより細かな意味を持った構造を記述していきます。

;; [57] しばしば比較対象となる [[RDFa]] とは違って、[[HTML]]
に存在しない[[属性]]を使ったり、 [[HTML]] で認められていない場所で[[要素]]を使ったりすることはありません。

[58] 当初の[[マイクロフォーマット]]各仕様はそれぞれの[[語彙]]でそれぞれの[[要素]]や[[属性]]の用法を規定しており、
類似はしているもののそれぞれに異なるものでした。

[59] [[microformats2]] は[[語彙]]に依存しない共通の構文を規定しており、
事前に特定の[[語彙]]の知識を持たなくても[[マイクロフォーマット]]としての構造を把握できるという“拡張性”を備えています。

* 標準化

[46] [[マイクロフォーマット]]の標準化は[[マイクロフォーマット]]コミュニティー (microformats.org
の [[Wiki]] や[[メーリングリスト]]、 [[IRC]] など) で行われています。

;; [47] [[マイクロフォーマット]]は一般名詞ではなく[[固有名詞]]です。
[[マイクロフォーマット]]風の仕様であっても[[マイクロフォーマット]]コミュニティー以外のものは、
[[マイクロフォーマット]]ではありません。

[48] なお、 [[XFN]] と [[XMDP]] は前身である [[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]] と呼ばれていた頃、
[[hCard]] や [[hCalendar]] を取り込む予定があり、 [CODE(HTMLe)@en[[[card]]]]
[[要素]]や [CODE(HTMLe)@en[[[calendar]]]] [[要素]]の追加提案が示されていました。

[26] しかし、 [[Ian Hickson]] はこの自らの提案を
「[[マイクロフォーマット]]は[[処理モデル]]を明確に規定していないので取り込めない」
として後に削除しています。

*** 拡張点管理コミュニティとしての採用

[27] [[HTML5]] は[[リンク型]]や [CODE(HTMLe)@en[[[meta]]]] [CODE(HTMLa)@en[[[name]]]]
の値を [[WHATWG]] wiki における登録制としていますが、
値の審査の仕組みの1つとして[[マイクロフォーマット]]における標準化を採用しています。

*** [CODE(HTMLa)@en[class]] 属性

[29] [[マイクロフォーマット]]は [CODE(HTMLa)@en[[[class]]]]
[[属性]]を積極的に活用していますが、 [[HTML5]] も同様に [CODE(HTMLa)@en[[[class]]]]
[[属性]]に定義済みの値を導入したり、 >>27 同様の [[WHATWG]] wiki による登録制度を設けようとしました。
これによって[[マイクロフォーマット]]と [[HTML5]] がある意味でシームレスに統合されるとも言えそうなところでしたが、
既に様々に用いられている [CODE(HTMLa)@en[[[class]]]] [[属性値]]との衝突の懸念が多く、
結局定義済みの値や登録制度は削除されました。詳しくは [CODE(HTMLa)@en[[[class]]]]
[[属性]]の項をご覧ください。

*** [CODE(HTMLa)@en[[[profile]]]] 属性

[30] [[マイクロフォーマット]]の出発点である [[XMDP]] は [CODE(HTMLa)@en[[[profile]]]]
[[属性]]に依拠していましたが、 [[HTML4]]・[[XHTML1]] における [CODE(HTMLa)@en[[[profile]]]]
[[属性]]の定義の曖昧性はかねてから問題視されてきました。

[31] [[HTML5]] は [CODE(HTMLa)@en[[[profile]]]] [[属性]]の定義を明確化しましたが、
その後も一向に [CODE(HTMLa)@en[[[profile]]]] [[属性]]は普及せず、結局削除されました。

[32] [[マイクロフォーマット]]も [[XFN]] などでは[[HTMLメタ情報プロファイル]]が定義され、
[CODE(HTMLa)@en[[[profile]]]] [[属性値]]の多数が [[XFN]] を表すものでしたが、
その後のほとんどの[[マイクロフォーマット]]ではそもそも[[プロファイル]]や [[URL]]
が定義されず、利用されていないのが実態でした。

*** マイクロデータ

[33] 2009年春に [[HTML5]] には[[マイクロデータ]]の仕組みが導入されました。
[[マイクロデータ]]は[[マイクロフォーマット]]的手法による [[HTML]]
の拡張の新たな手段を提供するもので、仕組み的には [[RDFa]] とも類似していますが、
より従来の [[HTML]] の構文や[[マイクロフォーマット・コミュニティ]]における慣習との整合性も意識され、
かつ[[処理モデル]]が明確に規定された機構となっています。

*** [CODE(HTMLe)@en[time]] 要素と [CODE(HTMLe)@en[data]] 要素

[53] 2011年に [[HTML]] に [CODE(HTMLe)@en[[[time]]]] [[要素]] (第2世代)
と [CODE(HTMLe)@en[[[data]]]] [[要素]]が追加されましたが、
[[Tantek]] をはじめとるする[[マイクロフォーマットコミュニティー]]の調査と実装経験が反映されたものです [SRC[>>54]]。
両[[要素]]は[[マイクロフォーマット]]でも必要性が高かった (のに従来 [[HTML]]
に欠如していた) ものだけに、以後[[マイクロフォーマットコミュニティー]]でも重用されているようです。

[REFS[
- [55] [CITE@en[Microformats | weblog | microformats.org at 7]] ([TIME[2015-02-04 12:04:46 +09:00]] 版) <http://microformats.org/2012/06/25/microformats-org-at-7>
]REFS]

** マイクロフォーマットやそれに似たもの

[3]
- [[DAISY]]
- [[DCMI]] 各種仕様
- [[hCalendar]]
- [[hCard]]
- [[hReview]]
- [[Opera Show Format]]
- [CODE(HTML)@en[[[rel]]="[[enclosure]]"]]
- [CODE(HTML)@en[[[rel]]="[[license]]"]]
- [CODE(HTML)@en[[[rel]]="[[nofollow]]"]]
- [CODE(HTML)@en[[[rel]]="[[tag]]"]]
- [[ロボット除外プロファイル]] ([[Robot Exclusion Profile]])
- [CODE(HTML)@en[[[ROBOTS]]]] [CODE(HTMLe)@en[[[meta]]]] [[タグ]]
- [[S5]]
- [[投票リンク]] ([[Vote Links]])
- [[XFN]]
- [[xFolk]]
- [[XMDP]]
- [[XOXO]]

[2]
[CITE[microformats]] <http://microformats.org/>

[1]
[CITE[武田の近況報告: Microformats (とSemantic Web)]] <http://www-kasm.nii.ac.jp/mt/archives/000063.html>

[4]
[CITE[What are Microformats?]] <http://tantek.com/presentations/2005/06/what-are-microformats/>

入門用にどうぞ (英語)
([[名無しさん]])

[5]
[CITE[microformats についての誤解と,ぼくが理解している範囲 / おのひろきおんらいん]] <http://onohiroki.cycling.jp/2005-08-15-1#d20050815n1>
([[名無しさん]] [WEAK[2005-08-22 06:27:11 +00:00]])

[6]
[CITE[檜山正幸のキマイラ飼育記 - Microformatsと多重マークアップ]] <http://d.hatena.ne.jp/m-hiyama/20050722/1122023064>

> これを見ると、「いつか来た道」というデジャブを感じますね。

と、 [[CONCUR]] や [[HyTime]] との類似性を指摘している。確かに!
([[名無しさん]] [WEAK[2005-08-22 06:36:18 +00:00]])

[7]
[CITE@en[XHTML Microformats for the Atom Publishing Protocol]]
<urn:ietf:id:draft-sayre-atompub-xhtml-micro-00>

[[分類]]を定義するための [[hCat]] と [[HTTP]]
[[誤り]]のお知らせのための [[hError]]
が提案されています。
([[名無しさん]] [WEAK[2005-09-16 08:44:05 +00:00]])

[8]
[CITE[adr - Microformats]] <http://microformats.org/wiki/adr>

住所表記用のマイクロ書式。
([[名無しさん]])

[9]
[CITE[ongoing &#183; Word Processing Blues]] <http://www.tbray.org/ongoing/When/200x/2005/11/12/Resume-Blues>
([[名無しさん]] [WEAK[2006-01-31 02:23:39 +00:00]])

[10]
[CITE@en[Microformats Search BETA]]
<http://kitchen.technorati.com/search/>

;; βでもせめて [CODE(HTMLe)@en[[[title]]]] くらい埋めてから公開して欲しいものです。

([[名無しさん]] [WEAK[2006-06-04 07:59:08 +00:00]])

[11]
[CITE[Mario Kart DS ID microformat]] <http://www.merkwelt.com/people/stan/marioKartDSMicroformat.html>
([[名無しさん]] [WEAK[2006-07-09 06:23:08 +00:00]])

[12]
[CITE[bulknews.typepad.com: Tetris DS ID microformat]] <http://bulknews.typepad.com/blog/2006/05/tetris_ds_id_mi.html>
([[名無しさん]] [WEAK[2006-07-09 06:23:31 +00:00]])

[13]
[CITE[Compound microformat のプロパティ一覧 - 2xup]] <http://2xup.org/log/2006/07/24-0130>
([[名無しさん]] [WEAK[2006-07-24 13:01:15 +00:00]])

[14]
[CITE[Vitamin Features &#187; Add microformats magic to your site]] <http://www.thinkvitamin.com/features/design/how-to-use-microformats>
([[名無しさん]] [WEAK[2006-08-27 01:00:00 +00:00]])

[15]
[CITE[microformatique - a blog about microformats and “data at the edges”]] <http://microformatique.com/>
([[名無しさん]] [WEAK[2006-08-27 01:00:44 +00:00]])

[16]
[CITE[microformats に対応したサービスなどまとめ - 2xup]] <http://2xup.org/log/2006/04/21-2154>
([[名無しさん]])

[17]
[CITE[Highlight Microformats with CSS :: journal :: hicksdesign   Ο°]] <http://www.hicksdesign.co.uk/journal/highlight-microformats-with-css>
([[名無しさん]] [WEAK[2006-09-15 15:18:28 +00:00]])

[18]
[CITE[Validating microformats]] <http://norman.walsh.name/2006/04/13/validatingMicroformats>
([[名無しさん]] [WEAK[2006-10-05 13:07:55 +00:00]])

[19]
[CITE[“まず人にとって読みやすいこと、機械はその次”--Brian Suda氏が語るMicroformats - ZDNet Japan]] <http://japan.zdnet.com/sp/interview/story/0,2000056426,20262447,00.htm>
([[名無しさん]] [WEAK[2006-10-08 02:21:12 +00:00]])

[20]
>>19 [Q@en[Human readable first]] にもっと突っ込まないと・・・。
([[名無しさん]] [WEAK[2006-10-08 02:25:19 +00:00]])

[21]
[CITE[Why Microformats - Home]] <http://www.whymicroformats.com/pages/home>
([[名無しさん]] [WEAK[2006-10-20 00:54:18 +00:00]])

[22]
[CITE[rel-lint lint tool / validator for XFN, rel-tag and stuff - tools.microformatic.com]] <http://tools.microformatic.com/help/xhtml/rel-lint/>
([[名無しさん]])

[23]
[CITE[John Resig - Microformats in Firefox 3]] ([CODE[2007-02-01 22:12:34 +09:00]] 版) <http://ejohn.org/blog/microformats-in-firefox-3/>
([[名無しさん]] [WEAK[2007-02-01 13:16:15 +00:00]])

[24]
[CITE@ja[Microformatsの仕様がパブリックドメインに - 行動記録]] ([[IWAI, Masaharu]] 著, [CODE[2007-07-26 03:35:13 +09:00]] 版) <http://iwaim.beering.be/2007/07/microformats-copyright.html>
([[名無しさん]] [WEAK[2007-07-28 04:14:49 +00:00]])




[34] [CITE[IRC logs: freenode / #whatwg / 20090717]]
([TIME[2009-09-26 01:09:13 +09:00]] 版)
<http://krijnhoetmer.nl/irc-logs/whatwg/20090717#l-335>

[35] [CITE@en[html5 · Microformats Wiki]]
([TIME[2009-09-05 06:25:08 +09:00]] 版)
<http://microformats.org/wiki/html5>

[36] [CITE@en[process · Microformats Wiki]]
([TIME[2009-11-10 12:18:05 +09:00]] 版)
<http://microformats.org/wiki/process>

[37] [CITE@en[microformats 2.0 · Microformats Wiki]]
( ([TIME[2011-07-30 04:17:43 +09:00]] 版))
<http://microformats.org/wiki/microformats-2>

[38] [CITE[WDC - RDFa, Microdata, and Microformat Data Sets]]
( ([TIME[2014-03-10 09:25:02 +09:00]] 版))
<http://webdatacommons.org/structureddata/index.html>

[39] [CITE@en[microformats 2 · Microformats Wiki]]
( ([TIME[2014-04-23 13:51:18 +09:00]] 版))
<http://microformats.org/wiki/microformats2>

[40] [CITE[''''''[''''''uf-discuss'''''']'''''' Process to handle decentralized creation of new microformats?]]
( ([TIME[2006-10-02 19:39:59 +09:00]] 版))
<http://microformats.org/discuss/mail/microformats-discuss/2006-October/006019.html>

[41] [CITE@en-US[Parsing microformats in JavaScript | MDN]]
( ([TIME[2014-03-25 19:08:25 +09:00]] 版))
<https://developer.mozilla.org/en-US/docs/Parsing_microformats_in_JavaScript>

[54] [CITE[IRC logs: freenode / #whatwg / 20130306]]
( ([TIME[2013-03-18 20:29:40 +09:00]] 版))
<http://krijnhoetmer.nl/irc-logs/whatwg/20130306#l-119>

[60] [CITE[Linked Data and a new Browser API event]]
([TIME[2015-06-03 08:47:11 +09:00]] 版)
<https://lists.mozilla.org/pipermail/dev-platform/2015-June/010201.html>

[61] [CITE[Linked Data and a new Browser API event]]
([TIME[2015-06-05 02:20:04 +09:00]] 版)
<https://lists.mozilla.org/pipermail/dev-platform/2015-June/010249.html>

[62] [CITE@en[The microformats process · Microformats Wiki]]
([TIME[2015-07-07 10:47:15 +09:00]] 版)
<http://microformats.org/wiki/process>

[63] [CITE@en[microformats2 parsing specification · Microformats Wiki]]
([TIME[2016-10-05 10:11:43 +09:00]])
<http://microformats.org/wiki/microformats2-parsing>

[64] [CITE@en[microformats/microformats2-parsing: For collecting and handling issues with the microformats2 parsing specification: http://microformats.org/wiki/microformats2-parsing]]
([TIME[2016-10-05 10:12:26 +09:00]])
<https://github.com/microformats/microformats2-parsing>

[65] [CITE@en[microformats/tests: Microformats test suite]]
([TIME[2016-10-05 10:16:39 +09:00]])
<https://github.com/microformats/tests>

[69] [CITE@en[Post Type Discovery]]
([TIME[2017-03-01 16:28:51 +09:00]])
<https://www.w3.org/TR/2017/WD-post-type-discovery-20170301/>

[FIG(quote)[
[FIGCAPTION[
[70] [CITE@en[Micropub]]
([TIME[2017-05-21 23:18:57 +09:00]])
<https://micropub.net/draft/#json-syntax-p-1>
]FIGCAPTION]

> 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.

]FIG]


[FIG(quote)[
[FIGCAPTION[
[71] [CITE@en[Micropub]]
([TIME[2017-05-21 23:18:57 +09:00]])
<https://micropub.net/draft/#source-content-p-9>
]FIGCAPTION]

> 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''']'''.

]FIG]
