chat/chatPane.js
function (subject) {
    var n = UI.store.each(subject, ns.wf('message')).length
    if (n > 0) return 'Chat (' + n + ')' // Show how many in hover text

    if (kb.holds(subject, ns.rdf('type'), ns.meeting('Chat'))) { // subject is the file
      return 'Meeting chat'
    }
    if (kb.holds(undefined, ns.rdf('type'), ns.foaf('ChatChannel'), subject)) { // subject is the file
      return 'IRC log' // contains anything of this type
    }
    return null // Suppress pane otherwise
  }
function (subject) {
    var n = UI.store.each(subject, ns.wf('message')).length
    if (n > 0) return 'Chat (' + n + ')' // Show how many in hover text

    if (kb.holds(subject, ns.rdf('type'), ns.meeting('Chat'))) { // subject is the file
      return 'Meeting chat'
    }
    if (kb.holds(undefined, ns.rdf('type'), ns.foaf('ChatChannel'), subject)) { // subject is the file
      return 'IRC log' // contains anything of this type
    }
    return null // Suppress pane otherwise
  }
function ( subject ) { var n = UI . store . each ( subject , ns . wf ( 'message' ) ) . length if ( n > 0 ) return 'Chat (' + n + ')' // Show how many in hover text if ( kb . holds ( subject , ns . rdf ( 'type' ) , ns . meeting ( 'Chat' ) ) ) { // subject is the file return 'Meeting chat' } if ( kb . holds ( undefined , ns . rdf ( 'type' ) , ns . foaf ( 'ChatChannel' ) , subject ) ) { // subject is the file return 'IRC log' // contains anything of this type } return null // Suppress pane otherwise }
/*   AN RRSAgent IRC log:

<irc://localhost:6667/&mit>
a    foaf:ChatChannel
foaf:chatEventList
[ rdf:_100
<#T19-10-58>
rdf:_101
<#T19-10-58-1>
rdf:_102
..
<#T19-28-47-1>
dc:creator
[ a wn:Person; foaf:nick "timbl" ]
dc:date
"2016-03-15T19:28:47Z"
dc:description
"timbl has joined &mit"
a    foaf:chatEvent.
/ * AN RRSAgent IRC log :