<?xml version="1.0" encoding="US-ASCII"?>
<!-- This template is for creating an Internet Draft using xml2rfc,
     which is available here: http://xml.resource.org. -->
<!DOCTYPE rfc SYSTEM "rfc2629.dtd" [

<!ENTITY RFC2119    PUBLIC '' 'http://xml.resource.org/public/rfc/bibxml/reference.RFC.2119.xml'>
<!ENTITY RFC2425    PUBLIC '' 'http://xml.resource.org/public/rfc/bibxml/reference.RFC.2425.xml'>
<!ENTITY RFC2426    PUBLIC '' 'http://xml.resource.org/public/rfc/bibxml/reference.RFC.2426.xml'>
<!ENTITY RFC2739    PUBLIC '' 'http://xml.resource.org/public/rfc/bibxml/reference.RFC.2739.xml'>
<!ENTITY RFC4770    PUBLIC '' 'http://xml.resource.org/public/rfc/bibxml/reference.RFC.4770.xml'>
<!ENTITY RFC5234    PUBLIC '' 'http://xml.resource.org/public/rfc/bibxml/reference.RFC.5234.xml'>
<!ENTITY RFC6350    PUBLIC '' 'http://xml.resource.org/public/rfc/bibxml/reference.RFC.6350.xml'>
<!ENTITY OMA-CAB    PUBLIC '' 'http://xml.resource.org/public/rfc/bibxml3/reference.I-D.draft-ietf-vcarddav-oma-cab-extensions-00.xml'>

]>
<?xml-stylesheet type='text/xsl' href='http://xml.resource.org/authoring/rfc2629.xslt' ?>
<?rfc toc="yes" ?>
<?rfc tocompact="no" ?>
<?rfc tocindent="no" ?>
<?rfc comments="yes" ?>
<?rfc inline="yes" ?>
<?rfc symrefs="yes" ?>
<?rfc sortrefs="yes"?>
<?rfc iprnotified="no" ?>
<?rfc strict="yes" ?>
<?rfc compact="yes"?>
<?rfc subcompact="yes"?>

<rfc
  category="std"
  ipr="trust200902"
  docName="draft-ietf-vcarddav-social-networks-00">

  <front>
    <title abbrev="vCard-Extension">
    vCard Format Extension : To Represent the Social Network Information of an Individual
    </title>

    <author initials="R." surname="George" fullname="Robins George">
      <organization>Huawei Technologies</organization>
      <address>
        <postal>
          <street />
          <city>Bangalore</city>
          <region>Karnataka</region>
          <code>560071</code>
          <country>India</country>
        </postal>
        <phone>+91-080-41117676</phone>
        <email>robinsgv@gmail.com</email>
      </address>
    </author>

    <author initials='B.' surname="Leiba" fullname='Barry Leiba'>
      <organization>Huawei Technologies</organization>
      <address>
        <phone>+1 646 827 0648</phone>
        <email>barryleiba@computer.org</email>
        <uri>http://internetmessagingtechnology.org/</uri>
      </address>
    </author>

    <author initials="K." surname="Li" fullname="Kepeng Li">
      <organization>Huawei Technologies</organization>
      <address>
        <postal>
          <street>Huawei Base, Bantian, Longgang District</street>
          <city>Shenzhen</city>
          <region>Guangdong</region>
          <code>518129</code>
          <country>P. R. China</country>
        </postal>
        <phone>+86-755-28974289</phone>
        <email>likepeng@huawei.com</email>
      </address>
    </author>
    
    <author initials="A." surname="Melnikov" fullname="Alexey Melnikov">
      <organization abbrev="Isode Limited">Isode Limited</organization>
      <address>
        <postal>
          <street>5 Castle Business Village</street>
          <city>36 Station Road</city>
          <region>Hampton</region>
          <code>Middlesex  TW12 2BX</code>
          <country>UK</country>
        </postal>
        <email>Alexey.Melnikov@isode.com</email>
        <uri>http://www.melnikov.ca/</uri>
      </address>
    </author>

    <date year="2011" />

    <area>Applications</area>
    <workgroup>vcarddav</workgroup>

    <abstract>
      <t>
      This document defines an extension to the vCard data format
      for representing and exchanging a variety of social network
      information.
      </t>
    </abstract>
  </front>

  <middle>
    <section anchor="intro" title="Introduction">
<t>
  <cref>
  Barry:
  This version is still very incomplete.
  I have included some comments in the appropriate places with the XML "cref" element, so they will show up within "[[ ]]", as this one does.
  I am still working on these, and I also want to put in a lot more properties (see Peter's comment, below).  
  </cref>
</t>
      <t>
        As social networking has become common, it has become clear that users would
        like to include information in their vCards <xref target='RFC6350' />
        about their social networks.
        Well organized social network information allows the vCard owner
        to share his profile information and to import or subscribe to profile information
        of others on joining a new network.
      </t>
      <t>
        This extension takes some property definitions from the vCard OMA CAB Extensions
        <xref target="I-D.ietf-vcarddav-oma-cab-extensions"/>, and that document should
        be considered as a prerequisite to this one.
      </t>

      <section anchor="terms" title="Terminology Used in This Document">
        <t>
          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 <xref target='RFC2119' />.
          These terms take their normative meaning only when presented in ALL CAPS.
        </t>

        <t>        
          Syntax specifications shown here use the augmented Backus-Naur Form (ABNF)
          as described in <xref target="RFC5234"/>, and are specified as in the base
          vcard specification <xref target='RFC6350' />.
        </t>
      </section>
    </section>

    <section anchor="SN_Properties" title="Social Network Properties">
      <t>
        These properties are related to sharing social-network information.
        The basis for some of these properties came from the
        "Friend of a Friend" specification <xref target="FOAF"/>,
        and we thank the authors of that document for their work.
      </t>
<t>
  <cref>
    Barry:
    Are there more FoaF items we want to include?
  </cref>
  <vspace blankLines="1" />
  <cref>
    Peter StA:
    There are many "social networking" properties outside of FOAF, so using only what's currently in FOAF is somewhat limiting. Borrowing from http://xmpp.org/extensions/xep-0154.html I'd mention at least the following...
  </cref>
  <vspace blankLines="1" />
  <cref>
    a. URLs for avatar (or actual avatar data), biography, online status or presence, publication list, photo site, resume / CV, weblog, wishlist
  </cref>
  <vspace blankLines="1" />
  <cref>
    b. personal attributes like eye color, hair color, height, weight, marital status, smoker / non-smoker, zodiac sign (both Chinese and Western), psychological profile (e.g., Myers-Briggs Type Indicator)
  </cref>
  <vspace blankLines="1" />
  <cref>
    c. other interesting facts such as areas of expertise, clubs of which the object is a member, charitable organizations supported, dietary preferences, hobbies, interests, profession, religious affiliation
  </cref>
  <vspace blankLines="1" />
  <cref>
    d. various favorite things, such as activities, authors, individual athletes as well as sports teams, beverages, charitable organizations, chatrooms / IRC channels / forums, foods, games, movies, music, places, quotes, TV shows, weblogs, websites
  </cref>
  <vspace blankLines="1" />
  <cref>
    e. places lived, schools attended, conferences attended (complete list of all IETF meetings you've been to?), etc.
  </cref>
  <vspace blankLines="1" />
  <cref>
    The list goes on!
  </cref>
  <vspace blankLines="1" />
  <cref>
    Clearly there is a *lot* of information that one could include under the "social networking" umbrella. I don't know how much of that possible universe the authors wish to represent here.
  </cref>
  <vspace blankLines="1" />
  <cref>
    (Personally I'd be willing to help define a broader set of properties than the few already included here, since I did quite a bit of thinking about the topic several years ago when working on XEP-0154.)
  </cref>
</t>

      <section anchor="accountName" title="Property: OPENID">
        <t>
  <cref>
    Barry:
    Maybe this should be something like "authentication;type=openid:" instead?  That would allow for other authentication types.
  </cref>
  <vspace blankLines="1" />

          <list style="hanging" hangIndent="4">
            <t hangText="Namespace:">
            <vspace blankLines="1" /></t>   
                   
            <t hangText="Property name:">OPENID
            <vspace blankLines="1" /></t>
                      
            <t hangText="Purpose:">
              OpenID is an open, decentralized user identification standard,
              allowing users to log onto many services with the same digital identity.
              Inclusion of an OpenID URI in a vCard lets others add the vCard owner's ID to
              their authorization lists.
  <vspace />
  <cref>
    Barry: We should add an informative reference to OpenID.
  </cref>
            <vspace blankLines="1" /></t>

            <t hangText="Value type:">
              A single URI value.
            <vspace blankLines="1" /></t>

            <t hangText="Cardinality:">*
            <vspace blankLines="1" /></t>
            
            <t hangText="Property parameters:">(none)
            <vspace blankLines="1" /></t>    
            
            <t hangText="Description:">
            <vspace blankLines="1" /></t>        

            <t hangText="Format definition:">
              <list style="hanging" hangIndent="8">
                <t hangText="OPENID-param =">
                  pid-param / pref-param / <vspace/>any-param
                </t>
                <t hangText="OPENID-value =">uri
                </t>
              </list>
            <vspace blankLines="1" /></t>

            <t hangText="Example:">
              <figure>
                <artwork>
  OPENID:http://www.alice.openid.example.org
                </artwork>
              </figure>
            </t>
          </list>
        </t>
      </section>

      <section anchor="socialProfile" title="Property: SOCIALPROFILE">
        <t>
  <cref>
    Dany:
    SERVICE in OMA-CAB and SOCIALPROFILE here seem very similar and both need more details on LABEL for SERVICE or on TYPE for SOCIALPROFILE.  To me, SERVICE (in OMA-CAB) is more complete.
  </cref>
  <vspace blankLines="1" />
  <cref>
    Simon:
    I see significant overlap among the following:
    SOCIALPROFILE (from here),
    SERVICE (from OMA-CAB),
    SERVICE-TYPE (from draft-daboo-vcard-service-type).
    I would expect the authors to work amongst themselves on merging those proposals, or at least eliminating the overlap (e.g. reusing parts defined in another draft).
  </cref>
  <vspace blankLines="1" />

          <list style="hanging" hangIndent="4">
            <t hangText="Namespace:">
            <vspace blankLines="1" /></t>   
                   
            <t hangText="Property name:">SOCIALPROFILE
            <vspace blankLines="1" /></t>
                      
            <t hangText="Purpose:">
              Designates the vCard owner's profile page on a particular social network.
            <vspace blankLines="1" /></t>

            <t hangText="Value type:">
              A single URI value.
            <vspace blankLines="1" /></t>

            <t hangText="Cardinality:">*
            <vspace blankLines="1" /></t>

            <t hangText="Property parameters:">TYPE
            <vspace blankLines="1" /></t>    
            
            <t hangText="Description:">
              This property SHOULD include the parameter "TYPE" to specify the
              name of the social network that it refers to.  Usually, that will also be
              discernible from the URI, which is why it's optional.  But it can be
              helpful to have it specified explicitly.
            <vspace blankLines="1" /></t>        

            <t hangText="Format definition:">
              <list style="hanging" hangIndent="8">
                <t hangText="SOCIALPROFILE-param =">
                  pid-param / pref-param / <vspace/>any-param
                </t>
                <t hangText="SOCIALPROFILE-value =">uri
                </t>
              </list>
            <vspace blankLines="1" /></t>

            <t hangText="Examples:">
              <figure>
                <artwork>
  SOCIALPROFILE;type=linkedin:http://www.linkedin.com/in/barryleiba

  SOCIALPROFILE;type=facebook:http://www.facebook.com/barackobama
                </artwork>
              </figure>
            </t>
          </list>
        </t>
      </section>

      <section anchor="album" title="Property: ALBUM">
        <t>
          <list style="hanging" hangIndent="4">
            <t hangText="Namespace:">
            <vspace blankLines="1" /></t>   
                   
            <t hangText="Property name:">ALBUM
            <vspace blankLines="1" /></t>
                      
            <t hangText="Purpose:">
              Designates an online album, such as a photo album or video album.
            <vspace blankLines="1" /></t>

            <t hangText="Value type:">
              A single URI value.
            <vspace blankLines="1" /></t>

            <t hangText="Cardinality:">*
            <vspace blankLines="1" /></t>

            <t hangText="Property parameters:">TYPE
            <vspace blankLines="1" /></t>    
            
            <t hangText="Description:">
              This property SHOULD include the parameter "TYPE" to specify the
              type of album that it refers to.  Usually, that will also be
              discernible from the URI, which is why it's optional.  But it can be
              helpful to have it specified explicitly.
            <vspace blankLines="1" /></t>        

            <t hangText="Format definition:">
              <list style="hanging" hangIndent="8">
                <t hangText="ALBUM-param =">
                  pid-param / pref-param / <vspace/>any-param
                </t>
                <t hangText="ALBUM-value =">uri
                </t>
              </list>
            <vspace blankLines="1" /></t>

            <t hangText="Example:">
              <figure>
                <artwork>
  ALBUM;type=photo:http://picasaweb.google.com/barryleiba
  ALBUM;type=video:http://www.youtube.com/user/barryleiba
                </artwork>
              </figure>
            </t>
          </list>
        </t>
      </section>

      <section anchor="depiction" title="Property: DEPICTION">
        <t>
  <cref>
    Barry:
    After reading the FoaF description of "depiction", I get the point now, I think.  I've re-written this to take a stab at it.  I've included a reference to a corporate logo, but
    Simon points out that we also have LOGO in the base, so maybe that part shouldn't be here.
  </cref>
  <vspace blankLines="1" />

          <list style="hanging" hangIndent="4">
            <t hangText="Namespace:">
            <vspace blankLines="1" /></t>   
                   
            <t hangText="Property name:">DEPICTION
            <vspace blankLines="1" /></t>
                      
            <t hangText="Purpose:">
              To note that the referenced URI depicts, in come way,
              the entity represented by this vCard.
            <vspace blankLines="1" /></t>

            <t hangText="Value type:">
              A single URI value.
            <vspace blankLines="1" /></t>

            <t hangText="Cardinality:">*
            <vspace blankLines="1" /></t>

            <t hangText="Property parameters:">
            <vspace blankLines="1" /></t>    

            <t hangText="Description:">
              DEPICTION can be used to point to images in online photo galleries,
              specifying which ones include the subject of this vCard
              (perhaps in addition to other people or things).
              <vspace blankLines="1" />
              DEPICTION might also be used to refer to videos, icons, avatars, or the like.
              Consider someone's avatars in virtual worlds, or one or more corporate logos
              in a vCard representing a company.
              <vspace blankLines="1" />
              This is distinct from the PHOTO property, in that the latter is meant to
              define a specific representation of the vCard subject (a "profile photo",
              or a publicity headshot, say), while DEPICTION might often be used to say
              that the subject appears in a group photo or in a photo that is primarily
              a picture of something or someone else.
            <vspace blankLines="1" /></t>

            <t hangText="Format definition:">
              <list style="hanging" hangIndent="8">
                <t hangText="DEPICTION-param =">
                  pid-param / pref-param / <vspace/>any-param
                </t>
                <t hangText="DEPICTION-value =">uri
                </t>
              </list>
            <vspace blankLines="1" /></t>

            <t hangText="Example:">
              Suppose a gallery contains the following photos:
              <list>
              <t>IMG_001.jpg: Alexey and Barry at a reception.</t>
              <t>IMG_002.jpg: Alexey, Chris, and Dave having a conversation.</t>
              <t>IMG_003.jpg: Barry making a comment in the plenary session.</t>
              <t>IMG_004.jpg: A meeting session that Alexey, Barry, Chris, Dave,
              and Eric are all attending.</t>
              </list>
              <vspace blankLines="1" />
              Barry's vCard might include the following:
              <figure>
                <artwork>
  DEPICTION:http://www.example.com/pub/photos/IMG_001.jpg
  DEPICTION:http://www.example.com/pub/photos/IMG_003.jpg
  DEPICTION:http://www.example.com/pub/photos/IMG_004.jpg
                </artwork>
              </figure>
            </t>
          </list>
        </t>
      </section>

      <section anchor="socialcode" title="Property: SOCIALCODE" >
        <t>
  <cref>
    Simon:
    The use of the TYPE parameter here is underspecified. It isn't clear whether the TYPE value is a free-form string of if it needs to be registered somewhere. Will it be displayed to the user?
  </cref>
  <vspace blankLines="1" />

          <list style="hanging" hangIndent="4">
            <t hangText="Namespace:">
            <vspace blankLines="1" /></t>   
                   
            <t hangText="Property name:">SOCIALCODE
            <vspace blankLines="1" /></t>
                      
            <t hangText="Purpose:">
              Description of the vCard owner, in the form of a "social code",
              such as the "geek code" (see http://en.wikipedia.org/wiki/Geek_code).
              Social codes are popularly used to exchange a large amount
              of social information in a compact way, and provide a somewhat frivolous
              and willfully obscure "fun" mechanism for characterizing technical expertise,
              interests, and habits.
            <vspace blankLines="1" /></t>

            <t hangText="Value type:">
              A single text value.
            <vspace blankLines="1" /></t>

            <t hangText="Cardinality:">*
            <vspace blankLines="1" /></t>

            <t hangText="Property parameters:">TYPE
            <vspace blankLines="1" /></t>    
            
            <t hangText="Description:">
              This property MUST include the parameter "TYPE" to specify the
              type of social network code being used.  There are no predefined values for "TYPE",
              here -- the types will be understood (or not) by the vCard users.
              <vspace blankLines="1" />
              Implementations need to be especially careful with character quoting in this
              property, because these codes tend to use odd characters, and many might
              require quoting <xref target="RFC6350"/>.
            <vspace blankLines="1" /></t>        

            <t hangText="Format definition:">
              <list style="hanging" hangIndent="8">
                <t hangText="SOCIALCODE-param =">
                  pid-param / pref-param / <vspace/>any-param
                </t>
                <t hangText="SOCIALCODE-value =">text
                </t>
              </list>
            <vspace blankLines="1" /></t>

            <t hangText="Example:">
              <figure>
                <artwork>
  SOCIALCODE;type=geek:"s: a--"

        [Which means "I'm average size, and my age is 20-24."]
                </artwork>
              </figure>
            </t>
          </list>
        </t>
      </section>

      <section anchor="interest" title="Property: INTEREST" >
        <t>
  <cref>
    Dany:
    INTEREST is defined both here and in OMA-CAB.  Both definitions have interesting parameters (INDEX and LEVEL in OMA-CAB and TYPE here).  To me, these 2 definitions may be combined.
  </cref>
  <vspace blankLines="1" />

          <list style="hanging" hangIndent="4">
            <t hangText="Namespace:">
            <vspace blankLines="1" /></t>   
                   
            <t hangText="Property name:">INTEREST
            <vspace blankLines="1" /></t>
                      
            <t hangText="Purpose:">
              Lists the vCard owner's interests (social, recreational, technical, etc.).
              This allows users to identify others with common interests.
            <vspace blankLines="1" /></t>

            <t hangText="Value type:">
              A string value consisting of 
              one or more text values separated by a COMMA character (ASCII decimal 44).
            <vspace blankLines="1" /></t>

            <t hangText="Cardinality:">*
            <vspace blankLines="1" /></t>

            <t hangText="Property parameters:">TYPE, LANGUAGE
            <vspace blankLines="1" /></t>    
            
            <t hangText="Description:">
              This property MAY include the parameter "TYPE" to group interests in categories.
              TYPE might be used to separate "business" interests from "social" interests, for
              example.
              There are no predefined values for "TYPE",
              here -- the types will be understood (or not) by the vCard users, and it's likely
              that an ad hoc taxonomy will develop, as has happened with social tagging.
  <vspace blankLines="1" />
  <cref>
    Simon:
    I think this is fine, but please specify whether this string is intended to be displayed to the user or not. (In the base spec, it is not intended to be displayed as-is. Instead, we expect the vCard app to understand the TYPE value and show something appropriate (either text or an icon). This is made possible because there is a registry of allowed values that defines their semantics.)
  </cref>
            <vspace blankLines="1" /></t>        

            <t hangText="Format definition:">
              <list style="hanging" hangIndent="8">
                <t hangText="INTEREST-param =">
                  pid-param / pref-param / <vspace/>any-param
                </t>
                <t hangText="INTEREST-value =">text
                </t>
              </list>
            <vspace blankLines="1" /></t>

            <t hangText="Example:">
              <figure>
                <artwork>
  INTEREST;type=business:Internet standards,consulting,job offers
  INTEREST;type=social:friends and family,new friends
  INTEREST;type=hobby:model trains,reading Sci Fi,travel
  INTEREST;type=music:classical,jazz,folk,opera
                </artwork>
              </figure>
            </t>
          </list>
        </t>
      </section>

      <section anchor="XX" title="Property: XX">
        <t>
          <cref>
          Template for adding another property, because we expect to add more properties here.
          Remove this section before publishing.
          </cref>
          (This will also hold some references for the time being:
          <xref target='RFC2425' />
          <xref target='RFC2426' />
          <xref target='RFC2739' />
          <xref target='RFC4770' />
          )
        </t>

        <t>
          <list style="hanging" hangIndent="4">
            <t hangText="Namespace:">
            <vspace blankLines="1" /></t>   
                   
            <t hangText="Property name:">
            <vspace blankLines="1" /></t>
                      
            <t hangText="Purpose:">
            <vspace blankLines="1" /></t>

            <t hangText="Value type:">
              A single text value.
            <vspace blankLines="1" /></t>

            <t hangText="Cardinality:">*
            <vspace blankLines="1" /></t>

            <t hangText="Property parameters:">VALUE, LANGUAGE
            <vspace blankLines="1" /></t>    
            
            <t hangText="Description:">
            <vspace blankLines="1" /></t>        

            <t hangText="Format definition:">
              <list style="hanging" hangIndent="8">
                <t hangText="XX-param =">
                  pid-param / pref-param / <vspace/>any-param
                </t>
                <t hangText="XX-value =">text
                </t>
              </list>
            <vspace blankLines="1" /></t>

            <t hangText="Example:">
              <figure>
                <artwork>
  xx:zz
                </artwork>
              </figure>
            </t>
          </list>
        </t>

      </section>

    </section>


    <section anchor="security" title="Security Considerations">
      <t>
        This presents no security considerations beyond those in 
        section 9 of the base vcard specification
        <xref target='RFC6350' />.
      </t>
      <t>
  <cref>
    Barry:
    I'm quite sure there's more to say here, and that there are some real security (and privacy) considerations, so this is just a placeholder.  We need to think about this seriously before we're done.
  </cref>
      </t>
    </section>


    <section anchor="iana" title="IANA Considerations">
      <t>
        The IANA is requested to add the following entries to the
        vCard Properties registry, defined in
        <xref target='RFC6350' />
        section 10.3.1.
      </t>
      
      <t>
        <figure>
           <artwork>
  +-----------+---------------+------------------------+
  | Namespace | Property      | Reference              |
  +-----------+---------------+------------------------+
  |           | OPENID        | RFCXXXX, section 2.1   |
  |           | SOCIALPROFILE | RFCXXXX, section 2.2   |
  |           | ALBUM         | RFCXXXX, section 2.3   |
  |           | DEPICTION     | RFCXXXX, section 2.4   |
  |           | SOCIALCODE    | RFCXXXX, section 2.5   |
  |           | INTEREST      | RFCXXXX, section 2.6   |
  +-----------+---------------+------------------------+
           </artwork>
        </figure>
      </t>
    </section>

  </middle>

  <back>
    <references title="Normative References">
      &RFC2119;
      &RFC5234;
      &RFC6350; <!-- vCard 4.0 -->
      &OMA-CAB;
    </references>

    <references title="Informative References">
      &RFC2425;
      &RFC2426;
      &RFC2739;
      &RFC4770;
      
      <reference anchor="FOAF" target="http://xmlns.com/foaf/spec/">
        <front>
          <title>FOAF Vocabulary Specification 0.98</title>
          <author initials="D." surname="Brickley" fullname="Dan Brickley">
            <organization></organization>
          </author>
          <author initials="L." surname="Miller" fullname="Libby Miller">
            <organization></organization>
          </author>
          <date month="August" year="2010" />
        </front>
        <format type="PDF" target="http://xmlns.com/foaf/spec/" />
        <annotation>
          Namespace Document,
          Marco Polo Edition
        </annotation>
      </reference>

    </references>
  </back>
</rfc>
    