hcard-ja: Difference between revisions
Vantguarde (talk | contribs) (properties) |
Vantguarde (talk | contribs) No edit summary |
||
Line 57: | Line 57: | ||
=== プロパティについて === | === プロパティについて === | ||
<nowiki>*</nowiki> 'n' プロパティは、[[hcard#Implied_.22n.22_Optimization|'n' の省略ルール]]が適用できる場合は、任意 ({{optional}}) プロパティとなります。<br /> | <nowiki>*</nowiki> 'n' プロパティは、[[hcard#Implied_.22n.22_Optimization|'n' の省略ルール]]が適用できる場合は、任意 ({{optional}}) プロパティとなります。<br /> | ||
<nowiki>**</nowiki> tel - 電話番号は、[http://en.wikipedia.org/wiki/E.123 E.123] | <nowiki>**</nowiki> tel - 電話番号は、[http://en.wikipedia.org/wiki/E.123 E.123]に従って記述することができます ({{may}})。 | ||
=== 複数のプロパティ === | === 複数のプロパティ === | ||
Line 81: | Line 81: | ||
# その他のプロパティでは、要素の内容がプロパティの値となります。 | # その他のプロパティでは、要素の内容がプロパティの値となります。 | ||
=== | === 値の抜粋 === | ||
要素の一部だけがプロパティの値として当てはまるという場合があります。例えば、'tel' のように、サブタイプを持つようなプロパティです。このため、特別なclass名である "<code>value</code>" を用い、プロパティの値として適切なものを抽出します。家の電話番号をマークアップするhCardを例に取り説明しましょう。<br /> | |||
vCard: | vCard: | ||
Line 97: | Line 97: | ||
</nowiki></pre> | </nowiki></pre> | ||
このhCardは次のように表示されるでしょう。 | |||
<div style="border: thin dashed black; width: 95%; padding: .5em 1em;"> | <div style="border: thin dashed black; width: 95%; padding: .5em 1em;"> | ||
Line 108: | Line 108: | ||
<!-- note for Tantek: review/edit property casing from here on --> | <!-- note for Tantek: review/edit property casing from here on --> | ||
=== | === プロパティの例外 === | ||
vCardには、Webページの内容としてあまり意味をなさない、もしくは何らかのかたちですでに存在しているプロパティが存在しています。このセクションでは、そのようなプロパティに対し、何を行い、何を行わないかを説明します。 | |||
properties are defined in Sections 2.1.2, 2.1.3, 2.1.4, 3.6.3, 3.6.9 of [[rfc-2426|RFC2426]]. 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|RFC2426]], {{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 [[rfc-2426|RFC2426]] Section 3.6.9. | |||
=== Organization Contact Info === | === Organization Contact Info === |
Revision as of 16:21, 27 October 2007
hCard
hCardはvCard (RFC2426) のプロパティと値を用い、セマンティックなXHTMLで人や会社、組織や場所を表現するシンプルなフォーマットです。hCardはmicroformatsのひとつであり、(X)HTMLやAtom、RSSやその他のXMLに埋め込むことができます。
hCardを利用してみたいですか?ではまず、hCard creatorを使い、コンタクト情報を公開してください。または、hCard authoring tipsを読み、あなたのコンタクトページをhCardでマークアップしてください。
hCard仕様書
- 謝辞
- 謝辞のセクションをご覧ください。
権利に関する情報は、著作権と特許のセクションをご覧ください。
はじめに
vCard (RFC2426) は、Appleのアドレスブック機能をはじめさまざまなところで実装され、広く使われているフォーマットです。
さて、多くのブロガーは、自分の名前を出し友人や家族のことを書いています。人に関するこれらの情報にすこし構造を加えるだけで、アグリゲーターやスパイダーがその情報を取得し、vCardへ自動的に変換しアプリケーションで利用することができます。
この仕様は、hCard というフォーマットを定義します。これはvCardのプロパティや値を、XTHMLでそのまま表現しようとするものです。ブロガーはhCardをWebページに埋め込み、CSSで思うようにデザインすることができます。また、hCardはアプリケーションが他のファイルを参照することなしに、そのページから情報を取り出すことを可能とします。
hCard creatorを使い、出てきたHTMLコードをblogやWebサイトに貼り付け、コンタクト情報を公開してください。
The key words "MUST", "MUST NOT", "REQUIRED", "SHALL", "SHALL NOT", "SHOULD", "SHOULD NOT", "RECOMMENDED", "MAY", and "OPTIONAL" in this document are to be interpreted as described in RFC 2119.
フォーマット
基本情報
vCard (RFC2426) のプロパティ名や値が、hCardの基礎を構成します。
hCardは、vCardのオブジェクト/プロパティ名を小文字にしたものをclass属性の値として使用します。vCardオブジェクトの入れ子関係は、そのままXHTML要素の入れ子関係に置き換えられます。
ルートclass名
hCardのルートclass名は "vcard" です。"vcard" というclass名が指定された要素を、hCard と呼びます。
プロパティとサブプロパティ
hCardのプロパティは、hCard内の要素によって表されます。次にリストするプロパティをclass属性に指定することにより、プロパティを表現します。いくつかのプロパティはサブプロパティを持ちますが、これらはプロパティ要素の中にサブプロパティ要素を設け表現します。
プロパティリスト
hCardのプロパティは次の通りです。サブプロパティは括弧内に記述しています。
必須プロパティ
- fn
- n* (family-name, given-name, additional-name, honorific-prefix, honorific-suffix)
任意プロパティ
- nickname, sort-string
- 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
プロパティについて
* 'n' プロパティは、'n' の省略ルールが適用できる場合は、任意 (OPTIONAL) プロパティとなります。
** tel - 電話番号は、E.123に従って記述することができます (MAY)。
複数のプロパティ
ひとつのhCardは、一つ以上の 'fn'、'n'、'bday'、'tz'、'geo'、'sort-string'、'uid'、'class' を持つことはありません。これらのプロパティが複数ある場合は、最初の値を残し、他の値を無視することが推奨されます。
他のプロパティは複数あっても構いません (MAY)。この場合、複数あるプロパティはその数だけ新しいインスタンスを作成します。
"Human readable" か Machine readable" か
要素の内容のうち、人間に見えるテキスト情報が、そのプロパティの値を表します。しかし、いくつか例外が存在します。
もし <abbr>
要素がプロパティに用いられている場合、要素の内容ではなく <abbr>
要素の 'title
' 属性値がプロパティの値となります。要素の内容は、より人間にとって読みやすい値の表現となります。
もし <a>
要素が一つ以上のプロパティに用いられている場合、次のように処理される必要があります (MUST)。
- 'photo' プロパティと、他にURLを取るすべてのプロパティでは、
href="..."
属性の値がプロパティの値となります。 - その他のプロパティでは、要素の内容がプロパティの値となります。
もし <img>
要素が一つ以上のプロパティに用いられている場合、次のように処理される必要があります (MUST)。
- 'photo' プロパティと、他にURLを取るすべてのプロパティでは、
src="..."
属性の値がプロパティの値となります。 - その他のプロパティでは、
<img>
要素の 'alt
' 属性の値がプロパティの値となります。
もし <object>
要素が一つ以上のプロパティに用いられている場合、次のように処理される必要があります (MUST)。
- 'photo' プロパティと、他にURLを取るすべてのプロパティでは、
data="..."
属性の値がプロパティの値となります。 - その他のプロパティでは、要素の内容がプロパティの値となります。
値の抜粋
要素の一部だけがプロパティの値として当てはまるという場合があります。例えば、'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
プロパティの例外
vCardには、Webページの内容としてあまり意味をなさない、もしくは何らかのかたちですでに存在しているプロパティが存在しています。このセクションでは、そのようなプロパティに対し、何を行い、何を行わないかを説明します。
properties are defined in Sections 2.1.2, 2.1.3, 2.1.4, 3.6.3, 3.6.9 of RFC2426. 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 <title>
element in (X)HTML documents) to construct the NAME property, MAY output a PROFILE value of "VCARD
" per RFC2426, 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.
Organization Contact Info
If the "FN" and "ORG" properties have the exact same value (typically because they are set on the same element, e.g. class="fn org"), then the hCard represents contact information for a company, organization or place and SHOULD be treated as such. In this case the author also MUST NOT set the "N" property, or set it (and any sub-properties) explicitly to the empty string "". Thus parsers SHOULD handle the missing "N" property, in this case by implying empty values for all the "N" sub-properties.
Implied "n" Optimization
Although vCard requires that the "N" property be present, the authors of the vCard specification (RFC2426) themselves do not include "N" properties in their vCards near the end of the spec (p.38). This apparent contradiction can be resolved by simply allowing the "FN" property to imply "N" property values in typical cases provided in the spec. We do so explicitly in hCard.
If "FN" and "ORG" are not the same (see previous section), and the value of the "FN" property is exactly two words (separated by whitespace), and there is no explicit "N" property, then the "N" property is inferred from the "FN" property. For "FN"s with either one word see below, and for three or more, the author MUST explicitly markup the "N", except for the organization contact info case, see above for that.
- The content of "FN" is broken into two "words" separated by whitespace.
- The first word of the "FN" is interpreted as the "given-name" for the "N" property.
- The second/last word of the "FN" is interpreted as the "family-name" for the "N" property.
- Exception: If the first word ends in a "," comma OR if the second word is a single character (optionally followed by a period "."), then the first word (minus the comma at the end if any) is interpreted as the "family-name" and the second word is interpreted as the "given-name".
This allows simplification in the typical case of people stating:
- given-name (space) family-name
- family-name (comma) given-name
- family-name (comma) given-name-first-initial
- family-name (space) given-name-first-initial (optional period)
Implied "nickname" Optimization
Due to the prevalence of the use of nicknames/handles/usernames in actual content published on the Web (e.g. authors of reviews), hCard also has an implied "nickname" optimization to handle this.
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:
- The content of the "FN" MUST be treated as a "nickname" property value.
- Parsers SHOULD handle the missing "N" property by implying empty values for all the "N" sub-properties.
Though parsers MUST follow the implied nickname optimization, publishers SHOULD explicitly indicate the "nickname" even in this case, e.g.:
<span class="vcard"> <span class="fn nickname">daveman692</span> </span>
The hCard MAY have additional explicit "nickname" property values in addition to the implied nickname.
Implied "organization-name" Optimization
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".
Tags as Categories
Categories in hCard MAY 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.
type subproperty values
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:
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>
This could be displayed as:
Home (preferred): +1.415.555.1212
The following lists are informative. See RFC2426 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.
- 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, "other IANA registered address types"
XMDP Profile
See hcard-profile for the XMDP profile of hCard which contains the above complete list of properties, with references to their RFC2426 definitions.
Parsing Details
See hCard parsing.
Examples
This section is informative.
Sample vCard
Here is a sample vCard:
BEGIN:VCARD VERSION:3.0 N:Çelik;Tantek FN:Tantek Çelik URL:http://tantek.com/ ORG:Technorati END:VCARD
and an equivalent in hCard with various elements optimized appropriately. See hCard Example 1 for the derivation.
<div class="vcard"> <a class="url fn" href="http://tantek.com/">Tantek Çelik</a> <div class="org">Technorati</div> </div>
This hCard might be displayed as:
Tantek Çelik
Technorati
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.
More Examples
See hCard examples for more examples, including all examples from vCard RFC 2426 converted into hCard.
Examples in the wild
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 separate page.
See hCard Examples in the wild.
Implementations
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 separate page.
References
Normative References
- XHTML 1.0 SE
- vCard RFC2426
- ITU recommendation E.123 format of telephone numbers (chargeable document)
Informative References
- Contributed from http://developers.technorati.com/wiki/hCard.
- HTML reformatted version of RFC2426
- CSS1
- hCard term introduced and defined on the Web, 20040930
- FOO Camp 2004 Simple Semantic Formats presentation, 20040910
- XHTML 1.1
- Wikipedia summary of ITU-T Recommendation E.123 - for "TEL" values.
- Internet Mail Consortium Personal Data Interchange vCard and vCalendar
Specifications That Use hCard
Similar Work
Further Reading
- Digital Web Magazine: Microformats Primer by Garrett Dimon has a good intro to hCard
- Practical Microformats with hCard by Drew McLellan
- Local Search Engine Optimization using Microformats by Chris Silver Smith
- Andrew D. Hume has written a blog post on usable microformats which discusses hCard
- Jesse Skinner's introduction to hCard
- Shaun Shull's great post on How Microformats Affect SEO, including his hCard as an example.
- 24 Ways: Styling hCards with CSS A 24 Ways article - John Allsopp on styling hCard using CSS
- See also blogs discussing this page and the hCard tag
- RFC 4770 - Extensions for Instant Messaging
Related Pages
- hCard
- hCard cheatsheet - hCard properties
- hCard creator (feedback) - create your own hCard.
- hCard authoring - learn how to add hCard markup to your existing contact info.
- hCard examples - example usage of various classes within hCard.
- hCard examples in the wild - an on-going list of websites which use hCards.
- hcard-supporting-user-profiles - sites with user profiles marked up with hCard - a very common example.
- hCard FAQ - if you have any questions about hCard, check here.
- hCard implementations - websites or tools which either generate or parse hCards.
- hCard parsing - normative details of how to parse hCards.
- hCards and pages - semantic distinctions between different hCards on a page, and how to identify each
- hcard-user-interface - techniques and issues surrounding user-interfaces to author, publish, and display hCards.
- hCard profile - the XMDP profile for hCard
- hCard singular properties - an explanation of the list of singular properties in hCard.
- hCard tests - a wiki page with actual embedded hCards to try parsing.
- hCard advocacy - encourage others to use hCard
- hCard "to do" - jobs to do
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.
- hCard brainstorming - brainstorms and other explorations relating to hCard.
- hcard-parsing-brainstorming - brainstorming specific to parsing of hCard
- geo brainstorming
- hCard feedback - general feedback (as opposed to specific issues).
- hCard issues - specific issues with the specification.
- vCard errata - corrections to the vCard specification, which underlies hCard.
- vCard suggestions - suggested improvements to the vCard specification.
Insert non-formatted text here