{"id":9294,"date":"2016-08-02T09:56:52","date_gmt":"2016-08-02T07:56:52","guid":{"rendered":"https:\/\/informatica.uniurb.it\/triennale\/?p=9294"},"modified":"2016-08-02T09:57:24","modified_gmt":"2016-08-02T07:57:24","slug":"convcomp2016-3-implementare-un-bot-di-crowdsensing","status":"publish","type":"post","link":"https:\/\/informatica.uniurb.it\/triennale\/convcomp2016-3-implementare-un-bot-di-crowdsensing\/","title":{"rendered":"ConvComp2016: implementare un Bot di crowdsensing"},"content":{"rendered":"<p>Dopo aver discusso di <em>Bot<\/em> come autentiche piattaforme, al pari di applicazioni mobili o siti web, ed aver argomentato che un <em>Bot<\/em> non necessariamente debba fungere da fornitore di informazioni\u2014ma pu\u00f2 benissimo essere lo strumento per raccogliere dati e quindi essere parte di un meccanismo di intelligenza collettiva\u2014\u00e8 giunto il momento di metterci all&#8217;opera per realizzarne uno.<\/p>\n<p>Come descritto precedentemente, per l&#8217;occasione dell&#8217;<a href=\"https:\/\/medium.com\/convcomp2016\/conversational-computation-chatbots-revolution-9035636faf3e#.kxb3k5dx2\">evento ConvComp2016 del 24 giugno<\/a>, abbiamo realizzato un semplice <em>Bot<\/em> che permettesse di <strong>raccogliere pensieri, emozioni e stati d&#8217;animo geolocalizzati<\/strong>, in modo da dare un&#8217;idea del sentimento generale in un&#8217;area. Il <em>Bot<\/em> \u00e8 <a href=\"https:\/\/telegram.me\/wordcloud_bot\">online su Telegram come <strong>@wordcloud_bot<\/strong><\/a> ed \u00e8 possibile utilizzarlo da subito per vederlo in azione.<\/p>\n<p><!--more--><\/p>\n<h4>Strumenti semplici ed aperti per realizzare il proprio Bot.<\/h4>\n<p>La semplicit\u00e0 e la rapidit\u00e0 con cui si sono diffusi le svariate piattaforme di messaggistica ed i loro <em>Bot<\/em> sono, in buona parte, il frutto di anni di software e livelli di astrazione che rendono, oggigiorno, la programmazione di un&#8217;applicazione o di un sistema di comunicazione sorprendentemente facile. Alla stessa maniera, l&#8217;esistenza di immani \u201cspalle di giganti\u201d su cui basarsi fa s\u00ec che\u2014almeno per quanto riguarda l&#8217;implementazione di un semplice <em>Bot<\/em>\u2014<a href=\"http:\/\/www.hanselman.com\/blog\/WeAreAbstractingOnTheShouldersOfGiants.aspx\">ci siano gi\u00e0 tutti i pezzi LEGO di cui abbiamo bisogno<\/a> e che combinarli per raggiungere il nostro risultato spesso possa anche essere divertente.<\/p>\n<p>In questo esempio faremo uso del software che viene utilizzato come supporto didattico nel corso di \u201cPiattaforme Digitali per la Gestione del Territorio\u201d del <em>Corso di Laurea in Informatica Applicata<\/em> dell&#8217;Universit\u00e0 di Urbino, che viene <a href=\"https:\/\/platform.europeanmoocs.eu\/course_piattaforme_digitali_per_la_ge\">offerto anche come MOOC online sulla piattaforma EMMA<\/a>. Il software in questione \u00e8 <a href=\"https:\/\/github.com\/DigiPlatMOOC\/TelegramBotSample\">disponibile liberamente anche su Github<\/a>.<\/p>\n<p><img loading=\"lazy\" decoding=\"async\" class=\"aligncenter size-large wp-image-9299\" src=\"https:\/\/informatica.uniurb.it\/triennale\/wp-content\/uploads\/post\/convcomp2016-3-implementare-un-bot-di-crowdsensing\/2289628062_6fc2f0a049_o-1024x429.jpg\" alt=\"Transparent Lego Blocks, The.Comedian\" width=\"1024\" height=\"429\" srcset=\"https:\/\/informatica.uniurb.it\/triennale\/wp-content\/uploads\/post\/convcomp2016-3-implementare-un-bot-di-crowdsensing\/2289628062_6fc2f0a049_o-1024x429.jpg 1024w, https:\/\/informatica.uniurb.it\/triennale\/wp-content\/uploads\/post\/convcomp2016-3-implementare-un-bot-di-crowdsensing\/2289628062_6fc2f0a049_o-300x126.jpg 300w, https:\/\/informatica.uniurb.it\/triennale\/wp-content\/uploads\/post\/convcomp2016-3-implementare-un-bot-di-crowdsensing\/2289628062_6fc2f0a049_o-210x88.jpg 210w, https:\/\/informatica.uniurb.it\/triennale\/wp-content\/uploads\/post\/convcomp2016-3-implementare-un-bot-di-crowdsensing\/2289628062_6fc2f0a049_o-290x121.jpg 290w, https:\/\/informatica.uniurb.it\/triennale\/wp-content\/uploads\/post\/convcomp2016-3-implementare-un-bot-di-crowdsensing\/2289628062_6fc2f0a049_o-450x188.jpg 450w\" sizes=\"auto, (max-width: 1024px) 100vw, 1024px\" \/><br \/>\n<i>Foto di The.Comedian, via <a href=\"https:\/\/flic.kr\/p\/4ujWDU\">Flickr<\/a>.<\/i><\/p>\n<h4>Quattro semplici pezzi LEGO per comporre un Bot.<\/h4>\n<p>La piattaforma di base per il nostro Bot \u00e8 <strong>Telegram<\/strong>, che mette a disposizione un&#8217;<a href=\"core.telegram.org\/bots\/api#getupdates\">interfaccia molto ricca per l&#8217;implementazione degli stessi<\/a>. Una volta collegato con Telegram, la logica interna del <em>Bot<\/em> \u00e8 implementata con uno script PHP, che sfrutta un database MySQL per memorizzare le informazioni fornite dagli utenti, la loro posizione geografica ed altri dati accessori.<\/p>\n<p>Se finora le tecnologie utilizzate non mostrano particolare creativit\u00e0\u2014del resto sono le medesime su cui si basa la maggior parte dei siti web o blog degli ultimi anni\u2014\u00e8 nel rendere la <strong>conversazione<\/strong> del nostro <em>Bot<\/em> pi\u00f9 credibile che possiamo sfruttare un ulteriore blocco \u201cpronto all&#8217;uso\u201d: <a href=\"http:\/\/www.program-o.com\">Program\u00a0O<\/a>, un interprete basato sulle specifiche di <a href=\"http:\/\/www.alicebot.org\">ALICE<\/a> e che permette di sviluppare velocemente dei <em>Bot<\/em> che conversano in maniera (pi\u00f9 o meno) naturale sulla base di codice dichiarativo (una variante di XML).<\/p>\n<p>La <a href=\"https:\/\/github.com\/DigiPlatMOOC\/TelegramBotSample\">libreria d&#8217;esempio su Github<\/a> mette a disposizione diverse funzioni gi\u00e0 implementate per l&#8217;interazione con Telegram, MySQL e Program\u00a0O.<\/p>\n<h4>Le potenzialit\u00e0 del remix: piattaforme, dati aperti, software libero\u2026<\/h4>\n<p>Non finisce di certo qui. Riprendiamo il motto di \u201c<a href=\"http:\/\/everythingisaremix.info\">Everything is a Remix<\/a>\u201d per asserire che qualsiasi idea\u2014piccola o grande che sia\u2014e qualsiasi pezzo di software, che \u00e8 possibile realizzare anche senza conoscenze di programmazione, pu\u00f2 essere visto come il culmine di anni di astrazioni\u2014i blocchetti del LEGO\u2014a noi liberamente disponibili. Il <strong>prodotto dei tre fondamentali passi<\/strong> delineati qui sotto.<\/p>\n<p><img loading=\"lazy\" decoding=\"async\" class=\"aligncenter size-large wp-image-9296\" src=\"https:\/\/informatica.uniurb.it\/triennale\/wp-content\/uploads\/post\/convcomp2016-3-implementare-un-bot-di-crowdsensing\/remix-1024x478.jpg\" alt=\"Everything is a Remix\" width=\"1024\" height=\"478\" srcset=\"https:\/\/informatica.uniurb.it\/triennale\/wp-content\/uploads\/post\/convcomp2016-3-implementare-un-bot-di-crowdsensing\/remix-1024x478.jpg 1024w, https:\/\/informatica.uniurb.it\/triennale\/wp-content\/uploads\/post\/convcomp2016-3-implementare-un-bot-di-crowdsensing\/remix-300x140.jpg 300w, https:\/\/informatica.uniurb.it\/triennale\/wp-content\/uploads\/post\/convcomp2016-3-implementare-un-bot-di-crowdsensing\/remix-210x98.jpg 210w, https:\/\/informatica.uniurb.it\/triennale\/wp-content\/uploads\/post\/convcomp2016-3-implementare-un-bot-di-crowdsensing\/remix-290x135.jpg 290w, https:\/\/informatica.uniurb.it\/triennale\/wp-content\/uploads\/post\/convcomp2016-3-implementare-un-bot-di-crowdsensing\/remix-450x210.jpg 450w, https:\/\/informatica.uniurb.it\/triennale\/wp-content\/uploads\/post\/convcomp2016-3-implementare-un-bot-di-crowdsensing\/remix.jpg 1127w\" sizes=\"auto, (max-width: 1024px) 100vw, 1024px\" \/><\/p>\n<p><strong>Piattaforme, dati aperti, software libero<\/strong> e tanti altri blocchi a portata di mano possono essere ricombinati a piacimento per creare innovazione, opportunit\u00e0 e conoscenza. Le interfacce conversazionali rappresentate dai <em>Bot<\/em> sono una di queste piattaforme.<\/p>\n<p>Il codice di <a href=\"https:\/\/github.com\/LorenzCK\/WordCloudBot\"><b>@wordcloud_bot<\/b> \u00e8 disponibile liberamente su Github<\/a> sotto licenza MIT. Se vi viene in mente qualche brillante idea per un <em>Bot<\/em>\u2014magari ispirato ai principi dell&#8217;intelligenza collettiva\u2014siamo curiosi di sentirla!<\/p>\n","protected":false},"excerpt":{"rendered":"<p>Dopo aver discusso di Bot come autentiche piattaforme, al pari di applicazioni mobili o siti web, ed aver argomentato che un Bot non necessariamente debba fungere da fornitore di informazioni\u2014ma pu\u00f2 benissimo essere lo strumento per raccogliere dati e quindi essere parte di un meccanismo di intelligenza collettiva\u2014\u00e8 giunto il momento di metterci all&#8217;opera per&hellip;<\/p>\n","protected":false},"author":43,"featured_media":9288,"comment_status":"open","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":{"_acf_changed":false,"footnotes":""},"categories":[9,24,150],"tags":[1593,1595,1597,1518,235],"post_series":[],"class_list":["post-9294","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-blog","category-home","category-lablog","tag-bot","tag-computazione-conversazionale","tag-convcomp2016","tag-intelligenza-collettiva","tag-programmazione","entry","has-media"],"acf":[],"_links":{"self":[{"href":"https:\/\/informatica.uniurb.it\/triennale\/wp-json\/wp\/v2\/posts\/9294","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/informatica.uniurb.it\/triennale\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/informatica.uniurb.it\/triennale\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/informatica.uniurb.it\/triennale\/wp-json\/wp\/v2\/users\/43"}],"replies":[{"embeddable":true,"href":"https:\/\/informatica.uniurb.it\/triennale\/wp-json\/wp\/v2\/comments?post=9294"}],"version-history":[{"count":7,"href":"https:\/\/informatica.uniurb.it\/triennale\/wp-json\/wp\/v2\/posts\/9294\/revisions"}],"predecessor-version":[{"id":9325,"href":"https:\/\/informatica.uniurb.it\/triennale\/wp-json\/wp\/v2\/posts\/9294\/revisions\/9325"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/informatica.uniurb.it\/triennale\/wp-json\/wp\/v2\/media\/9288"}],"wp:attachment":[{"href":"https:\/\/informatica.uniurb.it\/triennale\/wp-json\/wp\/v2\/media?parent=9294"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/informatica.uniurb.it\/triennale\/wp-json\/wp\/v2\/categories?post=9294"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/informatica.uniurb.it\/triennale\/wp-json\/wp\/v2\/tags?post=9294"},{"taxonomy":"post_series","embeddable":true,"href":"https:\/\/informatica.uniurb.it\/triennale\/wp-json\/wp\/v2\/post_series?post=9294"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}