nl_tokens: Figure out which are reciprocated :
pl_tokens: function triageFriends ( s ) { outgoing = kb . each ( s , foaf ( 'knows' ) ) incoming = kb . each ( undefined , foaf ( 'knows' ) , s ) // @@ have to load the friends var confirmed = [ ] var unconfirmed = [ ] var requests = [ ] for ( let i = 0 ; i < outgoing . length ; i ++ ) { let friend = outgoing [ i ] let found = false for ( let j = 0 ; j < incoming . length ; j ++ ) { if ( incoming [ j ] . sameTerm ( friend ) ) { found = true break } } if ( found ) confirmed . push ( friend ) else unconfirmed . push ( friend ) } // outgoing for ( let i = 0 ; i < incoming . length ; i ++ ) { let friend = incoming [ i ] // var lab = UI.utils.label(friend) let found = false for ( let j = 0 ; j < outgoing . length ; j ++ ) { if ( outgoing [ j ] . sameTerm ( friend ) ) { found = true break } } if ( ! found ) requests . push ( friend ) } // incoming var cases = [ [ 'Acquaintances' , outgoing ] , [ 'Mentioned as acquaintances by: ' , requests ] ] for ( let i = 0 ; i < cases . length ; i ++ ) { let thisCase = cases [ i ] let friends = thisCase [ 1 ] if ( friends . length === 0 ) continue // Skip empty sections (sure?) let h3 = dom . createElement ( 'h3' ) h3 . textContent = thisCase [ 0 ] let htr = dom . createElement ( 'tr' ) htr . appendChild ( h3 ) mainTable . appendChild ( htr ) var items = [ ] for ( var j9 = 0 ; j9 < friends . length ; j9 ++ ) { <mask> . push ( [ UI . utils . label ( friends [ j9 ] ) , friends [ j9 ] ] ) } items . sort ( ) var last = null var fr for ( var j7 = 0 ; j7 < items . length ; j7 ++ ) { fr = items [ j7 ] [ 1 ] if ( fr . sameTerm ( last ) ) continue // unique last = fr if ( UI . utils . label ( fr ) !== '...' ) { // This check is to avoid bnodes with no labels attached // appearing in the friends list with "..." - Oshani mainTable . appendChild ( oneFriend ( fr ) ) } } } }