hcard-ja: Difference between revisions

From Microformats Wiki
Jump to navigation Jump to search
(4. Format以下一部翻訳)
m (Replace <entry-title> with {{DISPLAYTITLE:}})
 
(54 intermediate revisions by 3 users not shown)
Line 1: Line 1:
<!-- english: 00:43, 30 Jan 2007 -->
{{DISPLAYTITLE:hCard 1.0}}
<h1>hCard</h1>
<!-- english: 2011-07-31T07:09:51 -->
<span class="vcard"><span class="fn">[[User:Tantek|Tantek Çelik]]</span> (<span class="role">Editor</span>, <span class="role">Author</span>)</span>, <span class="vcard"><span class="fn">[[User:Brian|Brian Suda]]</span> (<span class="role">Author</span>)</span>
----
<dfn style="font-style:normal;font-weight:bold">hCard</dfn> は、vCard ([[rfc-2426|RFC2426]]) のプロパティと値を利用して、[[semantic-xhtml|HTML]] で人や会社、組織や場所を表現する [[microformats-ja|microformat]] です。hCard は HTML や XHTML はもちろんのこと、Atom、RSS、その他の XML に埋め込むことができます。


hCardは個人、会社、組織、および場所を表現する、シンプルでオープンに配布されているフォーマットです。
[[hcard-ja#原案及び謝辞|謝辞のセクション]]をご覧ください。
[[semantic-xhtml|semantic XHTML]]の中のvCard標準([http://www.ietf.org/rfc/rfc2426.txt RFC2426])の属性(propreties)および属性値(values)と一対一に対応した表現となっています。
権利に関する情報は、[[hcard#Copyright|著作権]][[hcard#Patents|特許]]のセクションをご覧ください。


[[hcard|hCard]]を使い始めたいですか? 連絡先を書いて公開するのには[http://microformats.org/code/hcard/creator hCard creator]を使いましょう。または、[[hcard-authoring|hCard authoring tips]]に従って現在のあなたの連絡先のページにhCardマークアップを追加しましょう。
== 例 ==
 
hCards are most often used to represent people:
__TOC__
<source lang=html4strict>
 
<div class="vcard">
== Specification ==
<a class="url fn" href="http://tantek.com/">Tantek Çelik</a>
</div>
</source>
and organizations:
<source lang=html4strict>
<div class="vcard">
<a class="url fn org" href="http://microformats.org/">microformats.org</a>
</div>
</source>


=== Editor ===
The class  '''<code>vcard</code>''' is a ''[[hcard#Root_Class_Name|root class name]]'' that indicates the presence of an hCard. The classes '''<code>url</code>''', '''<code>fn</code>''', and '''<code>org</code>''' are ''properties'' that indicate aspects of the hCard. See the [[hcard#Property_List|list of properties]] for more.
[http://tantek.com/ Tantek Çelik], [http://technorati.com Technorati, Inc.]


=== Authors ===
'''Want to get started with writing an [[hcard|hCard]]?'''  Use the [http://microformats.org/code/hcard/creator hCard creator] to write up some contact information and publish it, or follow the [[hcard-authoring|hCard authoring tips]] to add hCard markup to your current contact page.
* [http://tantek.com/ Tantek Çelik], [http://technorati.com Technorati, Inc]
* [http://suda.co.uk/ Brian Suda]


=== Copyright ===
== 状態 ==
{{MicroFormatCopyrightStatement2004}}
hCard 1.0 is a microformats.org specification. Public discussion on hCard takes place on [[hcard-feedback]], the #microformats [[irc]] channel on irc.freenode.net, and [http://microformats.org/discuss/mail/microformats-discuss/ microformats-discuss mailing list].


=== Patents ===
=== 利用できる言語 ===
{{MicroFormatPatentStatement}}
The English version of this specification is the only normative version. For translations of this document see the [[#translations]] section.


=== Inspiration and Acknowledgments ===
=== 訂正事項と更新事項 ===
Thanks to: my good friend [http://vadim.com/ Vadim] who introduced me to vCard ''many'' years ago, and if I'd only paid more attention then, perhaps I could have helped a lot of people avoid wasting a lot of time reinventing various standards wheels.
Known errors and issues in this specification are corrected in [[hcard-issues-resolved|resolved]] and [[hcard-issues-closed|closed]] issues. Please check there before reporting [[hcard-issues|issues]].


== Introduction ==
The hCard 1.0.1 update is currently under development and incorporates known  errata corrections as well as the [[value-class-pattern]].
The vCard standard ([http://www.ietf.org/rfc/rfc2426.txt RFC2426]), has been broadly interoperably implemented (e.g. Apple's "Address Book" application built into MacOSX).


In addition, many bloggers identify themselves by name and discuss their friends and family.  With just a tad bit of structure, bloggers can discuss people in their blog(s) in such a way that spiders and other aggregators can retrieve this information, automatically convert them to vCards, and use them in any vCard application or service.
== 背景 ==
vCard ([[rfc-2426|RFC2426]]) は、Apple のアドレスブック機能をはじめ、さまざまなところで実装され、広く使われているフォーマットです。


This specification introduces the '''hCard''' format, which uses a 1:1 representation of the properties and values of the aforementioned vCard standard, in semantic XHTML.  Bloggers can both embed hCards directly in their web pages, and style them with CSS to make them appear as desired.  In addition, hCard enables applications to retrieve information directly from web pages without having to reference a separate file.
さて、多くのブロガーは自分の名前を出し、友人や家族のことを書いています。人に関するこれらの情報にすこし構造を加えるだけで、アグリゲーターやスパイダーはその情報を取得し、vCard へ自動的に変換しアプリケーションで利用することができます。


Use the [http://microformats.org/code/hcard/creator hCard creator] and copy the HTML code it generates to your blog or website to publish your contact info.
この仕様は、'''hCard''' というフォーマットを定義します。これは vCard のプロパティや値を、XTHML でそのまま表現しようとするものです。ブロガーは hCard を Web ページに埋め込み、CSS で思うようにデザインすることができます。また、hCard はアプリケーションが他のファイルを参照することなしに、そのページから情報を取り出すことを可能とします。


== Semantic XHTML Design Principles ==
== 適合性 ==
{{semantic-xhtml-design-principles}}
{{rfc-2119-intro-ja}}


== フォーマット ==
== フォーマット ==
=== 一般 ===
=== 基本情報 ===
vCard標準([http://www.ietf.org/rfc/rfc2426.txt RFC2426])が、hCardの基礎となっています。
vCard ([http://www.ietf.org/rfc/rfc2426.txt RFC2426]) のプロパティ名や値が、hCard の基礎となります。


hCardの基本フォーマットは、vCardのオブジェクト/プロパティ名を小文字にしたものをクラス名として使用します。vCardオブジェクト上での入れ子関係は、そのままXHTML要素の入れ子関係に置き換えられます。
hCard は、vCard のオブジェクト/プロパティ名を小文字にして、class 属性の値に使用します。vCard オブジェクトの入れ子関係は、そのまま HTML での入れ子関係に置き換えられます。


=== More Semantic Equivalents ===
=== ルート class 名 ===
プロパティの中には、HTML要素で表現するほうがより良くその意味を伝えるものがあります。以下のプロパティはそれに続く(X)HTMLで表現すべき(SHOULD)です。
hCard のルート class 名は "vcard" です。"vcard" という class 名が指定された要素を、''hCard'' と呼びます。
* vCardの<code>URL</code>は、hCardでは<code>class="vcard"</code>を含む要素の内部にある<code><a class="url" href="...">...</a></code>になります。
* 同様にvCardの<code>EMAIL</code>は、<code><nowiki><a class="email" href="mailto:...">...</a></nowiki></code>になります。
* vCardの<code>PHOTO</code>は、<code><img class="photo" src="..." alt="...の写真" /></code>または<code><object class="photo" data="..." type="...">...の写真</object></code>になります。
* vCardの<code>UID</code>は、単純に、hCardを特定するURL(またはEMAIL)へのもう一つの意味付けになります。


=== Singular vs. Plural Properties ===
=== プロパティとサブプロパティ ===
For properties which are singular (e.g. "N" and "FN"), the first descendant element with that class should take effect, any others being ignored.
hCard のプロパティは、hCard 内の要素によって表されます。次のリストにあるプロパティを class 属性に指定することにより、プロパティを表現します。いくつかのプロパティはサブプロパティを持ちますが、これらはプロパティ要素の中にサブプロパティ要素を設け表現します。


For properties which can be plural (e.g. "TEL"), each class instance should create a instance of that property.
=== プロパティリスト ===
hCard のプロパティは次の通りです。サブプロパティは括弧内に記述しています。


==== Singular properties ==== 
'''必須プロパティ'''
* '''fn'''
* <span id="property-list-n">'''n'''<sup style="font-size:smaller">[[#note1|1]]</sup></span>
** family-name
** given-name
** additional-name
** honorific-prefix
** honorific-suffix


Singular properties: "FN", "N", "BDAY", "TZ", "GEO", "SORT-STRING", "UID", "CLASS". 
任意プロパティ
* [[adr]]
** post-office-box
** extended-address
** street-address
** locality
** region
** postal-code
** country-name
** type
** value
* agent
* bday
* category
* class
* email (type, value)
* geo
** latitude
** longitude
* key
* label
* logo
* mailer
* nickname
* note
* org (organization-name, organization-unit)
* photo
* rev
* role
* sort-string
* sound
* <span id="property-list-tel">tel<sup style="font-size:smaller">[[#note2|2]]</sup> (type, value)</span>
* title
* tz
* uid
* url


All other properties are plural.  This list has been derived by analyzing the semantics of the individual properties in vCard RFC2426 and determining logically that they MUST be singular per their semantics. See [[hcard-singular-properties]] for explanations.
=== プロパティについて ===
<span id="note1">[[#property-list-n|1. ^]]</span>: 'n' プロパティは、[[hcard-ja#.22n.22_.E3.81.AE.E6.8E.A8.E6.B8.AC.E5.87.A6.E7.90.86|"n" の推測処理]]にあるルールに当てはまる場合は、任意 ({{optional}}) プロパティとなります。<br />
<span id="note2">[[#property-list-tel|2. ^]]</span>: tel - 電話番号は、[http://en.wikipedia.org/wiki/E.123 E.123]に従って記述することができます ({{may}})。文字の入った電話番号 (例: +1-555-FORMATS) は、数字で表記しなければなりません ({{must}})。<code>abbr</code> を利用して、ソフトウェアには数字から成る電話番号の方を伝えることもできます (<code><nowiki><abbr title="+15553676287">+1-555-FORMATS</abbr></nowiki></code>)。


==== Plural Properties Singularized ====


Since plural property names become their singular equivalents, even if the original plural property permitted only a single value with multiple components, those multiple components are represented each with their own singularly named property and the the property is effectively multivalued and subject to the above treatment of multivalued properties.
=== 複数のプロパティ ===
ひとつの hCard は、一つ以上の 'fn'、'n'、'bday'、'tz'、'geo'、'sort-string'、'uid'、'class'、'rev' を持つことはありません。これらのプロパティが複数ある場合は、最初の値を残し、他の値を無視するべきです ({{should}})。


=== Human vs. Machine readable ===
他のプロパティは複数あっても構いません ({{may}})。この場合、複数あるプロパティはその数だけ新しいインスタンスを作成します。


If an <code>&lt;abbr&gt;</code> element is used for a property, then the '<code>title</code>' attribute of the <code>&lt;abbr></code> element is the value of the property, instead of the contents of the element, which instead provide a human presentable version of the value. 
=== "Human readable" か "Machine readable" か ===
要素の内容のうち、人間に見えるテキスト情報が、そのプロパティの値を表します。しかし、いくつか例外が存在します。


If an <code>&lt;a&gt;</code> element is used for one or more properties, it must be treated as follows:
もし <code>&lt;abbr&gt;</code> 要素がプロパティに用いられている場合、要素の内容ではなく <code>&lt;abbr&gt;</code> 要素の '<code>title</code>' 属性値がプロパティの値となります。要素の内容は、より人間にとって読みやすい値の表現となります。
# For the "PHOTO" property and any other property that takes a URL as its value, the <code>href="..."</code> attribute provides the property value.
# For other properties, the element's content is the value of the property.


If an <code>&lt;img&gt;</code> element is used for one or more properties, it must be treated as follows:
もし <code>&lt;a&gt;</code> 要素が一つ以上のプロパティに用いられている場合、次のように処理される必要があります ({{must}})。
# For the "PHOTO" property and any other property that takes a URL as its value, the <code>src="..."</code> attribute provides the property value.
# 'photo' プロパティと、他に URL を取るすべてのプロパティでは、<code>href="..."</code> 属性の値がプロパティの値となります。
# For other properties, the <code>&lt;img></code> element's '<code>alt</code>' attribute is the value of the property.
# その他のプロパティでは、要素の内容がプロパティの値となります。


If an <code>&lt;object&gt;</code> element is used for one or more properties, it must be treated as follows:
もし <code>&lt;img&gt;</code> 要素が一つ以上のプロパティに用いられている場合、次のように処理される必要があります ({{must}})。
# For the "PHOTO" property and any other property that takes a URL as its value, the <code>data="..."</code> attribute provides the property value.
# 'photo' プロパティと、他に URL を取るすべてのプロパティでは、<code>src="..."</code> 属性の値がプロパティの値となります。
# For other properties, the element's content is the value of the property.
# その他のプロパティでは、<code>&lt;img&gt;</code> 要素の '<code>alt</code>' 属性の値がプロパティの値となります。


=== 値の抽出 ===
もし <code>&lt;object&gt;</code> 要素が一つ以上のプロパティに用いられている場合、次のように処理される必要があります ({{must}})。
# 'photo' プロパティと、他にURLを取るすべてのプロパティでは、<code>data="..."</code> 属性の値がプロパティの値となります。
# その他のプロパティでは、要素の内容がプロパティの値となります。


あるプロパティに一致する要素があっても、その要素の一部のみをそのプロパティの値として使用すべき場合があります。
=== 値の抜粋 ===
これは典型的には、TELに対するTYPE=HOMEや、TYPE=WORKのようにプロパティが下位の型を持つ場合におこります。
要素の一部だけがプロパティの値として当てはまるという場合があります。例えば、'tel' のように、サブタイプを持つようなプロパティです。このような場合は特別な class 名である "<code>value</code>" を用い、プロパティの値として適切なものをマークアップします。家の電話番号をマークアップする hCard を例に取り説明しましょう。<br />
このため、要素中のプロパティの値となる部分を指定するための特別のクラス名"<code>value</code>"が導入されています。
例:ここにhCardの自宅の電話番号をマークアップするためのhCardの一部があります。<br />


vCard:
vCard:
Line 96: Line 144:


hCard:
hCard:
<pre><nowiki>
<source lang=html4strict>
<span class="tel">
<span class="tel">
  <span class="type">home</span>:
  <span class="type">home</span>:
  <span class="value">+1.415.555.1212</span>
  <span class="value">+1.415.555.1212</span>
</span>
</span>
</nowiki></pre>
</source>


このhCardの断片は次のように表示することができます:
この hCard は次のように表示されるでしょう。


<div style="border: thin dashed black; width: 95%; padding: .5em 1em;">
<div style="border: thin dashed black; width: 95%; padding: .5em 1em;">
Line 112: Line 160:
</div>
</div>


=== 例外となるプロパティ ===
You may want to customize/localize the visible punctuation and not want to include it in what machines see. Use multiple class="value" elements which are then concatenated. E.g.


vCardには意味のないプロパティ、または、すでにウェブページのなかではすでにその意味が含まれているものがあります。このセクションでは、それらのプロパティについて、どうしたら良いか(または何をすべきでないか)を説明します。
<source lang=html4strict>
<span class="tel">
<span class="type">home</span>:
<span class="value">+1</span>.<span class="value">415</span>.<span class="value">555</span>.<span class="value">1212</span></span>
</span>
</source>


# '''NAME''', '''PROFILE''', '''SOURCE''', '''PRODID''', '''VERSION''' properties as defined in Sections 2.1.2, 2.1.3, 2.1.4, 3.6.3, 3.6.9 of RFC 2426.  Content publishers MUST NOT use these properties in their hCards, and as such, hCard consumers/parsers MUST IGNORE these properties if they are found within an hCard.  Instead. hCard to vCard converters SHOULD use the title of the page where the hCard is found (e.g. the <code><title></code> element in (X)HTML documents) to construct the NAME property, MAY output a PROFILE value of "<code>VCARD</code>" per RFC 2426, SHOULD use the URL of the page where the hCard is found to construct the SOURCE property (e.g. perhaps as a parameter to a URL/service that converts hCards to vCards), for an output vCard stream (e.g. a .vcf file). Only services/applications that output actual vCards should write the PRODID property, with the product identifier for said service/application.  Similarly only such services/applications should write the VERSION property, with the value "3.0" (without quotes) per RFC2426 Section 3.6.9.
No change in display, but the parsed hCard property value then becomes in vCard:


=== 組織の連絡先情報 ===
vCard:
<pre><nowiki>
"FN"と"ORG"プロパティが完全に同じ値を持つ場合、(典型的にはclass="fn org"のように、一つの要素に両方が指定されている場合)、そのhCardは、会社または組織の連絡先情報を表し、そのように取り扱われるべきです。この場合、hCardの作成者は、"N"プロパティを設定しないか、"N"プロパティとその全ての下位プロパティの値を空文字列に設定するかのどちらかでなくてはいけません(MUST)。パーザーは存在しない"N"プロパティを、"N"とその全ての下位プロパティの値を空文字列に設定したものとして解釈します。
TEL;TYPE=HOME:+14155551212
</nowiki></pre>
<!-- note for Tantek: review/edit property casing from here on -->


=== Implied "n" Optimization ===
=== プロパティの例外 ===
vCard には、Web ページの内容としてあまり意味をなさない、もしくは何らかのかたちですでに存在しているプロパティが存在しています。このセクションでは、そのようなプロパティに対し、何を行い、何を行わないかを説明します。


vCardでは"N"プロパティを必須となっていますが、vCard仕様(RFC 2426)の終わり近くにある著者達のvCardには"N"プロパティが含まれていません。(p.38) この明らかな矛盾は、仕様書上にある例のような場合に関して、単に"FN"プロパティの値から"N"プロパティの値を導くことができるようにすれば解決します。hCardでは明示的にそれを行います。
# vCard の '''NAME'''、'''PROFILE'''、'''SOURCE'''、'''PRODID'''、'''VERSION''' プロパティは [[rfc-2426|RFC2426]] のセクション2.1.2、2.1.3、2.1.4、3.6.3、3.6.9 で定義されていますが、hCard ではこれらのプロパティを使ってはいけません ({{must-not}})。hCard を利用するものは、もしこれらのプロパティが使われていた場合、それらを無視する必要があります ({{must}})。hCard から vCard へ変換するコンバーターは、これらのプロパティの代わりに hCard が埋め込まれている Web ページの情報を用いて、これらのプロパティを埋めることになります。まず、NAME プロパティは文書のタイトル ((X)HTML 文書の場合、<code>&lt;title&gt;</code> 要素) を用いることが推奨されます ({{should}})。PROFILE の値には、[[rfc-2426|RFC2426]] より "<code>VCARD</code>" の値を使うことができます ({{may}})。SOURCE プロパティには、ページの URL を用いることが推奨されます ({{should}})。hCard を vCard に変換するサービスならば、そのパラメーターとしても用いることができるでしょう。PRODID プロパティは、実際に vCard を出力するサービスやアプリケーションのみが記述するべきです ({{should}})。同様に、そのようなアプリケーションのみが、[[rfc-2426|RFC2426]] のセクション 3.6.9 に倣い、VERSION プロパティに "3.0" という値をつけるべきです ({{should}})。
もし"FN"と"ORG"がおなじでなく(全セクション参照)、"FN"プロパティの値が正確に2語(空白で区切られた)からなり、さらに明示的な"N"プロパティがない場合、"N"プロパティは"FN"から導出されます。"FN"が1語のみ、または3語以上の場合は、hCardの作成者は"N"を明示的にマークアップしなければなりません(MUST)。これについては、組織の連絡先情報の場合は例外となります。 [http://microformats.org/wiki/hcard-ja#Organization_Contact_Info 上記を参照]


# "FN"内容は空白により2語に分割されます。
=== 組織のコンタクト情報 ===
# "FN"の最初の語は"N"プロパティの"given-name"として解釈されます。
もし、"FN" "ORG"(organization;組織)プロパティが同じ値を持っている場合 (多くの場合、これらは class="fn org" と同じ要素に記述されています)、その hCard は会社や組織、場所のコンタクト情報を表すものとみなされます ({{should}})。このとき、作成者は "N" プロパティを記述することはできない ({{must-not}})、もしくは、"" と、空文字列を記述する必要があります。このため、パーサは "N" プロパティの省略をふまえた対応が推奨されます ({{should}})。この場合は、全ての "N" サブプロパティに空文字列があるものとみなします。
# "FN"の''2番目/最後''の語は"N"プロパティの"family-name"として解釈されます。
# 例外: もしも最初の語がカンマ","で終わっているか、 2番目の語が1文字(または後ろに余分のピリオド"."が付加されたもの)である場合、最初の語(最後にカンマがあればそれを取り除いたもの)"family-name"として、2番目の語は"given-name"として解釈されます。


これにより、人物の記述について、以下のような典型的なケースを単純化できます。
=== "N" の推測処理 ===
* given-name (space) family-name
vCard では "N" プロパティの記述が必須となっています。ところが vCard 仕様書 ([[rfc-2426|RFC2426]]) では、最後の方 (p.38) にある作者の vCard に "N" プロパティが含まれていません。この明らかな矛盾は、"FN" プロパティがこの仕様書のように、多くの場合において "N" プロパティの内容を暗示していると解釈すれば問題なくなります。というわけで、hCard では次のように規定します。
* family-name (comma) given-name
* family-name (comma) given-name-first-initial
* family-name (space) given-name-first-initial (optional period)


=== Implied "nickname" Optimization ===
もし "FN" と "ORG" プロパティが同じではなく、また "FN" の値がホワイトスペースで区切られた二つの単語のみで構成されており、さらに "N" プロパティが存在しない場合、"N" は "FN" プロパティの値から推測されます。もし "FN" が単語一つの場合は次の段落を、もし "FN" が三つ以上の単語である場合、作成者は "N" プロパティを明示的にマークアップする必要があります ({{must}})。しかし、組織名の場合はこのルールに当てはまりません。この場合は[[hcard-ja#.E7.B5.84.E7.B9.94.E3.81.AE.E3.82.B3.E3.83.B3.E3.82.BF.E3.82.AF.E3.83.88.E6.83.85.E5.A0.B1|組織のコンタクト情報]]で書かれているルールが適用されます。


Due to the prevalence of the use of nicknames/handles/usernames on the Web in actual content published on the Web (e.g. authors of [[hReview|reviews]]), hCard also has an implied "nickname" optimization to handle this.
# "FN" の内容は、ホワイトスペースで区切られた二つの "単語" に分解されます。
# "FN" の ''最初の'' 単語は、"N" プロパティの "given-name" として扱われます。
# "FN" の ''次の/最後の'' 単語は、"N" プロパティの "family-name" として扱われます。
# 例外: もし最初の単語がコンマ "," で終わる、または二つ目の単語が一文字 (または一文字とピリオド ".")であった場合、(もしあれば)コンマを抜いた最初の単語が "family-name" となり、二つ目の単語が "given-name" となります。


Similar to the implied "n" optimization, if "FN" and "ORG" are not the same, and the value of the "FN" property is exactly one word, and there is no explicit "N" property, then:
これらのルールにより、次の表記であれば簡単に名前を "FN" に記述することができます。
* given-name (スペース) family-name
* family-name (コンマ) given-name
* family-name (コンマ) given-name のイニシャル
* family-name (スペース) given-name のイニシャル (任意のピリオド)


# The content of the "FN" is treated as a "nickname" property value.
# Parsers should handle the missing "N" property by implying empty values for all the "N" sub-properties.


Note: the hCard may have additional explicit "nickname" property values in addition to the implied nickname.
<div style="border: thin dashed #600; width: 95%; padding: .5em 1em; background-color:#fee;">
注: 日本語で名前を記述するときには、この推測処理を利用することはできません。必ず given-name、family-name プロパティを利用し、明示的に名前を記述しなければなりません。


=== Implied "organization-name" Optimization ===
<pre><nowiki>
<div class="vcard">
  <span class="fn n">
    <span class="family-name">マイクロ</span>
    <span class="given-name">太郎</span>
  </span>
</div>
</nowiki></pre>
</div>


The "ORG" property has two subproperties, organization-name and organization-unit. Very often authors only publish the organization-name.  Thus if an "ORG" property has no "organization-name" inside it, then its entire contents MUST be treated as the "organization-name".
=== "nickname" の推測処理 ===
[[hReview|ユーザーレビュー]]の作者など、Web においてニックネームやハンドル、そしてユーザーネームは広く普及しています。そこで、hCard は "nickname" を推測する処理方法を規定しました。


=== Tags as Categories ===
"nickname" の推測機構は [[hcard-ja#.22n.22_.E3.81.AE.E6.8E.A8.E6.B8.AC.E5.87.A6.E7.90.86|"n" の推測処理]]と似ています。もし "FN" と "ORG" プロパティが同じではなく、また "FN" の値が単語一つで構成され、さらに "N" プロパティが存在しない場合、次のような処理がなされます。


Categories in hCard can optionally be represented by tags with [[rel-tag]]. When a category property is a rel-tag, the tag (as defined by rel-tag) is used for that category.
# "FN" プロパティの内容は "nickname" プロパティの値として解釈される必要があります ({{must}})
# パーサは存在しない "N" プロパティについて、"N" のサブプロパティに空の値を与えたと仮定し、処理することが推奨されます ({{should}})。


=== ルートクラス名 ===
パーサはニックネームの推測処理に従う必要がありますが ({{must}})、hCard の作成者は "nickname" プロパティを明示することが推奨されます ({{should}})。次のような場合においてもです。
hCardのルートとなるクラス名は"vcard"です。


=== プロパティリスト ===
<source lang=html4strict>
以下はhCardのプロパティのリストです。(下位のプロパティは、括弧の中に示します。)これらはvCardから取ったものです。
<span class="vcard">
<span class="fn nickname">daveman692</span>
</span>
</source>


* fn, n (family-name, given-name, additional-name, honorific-prefix, honorific-suffix), nickname, sort-string
また、hCard は推測されたニックネームに加え、明示的に記述された "nickname" プロパティを持つことができます ({{may}})
* url, email (type, value), tel (type, value)
* adr (post-office-box, extended-address, street-address, locality, region, postal-code, country-name, type, value), label
* geo (latitude, longitude), tz
* photo, logo, sound, bday
* title, role, org (organization-name, organization-unit)
* category, note
* class, key, mailer, uid, rev


=== Property Notes ===
=== "organization-name" の推測処理 ===
* tel - Authors MAY want to follow the E.123 standard for writing values of telephone numbers.
"ORG" プロパティは organization-name と organization-unit という二つのサブプロパティを持っています。しかしほとんどの場合、作成者は organization-name のみを記述します。よって、もし "ORG" プロパティが "organization-name" プロパティを内側に持たない場合、"ORG" プロパティの内容は必ず "organization-name" とみなされます ({{must}})。


==== type subproperty values ====
=== カテゴリーとしてのタグ ===
hCard のカテゴリーは [[rel-tag]] を用い、タグとして表現することも可能です ({{may}})。"category" プロパティが rel-tag である場合、そのタグはカテゴリーとして扱われます。


The 'type' subproperty in particular takes different values depending on which property it is a subproperty of.  These 'type' subproperty values are case-INSENSITIVE, meaning "Home" is the same as "home", as well as multivalued, e.g. a tel can be home and preferred:
=== 'type' サブプロパティの値 ===
'type' サブプロパティがとる値は、その親プロパティによって異なります。これらの 'type' サブプロパティの値は大文字小文字を区別しません (case-INSENSITIVE)。よって "Home" "home" と同じであり、その他の値と組み合わせた場合についても同様です。たとえば、家の電話番号で、かつ優先番号であるものは次のようになります。


vCard:
vCard:
Line 186: Line 248:


hCard:
hCard:
<pre><nowiki>
<source lang=html4strict>
<span class="tel"><span class="type">Home</span> (<span class="type">pref</span>erred):
<span class="tel"><span class="type">Home</span> (<span class="type">pref</span>erred):
  <span class="value">+1.415.555.1212</span>
  <span class="value">+1.415.555.1212</span>
</span>
</span>
</nowiki></pre>
</source>


This could be displayed as:
この例は次のように表示されるでしょう。


<div style="border: thin dashed black; width: 95%; padding: .5em 1em; ">
<div style="border: thin dashed black; width: 95%; padding: .5em 1em; ">
Line 200: Line 262:
</div>
</div>


The following lists are ''informative''. See RFC 2426 sections 3.2.1 ADR, 3.3.1 TEL, and 3.3.2 EMAIL respectively for normative type values.  They are repeated here for convenience. Default type subproperty value(s) is(are) first in each list and indicated in ALL CAPS.  types may be multivalued.
==== type with unspecified value ====
When the type of a property is specified, and there is no explicit value specified, then everything in the property except for the type is considered the value of the property. E.g.
 
<source lang=html4strict>
<span class="tel"><span class="type">Home</span> +1.415.555.1212</span>
</source>
 
is equivalent to:
 
<source lang=html4strict>
<span class="tel"><span class="type">Home</span><span class="value"> +1.415.555.1212</span></span>
</source>
 
And thus the type is "home" and the value is "+1.415.555.1212".
 
==== adr tel email types ====
次のリストは ''参考情報'' です。
 
規範的な type の値は [[rfc-2426|RFC2426]] のセクション 3.2.1 ADR、3.3.1 TEL、3.3.2 EMAIL を参照してください (ここでは利便性の為にコピーしています)。type サブプロパティのデフォルト値はリストの最初に並んでおり、また大文字で記述されています。また、これらの type は複数指定することができます。


* adr type: INTL, POSTAL, PARCEL, WORK, dom, home, pref
* adr type: INTL, POSTAL, PARCEL, WORK, dom, home, pref
* tel type: VOICE, home, msg, work, pref, fax, cell, video, pager, bbs, modem, [http://flickr.com/photos/tags/carcellphone/ car], isdn, pcs
* tel type: VOICE, home, msg, work, pref, fax, cell, video, pager, bbs, modem, [http://flickr.com/photos/tags/carcellphone/ car], isdn, pcs
* email type: INTERNET, x400, pref, "other IANA registered address types"
* email type: INTERNET, x400, pref, "IANA に登録された他のアドレスタイプ"


=== XMDP Profile ===


See [[hcard-profile]] for the [http://gmpg.org/xmdp XMDP] profile of hCard which contains the above complete list of properties, with references to their RFC 2426 definitions.
<div style="border: thin dashed #600; width: 95%; padding: .5em 1em; background-color:#fee;">
 
注: 日本語などの言語では、これらサブプロパティの多くを利用することができません。サブタイプはマークアップの制限上、その内容を訳すことができないからです。
=== Parsing Details ===
</div>
 
See [[hcard-parsing|hCard parsing]].


== Examples ==
=== プロファイル ===
hCard の <span id="XMDP_Profile">XMDP プロファイル</span> は http://microformats.org/profile/hcard にあります。


This section is informative.
hCard を使うコンテンツは、
<source lang=html4strict>
<link rel="profile" href="http://microformats.org/profile/hcard">
</source>
<source lang=html4strict>
このコンテンツは <a rel="profile" href="http://microformats.org/profile/hcard">hCard</a> を使っています。
</source>
又は
<source lang=html4strict>
<head rel="profile" href="http://microformats.org/profile/hcard">
</source>
などとしてこのプロファイルに触れるべきです({{should}})。
(profile 属性は HTML5 で廃止予定です)
なお、上にある方法を組み合わせてもかまいません。


=== Sample vCard ===
=== パース処理 ===
[[hcard-parsing|hCard parsing]] をご覧ください。


Here is a sample vCard:
== hCard の例 ==
このセクションは参考情報です。


=== vCard のサンプル ===
次にあるのは vCard のサンプルです。
<pre><nowiki>
<pre><nowiki>
BEGIN:VCARD
BEGIN:VCARD
Line 228: Line 324:
FN:Tantek Çelik
FN:Tantek Çelik
URL:http://tantek.com/
URL:http://tantek.com/
ORG:Technorati
END:VCARD
END:VCARD
</nowiki></pre>
</nowiki></pre>


and an equivalent in hCard with various elements optimized appropriately.  See [[hcard-example1-steps| hCard Example 1]] for the derivation.
この vCard を hCard で表現すると次のようになります。なお、推測処理ができるプロパティについては省略してあります。他の例は [[hcard-example1-steps| hCard Example 1]] をご覧ください。


<pre><nowiki>
<source lang=html4strict>
<div class="vcard">
<div class="vcard">
  <a class="url fn" href="http://tantek.com/">Tantek Çelik</a>
  <a class="url fn" href="http://tantek.com/">Tantek Çelik</a>
<div class="org">Technorati</div>
</div>
</div>
</nowiki></pre>
</source>


This hCard might be displayed as:
この hCard は次のように表示されるでしょう。
<div style="border: thin dashed black; width: 95%; padding: .5em 1em;">
<div style="border: thin dashed black; width: 95%; padding: .5em 1em;">
[http://tantek.com/ Tantek Çelik]<br />
[http://tantek.com/ Tantek Çelik]
Technorati
</div>
 
Note: hCard のマークアップにはバージョン情報が必要ありません。なぜならバージョンは &lt;head&gt; 要素の 'profile' 属性に記述されたプロファイルで定義されているからです。
 
=== hCard の実例 ===
次にあるのは [http://www.commerce.net/ Commercenet] のコンタクト情報です。この情報は hCard を用いて記述されているので、microformats をパース処理するツールにより見つけることができます。
 
<div class="vcard">
<div class="fn org">'''CommerceNet'''</div>
<div class="url">'''<nowiki>http://www.commerce.net/</nowiki>'''</div>
<div class="adr">'''<span class="type">Work</span>:'''
<div class="street-address">'''169 University Avenue'''</div>
<span class="locality">'''Palo Alto'''</span>, <span class="region">'''CA'''</span>&nbsp;&nbsp;<span class="postal-code">'''94301'''</span>
<div class="country-name">'''USA'''</div>
</div>
<div class="tel">'''<span class="type">Work</span> +1-650-289-4040'''</div>
<div class="tel">'''<span class="type">Fax</span> +1-650-289-4041'''</div>
<div>'''Email <span class="email"><nowiki>info@commerce.net</nowiki></span>'''</div>
</div>
 
The mark-up, emboldening omitted for clarity, with the following semantic improvements:
* <code>abbr</code> to expand abbreviations
* hyperlinking the org name with the url
 
<source lang=html4strict>
<div class="vcard">
  <a class="fn org url" href="http://www.commerce.net/">CommerceNet</a>
  <div class="adr">
    <span class="type">Work</span>:
    <div class="street-address">169 University Avenue</div>
    <span class="locality">Palo Alto</span>, 
    <abbr class="region" title="California">CA</abbr>&nbsp;&nbsp;
    <span class="postal-code">94301</span>
    <div class="country-name">USA</div>
  </div>
  <div class="tel">
  <span class="type">Work</span> +1-650-289-4040
  </div>
  <div class="tel">
    <span class="type">Fax</span> +1-650-289-4041
  </div>
  <div>Email:
  <span class="email">info@commerce.net</span>
  </div>
</div>
</div>
</source>
=== その他の例 ===
[[hcard-examples|hCard examples]] には vCard 仕様書 [[rfc-2426|RFC2426]] の例をすべて hCard にしたものをはじめ、もっとたくさんの例があります。
== 実世界での例 ==
このセクションは'''参考情報'''です。すでに世界には多くの hCard が存在しています。以前はこの仕様書で紹介していましたが、数が増えすぎてしまったため、別のページを用意しました。
[[hcard-examples-in-wild|hCard Examples in the wild]] で、実際に使われている hCard をご覧ください。
== 実装 ==
このセクションは'''参考情報'''です。前のセクションと同じく、hCard の実装についても別のページを用意しています。
[[hcard-implementations|hCard Implementations]] で、hCard の実装についてご覧ください。


Note: The version information is unnecessary in hCard markup directly since the version will be defined by the profile of hCard that is used/referred to in the 'profile' attribute of the <head> element.
== 記事 ==
このセクションは'''参考情報'''です。hCard の<span id="その他の読み物">他の読み物</span>は[[hcard-articles-ja|hCard の記事]]をご覧ください。


=== More Examples ===
== hCard ボタン ==
See [[hcard-examples|hCard examples]] for more examples, including all examples from vCard RFC 2426 converted into hCard.
hCard を使ったあなたのページに、次にあるボタンを貼り付けましょう。[[buttons#hCard]] には、最近追加されたボタンもあります。


== Examples in the wild ==
* http://www.crowley.nl/images/hcard.png (ミラー:http://www.davidjanes.com/images/mf_hcard.png)
This section is '''informative'''. The number of hCard examples in the wild has expanded far beyond the capacity of being kept inline in this specification. They have been moved to a [[hcard-examples-in-wild|separate page]].
* http://rbach.priv.at/2006/buttons/hcard.png
* http://rbach.priv.at/2006/buttons/hcard.png
* http://www.boogdesign.com/images/buttons/microformat_hcard.png
* CSS でボタン風にデザインすることもできます。[http://re-run.com/about/microformat-badges microformat badges @ re-run] をご覧ください。


See [[hcard-examples-in-wild|hCard Examples in the wild]].
== 著作権 ==
仕様の作成者である [[User:Tantek|Tantek Çelik]] および [[User:Brian|Brian Suda]] が、自分のページでパブリックドメインの声明を行っています。よって、この仕様はパブリックドメインです。


== Implementations ==
{{MicroFormatPublicDomainContributionStatement}}
This section is '''informative'''. The number of hCard implementations has also expanded beyond the capacity of keeping them inline. They have been moved to a [[hcard-implementations|separate page]].


See [[hcard-implementations|hCard Implementations]].
== 特許 ==
{{MicroFormatPatentStatement-ja}}


== References ==
== 参考文献 ==
=== Normative References ===
=== 規範的な参考文献 ===
* [http://www.w3.org/TR/2002/REC-xhtml1-20020801/ XHTML 1.0 SE]
* [http://www.w3.org/TR/2002/REC-xhtml1-20020801/ XHTML 1.0 SE]
* [http://www.ietf.org/rfc/rfc2426.txt vCard RFC2426]
* [http://www.ietf.org/rfc/rfc2426.txt vCard RFC2426]
* [http://www.itu.int/rec/T-REC-E.123-200102-I/en ITU recommendation E.123] format of telephone numbers (chargeable document)
* [http://www.itu.int/rec/T-REC-E.123-200102-I/en ITU 勧告 E.123] 電話番号フォーマット (有料)
* [[rfc-2119|RFC 2119]]


=== Informative References ===
=== その他の参考文献 ===
* Contributed from http://developers.technorati.com/wiki/hCard.
* [[hcard-history|hCard history]]
** [http://wiki.oreillynet.com/foocamp04/index.cgi?SimpleSemanticFormats FOO Camp 2004 Simple Semantic Formats presentation, 2004-09-10]
** [http://tantek.com/log/2004/09.html#hcard hCard term introduced and defined on the Web, 2004-09-30]
** Contributed from http://developers.technorati.com/wiki/hCard 2005-06-20
* [http://www.dante.net/np/ds/osi/9594-6-X.520.A4.ps X.520 in Postscript] ([http://72.14.253.104/search?q=cache:FjqzsFu4h20J:www.dante.net/np/ds/osi/9594-6-X.520.A4.ps HTMLization courtesy of Google Cache]) - vCard refers to ROLE as being "based on the X.520 Business Category explanatory attribute".
* [http://www.w3.org/2002/12/cal/rfc2426 HTML reformatted version of RFC2426]
* [http://www.w3.org/2002/12/cal/rfc2426 HTML reformatted version of RFC2426]
* [http://w3.org/TR/REC-CSS1 CSS1]
* [http://w3.org/TR/REC-CSS1 CSS1]
* [http://tantek.com/log/2004/09.html#hcard hCard term introduced and defined on the Web, 20040930]
* [http://wiki.oreillynet.com/foocamp04/index.cgi?SimpleSemanticFormats FOO Camp 2004 Simple Semantic Formats presentation, 20040910]
* [http://www.w3.org/TR/xhtml11 XHTML 1.1]
* [http://www.w3.org/TR/xhtml11 XHTML 1.1]
* [http://en.wikipedia.org/wiki/E.123 Wikipedia summary of ITU-T Recommendation E.123] - for "TEL" values.
* [http://en.wikipedia.org/wiki/E.123 Wikipedia summary of ITU-T Recommendation E.123] - for "TEL" values.
* [http://www.imc.org/pdi/ Internet Mail Consortium Personal Data Interchange vCard and vCalendar]
* [http://www.imc.org/pdi/ Internet Mail Consortium Personal Data Interchange vCard and vCalendar]
* [[iso-8601|ISO8601]]


==== Specifications That Use hCard ====
==== hCard を利用する仕様 ====
* [[adr]]
* [[adr]]
* [[geo]]
* [[geo]]
Line 284: Line 444:
* [[hreview|hReview]]
* [[hreview|hReview]]


==== Similar Work ====
==== hCard に似通っているもの ====
このセクションは'''参考情報'''です。
* [http://www.intertwingly.net/wiki/pie/PaceBetterPersonElement Atom PaceBetterPersonElement]
* [http://www.intertwingly.net/wiki/pie/PaceBetterPersonElement Atom PaceBetterPersonElement]
* [http://www.jabber.org/jeps/jep-0054.html JEP-0054: vcard-temp]
* [http://www.jabber.org/jeps/jep-0054.html JEP-0054: vcard-temp]


== Further Reading ==
== 原案及び謝辞 ==
* [http://www.digital-web.com/articles/microformats_primer/ Digital Web Magazine: Microformats Primer] by Garrett Dimon has a good intro to hCard
このセクションは'''参考情報'''です。
* [http://24ways.org/advent/practical-microformats-with-hcard Practical Microformats with hCard] by Drew McLellan
vCard を "何年も前に" 教えてくれた私の良き友人 [http://vadim.com/ Vadim] に感謝しています。ただ、もしあのときから vCard を気にかけていたら、もっと多くの車輪の再発明を防げたかもしれませんが。
* [http://www.naturalsearchblog.com/archives/2006/09/28/tips-for-local-search-engine-optimization-for-your-site/ Local Search Engine Optimization using Microformats] by Chris Silver Smith
* [http://thedredge.org/ Andrew D. Hume] has written a blog post on [http://usabletype.com/articles/2005/usable-microformats/ usable microformats] which discusses hCard
* [http://www.thefutureoftheweb.com/blog/2006/1/hcard Jesse Skinner's introduction to hCard]
* [http://blog.usweb.com/ Shaun Shull's] great post on [http://blog.usweb.com/archives/how-microformats-affect-search-engine-optimization-seo How Microformats Affect SEO], including his [[hcard|hCard]] as an example.
* [http://24ways.org/2006/styling-hcards-with-css 24 Ways: Styling hCards with CSS] A 24 Ways article - John Allsopp on styling hCard using CSS
* See also [http://www.technorati.com/cosmos/referer.html blogs discussing this page] and the [http://technorati.com/tags/hcard hCard tag]
* [http://www.rfc-editor.org/rfc/rfc4770.txt RFC 4770 - Extensions for Instant Messaging]


== Related Pages ==
== vCard における由来 ==
このセクションは ''参考情報'' です。
 
<div id="Semantic_XHTML_Design_Principles">[[hcard-design-methodology]] をご覧ください。</div>
 
=== 意味的に同等なもの ===
いくつかのプロパティにおいて、その意味を上手く表現できる HTML 要素が存在します。次に挙げるプロパティは、その例に書かれている (X)HTML で表現すべきです ({{should}})。
 
* vCard の <code>URL</code> は hCard にて <code><a class="url" href="...">...</a></code> と表します。このプロパティは、<code>class="vcard"</code> をつけた要素の中に書かれます。
* 同様に vCard の <code>EMAIL</code> は <code><nowiki><a class="email" href="mailto:...">...</a></nowiki></code> となります。
* vCard の <code>PHOTO</code> は <code><img class="photo" src="..." alt="Photo of ..." /></code>、または <code><object class="photo" data="..." type="...">Photo of ...</object></code> となります。
* vCard の <code>UID</code> hCard において、特定の URL (または EMAIL) といった、別の意味に置き換えられます。
 
=== 出現回数が一回のプロパティ ===
[[hcard-ja#.E3.83.97.E3.83.AD.E3.83.91.E3.83.86.E3.82.A3.E3.81.AE.E5.87.BA.E7.8F.BE.E5.9B.9E.E6.95.B0|プロパティの出現回数]]は、vCard RFC2426 で定義されるプロパティを一つずつ調べ、そのセマンティクスから一つのみでなければならない ({{must}}) を導き出したものです。[[hcard-singular-properties]] に解説があるので、そちらをご覧ください。
 
==== 単数化されたプロパティ ====
いくつかの複数系のプロパティ名が単数名化されています。このため、もし元となる複数形のプロパティが、複数のコンポーネントからなるひとつの値を取るものであっても、それらのコンポーネントは、単数名化されたプロパティを複数持つものとなります。
 
== 関連ページ ==
{{hcard-related-pages}}
{{hcard-related-pages}}
<nowiki>Insert non-formatted text here</nowiki>
 
[[Category:hCard]]
 
== 翻訳 ==
* [[hcard|english]](英語)
* [[hcard-fr|français]](フランス語)
* [[hcard-ru|Русский]](ロシア語)
* [[hcard-zh|汉语]](中国語)

Latest revision as of 16:26, 18 July 2020

Tantek Çelik (Editor, Author), Brian Suda (Author)


hCard は、vCard (RFC2426) のプロパティと値を利用して、HTML で人や会社、組織や場所を表現する microformat です。hCard は HTML や XHTML はもちろんのこと、Atom、RSS、その他の XML に埋め込むことができます。

謝辞のセクションをご覧ください。 権利に関する情報は、著作権特許のセクションをご覧ください。

hCards are most often used to represent people:

<div class="vcard">
 <a class="url fn" href="http://tantek.com/">Tantek Çelik</a>
</div>

and organizations:

<div class="vcard">
 <a class="url fn org" href="http://microformats.org/">microformats.org</a>
</div>

The class vcard is a root class name that indicates the presence of an hCard. The classes url, fn, and org are properties that indicate aspects of the hCard. See the list of properties for more.

Want to get started with writing an hCard? Use the hCard creator to write up some contact information and publish it, or follow the hCard authoring tips to add hCard markup to your current contact page.

状態

hCard 1.0 is a microformats.org specification. Public discussion on hCard takes place on hcard-feedback, the #microformats irc channel on irc.freenode.net, and microformats-discuss mailing list.

利用できる言語

The English version of this specification is the only normative version. For translations of this document see the #translations section.

訂正事項と更新事項

Known errors and issues in this specification are corrected in resolved and closed issues. Please check there before reporting issues.

The hCard 1.0.1 update is currently under development and incorporates known errata corrections as well as the value-class-pattern.

背景

vCard (RFC2426) は、Apple のアドレスブック機能をはじめ、さまざまなところで実装され、広く使われているフォーマットです。

さて、多くのブロガーは自分の名前を出し、友人や家族のことを書いています。人に関するこれらの情報にすこし構造を加えるだけで、アグリゲーターやスパイダーはその情報を取得し、vCard へ自動的に変換しアプリケーションで利用することができます。

この仕様は、hCard というフォーマットを定義します。これは vCard のプロパティや値を、XTHML でそのまま表現しようとするものです。ブロガーは hCard を Web ページに埋め込み、CSS で思うようにデザインすることができます。また、hCard はアプリケーションが他のファイルを参照することなしに、そのページから情報を取り出すことを可能とします。

適合性

この文書内の語句 "MUST", "MUST NOT", "REQUIRED", "SHALL", "SHALL NOT", "SHOULD", "SHOULD NOT", "RECOMMENDED", "MAY", and "OPTIONAL" は、RFC 2119 で記述される解釈で使われます。

フォーマット

基本情報

vCard (RFC2426) のプロパティ名や値が、hCard の基礎となります。

hCard は、vCard のオブジェクト/プロパティ名を小文字にして、class 属性の値に使用します。vCard オブジェクトの入れ子関係は、そのまま HTML での入れ子関係に置き換えられます。

ルート class 名

hCard のルート class 名は "vcard" です。"vcard" という class 名が指定された要素を、hCard と呼びます。

プロパティとサブプロパティ

hCard のプロパティは、hCard 内の要素によって表されます。次のリストにあるプロパティを class 属性に指定することにより、プロパティを表現します。いくつかのプロパティはサブプロパティを持ちますが、これらはプロパティ要素の中にサブプロパティ要素を設け表現します。

プロパティリスト

hCard のプロパティは次の通りです。サブプロパティは括弧内に記述しています。

必須プロパティ

  • fn
  • n1
    • family-name
    • given-name
    • additional-name
    • honorific-prefix
    • honorific-suffix

任意プロパティ

  • adr
    • post-office-box
    • extended-address
    • street-address
    • locality
    • region
    • postal-code
    • country-name
    • type
    • value
  • agent
  • bday
  • category
  • class
  • email (type, value)
  • geo
    • latitude
    • longitude
  • key
  • label
  • logo
  • mailer
  • nickname
  • note
  • org (organization-name, organization-unit)
  • photo
  • rev
  • role
  • sort-string
  • sound
  • tel2 (type, value)
  • title
  • tz
  • uid
  • url

プロパティについて

1. ^: 'n' プロパティは、"n" の推測処理にあるルールに当てはまる場合は、任意 (OPTIONAL) プロパティとなります。
2. ^: tel - 電話番号は、E.123に従って記述することができます (MAY)。文字の入った電話番号 (例: +1-555-FORMATS) は、数字で表記しなければなりません (MUST)。abbr を利用して、ソフトウェアには数字から成る電話番号の方を伝えることもできます (<abbr title="+15553676287">+1-555-FORMATS</abbr>)。


複数のプロパティ

ひとつの hCard は、一つ以上の 'fn'、'n'、'bday'、'tz'、'geo'、'sort-string'、'uid'、'class'、'rev' を持つことはありません。これらのプロパティが複数ある場合は、最初の値を残し、他の値を無視するべきです (SHOULD)。

他のプロパティは複数あっても構いません (MAY)。この場合、複数あるプロパティはその数だけ新しいインスタンスを作成します。

"Human readable" か "Machine readable" か

要素の内容のうち、人間に見えるテキスト情報が、そのプロパティの値を表します。しかし、いくつか例外が存在します。

もし <abbr> 要素がプロパティに用いられている場合、要素の内容ではなく <abbr> 要素の 'title' 属性値がプロパティの値となります。要素の内容は、より人間にとって読みやすい値の表現となります。

もし <a> 要素が一つ以上のプロパティに用いられている場合、次のように処理される必要があります (MUST)。

  1. 'photo' プロパティと、他に URL を取るすべてのプロパティでは、href="..." 属性の値がプロパティの値となります。
  2. その他のプロパティでは、要素の内容がプロパティの値となります。

もし <img> 要素が一つ以上のプロパティに用いられている場合、次のように処理される必要があります (MUST)。

  1. 'photo' プロパティと、他に URL を取るすべてのプロパティでは、src="..." 属性の値がプロパティの値となります。
  2. その他のプロパティでは、<img> 要素の 'alt' 属性の値がプロパティの値となります。

もし <object> 要素が一つ以上のプロパティに用いられている場合、次のように処理される必要があります (MUST)。

  1. 'photo' プロパティと、他にURLを取るすべてのプロパティでは、data="..." 属性の値がプロパティの値となります。
  2. その他のプロパティでは、要素の内容がプロパティの値となります。

値の抜粋

要素の一部だけがプロパティの値として当てはまるという場合があります。例えば、'tel' のように、サブタイプを持つようなプロパティです。このような場合は特別な class 名である "value" を用い、プロパティの値として適切なものをマークアップします。家の電話番号をマークアップする hCard を例に取り説明しましょう。

vCard:

TEL;TYPE=HOME:+1.415.555.1212

hCard:

<span class="tel">
 <span class="type">home</span>:
 <span class="value">+1.415.555.1212</span>
</span>

この hCard は次のように表示されるでしょう。

home: +1.415.555.1212

You may want to customize/localize the visible punctuation and not want to include it in what machines see. Use multiple class="value" elements which are then concatenated. E.g.

<span class="tel">
 <span class="type">home</span>:
 <span class="value">+1</span>.<span class="value">415</span>.<span class="value">555</span>.<span class="value">1212</span></span>
</span>

No change in display, but the parsed hCard property value then becomes in vCard:

vCard:

TEL;TYPE=HOME:+14155551212

プロパティの例外

vCard には、Web ページの内容としてあまり意味をなさない、もしくは何らかのかたちですでに存在しているプロパティが存在しています。このセクションでは、そのようなプロパティに対し、何を行い、何を行わないかを説明します。

  1. vCard の NAMEPROFILESOURCEPRODIDVERSION プロパティは RFC2426 のセクション2.1.2、2.1.3、2.1.4、3.6.3、3.6.9 で定義されていますが、hCard ではこれらのプロパティを使ってはいけません (MUST NOT)。hCard を利用するものは、もしこれらのプロパティが使われていた場合、それらを無視する必要があります (MUST)。hCard から vCard へ変換するコンバーターは、これらのプロパティの代わりに hCard が埋め込まれている Web ページの情報を用いて、これらのプロパティを埋めることになります。まず、NAME プロパティは文書のタイトル ((X)HTML 文書の場合、<title> 要素) を用いることが推奨されます (SHOULD)。PROFILE の値には、RFC2426 より "VCARD" の値を使うことができます (MAY)。SOURCE プロパティには、ページの URL を用いることが推奨されます (SHOULD)。hCard を vCard に変換するサービスならば、そのパラメーターとしても用いることができるでしょう。PRODID プロパティは、実際に vCard を出力するサービスやアプリケーションのみが記述するべきです (SHOULD)。同様に、そのようなアプリケーションのみが、RFC2426 のセクション 3.6.9 に倣い、VERSION プロパティに "3.0" という値をつけるべきです (SHOULD)。

組織のコンタクト情報

もし、"FN" と "ORG"(organization;組織)プロパティが同じ値を持っている場合 (多くの場合、これらは class="fn org" と同じ要素に記述されています)、その hCard は会社や組織、場所のコンタクト情報を表すものとみなされます (SHOULD)。このとき、作成者は "N" プロパティを記述することはできない (MUST NOT)、もしくは、"" と、空文字列を記述する必要があります。このため、パーサは "N" プロパティの省略をふまえた対応が推奨されます (SHOULD)。この場合は、全ての "N" サブプロパティに空文字列があるものとみなします。

"N" の推測処理

vCard では "N" プロパティの記述が必須となっています。ところが vCard 仕様書 (RFC2426) では、最後の方 (p.38) にある作者の vCard に "N" プロパティが含まれていません。この明らかな矛盾は、"FN" プロパティがこの仕様書のように、多くの場合において "N" プロパティの内容を暗示していると解釈すれば問題なくなります。というわけで、hCard では次のように規定します。

もし "FN" と "ORG" プロパティが同じではなく、また "FN" の値がホワイトスペースで区切られた二つの単語のみで構成されており、さらに "N" プロパティが存在しない場合、"N" は "FN" プロパティの値から推測されます。もし "FN" が単語一つの場合は次の段落を、もし "FN" が三つ以上の単語である場合、作成者は "N" プロパティを明示的にマークアップする必要があります (MUST)。しかし、組織名の場合はこのルールに当てはまりません。この場合は組織のコンタクト情報で書かれているルールが適用されます。

  1. "FN" の内容は、ホワイトスペースで区切られた二つの "単語" に分解されます。
  2. "FN" の 最初の 単語は、"N" プロパティの "given-name" として扱われます。
  3. "FN" の 次の/最後の 単語は、"N" プロパティの "family-name" として扱われます。
  4. 例外: もし最初の単語がコンマ "," で終わる、または二つ目の単語が一文字 (または一文字とピリオド ".")であった場合、(もしあれば)コンマを抜いた最初の単語が "family-name" となり、二つ目の単語が "given-name" となります。

これらのルールにより、次の表記であれば簡単に名前を "FN" に記述することができます。

  • given-name (スペース) family-name
  • family-name (コンマ) given-name
  • family-name (コンマ) given-name のイニシャル
  • family-name (スペース) given-name のイニシャル (任意のピリオド)


注: 日本語で名前を記述するときには、この推測処理を利用することはできません。必ず given-name、family-name プロパティを利用し、明示的に名前を記述しなければなりません。

<div class="vcard">
  <span class="fn n">
    <span class="family-name">マイクロ</span>
    <span class="given-name">太郎</span>
  </span>
</div>

"nickname" の推測処理

ユーザーレビューの作者など、Web においてニックネームやハンドル、そしてユーザーネームは広く普及しています。そこで、hCard は "nickname" を推測する処理方法を規定しました。

"nickname" の推測機構は "n" の推測処理と似ています。もし "FN" と "ORG" プロパティが同じではなく、また "FN" の値が単語一つで構成され、さらに "N" プロパティが存在しない場合、次のような処理がなされます。

  1. "FN" プロパティの内容は "nickname" プロパティの値として解釈される必要があります (MUST)。
  2. パーサは存在しない "N" プロパティについて、"N" のサブプロパティに空の値を与えたと仮定し、処理することが推奨されます (SHOULD)。

パーサはニックネームの推測処理に従う必要がありますが (MUST)、hCard の作成者は "nickname" プロパティを明示することが推奨されます (SHOULD)。次のような場合においてもです。

<span class="vcard">
 <span class="fn nickname">daveman692</span>
</span>

また、hCard は推測されたニックネームに加え、明示的に記述された "nickname" プロパティを持つことができます (MAY)。

"organization-name" の推測処理

"ORG" プロパティは organization-name と organization-unit という二つのサブプロパティを持っています。しかしほとんどの場合、作成者は organization-name のみを記述します。よって、もし "ORG" プロパティが "organization-name" プロパティを内側に持たない場合、"ORG" プロパティの内容は必ず "organization-name" とみなされます (MUST)。

カテゴリーとしてのタグ

hCard のカテゴリーは rel-tag を用い、タグとして表現することも可能です (MAY)。"category" プロパティが rel-tag である場合、そのタグはカテゴリーとして扱われます。

'type' サブプロパティの値

'type' サブプロパティがとる値は、その親プロパティによって異なります。これらの 'type' サブプロパティの値は大文字小文字を区別しません (case-INSENSITIVE)。よって "Home" は "home" と同じであり、その他の値と組み合わせた場合についても同様です。たとえば、家の電話番号で、かつ優先番号であるものは次のようになります。

vCard:

TEL;TYPE=HOME,PREF:+1.415.555.1212

hCard:

<span class="tel"><span class="type">Home</span> (<span class="type">pref</span>erred):
 <span class="value">+1.415.555.1212</span>
</span>

この例は次のように表示されるでしょう。

Home (preferred): +1.415.555.1212

type with unspecified value

When the type of a property is specified, and there is no explicit value specified, then everything in the property except for the type is considered the value of the property. E.g.

<span class="tel"><span class="type">Home</span> +1.415.555.1212</span>

is equivalent to:

<span class="tel"><span class="type">Home</span><span class="value"> +1.415.555.1212</span></span>

And thus the type is "home" and the value is "+1.415.555.1212".

adr tel email types

次のリストは 参考情報 です。

規範的な type の値は RFC2426 のセクション 3.2.1 ADR、3.3.1 TEL、3.3.2 EMAIL を参照してください (ここでは利便性の為にコピーしています)。type サブプロパティのデフォルト値はリストの最初に並んでおり、また大文字で記述されています。また、これらの type は複数指定することができます。

  • adr type: INTL, POSTAL, PARCEL, WORK, dom, home, pref
  • tel type: VOICE, home, msg, work, pref, fax, cell, video, pager, bbs, modem, car, isdn, pcs
  • email type: INTERNET, x400, pref, "IANA に登録された他のアドレスタイプ"


注: 日本語などの言語では、これらサブプロパティの多くを利用することができません。サブタイプはマークアップの制限上、その内容を訳すことができないからです。

プロファイル

hCard の XMDP プロファイルhttp://microformats.org/profile/hcard にあります。

hCard を使うコンテンツは、

<link rel="profile" href="http://microformats.org/profile/hcard">

このコンテンツは <a rel="profile" href="http://microformats.org/profile/hcard">hCard</a> を使っています。

又は

<head rel="profile" href="http://microformats.org/profile/hcard">

などとしてこのプロファイルに触れるべきです(SHOULD)。 (profile 属性は HTML5 で廃止予定です) なお、上にある方法を組み合わせてもかまいません。

パース処理

hCard parsing をご覧ください。

hCard の例

このセクションは参考情報です。

vCard のサンプル

次にあるのは vCard のサンプルです。

BEGIN:VCARD
VERSION:3.0
N:Çelik;Tantek
FN:Tantek Çelik
URL:http://tantek.com/
END:VCARD

この vCard を hCard で表現すると次のようになります。なお、推測処理ができるプロパティについては省略してあります。他の例は hCard Example 1 をご覧ください。

<div class="vcard">
 <a class="url fn" href="http://tantek.com/">Tantek Çelik</a>
</div>

この hCard は次のように表示されるでしょう。

Tantek Çelik

Note: hCard のマークアップにはバージョン情報が必要ありません。なぜならバージョンは <head> 要素の 'profile' 属性に記述されたプロファイルで定義されているからです。

hCard の実例

次にあるのは Commercenet のコンタクト情報です。この情報は hCard を用いて記述されているので、microformats をパース処理するツールにより見つけることができます。

CommerceNet
http://www.commerce.net/
Work:
169 University Avenue

Palo Alto, CA  94301

USA
Work +1-650-289-4040
Fax +1-650-289-4041
Email

The mark-up, emboldening omitted for clarity, with the following semantic improvements:

  • abbr to expand abbreviations
  • hyperlinking the org name with the url
<div class="vcard">
  <a class="fn org url" href="http://www.commerce.net/">CommerceNet</a>
  <div class="adr">
    <span class="type">Work</span>:
    <div class="street-address">169 University Avenue</div>
    <span class="locality">Palo Alto</span>,  
    <abbr class="region" title="California">CA</abbr>&nbsp;&nbsp;
    <span class="postal-code">94301</span>
    <div class="country-name">USA</div>
  </div>
  <div class="tel">
   <span class="type">Work</span> +1-650-289-4040
  </div>
  <div class="tel">
    <span class="type">Fax</span> +1-650-289-4041
  </div>
  <div>Email: 
   <span class="email">info@commerce.net</span>
  </div>
</div>

その他の例

hCard examples には vCard 仕様書 RFC2426 の例をすべて hCard にしたものをはじめ、もっとたくさんの例があります。

実世界での例

このセクションは参考情報です。すでに世界には多くの hCard が存在しています。以前はこの仕様書で紹介していましたが、数が増えすぎてしまったため、別のページを用意しました。

hCard Examples in the wild で、実際に使われている hCard をご覧ください。

実装

このセクションは参考情報です。前のセクションと同じく、hCard の実装についても別のページを用意しています。

hCard Implementations で、hCard の実装についてご覧ください。

記事

このセクションは参考情報です。hCard の他の読み物hCard の記事をご覧ください。

hCard ボタン

hCard を使ったあなたのページに、次にあるボタンを貼り付けましょう。buttons#hCard には、最近追加されたボタンもあります。

著作権

仕様の作成者である Tantek Çelik および Brian Suda が、自分のページでパブリックドメインの声明を行っています。よって、この仕様はパブリックドメインです。

Public Domain Contribution Requirement. Since the author(s) released this work into the public domain, in order to maintain this work's public domain status, all contributors to this page agree to release their contributions to this page to the public domain as well. Contributors may indicate their agreement by adding the public domain release template to their user page per the Voluntary Public Domain Declarations instructions. Unreleased contributions may be reverted/removed.

特許

この仕様はロイヤリティーフリーの特許方針に帰属するものです。特許方針に関してはW3C Patent PolicyRFC3667RFC3668をご覧下さい。

参考文献

規範的な参考文献

その他の参考文献

hCard を利用する仕様

hCard に似通っているもの

このセクションは参考情報です。

原案及び謝辞

このセクションは参考情報です。 vCard を "何年も前に" 教えてくれた私の良き友人 Vadim に感謝しています。ただ、もしあのときから vCard を気にかけていたら、もっと多くの車輪の再発明を防げたかもしれませんが。

vCard における由来

このセクションは 参考情報 です。

hcard-design-methodology をご覧ください。

意味的に同等なもの

いくつかのプロパティにおいて、その意味を上手く表現できる HTML 要素が存在します。次に挙げるプロパティは、その例に書かれている (X)HTML で表現すべきです (SHOULD)。

  • vCard の URL は hCard にて <a class="url" href="...">...</a> と表します。このプロパティは、class="vcard" をつけた要素の中に書かれます。
  • 同様に vCard の EMAIL<a class="email" href="mailto:...">...</a> となります。
  • vCard の PHOTO<img class="photo" src="..." alt="Photo of ..." />、または <object class="photo" data="..." type="...">Photo of ...</object> となります。
  • vCard の UID hCard において、特定の URL (または EMAIL) といった、別の意味に置き換えられます。

出現回数が一回のプロパティ

プロパティの出現回数は、vCard RFC2426 で定義されるプロパティを一つずつ調べ、そのセマンティクスから一つのみでなければならない (MUST) を導き出したものです。hcard-singular-properties に解説があるので、そちらをご覧ください。

単数化されたプロパティ

いくつかの複数系のプロパティ名が単数名化されています。このため、もし元となる複数形のプロパティが、複数のコンポーネントからなるひとつの値を取るものであっても、それらのコンポーネントは、単数名化されたプロパティを複数持つものとなります。

関連ページ

The hCard specification is a work in progress. As additional aspects are discussed, understood, and written, they will be added. These thoughts, issues, and questions are kept in separate pages.

翻訳