chat-examples: Difference between revisions

From Microformats Wiki
Jump to navigation Jump to search
No edit summary
(rm hardcoded IRC server in prose)
 
(26 intermediate revisions by 10 users not shown)
Line 1: Line 1:
= chat examples =
{{DISPLAYTITLE: chat examples }}


Examples of how chat transcripts are marked up currently, with the idea of moving towards a  
Examples of how [[chat]] transcripts are marked up currently, with the idea of moving towards a microformat for marking up logs/archives of chat sessions ([[IRC]] etc.) that are posted on the Web.  Next steps are documenting [[chat-formats]], and doing some [[chat-brainstorming]].


== Authors ==
== Examples in the wild ==
* [http://epeus.blogspot.com Kevin Marks]
* [http://rcboyce.com Robert Boyce]
* [http://artofsystems.blogspot.com Christopher St. John]


== IRC transcripts ==
=== IRC transcripts===  


These are plaintext logs with space separated fields, so are posted wrapped in <pre>
These are plaintext logs with space separated fields, so are posted wrapped in <pre>
Line 28: Line 25:
(22:22) gturneruk: lost clusters<br>
(22:22) gturneruk: lost clusters<br>
(22:23) Suw: i obviously need to defrag
(22:23) Suw: i obviously need to defrag
</pre>


xChat2 log format
=== xChat2 log format===


<pre>
<pre>
Line 46: Line 44:
</pre>
</pre>


Snak log format
=== Snak log format===


<pre>
<pre>
Line 58: Line 56:
</pre>
</pre>


== iChat transcripts ==
=== Jabber transcripts===
 
Jabber Transcript (from [http://www.jabber.org/muc-logs/jdev@conference.jabber.org/2006-06-26.html Jabber Dev Meeting])
 
<source lang=html4strict>
<font class="timestamp">[15:39:01]</font> <font class="normal">&lt;DaleH&gt;</font> hey david, any chance of a pm?<br/>
<font class="timestamp">[15:41:49]</font> <font class="normal">&lt;yipdw&gt;</font> sure<br/>
<font class="timestamp">[15:41:58]</font> <font class="normal">&lt;yipdw&gt;</font> I'm just swimming in ActiveRecord junk right now :p<br/>
<font class="timestamp">[15:42:08]</font> <font class="emote">stpeter reads <a href="http://coccinella.sourceforge.net/docs/MemoSyncSVG-XMPP.txt">http://coccinella.sourceforge.net/docs/MemoSyncSVG-XMPP.txt</a> :-)</font><br/>
<font class="timestamp">[15:42:52]</font> <font class="normal">&lt;yipdw&gt;</font> ooh, that memo expanded since I last read it<br/>
<font class="timestamp">[15:42:55]</font> <font class="normal">&lt;yipdw&gt;</font> *re-reads that one*<br/>
<font class="timestamp">[15:46:32]</font> <font class="system">remdeprived leaves the room</font><br/>
<font class="timestamp">[15:46:47]</font> <font class="system">remdeprived joins the room</font><br/>
</source>
 
=== Coccinella log format===
 
<pre>
set message([incr uid]) {-type chat -name user@example.org -thread 620c2bff-7e5332c1 -time 20060812T17:04:58 -body hi -tag me}
set message([incr uid]) {-type chat -name echo.example.org -thread 620c2bff-7e5332c1 -time 20060812T17:04:58 -body hi -tag you}
set message([incr uid]) {-type chat -name user@example.org -thread 620c2bff-7e5332c1 -time 20060812T17:05:17 -body {this is a test w
ith a but that replies all my messages} -tag me}
set message([incr uid]) {-type chat -name echo.example.org -thread 620c2bff-7e5332c1 -time 20060812T17:05:17 -body {this is a test wit
h a but that replies all my messages} -tag you}
set message([incr uid]) {-type chat -name user@example.org -thread 620c2bff-7e5332c1 -time 20060812T17:05:26 -body {cool, isn't it?
B-)} -tag me}
set message([incr uid]) {-type chat -name echo.example.org -thread 620c2bff-7e5332c1 -time 20060812T17:05:26 -body {cool, isn't it? B-
)} -tag you}
</pre>
 
=== iChat transcripts===  


iChat handles timestamps differently, inserting them between statement blocks, every 5 minutes.
iChat handles timestamps differently, inserting them between statement blocks, every 5 minutes.
Line 68: Line 96:
Tantek: what about Adium?
Tantek: what about Adium?
12:30 AM
12:30 AM
Kevin Marks: my copy is 230 days old...</pre>
Kevin Marks: my copy is 230 days old...
</pre>
 
=== Bash.org===


== Bash.org ==
[http://bash.org Bash.org] and [http://qdb.us other QDBs] collect funny IRC transcripts and let people vote on them.
[http://bash.org Bash.org] and [http://qdb.us other QDBs] collect funny IRC transcripts and let people vote on them.
They use plaintext + &lt;br /&gt;, wrapped in &lt;p&gt;
They use plaintext + &lt;br /&gt;, wrapped in &lt;p&gt;
Line 90: Line 120:
&lt;Miles_Prower&gt; ACKNOWLEDGEMENT AND ACCEPTENCE OF TERMS</p>
&lt;Miles_Prower&gt; ACKNOWLEDGEMENT AND ACCEPTENCE OF TERMS</p>


== Log Library ==
=== Log Library===
 
[http://www.loglibrary.com Log Library] displays a tabular format with divs
[http://www.loglibrary.com Log Library] displays a tabular format with divs
<pre>
<source lang=html4strict>
<div class="row" name="GusVanNos">
<div class="row" name="GusVanNos">
   <div class="timestamp">18:36:28</div>
   <div class="timestamp">18:36:28</div>
Line 104: Line 135:
     <div class="message">your model is waaaay better, xal.</div>
     <div class="message">your model is waaaay better, xal.</div>
</div>
</div>
</pre>
</source>
 
* row
** timestamp
** nick
** message


== Adium X ==
=== JWZ===  
[http://adiumx.com Adium X] is currently developing an XML-based log format.
This is version 0.3:
<pre>
<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>
</pre>
This format remains [http://trac.adiumx.com/wiki/XMLLogFormat under development], so this page may not reflect the current version of the format.


== JWZ ==
http://www.jwz.org/hacks/irc2html.pl was used to generate the irc logs for Bar Camp Dallas : http://barcamp.org/f/barcampdallas-irc.html
http://www.jwz.org/hacks/irc2html.pl was used to generate the irc logs for Bar Camp Dallas : http://barcamp.org/f/barcampdallas-irc.html
<pre>
<source lang=html4strict>
<table bgcolor="#ffffff">
<table bgcolor="#ffffff">
  <tbody>
  <tbody>
Line 155: Line 173:
  </tr>
  </tr>
  ...
  ...
</pre>
</source>


==ChatZilla Internal Format==
=== MSN Messenger XML Format Logs===  
Note that there is no proof that this format is being used "in the wild." 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.


<pre>
Examples at: http://stupidpeople.commo.de/logs/After%20August%202004/, there are a bunch there but not sure how widespread it is. General structure appears to be a Log element wrapper, with toplevel Join and Message elements. It's a little strange how the To element has children indicating all the recepients, normally that would be implicit, but there may be a reason that isn't clear just from this example. Original posting for example: http://microformats.org/discuss/mail/microformats-discuss/2006-February/002937.html Note that these get published with a stylesheet that makes them viewable directly, they appear to be human-directed.
<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>
</pre>


==MSN Messenger XML Format Logs==
<source lang=xml>
Examples at: http://stupidpeople.commo.de/logs/After%20August%202004/, there are a bunch there but not sure how widespread it is. General structure appears to be a Log element wrapper, with toplevel Join and Message elements. It's a little strange how the To element has children indicating all the recepients, normally that would be implicit, but there may be a reason that isn't clear just from this example. Original posting for example: http://microformats.org/discuss/mail/microformats-discuss/2006-February/002937.html
 
<pre>
<Log FirstSessionID="1" LastSessionID="1">
<Log FirstSessionID="1" LastSessionID="1">
  <Join Date="9/12/2004" Time="6:48:20 PM" DateTime="2004-09-12T23:48:20.716Z" SessionID="1">
  <Join Date="9/12/2004" Time="6:48:20 PM" DateTime="2004-09-12T23:48:20.716Z" SessionID="1">
   <User FriendlyName="'' Quando não tem oq se ama...É preciso amar oq se tem!!! ''"/>
   <User FriendlyName="'' Quando não tem oq se ama...É preciso amar oq se tem!!! ''"/>
   <Text Style="color:#008000; ">
   <Text Style="color:#008000; ">
   '' Quando não tem oq se ama...É preciso amar oq se tem!!! '' has been added to the conversation.
   '' Quando não tem oq se ama...É preciso amar oq se tem!!! '' has been added to the conversation.
   </Text>
   </Text>
  </Join>
  </Join>
Line 225: Line 194:
   <User FriendlyName="http://commo.de/StupidPeople/"/>
   <User FriendlyName="http://commo.de/StupidPeople/"/>
   <User FriendlyName=":@TE ODEIO:@"/>
   <User FriendlyName=":@TE ODEIO:@"/>
   <User FriendlyName="|I{•------»Victor«------•}I|1 2 3 o corh fregueis! -LLUSSAA EOOOO"/>
   <User FriendlyName="|I{•------»Victor«------•}I|1 2 3 o corh fregueis! -LLUSSAA EOOOO"/>
   <User FriendlyName="&quot;Tô com sono!!! Acho que vo durmi!!!&quot;"/>
   <User FriendlyName="&quot;Tô com sono!!! Acho que vo durmi!!!&quot;"/>
   <User FriendlyName="||||Gabriel||||| A Clockwork Orange.."/>
   <User FriendlyName="||||Gabriel||||| A Clockwork Orange.."/>
Line 236: Line 205:
  </Message>
  </Message>
</Log>
</Log>
</pre>
</source>
 
* Log
** Join
*** User
**** FriendlyName
*** Text
** Message
*** From
**** User
*** To
**** User*
*** Text
 
=== MSN Messenger Marked Up By Anne van Kesteren===
 
Found at: http://annevankesteren.nl/2005/10/msn-sessions
 
<source lang=html4strict>
<p>Late night <abbr title="Microsoft Network">MSN</abbr> sessions…
<ol class="conversation">
<li>
  <cite>zcorpan</cite>
  <q><code>&lt;form&gt;</code> does not imply <code>&lt;body&gt;</code> in <abbr title="Internet Explorer">IE</abbr>6</q>
 
<li>
  <cite>anne</cite>
  <q>interesting</q>
<li>
  <cite>zcorpan</cite>
<q>it’s worse…</q>
<li>
 
  <cite>zcorpan</cite>
  <blockquote><pre>&lt;!DOCTYPE html&gt;
&lt;title&gt;001&lt;/title&gt;
&lt;style&gt;
div { position:relative; }
form { width:40em; }
&lt;/style&gt;
&lt;div&gt;
 
&lt;form&gt;
  &lt;p&gt;test
&lt;/form&gt;
&lt;/div&gt;</pre></blockquote>
<li>
  <cite>zcorpan</cite>
  <q><code>innerHTML</code> for that:</q>
 
<li>
  <cite>zcorpan</cite>
  <blockquote><pre>&lt;HTML&gt;&lt;HEAD&gt;&lt;TITLE&gt;001&lt;/TITLE&gt;
&lt;STYLE&gt;
div { position:relative; }
form { width:40em; }
&lt;/STYLE&gt;
 
&lt;FORM&gt;&lt;/HEAD&gt;
&lt;BODY&gt;
&lt;DIV&gt;
&lt;P&gt;test &lt;/FORM&gt;&lt;/P&gt;&lt;/DIV&gt;&lt;/BODY&gt;&lt;/HTML&gt;</pre></blockquote>
<li>
 
  <cite>anne</cite>
  <q>ah, totally <abbr>IE</abbr></q>
<li>
  <cite>zcorpan</cite>
  <q>the contents of the div <ins>are</ins> invisible</q>
 
<li>
  <cite>anne</cite>
  <q>hmm…</q>
<li>
  <cite>anne</cite>
  <q>o well</q>
<li>
 
  <cite>anne</cite>
  <q>debugging that sucks</q>
<li>
  <cite>anne</cite>
  <q>emulating it might be cool</q>
<li>
  <cite>anne</cite>
 
  <q>building <abbr>IE</abbr> again</q>
<li>
  <cite>zcorpan</cite>
  <q>the thought of it hurts my brains</q>
<li>
  <cite>zcorpan</cite>
 
  <q><code>javascript:alert(document.getElementsByTagName("!")[0].nodeValue)</code></q>
<li>
  <cite>anne</cite>
  <q>you’re so crazy</q>
<li>
  <cite>zcorpan</cite>
  <q>try that in a document that has a doctype declaration, with <abbr>IE</abbr></q>
 
<li>
  <cite>anne</cite>
  <q>heh</q>
</ol>
<p>Later on:
<ol class="conversation">
<li>
  <cite>zcorpan</cite>
 
  <q>how can a node that is <code>nodeType</code> 8 be returned by <code>getElementsByTagName</code>?</q>
<li>
  <cite>anne</cite>
  <q>euh, good question</q>
 
</ol>
</source>
 
* '''Analysis TBD'''
 
=== 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 RDF format is described on the [[chat-formats page]], this entry discussed the HTML and plain text files, as they appear to be directed at people.


==ILRT Logger Bot Format==
<source lang=html4strict>
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.
<div class="log">
<p>
  <span class="time" id="T00-27-42"><a href="#T00-27-42">00:27:42</a></span>
  <span class="nick">&lt;CaptSolo&gt;</span>
  <span class="comment">Gromgull: nice quote re. x years later</span>
</p>
<p>
  <span class="time" id="T00-27-57"><a href="#T00-27-57">00:27:57</a></span>
  <span class="nick">&lt;CaptSolo&gt;</span>
  <span class="comment">Gromgull: what could one do with those 17mb of invalid n3?</span>
</p>
<p>
  <span class="time" id="T01-38-48"><a href="#T01-38-48">01:38:48</a></span>
  <span class="nick">&lt;karlUshi&gt;</span>
  <span class="comment">
  <a href="http://aaronland.info/python/pyupcoming/">
    http://aaronland.info/python/pyupcoming/
  </a>
  </span>
</p>
</div>
</source>


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.
* log
** time
** nick
** comment
*** href?


<pre>
=== Trillian Format===  
<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>
</pre>


==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 plaintext 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).


Plaintext:
<source lang=text>
<pre>
Session Start (user1:user2): Fri Apr 01 17:43:06 2005
Session Start (user1:user2): Fri Apr 01 17:43:06 2005
[17:43] user2: ping
[17:43] user2: ping
Line 290: Line 389:
[17:46] user1: hey
[17:46] user1: hey
Session Close (user2): Fri Apr 01 17:47:00 2005
Session Close (user2): Fri Apr 01 17:47:00 2005
</pre>
</source>
 
* log
** timestamp
** modifier? user
** message
 
=== Skype Format===
 
When viewing archived conversations, this is what you get... What's up definition lists...? Oh yes!
<source lang=html4strict>
<p>
  Created on 2006-02-02 17:00:41.
</p>
<dl>
  <dd>
    <h3>
      2005-10-11
    </h3>
  </dd>
  <dt class="remote">
    <a href="callto://" title="[rUsername]">Brian Oberkirch</a>: <span>14:58:25</span>
  </dt>
  <dd>
    Chris
  </dd>
  <dt class="remote">
    <a href="callto://[rUsername]" title="[rUsername]">Brian Oberkirch</a>: <span>14:58:27</span>
  </dt>
  <dd>
    http://www.web20show.com/articles/2005/10/10/episode-3
  </dd>
  <dt class="local">
    Chris Messina: <span>14:58:41</span>
  </dt>
  <dd>
    ok
  </dd>
  <dt class="remote">
    <a href="callto://[rUsername]" title="[rUsername]">Brian Oberkirch</a>: <span>14:58:45</span>
  </dt>
  <dd>
    These guys mention your comment on the 37s thread during their podcast
  </dd>
  <dt class="local">
    Chris Messina: <span>14:58:51</span>
  </dt>
  <dd>
    seriously!?
  </dd>
  <dt class="local">
    Chris Messina: <span>14:58:52</span>
  </dt>
  <dd>
    ack
  </dd>
  <dt class="remote">
    <a href="callto://[rUsername]" title="[rUsername]">Brian Oberkirch</a>: <span>14:59:04</span>
  </dt>
  <dd>
    It's what it says in the transcript
  </dd>
</dl>
</source>
 
=== campfirenow.com===
 
<source lang=html4strict>
<table class="chat">
        <tbody id="chat">
          <tr class="timestamp_message message" id="message_2520523" style="">
  <td class="date"><span>Apr 26</span></td>
  <td class="time"><div>2:10 PM</div></td>
</tr>
 
<tr class="system_message message" id="message_2520524" style="">
  <td class="person">&nbsp;</td>
  <td class="body"><div>The transcript has been cleared</div></td>
</tr>
 
<tr class="timestamp_message message" id="message_2520953" style="">
  <td class="date"><span style="display:none">Apr 26</span></td>
  <td class="time"><div>2:20 PM</div></td>
</tr>
 
<tr class="system_message message" id="message_2520954" style="">
  <td class="person">&nbsp;</td>
  <td class="body"><div>The transcript has been cleared</div></td>
</tr>
 
<tr class="enter_message message user_52792" id="message_2521028" style="">
  <td class="person">Scott R.</td>
  <td class="body"><div>has entered the room</div></td>
</tr>
<tr class="text_message message user_52792 you" id="message_2521046" style="">
  <td class="person"><span>Scott R.</span></td>
  <td class="body"><div>so....chat...</div></td>
</tr>
 
        </tbody>
      </table>
</source>
 
=== Reported Speech===
I took a transcript of a council meeting and [http://yptsupport.blogspot.com/2006/05/ken-yeager-asks-albert-balagso-about.html marked it up]
<source lang=html4strict>
<ol style="list-style:disc">
<li><cite>Councilmember Yeager</cite>: <q>And I guess for you Albert on young people's theater, my understanding is it's  the same budget recommendation for the organization this year as last year?</q></li>
<li><cite>Albert Balagso</cite>: <q>That's correct. 100% cost recovery as directed in the June budget message last year.</q></li>
<li><cite>Councilmember Yeager</cite>: <q>How is that going to be tracked? I know they didn't get quite to 100% this  year. With all the food they were able to collect and all that other kind of stuff, I guess is it a flexible  amount? Is it sort of hoping to get to 100 but if it's 90 it's okay? I'm just trying to figure -- I know they're  very nervous about their funding and I wasn't quite sure what we could tell them to make them feel more  reassured.</q></li>
<li><cite>Albert Balagso</cite>: <q>We have been tracking their cost recovery and they are doing very well. They're very close. In the end  our budget balances. We make up from some other part of our overall budget. Over the course of a  couple of years or three years, establish a baseline and establish exactly where that is going to be. I'm  reluctant to lower the bar and try to get it to 100% because that might be achievable. Staff has worked  with the group to see if we can look at revamping some of the services that are out there. Maybe we're  doing too much and spending too much versus the return we're getting. So these are things that we're  looking at to tighten the strings and try to make it work a little bit better. But they need to take several  years of trying to establish exactly what is the capacity and the baseline of what they can recover.</q></li>
</ol>
</source>
 
=== Live Chat Examples===
 
* [http://www.plasticshore.com/logfile/entry/legacy_481 XHTML Chat]
* [http://socket7.net/lace/ Lace]
* [http://www.bluecomputing.com/files/ajaxchat AJAX Chat]
* [http://treehouse.ofb.net/chat/?lang=en Treehouse Chat]
 
=== Microformats Logbot===


The same in XML:
[http://rbach.priv.at/Microformats-IRC/2006-06-10 An example irc transcript from mflogbot] uses semantic HTML:
<pre>
<source lang=html4strict>
<session type="start" time="1112395386" medium="AIM" to="user2" from="user1"/>
<ol id="log">
<message type="incoming_privateMessage" time="1112395386" medium="AIM" to="user1" from="user2" from_display="user2" text="ping"/>
<li class="join" id="T090131">[<a href="#T090131"><abbr title="2006-06-10T09:01:31+00:00">09:01:31</abbr></a>] <span>* Kura (n=Kura@host86-142-204-134.range86-142.btcentralplus.com) has joined #microformats</span></li>
<message type="information_standard" time="1112395387" medium="AIM" text="Auto%2Dresponse%20sent%20to%20user2%3A%20My%20hovercraft%20is%20full%20of%20eels%2E"/>
<li class="message" id="T090158">[<a href="#T090158"><abbr title="2006-06-10T09:01:58+00:00">09:01:58</abbr></a>] &lt;<cite>mfbot</cite>&gt; <q>[[hcard]]  <a href="http://microformats.org/wiki?title=hcard&amp;diff=0&amp;oldid=6547">http://microformats.org/wiki?title=hcard&amp;diff=0&amp;oldid=6547</a> * 1samaaron * (+16) Examples in the wild -</q></li>
<message type="outgoing_privateMessage" time="1112395573" medium="AIM" to="user2" from="user1" from_display="user1" text="hey"/>
<li class="message" id="T090216">[<a href="#T090216"><abbr title="2006-06-10T09:02:16+00:00">09:02:16</abbr></a>] &lt;<cite>Kura</cite>&gt; <q>tantek: you awake?</q></li>
<session type="stop" time="1112395619" medium="AIM" to="user2" from="user1"/>
<li class="message" id="T090252">[<a href="#T090252"><abbr title="2006-06-10T09:02:52+00:00">09:02:52</abbr></a>] &lt;<cite>Marko</cite>&gt; <q>heh I think not coz its a bit late in America atm :D</q></li>
</pre>
<li class="message" id="T090315">[<a href="#T090315"><abbr title="2006-06-10T09:03:15+00:00">09:03:15</abbr></a>] &lt;<cite>Kura</cite>&gt; <q>Yeah but I was just chatting with an American :)</q></li>
<li class="message" id="T090320">[<a href="#T090320"><abbr title="2006-06-10T09:03:20+00:00">09:03:20</abbr></a>] &lt;<cite>Kura</cite>&gt; <q>they have their night owls</q></li>
<li class="message" id="T090326">[<a href="#T090326"><abbr title="2006-06-10T09:03:26+00:00">09:03:26</abbr></a>] &lt;<cite>Kura</cite>&gt; <q>but crap, hrmmmm...</q></li>
<li class="message" id="T090332">[<a href="#T090332"><abbr title="2006-06-10T09:03:32+00:00">09:03:32</abbr></a>] &lt;<cite>Marko</cite>&gt; <q>heh yeah me too</q></li>
<li class="quit" id="T090334">[<a href="#T090334"><abbr title="2006-06-10T09:03:34+00:00">09:03:34</abbr></a>] <span>* bunnywabbit_ (n=whatever@adsl-62-167-31-135.adslplus.ch) Quit (Nick collision from services.)</span></li>
</ol>
</source>


There is also a "user2-assets.xml" file for stuff like Buddy icons & file transers:
=== Loqi indiewebcamp archives ===
The Loqi bot in the [[indiewebcamp]] channel on [[IRC]] saves and publishes exceptionally well marked up IRC archives, with lots of microformats and links, including:
* [[h-entry]] for every line of IRC
* p-author [[h-card]] for every line from a nickname


<pre>
Additionally, different markup is used to distinguish:
<asset medium="AIM" name="user2" link="C%3A%5CProgram%20Files%5CTrillian%5Cusers%5Cdefault%5Cbuddyicons%5Cassets%5CAIM%2Duser2%2D1118046544%2Ejpg"/>
* messages from nicknames (presumably people) in the channel
<asset medium="AIM" name="user2" link="D%3A%5CPIX%5CY2005%5C0619%5CMOV02050%2EMPG"/>
* joins to the channel (departures are not logged/shown apparently)
<asset medium="AIM" name="user2" link="C%3A%5CDocuments%20and%20Settings%5Cant%5CDesktop%5CDSCN0372_resize%2EJPG"/>
* wiki edits copied in the channel
<asset medium="AIM" name="user2" link="C%3A%5CProgram%20Files%5CTrillian%5Cusers%5Cdefault%5Cbuddyicons%5Cassets%5CAIM%2Duser2%2D1133932754%2Ejpg"/>
* tweets copied to the channel
</pre>
* retweets copied to the channel


==Google Talk Format Logs==
Here is a fragment from [http://indiewebcamp.com/irc/2013-10-28 2013-10-28]:
Again, user1 is local.


<pre>
<source lang=html4strict>
3
<div class="logs">
17b5df8a
<div id="top" class="skip"><a href="#bottom">jump to bottom</a></div>
01c61af0
...
outgoing
<div id="t1382987738" class="h-entry line msg-message "><time class="dt-published" datetime="2013-10-28T12:15:38-07:00"><a href="http://indiewebcamp.com/irc/2013-10-28/line/1382987738" class="u-url time" >12:15</a></time> <span class="nick">&lt;<span class="p-author h-card"><a href="http://Tantek.com" class="author p-nickname p-name u-url">tantek</a></span>&gt;</span> <span class="p-content p-name">(since we did already have it indiemark explicitly!)</span></div>
%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
<div id="t1382987740" class="h-entry line msg-message "><time class="dt-published" datetime="2013-10-28T19:15:40+00:00"><a href="http://indiewebcamp.com/irc/2013-10-28/line/1382987740" class="u-url time" >12:15</a></time> <span class="nick">&lt;<span class="p-author h-card"><a href="http://waterpigs.co.uk" class="author p-nickname p-name u-url">barnabywalters</a></span>&gt;</span> <span class="p-content p-name">tantek: me too, considering it’s on indiemark</span></div>
incoming
<div id="t1382987744" class="h-entry line msg-message "><time class="dt-published" datetime="2013-10-28T19:15:44+00:00"><a href="http://indiewebcamp.com/irc/2013-10-28/line/1382987744" class="u-url time" >12:15</a></time> <span class="nick">&lt;<span class="p-author h-card"><a href="http://waterpigs.co.uk" class="author p-nickname p-name u-url">barnabywalters</a></span>&gt;</span> <span class="p-content p-name">jinx</span></div>
%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
<div id="t1382987758" class="h-entry line msg-message "><time class="dt-published" datetime="2013-10-28T19:15:58+00:00"><a href="http://indiewebcamp.com/irc/2013-10-28/line/1382987758" class="u-url time" >12:15</a></time> <span class="nick">&lt;<span class="p-author h-card"><a href="http://waterpigs.co.uk" class="author p-nickname p-name u-url">barnabywalters</a></span>&gt;</span> <span class="p-content p-name">switching locations</span></div>
outgoing
<div id="t1382987843" class="h-entry line msg-join "><time class="dt-published" datetime="2013-10-28T12:17:23-07:00"><a href="http://indiewebcamp.com/irc/2013-10-28/line/1382987843" class="u-url time" >12:17</a></time> <span class="p-content p-name">fmarier joined #indiewebcamp</span></div>
%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
<div id="t1382987857" class="h-entry line msg-wiki "><time class="dt-published" datetime="2013-10-28T12:17:37-07:00"><a href="http://indiewebcamp.com/irc/2013-10-28/line/1382987857" class="u-url time" >12:17</a></time> <span class="nick">&lt;<span class="p-author h-card"><span class="p-nickname p-name">Loqi</span></span>&gt;</span> <span class="p-content p-name">[[IndieMark]]  <a href="http://indiewebcamp.com/wiki/index.php?diff=5635&amp;oldid=5330&amp;rcid=5700">http://indiewebcamp.com/wiki/index.php?diff=5635&amp;oldid=5330&amp;rcid=5700</a> * Tantek.com * (+43) link up navigation and tags a bit</span></div>
outgoing
<div id="t1382988776" class="h-entry line msg-twitter "><time class="dt-published" datetime="2013-10-28T12:32:56-07:00"><a href="http://twtr.io/eBBQoQEyGY" class="u-url time" >12:32</a></time> <span class="nick">&lt;<a href="https://twitter.com/t" class="author p-author h-card p-url">@<span class="p-name p-nickname">t</span></a>&gt;</span> <span class="p-content p-name">Updated: How To Export Your Data From Dopplr <a href="http://tantek.com/2013/294/b1/export-your-data-from-dopplr">http://tantek.com/2013/294/b1/export-your-data-from-dopplr</a> <a href="http://twitter.com/dopplr">@dopplr</a> shutdown in 4 days. #ownyourdata #indieweb (ttk.me t4Sm1)</span></div>
%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
<div id="t1382988826" class="h-entry line msg-twitter retweet"><time class="dt-published" datetime="2013-10-28T12:33:46-07:00"><a href="http://twtr.io/eBBVNt2U7U" class="u-url time" >12:33</a></time> <span class="nick">&lt;<a href="https://twitter.com/fdevillamil" class="author p-author h-card p-url">@<span class="p-name p-nickname">fdevillamil</span></a>&gt;</span> <span class="p-content p-name">RT <a href="http://twitter.com/t">@t</a>: Updated: How To Export Your Data From Dopplr <a href="http://tantek.com/2013/294/b1/export-your-data-from-dopplr">http://tantek.com/2013/294/b1/export-your-data-from-dopplr</a> <a href="http://twitter.com/dopplr">@dopplr</a> shutdown in 4 days. #ownyourdata #indieweb (ttk.me t4Sm1)</span></div>
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
<div id="bottom" class="skip"><a href="#top">jump to top</a></div>
outgoing
</div>
%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
</source>
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
</pre>


=See Also=
==See Also==
* [[chat]]
* [[chat-formats]]
* [[chat-formats]]
* [[chat-brainstorming]]

Latest revision as of 19:02, 23 October 2024


Examples of how chat transcripts are marked up currently, with the idea of moving towards a microformat for marking up logs/archives of chat sessions (IRC etc.) that are posted on the Web. Next steps are documenting chat-formats, and doing some chat-brainstorming.

Examples in the wild

IRC transcripts

These are plaintext logs with space separated fields, so are posted wrapped in <pre>

12:06 Tantek: what does the datetime stamp represent?
12:07 KevinMarks: in iRC, when it was said
12:07 Tantek: is it a point in time *before* they started speaking?
12:07 Tantek: or *after*?
12:07 Tantek: or somewhere in the *middle*?
12:07 KevinMarks: usually it is quantised to seconds
12:07 KevinMarks: and it is time the msg was received
12:07 Tantek: but the second they started typing or pressed return?
12:08 KevinMarks: prssed return i think

Or as plaintext + <br> (eg http://chocnvodka.blogware.com/blog/_archives/2005/8/25/1169654.html)

(22:20) gturneruk: oh, i just remembered. windows 95 is ten years old today
(22:22) Suw: good god. i mean, i shouldn't be surprised, it being 2005 and all. but still, where did that time go?
(22:22) gturneruk: lost clusters
(22:23) Suw: i obviously need to defrag

xChat2 log format

**** BEGIN LOGGING AT Wed May 14 04:36:29 2003

May 14 04:36:29 -->     You are now talking on #test
May 14 04:36:29 ---     Topic for #test is Test Topic
May 14 04:36:29 ---     Topic for #test set by nick1 at Thu May  8 18:45:05
May 14 04:58:45 ---     You are now known as nick1
May 14 05:03:44 -->     nick1 (~nick1@2.1.3.narf-42905) has joined #test
May 14 05:05:48 <nick1> test message
May 14 05:10:24 *       nick1 test action
May 14 05:11:19 <--     nick1 has quit (quit)

**** ENDING LOGGING AT Fri Jul  4 00:28:22 2003

Snak log format

Log file opened at: 5/26/04 12:00:11 AM
[12:00:11:] nick1: test message
[12:10:29:] * nick1 test action
[12:13:16:] ***: nick2 (~nick2@test.net) has joined the channel
[12:20:35:] ***: nick2 has quit IRC ("Computer going to sleep...")
[12:21:31:] ***: You have joined the channel
Log file closed at: 5/26/04 2:29:08 AM

Jabber transcripts

Jabber Transcript (from Jabber Dev Meeting)

<font class="timestamp">[15:39:01]</font> <font class="normal">&lt;DaleH&gt;</font> hey david, any chance of a pm?<br/>
<font class="timestamp">[15:41:49]</font> <font class="normal">&lt;yipdw&gt;</font> sure<br/>
<font class="timestamp">[15:41:58]</font> <font class="normal">&lt;yipdw&gt;</font> I'm just swimming in ActiveRecord junk right now :p<br/>
<font class="timestamp">[15:42:08]</font> <font class="emote">stpeter reads <a href="http://coccinella.sourceforge.net/docs/MemoSyncSVG-XMPP.txt">http://coccinella.sourceforge.net/docs/MemoSyncSVG-XMPP.txt</a> :-)</font><br/>
<font class="timestamp">[15:42:52]</font> <font class="normal">&lt;yipdw&gt;</font> ooh, that memo expanded since I last read it<br/>
<font class="timestamp">[15:42:55]</font> <font class="normal">&lt;yipdw&gt;</font> *re-reads that one*<br/>
<font class="timestamp">[15:46:32]</font> <font class="system">remdeprived leaves the room</font><br/>
<font class="timestamp">[15:46:47]</font> <font class="system">remdeprived joins the room</font><br/>

Coccinella log format

set message([incr uid]) {-type chat -name user@example.org -thread 620c2bff-7e5332c1 -time 20060812T17:04:58 -body hi -tag me}
set message([incr uid]) {-type chat -name echo.example.org -thread 620c2bff-7e5332c1 -time 20060812T17:04:58 -body hi -tag you}
set message([incr uid]) {-type chat -name user@example.org -thread 620c2bff-7e5332c1 -time 20060812T17:05:17 -body {this is a test w
ith a but that replies all my messages} -tag me}
set message([incr uid]) {-type chat -name echo.example.org -thread 620c2bff-7e5332c1 -time 20060812T17:05:17 -body {this is a test wit
h a but that replies all my messages} -tag you}
set message([incr uid]) {-type chat -name user@example.org -thread 620c2bff-7e5332c1 -time 20060812T17:05:26 -body {cool, isn't it?
B-)} -tag me}
set message([incr uid]) {-type chat -name echo.example.org -thread 620c2bff-7e5332c1 -time 20060812T17:05:26 -body {cool, isn't it? B-
)} -tag you}

iChat transcripts

iChat handles timestamps differently, inserting them between statement blocks, every 5 minutes.

12:25 AM
Reconnecting to tantekatwork…
Kevin Marks: So, iChat shows timestamps between entries
Tantek: yes
Tantek: what about Adium?
12:30 AM
Kevin Marks: my copy is 230 days old...

Bash.org

Bash.org and other QDBs collect funny IRC transcripts and let people vote on them. They use plaintext + <br />, wrapped in <p> http://bash.org/?23396

<Donut[AFK]> HEY EURAKARTE
<Donut[AFK]> INSULT
<Eurakarte> RETORT
<Donut[AFK]> COUNTER-RETORT
<Eurakarte> QUESTIONING OF SEXUAL PREFERENCE
<Donut[AFK]> SUGGESTION TO SHUT THE FUCK UP
<Eurakarte> NOTATION THAT YOU CREATE A VACUUM
<Donut[AFK]> RIPOSTE
<Donut[AFK]> ADDON RIPOSTE
<Eurakarte> COUNTER-RIPOSTE
<Donut[AFK]> COUNTER-COUNTER RIPOSTE
<Eurakarte> NONSENSICAL STATEMENT INVOLVING PLANKTON
<Miles_Prower> RESPONSE TO RANDOM STATEMENT AND THREAT TO BAN OPPOSING SIDES
<Eurakarte> WORDS OF PRAISE FOR FISHFOOD
<Miles_Prower> ACKNOWLEDGEMENT AND ACCEPTENCE OF TERMS

Log Library

Log Library displays a tabular format with divs

<div class="row" name="GusVanNos">
   <div class="timestamp">18:36:28</div>
   <div class="nick">&lt;GusVanNos&gt;</div> 
   <div class="message">.+. is a lazy way of saying .{2,}</div>
</div>

<div class="row" name="jawong">
    <div class="timestamp">18:36:48</div>
    <div class="nick">&lt;jawong&gt;</div>
    <div class="message">your model is waaaay better, xal.</div>
</div>
  • row
    • timestamp
    • nick
    • message

JWZ

http://www.jwz.org/hacks/irc2html.pl was used to generate the irc logs for Bar Camp Dallas : http://barcamp.org/f/barcampdallas-irc.html

<table bgcolor="#ffffff">
 <tbody>
  <tr>
   <td bgcolor="#eeeeee" nowrap="nowrap" valign="top">
    <font color="#000000">
     <i>[2006/01/28 11:21:34]&nbsp;</i>
    </font>
   </td>
   <td bgcolor="#eeeeee" valign="top">
    <font color="#000000">
     <i>@ jdunck joined channel #barcampdallas</i>
    </font>
   </td>
  </tr>
  <tr>
   <td nowrap="nowrap" valign="top">
    <font color="#000000">
     <i>[2006/01/28 11:21:40]&nbsp;</i>
    </font>
   </td>
   <td valign="top">
    <font color="#000000">
     <i>&lt;tantek&gt; is there a subethaedit-compatible client on windows?</i>
   </font>
  </td>
 </tr>
 ...

MSN Messenger XML Format Logs

Examples at: http://stupidpeople.commo.de/logs/After%20August%202004/, there are a bunch there but not sure how widespread it is. General structure appears to be a Log element wrapper, with toplevel Join and Message elements. It's a little strange how the To element has children indicating all the recepients, normally that would be implicit, but there may be a reason that isn't clear just from this example. Original posting for example: http://microformats.org/discuss/mail/microformats-discuss/2006-February/002937.html Note that these get published with a stylesheet that makes them viewable directly, they appear to be human-directed.

<Log FirstSessionID="1" LastSessionID="1">
 <Join Date="9/12/2004" Time="6:48:20 PM" DateTime="2004-09-12T23:48:20.716Z" SessionID="1">
  <User FriendlyName="'' Quando não tem oq se ama...É preciso amar oq se tem!!! ''"/>
  <Text Style="color:#008000; ">
   '' Quando não tem oq se ama...É preciso amar oq se tem!!! '' has been added to the conversation.
  </Text>
 </Join>
 <Message Date="9/12/2004" Time="6:48:20 PM" DateTime="2004-09-12T23:48:20.846Z" SessionID="1">
  <From>
   <User FriendlyName="Você vive inventando maneiras pra dizer semp pra dizer que me quer!!"/>
  </From>
  <To>
   <User FriendlyName="http://commo.de/StupidPeople/"/>
   <User FriendlyName=":@TE ODEIO:@"/>
   <User FriendlyName="|I{•------»Victor«------•}I|1 2 3 o corh fregueis! -LLUSSAA EOOOO"/>
   <User FriendlyName="&quot;Tô com sono!!! Acho que vo durmi!!!&quot;"/>
   <User FriendlyName="||||Gabriel||||| A Clockwork Orange.."/>
   <User FriendlyName="Pensar para acertar, Calar para resistir, Agir para vencer"/>
   <User FriendlyName="*&gt;.Jessy.&lt;*genteeeeeeeemmmmmmm..trokeiser  tá  aqui:09098217635!!!"/>
  </To>
  <Text Style="font-family:Sylfaen; color:#ff0000; ">
   nossa qnta gente
  </Text>
 </Message>
</Log>
  • Log
    • Join
      • User
        • FriendlyName
      • Text
    • Message
      • From
        • User
      • To
        • User*
      • Text

MSN Messenger Marked Up By Anne van Kesteren

Found at: http://annevankesteren.nl/2005/10/msn-sessions

<p>Late night <abbr title="Microsoft Network">MSN</abbr> sessions…
<ol class="conversation">
 <li>
  <cite>zcorpan</cite>
  <q><code>&lt;form&gt;</code> does not imply <code>&lt;body&gt;</code> in <abbr title="Internet Explorer">IE</abbr>6</q>

 
 <li>
  <cite>anne</cite>
  <q>interesting</q>
 
 <li>
  <cite>zcorpan</cite>
 <q>it’s worse…</q>
 
 <li>

  <cite>zcorpan</cite>
  <blockquote><pre>&lt;!DOCTYPE html&gt;
&lt;title&gt;001&lt;/title&gt;
&lt;style&gt;
 div { position:relative; }
 form { width:40em; }
&lt;/style&gt;
&lt;div&gt;

 &lt;form&gt;
  &lt;p&gt;test
 &lt;/form&gt;
&lt;/div&gt;</pre></blockquote>
 
 <li>
  <cite>zcorpan</cite>
  <q><code>innerHTML</code> for that:</q>

 
 <li>
  <cite>zcorpan</cite>
  <blockquote><pre>&lt;HTML&gt;&lt;HEAD&gt;&lt;TITLE&gt;001&lt;/TITLE&gt;
&lt;STYLE&gt;
 div { position:relative; }
 form { width:40em; }
&lt;/STYLE&gt;

&lt;FORM&gt;&lt;/HEAD&gt;
&lt;BODY&gt;
&lt;DIV&gt;
&lt;P&gt;test &lt;/FORM&gt;&lt;/P&gt;&lt;/DIV&gt;&lt;/BODY&gt;&lt;/HTML&gt;</pre></blockquote>
 
 <li>

  <cite>anne</cite>
  <q>ah, totally <abbr>IE</abbr></q>
 
 <li>
  <cite>zcorpan</cite>
  <q>the contents of the div <ins>are</ins> invisible</q>

 
 <li>
  <cite>anne</cite>
  <q>hmm…</q>
 
 <li>
  <cite>anne</cite>
  <q>o well</q>
 
 <li>

  <cite>anne</cite>
  <q>debugging that sucks</q>
 
 <li>
  <cite>anne</cite>
  <q>emulating it might be cool</q>
 
 <li>
  <cite>anne</cite>

  <q>building <abbr>IE</abbr> again</q>
 
 <li>
  <cite>zcorpan</cite>
  <q>the thought of it hurts my brains</q>
 
 <li>
  <cite>zcorpan</cite>

  <q><code>javascript:alert(document.getElementsByTagName("!")[0].nodeValue)</code></q>
 
 <li>
  <cite>anne</cite>
  <q>you’re so crazy</q>
 
 <li>
  <cite>zcorpan</cite>
  <q>try that in a document that has a doctype declaration, with <abbr>IE</abbr></q>

 
 <li>
  <cite>anne</cite>
  <q>heh</q>
 
</ol>
<p>Later on:
<ol class="conversation">
 <li>
  <cite>zcorpan</cite>

  <q>how can a node that is <code>nodeType</code> 8 be returned by <code>getElementsByTagName</code>?</q>
 
 <li>
  <cite>anne</cite>
  <q>euh, good question</q>
 

</ol>
  • Analysis TBD

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 RDF format is described on the chat-formats page, this entry discussed the HTML and plain text files, as they appear to be directed at people.

<div class="log">
 <p>
  <span class="time" id="T00-27-42"><a href="#T00-27-42">00:27:42</a></span>
  <span class="nick">&lt;CaptSolo&gt;</span>
  <span class="comment">Gromgull: nice quote re. x years later</span>
 </p>
 <p>
  <span class="time" id="T00-27-57"><a href="#T00-27-57">00:27:57</a></span>
  <span class="nick">&lt;CaptSolo&gt;</span>
  <span class="comment">Gromgull: what could one do with those 17mb of invalid n3?</span>
 </p>
 <p>
  <span class="time" id="T01-38-48"><a href="#T01-38-48">01:38:48</a></span>
  <span class="nick">&lt;karlUshi&gt;</span>
  <span class="comment">
   <a href="http://aaronland.info/python/pyupcoming/">
    http://aaronland.info/python/pyupcoming/
   </a>
  </span>
 </p>
</div>
  • log
    • time
    • nick
    • comment
      • href?

Trillian 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 plaintext format.

Session Start (user1:user2): Fri Apr 01 17:43:06 2005
[17:43] user2: ping
[17:43] *** Auto-response sent to user2: My hovercraft is full of eels.
[17:46] user1: hey
Session Close (user2): Fri Apr 01 17:47:00 2005
  • log
    • timestamp
    • modifier? user
    • message

Skype Format

When viewing archived conversations, this is what you get... What's up definition lists...? Oh yes!

<p>
  Created on 2006-02-02 17:00:41.
</p>
<dl>
  <dd>
    <h3>
      2005-10-11
    </h3>
  </dd>
  <dt class="remote">
    <a href="callto://" title="[rUsername]">Brian Oberkirch</a>: <span>14:58:25</span>
  </dt>
  <dd>
    Chris
  </dd>
  <dt class="remote">
    <a href="callto://[rUsername]" title="[rUsername]">Brian Oberkirch</a>: <span>14:58:27</span>
  </dt>
  <dd>
    http://www.web20show.com/articles/2005/10/10/episode-3
  </dd>
  <dt class="local">
    Chris Messina: <span>14:58:41</span>
  </dt>
  <dd>
    ok
  </dd>
  <dt class="remote">
    <a href="callto://[rUsername]" title="[rUsername]">Brian Oberkirch</a>: <span>14:58:45</span>
  </dt>
  <dd>
    These guys mention your comment on the 37s thread during their podcast
  </dd>
  <dt class="local">
    Chris Messina: <span>14:58:51</span>
  </dt>
  <dd>
    seriously!?
  </dd>
  <dt class="local">
    Chris Messina: <span>14:58:52</span>
  </dt>
  <dd>
    ack
  </dd>
  <dt class="remote">
    <a href="callto://[rUsername]" title="[rUsername]">Brian Oberkirch</a>: <span>14:59:04</span>
  </dt>
  <dd>
    It's what it says in the transcript
  </dd>
</dl>

campfirenow.com

<table class="chat">
        <tbody id="chat">
          <tr class="timestamp_message message" id="message_2520523" style="">
  <td class="date"><span>Apr 26</span></td>
  <td class="time"><div>2:10 PM</div></td>
</tr>

<tr class="system_message message" id="message_2520524" style="">
  <td class="person">&nbsp;</td>
  <td class="body"><div>The transcript has been cleared</div></td>
</tr>

<tr class="timestamp_message message" id="message_2520953" style="">
  <td class="date"><span style="display:none">Apr 26</span></td>
  <td class="time"><div>2:20 PM</div></td>
</tr>

<tr class="system_message message" id="message_2520954" style="">
  <td class="person">&nbsp;</td>
  <td class="body"><div>The transcript has been cleared</div></td>
</tr>

<tr class="enter_message message user_52792" id="message_2521028" style="">
  <td class="person">Scott R.</td>
  <td class="body"><div>has entered the room</div></td>
</tr>
<tr class="text_message message user_52792 you" id="message_2521046" style="">
  <td class="person"><span>Scott R.</span></td>
  <td class="body"><div>so....chat...</div></td>
</tr>

        </tbody>
      </table>

Reported Speech

I took a transcript of a council meeting and marked it up

<ol style="list-style:disc">
<li><cite>Councilmember Yeager</cite>: <q>And I guess for you Albert on young people's theater, my understanding is it's  the same budget recommendation for the organization this year as last year?</q></li>
<li><cite>Albert Balagso</cite>: <q>That's correct. 100% cost recovery as directed in the June budget message last year.</q></li>
<li><cite>Councilmember Yeager</cite>: <q>How is that going to be tracked? I know they didn't get quite to 100% this  year. With all the food they were able to collect and all that other kind of stuff, I guess is it a flexible  amount? Is it sort of hoping to get to 100 but if it's 90 it's okay? I'm just trying to figure -- I know they're  very nervous about their funding and I wasn't quite sure what we could tell them to make them feel more  reassured.</q></li>
<li><cite>Albert Balagso</cite>: <q>We have been tracking their cost recovery and they are doing very well. They're very close. In the end  our budget balances. We make up from some other part of our overall budget. Over the course of a  couple of years or three years, establish a baseline and establish exactly where that is going to be. I'm  reluctant to lower the bar and try to get it to 100% because that might be achievable. Staff has worked  with the group to see if we can look at revamping some of the services that are out there. Maybe we're  doing too much and spending too much versus the return we're getting. So these are things that we're  looking at to tighten the strings and try to make it work a little bit better. But they need to take several  years of trying to establish exactly what is the capacity and the baseline of what they can recover.</q></li>
</ol>

Live Chat Examples

Microformats Logbot

An example irc transcript from mflogbot uses semantic HTML:

<ol id="log">
<li class="join" id="T090131">[<a href="#T090131"><abbr title="2006-06-10T09:01:31+00:00">09:01:31</abbr></a>] <span>* Kura (n=Kura@host86-142-204-134.range86-142.btcentralplus.com) has joined #microformats</span></li>
<li class="message" id="T090158">[<a href="#T090158"><abbr title="2006-06-10T09:01:58+00:00">09:01:58</abbr></a>] &lt;<cite>mfbot</cite>&gt; <q>[[hcard]]  <a href="http://microformats.org/wiki?title=hcard&amp;diff=0&amp;oldid=6547">http://microformats.org/wiki?title=hcard&amp;diff=0&amp;oldid=6547</a> * 1samaaron * (+16) Examples in the wild -</q></li>
<li class="message" id="T090216">[<a href="#T090216"><abbr title="2006-06-10T09:02:16+00:00">09:02:16</abbr></a>] &lt;<cite>Kura</cite>&gt; <q>tantek: you awake?</q></li>
<li class="message" id="T090252">[<a href="#T090252"><abbr title="2006-06-10T09:02:52+00:00">09:02:52</abbr></a>] &lt;<cite>Marko</cite>&gt; <q>heh I think not coz its a bit late in America atm :D</q></li>
<li class="message" id="T090315">[<a href="#T090315"><abbr title="2006-06-10T09:03:15+00:00">09:03:15</abbr></a>] &lt;<cite>Kura</cite>&gt; <q>Yeah but I was just chatting with an American :)</q></li>
<li class="message" id="T090320">[<a href="#T090320"><abbr title="2006-06-10T09:03:20+00:00">09:03:20</abbr></a>] &lt;<cite>Kura</cite>&gt; <q>they have their night owls</q></li>
<li class="message" id="T090326">[<a href="#T090326"><abbr title="2006-06-10T09:03:26+00:00">09:03:26</abbr></a>] &lt;<cite>Kura</cite>&gt; <q>but crap, hrmmmm...</q></li>
<li class="message" id="T090332">[<a href="#T090332"><abbr title="2006-06-10T09:03:32+00:00">09:03:32</abbr></a>] &lt;<cite>Marko</cite>&gt; <q>heh yeah me too</q></li>
<li class="quit" id="T090334">[<a href="#T090334"><abbr title="2006-06-10T09:03:34+00:00">09:03:34</abbr></a>] <span>* bunnywabbit_ (n=whatever@adsl-62-167-31-135.adslplus.ch) Quit (Nick collision from services.)</span></li>
</ol>

Loqi indiewebcamp archives

The Loqi bot in the indiewebcamp channel on IRC saves and publishes exceptionally well marked up IRC archives, with lots of microformats and links, including:

  • h-entry for every line of IRC
  • p-author h-card for every line from a nickname

Additionally, different markup is used to distinguish:

  • messages from nicknames (presumably people) in the channel
  • joins to the channel (departures are not logged/shown apparently)
  • wiki edits copied in the channel
  • tweets copied to the channel
  • retweets copied to the channel

Here is a fragment from 2013-10-28:

<div class="logs">
<div id="top" class="skip"><a href="#bottom">jump to bottom</a></div>
...
<div id="t1382987738" class="h-entry line msg-message "><time class="dt-published" datetime="2013-10-28T12:15:38-07:00"><a href="http://indiewebcamp.com/irc/2013-10-28/line/1382987738" class="u-url time" >12:15</a></time> <span class="nick">&lt;<span class="p-author h-card"><a href="http://Tantek.com" class="author p-nickname p-name u-url">tantek</a></span>&gt;</span> <span class="p-content p-name">(since we did already have it indiemark explicitly!)</span></div>
<div id="t1382987740" class="h-entry line msg-message "><time class="dt-published" datetime="2013-10-28T19:15:40+00:00"><a href="http://indiewebcamp.com/irc/2013-10-28/line/1382987740" class="u-url time" >12:15</a></time> <span class="nick">&lt;<span class="p-author h-card"><a href="http://waterpigs.co.uk" class="author p-nickname p-name u-url">barnabywalters</a></span>&gt;</span> <span class="p-content p-name">tantek: me too, considering it’s on indiemark</span></div>
<div id="t1382987744" class="h-entry line msg-message "><time class="dt-published" datetime="2013-10-28T19:15:44+00:00"><a href="http://indiewebcamp.com/irc/2013-10-28/line/1382987744" class="u-url time" >12:15</a></time> <span class="nick">&lt;<span class="p-author h-card"><a href="http://waterpigs.co.uk" class="author p-nickname p-name u-url">barnabywalters</a></span>&gt;</span> <span class="p-content p-name">jinx</span></div>
<div id="t1382987758" class="h-entry line msg-message "><time class="dt-published" datetime="2013-10-28T19:15:58+00:00"><a href="http://indiewebcamp.com/irc/2013-10-28/line/1382987758" class="u-url time" >12:15</a></time> <span class="nick">&lt;<span class="p-author h-card"><a href="http://waterpigs.co.uk" class="author p-nickname p-name u-url">barnabywalters</a></span>&gt;</span> <span class="p-content p-name">switching locations</span></div>
<div id="t1382987843" class="h-entry line msg-join "><time class="dt-published" datetime="2013-10-28T12:17:23-07:00"><a href="http://indiewebcamp.com/irc/2013-10-28/line/1382987843" class="u-url time" >12:17</a></time> <span class="p-content p-name">fmarier joined #indiewebcamp</span></div>
<div id="t1382987857" class="h-entry line msg-wiki "><time class="dt-published" datetime="2013-10-28T12:17:37-07:00"><a href="http://indiewebcamp.com/irc/2013-10-28/line/1382987857" class="u-url time" >12:17</a></time> <span class="nick">&lt;<span class="p-author h-card"><span class="p-nickname p-name">Loqi</span></span>&gt;</span> <span class="p-content p-name">[[IndieMark]]  <a href="http://indiewebcamp.com/wiki/index.php?diff=5635&amp;oldid=5330&amp;rcid=5700">http://indiewebcamp.com/wiki/index.php?diff=5635&amp;oldid=5330&amp;rcid=5700</a> * Tantek.com * (+43) link up navigation and tags a bit</span></div>
<div id="t1382988776" class="h-entry line msg-twitter "><time class="dt-published" datetime="2013-10-28T12:32:56-07:00"><a href="http://twtr.io/eBBQoQEyGY" class="u-url time" >12:32</a></time> <span class="nick">&lt;<a href="https://twitter.com/t" class="author p-author h-card p-url">@<span class="p-name p-nickname">t</span></a>&gt;</span> <span class="p-content p-name">Updated: How To Export Your Data From Dopplr <a href="http://tantek.com/2013/294/b1/export-your-data-from-dopplr">http://tantek.com/2013/294/b1/export-your-data-from-dopplr</a> <a href="http://twitter.com/dopplr">@dopplr</a> shutdown in 4 days. #ownyourdata #indieweb (ttk.me t4Sm1)</span></div>
<div id="t1382988826" class="h-entry line msg-twitter retweet"><time class="dt-published" datetime="2013-10-28T12:33:46-07:00"><a href="http://twtr.io/eBBVNt2U7U" class="u-url time" >12:33</a></time> <span class="nick">&lt;<a href="https://twitter.com/fdevillamil" class="author p-author h-card p-url">@<span class="p-name p-nickname">fdevillamil</span></a>&gt;</span> <span class="p-content p-name">RT <a href="http://twitter.com/t">@t</a>: Updated: How To Export Your Data From Dopplr <a href="http://tantek.com/2013/294/b1/export-your-data-from-dopplr">http://tantek.com/2013/294/b1/export-your-data-from-dopplr</a> <a href="http://twitter.com/dopplr">@dopplr</a> shutdown in 4 days. #ownyourdata #indieweb (ttk.me t4Sm1)</span></div>
...
<div id="bottom" class="skip"><a href="#top">jump to top</a></div>
</div>

See Also