Prechádzať zdrojové kódy

prove improvement wordcloud

Francesco 2 rokov pred
rodič
commit
23dafeafa8
1 zmenil súbory, kde vykonal 31 pridanie a 14 odobranie
  1. 31 14
      js/word_cloud.js

+ 31 - 14
js/word_cloud.js

@@ -5,35 +5,35 @@
  *               */
 
 // SPARQL Query text -- 'prefixes' and 'thisUrlParams' defined in people.js; 
-let queryNetwork = prefixes + " SELECT DISTINCT COUNT(?event) AS ?count ?uri2 SAMPLE(?label2) AS ?text \
+let queryNetwork = prefixes + " SELECT COUNT(?event1) AS ?count1 COUNT(?event2) AS ?count2 ?uri2 SAMPLE(?label2) AS ?text \
 WHERE { \
-{?event rdf:type crm:EL1_Exchange_Letters . \
-?event_to rdfs:subClassOf ?event; \
+{?event1 rdf:type crm:EL1_Exchange_Letters . \
+?event_to rdfs:subClassOf ?event1; \
 rdf:type crm:EL2_Send_Letter ; \
 crm:P01_has_domain ?pc_to . \
 ?pc_to crm:P02_has_range ?uri . \
 ?uri rdfs:label ?label . \
-?event_from rdfs:subClassOf ?event; \
+?event_from rdfs:subClassOf ?event1; \
 rdf:type crm:EL3_Receive_Letter; \
 crm:P01_has_domain ?pc_from . \
 ?pc_from crm:P02_has_range ?uri2 . \
 ?uri2 rdfs:label ?label2 . \
 FILTER (?uri = <" + thisUrlParams.link + ">) \
 } UNION { \
-?event rdf:type crm:EL1_Exchange_Letters . \
-?event_to rdfs:subClassOf ?event; \
+?event2 rdf:type crm:EL1_Exchange_Letters . \
+?event_to rdfs:subClassOf ?event2; \
 rdf:type crm:EL3_Receive_Letter ; \
 crm:P01_has_domain ?pc_from . \
 ?pc_from crm:P02_has_range ?uri . \
 ?uri rdfs:label ?label . \
-?event_from rdfs:subClassOf ?event; \
+?event_from rdfs:subClassOf ?event2; \
 rdf:type crm:EL2_Send_Letter; \
 crm:P01_has_domain ?pc_to . \
 ?pc_to crm:P02_has_range ?uri2 . \
 ?uri2 rdfs:label ?label2 . \
 FILTER (?uri = <" + thisUrlParams.link + ">) \
 } \
-} ORDER BY DESC (?count)"
+}"
 
 // 'prepareQueryURL' defined in people.js
 let queryNet = prepareQueryURL(queryNetwork);
@@ -70,14 +70,18 @@ function processQuery(json) {
     
     $.each(
         json['results']['bindings'],
-        function (index, value) {
+        (index, value) => {
           let text = value['text']['value'];
           let link = value['uri2']['value'];
-          let num = parseInt(value['count']['value']);
-          tempArray.push({'text': text, 'count': num, 'hlink': link});
+          let sent = parseInt(value['count1']['value']);
+          let received = parseInt(value['count2']['value']);
+          let count = sent + received;
+          tempArray.push({'text': text, 'sent': sent, 'received': received, 'count': count, 'hlink': link});
         }
     );
 
+    tempArray.sort((a, b) => b.count - a.count);
+
     return tempArray;
 
 }
@@ -138,9 +142,20 @@ function doListPersonNetwork(tempArray){
     let ArrayNames = "";
 
     tempArray.forEach(element => {
-        ArrayNames += "<div class='item-place-person'><div class='item-place-person-label'>" +
-        element['text'] + "<br /><span class='num_occ'>[Co-occorrenze: " + element['count'] + "]</span></div><div class='item-place-person-action'><div class='persona' id='" +
-        element['hlink'] + "'><i class='fa fa-user' style='cursor:pointer'></i></div></div></div></div>";            
+        ArrayNames +=
+        "<div class='item-place-person'>\
+            <div class='item-place-person-label'>" +
+                element['text'] +
+                "<br /><span class='num_occ'>[Lettere inviate: " + element['sent'] + "]</span>\
+                <br /><span class='num_occ'>[Lettere ricevute: " + element['received'] + "]</span>\
+                <br /><span class='num_occ'>[Totale corrispondenza: " + element['count'] + "]</span>\
+            </div>\
+            <div class='item-place-person-action'>\
+                <div class='persona' id='" + element['hlink'] +"'>\
+                    <i class='fa fa-user' style='cursor:pointer'></i>\
+                </div>\
+            </div>\
+        </div>";            
     });
 
     document.getElementById("list_person_network").innerHTML = ArrayNames;
@@ -222,6 +237,8 @@ function draw(words, svg) {
              .attr('font-size', 1)
              .append("a")
              .attr("href", word => word.hlink)
+             .attr("data-toggle", "tooltip")
+             .attr("title", word => word.size)
              .text( word => { return word.text; });
 
         //Entering and exiting words