A foaf:OnlineChatAccount is a foaf:OnlineAccount devoted to chat / instant messaging. The account may offer other services too; FOAF's sub-classes of foaf:OnlineAccount are not mutually disjoint.

This is a generalization of the FOAF Chat ID properties, foaf:jabberID, foaf:aimChatID, foaf:skypeID, foaf:msnChatID, foaf:icqChatID and foaf:yahooChatID.

Unlike those simple properties, foaf:OnlineAccount and associated FOAF terms allows us to describe a great variety of online accounts, without having to anticipate them in the FOAF vocabulary.

For example, here is a description of an IRC chat account, specific to the Freenode IRC network:

<foaf:Person>
  <foaf:name>Dan Brickley</foaf:name>
  <foaf:account>
    <foaf:OnlineAccount>
      <rdf:type rdf:resource="http://xmlns.com/foaf/0.1/OnlineChatAccount"/>
      <foaf:accountServiceHomepage 
               rdf:resource="http://www.freenode.net/"/>
      <foaf:accountName>danbri</foaf:accountName>
    </foaf:OnlineAccount>
  </foaf:account>
</foaf:Person>

Note that it may be impolite to carelessly reveal someone else's chat identifier (which might also serve as an indicate of email address) As with email, there are privacy and anti-SPAM considerations. FOAF does not currently provide a way to represent an obfuscated chat ID (ie. there is no parallel to the foaf:mbox / foaf:mbox_sha1sum mapping).

In addition to the generic foaf:OnlineAccount and foaf:OnlineChatAccount mechanisms, FOAF also provides several convenience chat ID properties (foaf:jabberID, foaf:aimChatID, foaf:icqChatID, foaf:msnChatID,foaf:yahooChatID, foaf:skypeID). These serve as as a shorthand for some common cases; their use may not always be appropriate.

We should specify some mappings between the abbreviated and full representations of Jabber, AIM, MSN, ICQ, Yahoo! and MSN chat accounts. This has been done for foaf:skypeID. This requires us to identify an appropriate foaf:accountServiceHomepage for each. If we wanted to make the foaf:OnlineAccount mechanism even more generic, we could invent a relationship that holds between a foaf:OnlineAccount instance and a convenience property. To continue the example above, we could describe how Freenode could define a property 'fn:freenodeChatID' corresponding to Freenode online accounts.