Difference between revisions of "chat-formats"

From Microformats Wiki
Jump to navigation Jump to search
m
Line 1: Line 1:
= chat formats =
+
<h1> chat formats </h1>
 +
 
 +
Various formats that are used to represent chat conversations, typically internally.  With the use cases from the [[chat-examples]], and the vocabularies used here, the next steps are to start [[chat-brainstorming]] on proposals for a chat microformat.
 +
 
 +
__TOC__
 +
 
 +
== Contributors ==
 +
 
 +
* ChristopherStJohn
 +
* Tantek Çelik
  
 
==ChatZilla Internal Format==
 
==ChatZilla Internal Format==

Revision as of 00:28, 12 February 2006

chat formats

Various formats that are used to represent chat conversations, typically internally. With the use cases from the chat examples, and the vocabularies used here, the next steps are to start chat-brainstorming on proposals for a chat microformat.

Contributors

  • ChristopherStJohn
  • Tantek Çelik

ChatZilla Internal Format

Note that there is no proof that this format is being used "in the wild" for publishing. ChatZilla uses HTML as its presentation layer. This heavily elided excerpt shows two lines from a chat. It gives the flavor (a very big table with each row a chat message divided up into three columns: timestamp, user name and the message itself) but there are many more classes in use in a full log.

<div id="messages-outer">
 ...
 <div id="output">
  ...
  <table view-type="IRCChannel" class="msg-table">
   <tbody>
    <tr mark="even" msg-user="cks_ ME!"
     statusText="01/31/2006 01:39 PM, cks_!n=chatzill@ppp-70-248-121-149.dsl.rcsntx.swbell.net"
     view-type="IRCChannel" dest-type="IRCChannel" msg-dest="#microformats"
     msg-type="PRIVMSG" class="msg">
     <td time-s="57" time-n="39" time-h="13" time-d="31" time-m="01" time-y="2006" class="msg-timestamp">
     </td>
     <td class="msg-user">
      <span>cks_</span>
     </td>
     <td class="msg-data">
      <span>so, using chatzilla for just a minute so i can extract the logs.</span>
     </td>
    </tr>
    <tr mark="odd" msg-user="Atamido" statusText="01/31/2006 01:43 PM, Atamido!n=atamido@cpe-67-9-173-252.austin.res.rr.com"
     view-type="IRCChannel" dest-type="IRCChannel" msg-dest="#microformats"
     msg-type="PRIVMSG" class="msg">
     <td time-s="25" time-n="43" time-h="13" time-d="31" time-m="01" time-y="2006" class="msg-timestamp">
     </td>
     <td class="msg-user">
      <a href="irc://irc.freenode.net/Atamido,isnick" class="chatzilla-link">
       <span>Atamido</span>
      </a>
     </td>
     <td class="msg-data">
      <span>
       Here are some examples.
       <a target="_content" class="chatzilla-link" href="http://www.hacksrus.com/%7Eginda/chatzilla/motifs.html">
        http://www.hacksrus.<wbr>
        com/~ginda/chatzilla/<wbr>
        motifs.html<wbr>
       </a>
      </span>
     </td>
    </tr>
   </tbody>
  </table>
 </div>
</div>

Google Talk Format Logs

Again, user1 is local.

3
17b5df8a
01c61af0
outgoing
%3Ccli%3Amessage+from%3D%22user1%40gmail.com%2FTalk.v66EC7D7137%22+to%3D%22user2%40gmail.com%2FTalk.v66EC841CB6%22+type%3D%22chat%22+xmlns%3Acli%3D%22jabber%3Aclient%22%3E%3Ccli%3Abody%3Esome+but+not+much%3C%2Fcli%3Abody%3E%3Cactive+xmlns%3D%22http%3A%2F%2Fjabber.org%2Fprotocol%2Fchatstates%22%2F%3E%3C%2Fcli%3Amessage%3E
incoming
%3Ccli%3Amessage+from%3D%22user2%40gmail.com%2FTalk.v66EC841CB6%22+to%3D%22user1%40gmail.com%22+type%3D%22chat%22+xmlns%3Acli%3D%22jabber%3Aclient%22%3E%3Ccli%3Abody%3EI'm+ready+to+crawl+in+bed+and+read.++Do+well+on+your+paper.++Love++Mom%3C%2Fcli%3Abody%3E%3Cactive+xmlns%3D%22http%3A%2F%2Fjabber.org%2Fprotocol%2Fchatstates%22%2F%3E%3C%2Fcli%3Amessage%3E
outgoing
%3Ccli%3Amessage+from%3D%22user1%40gmail.com%2FTalk.v66EC7D7137%22+to%3D%22user2%40gmail.com%2FTalk.v66EC841CB6%22+type%3D%22chat%22+xmlns%3Acli%3D%22jabber%3Aclient%22%3E%3Ccli%3Abody%3Ethanks%3C%2Fcli%3Abody%3E%3Cactive+xmlns%3D%22http%3A%2F%2Fjabber.org%2Fprotocol%2Fchatstates%22%2F%3E%3C%2Fcli%3Amessage%3E
outgoing
%3Ccli%3Amessage+from%3D%22user1%40gmail.com%2FTalk.v68701EBF07%22+to%3D%22user2%40gmail.com%22+type%3D%22chat%22+xmlns%3Acli%3D%22jabber%3Aclient%22%3E%3Ccli%3Abody%3Emom%3C%2Fcli%3Abody%3E%3Cactive+xmlns%3D%22http%3A%2F%2Fjabber.org%2Fprotocol%2Fchatstates%22%2F%3E%3C%2Fcli%3Amessage%3E
incoming
%3Ccli%3Amessage+from%3D%22user2%40gmail.com%2FTalk.v687050428D%22+to%3D%22user1%40gmail.com%2FTalk.v68701EBF07%22+type%3D%22chat%22+xmlns%3Acli%3D%22jabber%3Aclient%22%3E%3Ccli%3Abody%3EHi%3C%2Fcli%3Abody%3E%3Cactive+xmlns%3D%22http%3A%2F%2Fjabber.org%2Fprotocol%2Fchatstates%22%2F%3E%3C%2Fcli%3Amessage%3E
outgoing
%3Ccli%3Amessage+from%3D%22user1%40gmail.com%2FTalk.v68701EBF07%22+to%3D%22user2%40gmail.com%2FTalk.v687050428D%22+type%3D%22chat%22+xmlns%3Acli%3D%22jabber%3Aclient%22%3E%3Ccli%3Abody%3Ei+totally+forgot+about+the+awning%3C%2Fcli%3Abody%3E%3Cactive+xmlns%3D%22http%3A%2F%2Fjabber.org%2Fprotocol%2Fchatstates%22%2F%3E%3C%2Fcli%3Amessage%3E
outgoing
%3Ccli%3Amessage+from%3D%22user1%40gmail.com%2FTalk.v68701EBF07%22+to%3D%22user2%40gmail.com%2FTalk.v687050428D%22+type%3D%22chat%22+xmlns%3Acli%3D%22jabber%3Aclient%22%3E%3Ccli%3Abody%3Edo+you+want+me+to+come+over%3F%3C%2Fcli%3Abody%3E%3Cactive+xmlns%3D%22http%3A%2F%2Fjabber.org%2Fprotocol%2Fchatstates%22%2F%3E%3C%2Fcli%3Amessage%3E
incoming
%3Ccli%3Amessage+from%3D%22user2%40gmail.com%2FTalk.v687050428D%22+to%3D%22user1%40gmail.com%2FTalk.v68701EBF07%22+type%3D%22chat%22+xmlns%3Acli%3D%22jabber%3Aclient%22%3E%3Ccli%3Abody%3EI+have+tomorrow+off.++Is+the+wind+supposed+to+get+bad+before+then%3F%3C%2Fcli%3Abody%3E%3Cactive+xmlns%3D%22http%3A%2F%2Fjabber.org%2Fprotocol%2Fchatstates%22%2F%3E%3C%2Fcli%3Amessage%3E
outgoing
%3Ccli%3Amessage+from%3D%22user1%40gmail.com%2FTalk.v68701EBF07%22+to%3D%22user2%40gmail.com%2FTalk.v687050428D%22+type%3D%22chat%22+xmlns%3Acli%3D%22jabber%3Aclient%22%3E%3Ccli%3Abody%3Enot+sure.+its+stormy+now%3C%2Fcli%3Abody%3E%3Cactive+xmlns%3D%22http%3A%2F%2Fjabber.org%2Fprotocol%2Fchatstates%22%2F%3E%3C%2Fcli%3Amessage%3E
incoming
%3Ccli%3Amessage+from%3D%22user2%40gmail.com%2FTalk.v687050428D%22+to%3D%22user1%40gmail.com%2FTalk.v68701EBF07%22+type%3D%22chat%22+xmlns%3Acli%3D%22jabber%3Aclient%22%3E%3Ccli%3Abody%3EI'm+ready+if+yo+are.++I+thought+you+would+be+here+anyway+about+the+boat+or+I+would+have+called.%3C%2Fcli%3Abody%3E%3Cactive+xmlns%3D%22http%3A%2F%2Fjabber.org%2Fprotocol%2Fchatstates%22%2F%3E%3C%2Fcli%3Amessage%3E
outgoing
%3Ccli%3Amessage+from%3D%22user1%40gmail.com%2FTalk.v68701EBF07%22+to%3D%22user2%40gmail.com%2FTalk.v687050428D%22+type%3D%22chat%22+xmlns%3Acli%3D%22jabber%3Aclient%22%3E%3Ccli%3Abody%3EI+think+we+decided+to+do+the+boat+on+a+dry+night%3C%2Fcli%3Abody%3E%3Cactive+xmlns%3D%22http%3A%2F%2Fjabber.org%2Fprotocol%2Fchatstates%22%2F%3E%3C%2Fcli%3Amessage%3E
outgoing
%3Ccli%3Amessage+from%3D%22user1%40gmail.com%2FTalk.v68701EBF07%22+to%3D%22user2%40gmail.com%2FTalk.v687050428D%22+type%3D%22chat%22+xmlns%3Acli%3D%22jabber%3Aclient%22%3E%3Ccli%3Abody%3Ei'll+come+over+now%3C%2Fcli%3Abody%3E%3Cactive+xmlns%3D%22http%3A%2F%2Fjabber.org%2Fprotocol%2Fchatstates%22%2F%3E%3C%2Fcli%3Amessage%3E

Adium X

Adium X is currently developing an XML-based log format. This is version 0.3:

<chat date="2005-11-20" account="mactigerz" service="AIM" version="0.3">
    <event type="windowOpened" time=""/>
    <message sender="chz16" time="">'sup?</message>
    <message sender="mactigerz" time="">trying to get to work on the the new XML log format</message>
    <message sender="chz16" time="">Doesn't sound bad.</message>
    <message sender="chz16" time="">Providing you have the log specs, of course.</message>
    <message sender="mactigerz" time="">that's what I'm creating.</message>
    <status type="offline" sender="chz16" time=""/>
    <status type="online" sender="chz16" time=""/>
    <status type="away" sender="mactigerz" time="">brb, working on the XML log format</status>
    <event type="windowClosed" time=""/>
</chat>

This format remains under development, so this page may not reflect the current version of the format.

ILRT Logger Bot Format

Found at: http://chatlogs.planetrdf.com/swig/, generated by: http://cvs.ilrt.org/cvsweb/redland/logger/, there are three formats: HTML, plain text, and RDF. The entry discussed the RDF format, as it's presumably directed at machines and not people.

Taking RDF first just because that's kind of fun and is presumably 100% semantics. Pretty straightforward RDF Sequence with date/description/creator, except for the line with a Dublin Core relation stuck in there. As is normal with RDF, semantics are reused, so to fully grok it there's some followon work to do, see: http://www.w3.org/2004/Talks/0522-rrs/ The foaf group got involved with IRC chat since IRC names are one of the ways to identify people, looks like it snowballed, not sure if the ChatChannel stuff is official or not. The Dublin Core and WordNet stuff is mentioned in the FOAF spec index, but seems to be missing from the actual text, I might have been looking at an old version.

<rdf:RDF xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
         xmlns:dc="http://purl.org/dc/elements/1.1/"
         xmlns:wn="http://xmlns.com/wordnet/1.6/"
         xmlns:foaf="http://xmlns.com/foaf/0.1/">
<foaf:ChatChannel rdf:about="irc://irc.freenode.net/swig">
  <foaf:chatEventList>
    <rdf:Seq>
      <rdf:li>
       <foaf:chatEvent rdf:ID="T00-01-19">
        <dc:date>2006-02-01T00:01:19Z</dc:date>
        <dc:description>keithalexander has quit</dc:description>
        <dc:creator><wn:Person foaf:nick="keithalexander"/></dc:creator>
       </foaf:chatEvent>
      </rdf:li>
      <rdf:li>
       <foaf:chatEvent rdf:ID="T00-27-42">
        <dc:date>2006-02-01T00:27:42Z</dc:date>
        <dc:description>Gromgull: nice quote re. x years later</dc:description>
        <dc:creator><wn:Person foaf:nick="CaptSolo"/></dc:creator>
       </foaf:chatEvent>
      </rdf:li>
      <rdf:li>
       <foaf:chatEvent rdf:ID="T01-38-49">
        <dc:date>2006-02-01T01:38:49Z</dc:date>
        <dc:description>A: http://aaronland.info/python/pyupcoming/ from karlUshi</dc:description>
        <dc:creator><wn:Person foaf:nick="dc_swig"/></dc:creator>
        <dc:relation rdf:resource="http://aaronland.info/python/pyupcoming/"/>
       </foaf:chatEvent>
      </rdf:li>
    </rdf:Seq>
  </foaf:chatEventList>
</foaf:ChatChannel>
</rdf:RDF>

Trillian Internal Format

This is for an AIM chat, but one for a Yahoo! chat looks the same. It is saved as plaintext as well as XML. (user1 is local). This is a description of the XML format, as it is presumably intended for machines and not humans.

The same in XML:

<session type="start" time="1112395386" medium="AIM" to="user2" from="user1"/>
<message type="incoming_privateMessage" time="1112395386" medium="AIM" to="user1" from="user2" from_display="user2" text="ping"/>
<message type="information_standard" time="1112395387" medium="AIM" text="Auto%2Dresponse%20sent%20to%20user2%3A%20My%20hovercraft%20is%20full%20of%20eels%2E"/>
<message type="outgoing_privateMessage" time="1112395573" medium="AIM" to="user2" from="user1" from_display="user1" text="hey"/>
<session type="stop" time="1112395619" medium="AIM" to="user2" from="user1"/>

There is also a "user2-assets.xml" file for stuff like Buddy icons & file transers:

<asset medium="AIM" name="user2" link="C%3A%5CProgram%20Files%5CTrillian%5Cusers%5Cdefault%5Cbuddyicons%5Cassets%5CAIM%2Duser2%2D1118046544%2Ejpg"/>
<asset medium="AIM" name="user2" link="D%3A%5CPIX%5CY2005%5C0619%5CMOV02050%2EMPG"/>
<asset medium="AIM" name="user2" link="C%3A%5CDocuments%20and%20Settings%5Cant%5CDesktop%5CDSCN0372_resize%2EJPG"/>
<asset medium="AIM" name="user2" link="C%3A%5CProgram%20Files%5CTrillian%5Cusers%5Cdefault%5Cbuddyicons%5Cassets%5CAIM%2Duser2%2D1133932754%2Ejpg"/>