hcard-user-interface

(Difference between revisions)

Jump to: navigation, search
(Additional user interface: find full address from postal code)
Current revision (23:35, 30 September 2011) (view source)
(Additional user interface: context menu ideas, skype integration, anniversary too)
 
(11 intermediate revisions not shown.)
Line 1: Line 1:
<h1> hCard User Interface </h1>
<h1> hCard User Interface </h1>
 +
{{TOC-right}}
This page is for techniques and issues surrounding [[user-interface|user-interfaces]] to author, publish, and display [[hcard|hCards]].
This page is for techniques and issues surrounding [[user-interface|user-interfaces]] to author, publish, and display [[hcard|hCards]].
-
 
-
__TOC__
 
== Authors ==
== Authors ==
* [http://allinthehead.com/ Drew McLellan]
* [http://allinthehead.com/ Drew McLellan]
* [http://tantek.com/ Tantek Çelik], [http://technorati.com Technorati, Inc]
* [http://tantek.com/ Tantek Çelik], [http://technorati.com Technorati, Inc]
-
 
-
== Contributors ==
 
-
* ...
 
== Single Input Field for Names ==
== Single Input Field for Names ==
-
 
When capturing name data that is later to be presented as a hCard, it's important that the data is collected at the highest fidelity possible. As not all names are suitable for hCard's implied-n optimisation (and therefore can't be output as <code>fn</code>, with <code>n</code> omitted), capturing component parts of the name individually enables the proper construction on <code>n</code> when generating the hCard.
When capturing name data that is later to be presented as a hCard, it's important that the data is collected at the highest fidelity possible. As not all names are suitable for hCard's implied-n optimisation (and therefore can't be output as <code>fn</code>, with <code>n</code> omitted), capturing component parts of the name individually enables the proper construction on <code>n</code> when generating the hCard.
Line 28: Line 23:
== Additional user interface ==
== Additional user interface ==
-
 
Some examples of additional user interface for hCard. Note that most of these actions should be applicable to all instances of the microformat on the page at once (e.g. export all contacts), of for a selection of instances (e.g. export selected contacts), or one just one specific instance (e.g. export contact XYZ).
Some examples of additional user interface for hCard. Note that most of these actions should be applicable to all instances of the microformat on the page at once (e.g. export all contacts), of for a selection of instances (e.g. export selected contacts), or one just one specific instance (e.g. export contact XYZ).
-
* [[hcard|hCard]]:
+
'''context menu access''': right-clicking (control-clicking) on a specific contact could provide additional menu items (based on the below) that act on that specific contact.
-
** "Add to Address Book" (convert the hCard to a vCard (.vcf) and pass it onto the OS to automatically open/incorporate into the user's preferred local address book application)
+
 
-
** add to Gmail, Yahoo Mail, Hotmail address book (etc.)
+
=== address book integration ===
-
** send to Bluetooth, for quick transfer of contact info from the web to a cell phone.
+
* "Save Contact" / "Add to Address Book" (convert the hCard to a vCard (.vcf) and pass it onto the OS to automatically open/incorporate into the user's preferred local address book application)
-
** export as text/ [[csv|comma-separated-variables]] (CSV) to allow editing, sorting and/ or import into spreadsheets/ databases, etc. (or concatenate to existing file)
+
* add to Gmail, Yahoo Mail, Hotmail address book (etc.)
-
** display contact details in an on-screen or downloadable [[semacode]] (to allow them to be read by mobile devices)
+
 
-
** If a <code>tel</code> (phone number) having type <code>home</code>, <code>work</code> or <code>cell</code> is present, provide options to dial it (NB applies to one number at a time only; except for possible conference-call uses) directly, or via
+
=== desktop to phone transfer ===
-
*** built-in modem
+
* send to Bluetooth, for quick transfer of contact info from the web to a cell phone.
-
*** bluetooth command to a paired device (e.g. cell phone)
+
* display contact details in an on-screen or downloadable [[semacode]], [[qr_code]] or other [[2d_barcodes]] (to allow them to be read by mobile devices)
-
*** default telephony app (e.g. skype-out)
+
 
-
** If a <code>tel</code> (phone number) having type <code>home</code>, <code>work</code> or <code>cell</code> is present, provide options to send MMS:
+
=== telephony integration ===
-
***directly
+
* If a <code>tel</code> (phone number) having type <code>home</code>, <code>work</code> or <code>cell</code> is present, provide options to dial it (NB applies to one number at a time only; except for possible conference-call uses) directly, or via
-
***using on-line service
+
** "Call Contact: {fn} {tel}" - e.g. if it's a browser running on a phone.
-
*** bluetooth command to a paired device (e.g. cell phone)
+
** built-in modem
-
** If a <code>tel</code> of type <code>fax</code> is present, provide options to send a fax to it via:
+
** bluetooth command to a paired device (e.g. cell phone)
-
*** efax online service
+
** default telephony app (e.g. skype-out)
-
*** built-in fax modem
+
* If a <code>tel</code> (phone number) having type <code>home</code>, <code>work</code> or <code>cell</code> is present, provide options to send MMS:
-
** If a birth-date is present, treat it as a recurring hCalendar event.
+
**directly
-
** Given a postal code (or other partial address) fetch the full, canonical postal address for the relevant authority's website (e.g. [http://postcode.royalmail.com/portal/rm/postcodefinder]. If no country is defined, used the user's locality as the default.
+
**using on-line service
 +
** bluetooth command to a paired device (e.g. cell phone)
 +
=== skype ===
 +
* If there's a "skype:" or "callto:" URL, then provide an option to:
 +
** "Skype Contact: {fn} {tel}" - e.g. if there is Skype installed on the system.
 +
=== fax integration ===
 +
* If a <code>tel</code> of type <code>fax</code> is present, provide options to send a fax to it via:
 +
** efax online service
 +
** built-in fax modem
 +
=== birthday planning ===
 +
* If a <code>bday</code> is present, treat it as a recurring hCalendar event.
 +
** "Save Contact Birthday: {fn} {bday}" - create an ics repeating event of the birthday.
 +
=== anniversary planning ===
 +
* If an <code>anniversary</code> (vCard4, hCard 2.0) is present, treat it as a recurring hCalendar event.
 +
** "Save Contact Anniversary: {fn} {bday}" - create an ics repeating event of the anniversary.
 +
 
 +
=== address canonicalization ===
 +
* Given a postal code (or other partial address) fetch the full, canonical postal address for the relevant authority's website (e.g. [http://postcode.royalmail.com/portal/rm/postcodefinder]). If no country is defined, used the user's locality as the default.
 +
 
 +
=== data export ===
 +
* export as text/ [[csv|comma-separated-values]] (CSV) to allow editing, sorting and/ or import into spreadsheets/ databases, etc. (or concatenate to existing file)
 +
 
 +
=== data import ===
 +
* load hCard data from a URL using Yahoo's YQL via jQuery http://shapeshed.com/journal/populating_forms_with_yql_jquery_and_microformats
-
==See also==
+
==see also==
{{hcard-related-pages}}
{{hcard-related-pages}}

Current revision

hCard User Interface

Contents

This page is for techniques and issues surrounding user-interfaces to author, publish, and display hCards.

Authors

Single Input Field for Names

When capturing name data that is later to be presented as a hCard, it's important that the data is collected at the highest fidelity possible. As not all names are suitable for hCard's implied-n optimisation (and therefore can't be output as fn, with n omitted), capturing component parts of the name individually enables the proper construction on n when generating the hCard.

Sometimes, however, constraints require a name be collected with a single field. Once such example is common blog CMSs (WordPress, TextPattern) that use a single database field to store the name against each post comment. In such cases it is always desirable to find a way to collect the name with higher fidelity. However, if this simply cannot be done, the implementer could chose to attempt to best-guess the component parts of the name to form a valid n.

One suggested 'best-guess' algorithm might be:

  1. If the name is one word, attempt implied nickname optimization
  2. If the name is two words, attempt implied n optimization
  3. For three or more words
    1. Perform a lookup against known sub-name combinations (e.g. 'Sarah Jane', 'Vander Wal')
    2. Apply the grammar "(honorific-prefix) given-name additional-name(s) family-name (honorific-suffix)"

The principal behind this suggestion is that it's better to make a good guess and potentially miscategorise an ambiguous name component than to generate an invalid hCard.

Additional user interface

Some examples of additional user interface for hCard. Note that most of these actions should be applicable to all instances of the microformat on the page at once (e.g. export all contacts), of for a selection of instances (e.g. export selected contacts), or one just one specific instance (e.g. export contact XYZ).

context menu access: right-clicking (control-clicking) on a specific contact could provide additional menu items (based on the below) that act on that specific contact.

address book integration

desktop to phone transfer

telephony integration

skype

fax integration

birthday planning

anniversary planning

address canonicalization

data export

data import

see also

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-user-interface was last modified: Friday, September 30th, 2011

Views