ondata / albopop-enhanced

Aggregation, analysis and visualization of Albo POP (http://albopop.it/) feeds with smart search engine and notification system. Demo: http://cerca.albopop.it
MIT License
0 stars 0 forks source link

Classificazioni degli albi pretori #7

Closed nelsonmau closed 8 years ago

nelsonmau commented 8 years ago

Sta emergendo una necessità di effettuare una classificazione degli albi. Faccio alcuni esempio di casi d'uso, che possano favorire la discussione e il ragionamento:

Come faccio a selezionare solo:

jenkin commented 8 years ago

La soluzione è semplice: gestire bene i tag <category> previsti dal formato RSS, sia a livello di <channel> (es. comune, provincia, regione, tipologia di pa, latitudine e longitudine), che a livello di <item> (es. post-terremoto), magari condividendo un set di domini (attributo domain) predefinito. Ma la valorizzazione di quei tag è a carico degli scraper...

nelsonmau commented 8 years ago

falla! :dancer:

aborruso commented 8 years ago

@jenkin costruisci un esempio ciao mondo per un feed RSS tipo, e poi per l'implementazione mi ci metto per il momento io?

jenkin commented 8 years ago

Prendo come spunto il feed di Amatrice, eliminando i tag personalizzati di feedburner. L'ideale sarebbe sfruttare l'attributo domain del tag <category> (vedi qui), ma non so bene come farlo al meglio... :)

<channel>
 <title>AlboPOP Amatrice</title>
 <link>https://script.google.com/macros/s/AKfycbwnSCtl7mPwzyjt1CyHhkmSmciwqOuBDz6A-1m78_Uu2ej--xam/exec</link>
 <description>*non ufficiale* RSS feed dell'Albo Pretorio di Amatrice</description>
 <language>it</language>
 <creativeCommons:license>http://creativecommons.org/licenses/by/3.0/</creativeCommons:license>
 <image><link>http://creativecommons.org/licenses/by/3.0/</link>
 <url>http://creativecommons.org/images/public/somerights20.gif</url><title>Some Rights Reserved</title></image><xhtml:meta xmlns:xhtml="http://www.w3.org/1999/xhtml" name="robots" content="noindex" />

 <category domain="comune">Amatrice</category>
 <category domain="provincia">Rieti</category>
 <category domain="regione">Lazio</category>
 <category domain="latitudine">42.629381</category>
 <category domain="longitudine">13.288372</category>
 <category domain="tipologia_pa">Comune</category>

 <item>
  <title>VINCOLO IDROGEOLOGICO. SIG. RAPONI SERGIO.</title>
  <link>http://halleyweb.com/c057002/mc/mc_gridev_dettaglio.php?x=&amp;interno=1&amp;id_pubbl=5772</link>
  <description>VINCOLO IDROGEOLOGICO. SIG. RAPONI SERGIO.</description>
  <pubDate>Mon, 22 Aug 2016 10:00:00 +0000</pubDate>
  <guid>http://halleyweb.com/c057002/mc/mc_gridev_dettaglio.php?x=&amp;interno=1&amp;id_pubbl=5772</guid>

  <category domain="custom">Post-terremoto 24 agosto 2016</category>

 </item>
</channel>
jenkin commented 8 years ago

Hmm, c'è comunque da gestire opportunamente la possibilità di indicare valori multipli di location ed eventualmente aggiungere la variabile generica category: https://github.com/ondata/albopop-enhanced/blob/develop/feed/fromes.inc.php.

aborruso commented 8 years ago

@jenkin ho fatto un piccolo avanzamento sulla parte di canale http://feeds.feedburner.com/AlbopopAmatrice

Per ora sto usando le API di OpenCage in modo da stare open, per estrarre provincia, regione e coppia di coordinate. Valori come LAZ per la regione sono quelli esposti da OpenCage.

C'è da allineare i vari script, ma si fa. Inizierò dal fare un'anagrafica degli script.

ebergam commented 8 years ago

@aborruso @jenkin che faccio mi fermo finché non abbiamo capito il metodo da tenere? Anzi magari continuo ma senza buttarli su feedburner tenendo traccia degli script google in un'altra colonna, così poi facciamo prima ad andarli a prendere?

ebergam commented 8 years ago

@aborruso @jenkin Ora ho visto bene cosa volete fare. Io mi sono fermato prima di toccare feedburner perché non ho capito come aggiungere quei tag a posteriori (date un occhio al foglio). Ma volete modificare lo script di matteo? Se inseriamo altre categorie nel foglio meta colonna G e qua in qualche modo settiamo la categoria in questa parte:

function doGet() { 
  var ss = SpreadsheetApp.openById(ID_SPREADSHEET);

  var metaSheet = ss.getSheetByName('meta');

  var RSSFeedTitle = metaSheet.getRange('G1').getValue();
  var RSSFeedURL = decodeURIComponent(metaSheet.getRange('G2').getValue().trim());
  var RSSFeedDesc = metaSheet.getRange('G3').getValue();

  var dataSheet = ss.getSheetByName('clean');

  var rss=makeRss();

  rss.setTitle(RSSFeedTitle);
  rss.setLink(RSSFeedURL);
  rss.setDescription(RSSFeedDesc);
  rss.setLanguage('it');
  rss.setAtomlink(RSSFeedURL);

  for (var i=2; i < 1000; i++) {
    var riga=dataSheet.getRange(i,1,1,3).getValues();
    var myguid=riga[0][I_HREF];
    var titolo=riga[0][I_TITLE];
    var pDate=riga[0][I_PUBDATE]; 

    //Logger.log('Riga ' + i + ' myguid ' + myguid);
    if (myguid.length == 0) {
      break;
    }

    //var pattern = /(\d{2})\/(\d{2})\/(\d{4})/;
    //var pDateFix=pDate.replace(pattern,'$2/$1/$3')
    var pDateFix=pDate;

    var pubDateDate = new Date(pDateFix + " 12:00");

    rss.addItem({title: titolo,
                 guid:myguid,
                 link: myguid,
                 description: titolo,
                 pubDate: pubDateDate
                             });
        }

  var rssStr=rss.toString();

  //Logger.log(rssStr)

  return ContentService.createTextOutput(rssStr).setMimeType(ContentService.MimeType.RSS);
}
aborruso commented 8 years ago

caro @ebergam , ci sono da modificare gli script. Uno molto usato è quello di Matteo e per quelli della zona del sisma abbiamo usato questi.

Io ho fatto proprio come dici. Ho aggiunto nel foglio meta questi valori:

tipologia_pa > Comune comune > Amatrice provincia > RI regione > LAZ latitude > 42.6292367 longitude > 13.2891755

E modificato così lo script (che è ancora brutto e rozzo):

var comune = metaSheet.getRange('F5').getValue();
var comune_value = metaSheet.getRange('G5').getValue();  
var provincia = metaSheet.getRange('F6').getValue();
var provincia_value = metaSheet.getRange('G6').getValue();  
var regione = metaSheet.getRange('F7').getValue();
var regione_value = metaSheet.getRange('G7').getValue();  
var latitudine = metaSheet.getRange('F8').getValue();
var latitudine_value = metaSheet.getRange('G8').getValue();  
var longitudine = metaSheet.getRange('F9').getValue();
var longitudine_value = metaSheet.getRange('G9').getValue();                    

                        ch.addContent(createElement('category', tipologia_pa_value)
                                     .setAttribute('domain',tipologia_pa)
                                     );
                       ch.addContent(createElement('category', comune_value)
                                     .setAttribute('domain',comune)
                                     );
                       ch.addContent(createElement('category', provincia_value)
                                     .setAttribute('domain',provincia)
                                     );
                       ch.addContent(createElement('category', regione_value)
                                     .setAttribute('domain',regione)
                                     );
                       ch.addContent(createElement('category', latitudine_value)
                                     .setAttribute('domain',latitudine)
                                     );
                       ch.addContent(createElement('category', longitudine_value)
                                     .setAttribute('domain',longitudine)
                                     );

Qui trovi il foglio d'esempio che puoi copiare https://docs.google.com/spreadsheets/d/1Ywh38OU49rdBSZ_RgShaztgpvsPNbzzBXlj3EKqesCA/edit?usp=sharing

Al momento l'albo di Amatrice si sta svuotando

image

ebergam commented 8 years ago

Grazie mille @aborruso, esattamente quello che mi serviva per proseguire! Come mai l'hanno svuotato secondo te? Io intanto sistemo col nuovo script quelli già fatti e aggiorno il tutto. Poi cerco altre liste di comuni terremotati per andare avanti. Cheers

ebergam commented 8 years ago

@aborruso scusa, mi sento stupido, ma mi sono incagliato sulla formattazione della casella dove faccio l'import in lat e lng. Ho impostato plain text ma quando fa l'import la mangia come numero e sballa. Non riesco a vedere da te che non sono in edit. Come l'hai impostata?

aborruso commented 8 years ago

@ebergam ho impostato il foglio all'americana, che in qualche modo è più "standard"

image

aborruso commented 8 years ago

2016-09-07 15:29 GMT+02:00 Enrico Bergamini notifications@github.com:

Come mai l'hanno svuotato secondo te?

Non ne ho idea. Magari perché sono items scaduti (in albo dopo alcuni giorni, in dipendenza dal tipo di pubblicazione, l'elemento deve essere rimosso dalla pubblicazione). Il tempo passa, e probabilmente i meccanismi di rimozione dalla pubblicazione funzionano bene. Ma sono automatici, e non hanno bisogno di personale che ci lavori sopra da un postazione.

Mentre per inserire nuovi elementi ci deve essere il personale disponibile e una postazione di lavoro. E per ora, è dura :(

nelsonmau commented 8 years ago

Cmq io farei una nuova tabella. Colonna 1 = url singolo albopop, da colonna 2 in poi tutte le classificazioni... una specie di anagrafica degli albi, senza complicarci la vita...

Credo che sia la soluzione più semplice, nonché la più duttile ed efficace. Non voglio che mi si dica grazie per questo eh :D sux @jenkin

ebergam commented 8 years ago

@aborruso occhio, lo script che abbiamo usato ieri non funziona bene. Se vedi https://docs.google.com/spreadsheets/d/1UJJk1Kz-klJBvyu0EdPGJ036UAqqn4Ntc0INy-nMuE0/edit#gid=0 nella colonna 'controllato' ho messo messo i problemi. Generalmente inverte la data e non mette le categorie

aborruso commented 8 years ago

@ebergam mi dai accesso in scrittura e mi scrivi qui l'URL di uno spreadsheet in cui ci sono i problemi di cui parli?

Grazie

aborruso commented 8 years ago

Caro @ebergam ho fatto delle piccole modifiche nel foglio di Arquata del Tronto. Non ho cambiato nulla nello script, ma due sono stati gli elementi essenziali:

image

Una volta fatto il geocoding, sfruttando opencage, rimuovi per favore il calcolo e appiattisci il testo. In questo modo non verranno fatte centinaia di chiamate a OpenCage. Che è free fino a un certo limite. Tanto il comune non si sposta :)

ebergam commented 8 years ago

@aborruso fatto! Grazie mille di nuovo :) @nelsonmau dunque qui: https://docs.google.com/spreadsheets/d/1UJJk1Kz-klJBvyu0EdPGJ036UAqqn4Ntc0INy-nMuE0/edit#gid=0 c'è la tabella con quelli del terremoto fatti finora. L'importante è avere queste informazioni ordinate poi si possono aggiungere tutte le varie colonne per fare un'anagrafica più precisa

nelsonmau commented 8 years ago

grazie @ebergam, riuscite con quel maraglio di @jenkin a mettere online una versione "solo-sisma" del nostro albopop enhanched?

jenkin commented 8 years ago

Ok, direi che ci siamo, ma per mettere tutto in piedi devo fare delle modifiche alla configurazione di logstash e (temo) anche al plugin logstash-input-rss che avevo già modificato a suo tempo...

jenkin commented 8 years ago

Scusate ragazzi, mi sono reso conto ora che c'è stato un equivoco... i tag <category> vanno bene, ma devono stare dentro ogni <item>! Lo so che sarebbero ripetuti tali e quali per tutti gli item, ma è fondamentale perché poi tutti i feed vengono aggregati in uno solo e i metadati associati ai singoli feed si perdono in quello aggregato. Rimangono invece quelli associati ai singoli item... @aborruso @ebergam

aborruso commented 8 years ago

@jenkin ok. Ma sono completamente bollito? Nello schema che ci hai proposto qui non stanno dentro il channel?

A breve modifico lo script. Grazie

jenkin commented 8 years ago

E me so' sbagliato... 👎

jenkin commented 8 years ago

Intanto ho aggiunto al feed il supporto alle tag multiple (esempio per i comuni del terremoto)...

jenkin commented 8 years ago

Ed ecco come verrebbe il motore di ricerca sui soli comuni colpiti dal terremoto (comuni identificati per nome come tag): http://dev.dataninja.it/AlboPOP-enhanced/ :)

ebergam commented 8 years ago

Grande @jenkin. Quindi è definitivo o io e @aborruso dobbiamo modificare lo script?

jenkin commented 8 years ago

@ebergam è necessario che lo scraper produca un rss con tutte le informazioni utili in modo strutturato (es. in forma di category), io sono arrivato a quel risultato con un workaround (editando a mano i nomi dei feed dell'aggregatore). Ergo c'è da mettere i tag category che avete già inserito all'interno di ogni item, non solo a livello di channel... :)

jenkin commented 8 years ago

Ecco qua, ho scritto una bozza di specifiche: https://github.com/jenkin/albo-pop/blob/albopop-specs/specs.md... :)

aborruso commented 8 years ago

Caro @jenkin che bel lavoro!

Ecco una prima versione: http://feeds.feedburner.com/AmatriceCimarellix Manca ancora qualcosetta ma mi sembra che ci siamo.

Per @ebergam: qui c'è il foglio (e il codice) di cui puoi fare copia https://docs.google.com/spreadsheets/d/10FPEBTWhRWcaEu6OzlVXY3lxUnZXMuHoE6-_D_aQG7k/edit?usp=sharing

Che piacere fare questa cosa

ebergam commented 8 years ago

@jenkin ottimo, grazie! @aborruso nel weekend ci lavoro e vedo di aggiornare tutti quelli del Centro Italia. (ho dato uno sguardo veloce al foglio e non funziona però, occhio) :)

aborruso commented 8 years ago

@ebergam funziona, solo che nel frattempo è cambiato l'albo di Amatrice.

Usa questo https://docs.google.com/spreadsheets/d/1JbSBnZoqS1rrW1d3JCGe6NMkV2A-wNkhkuVVYU2bd4A/edit?usp=sharing

aborruso commented 8 years ago

@ebergam questa la segnalazione ricevuta per Amatrice: http://albopop.it/comune/amatrice/#comment-2906270429

La aggiungo, perché è una cosa bella

jenkin commented 8 years ago

Aggiornate le specifiche del feed! :)

aborruso commented 8 years ago

@jenkin nell'output di esempio, per l'item, c'è due volte il type con i due significati previsti

image

jenkin commented 8 years ago

Il primo è sbagliato, lo tolgo! :)

jenkin commented 8 years ago

Intanto funziona! :) In TTRSS vengono riconosciute correttamente le categorie del channel e vengono associate ai singoli item! :)

ape-tags
aborruso commented 8 years ago

Entro domani sera aggiorno lo script. Scusami @ebergam se non riesco a fare prima.

@jenkin tutto questo mi piace molto

ebergam commented 8 years ago

@aborruso nessun problema, io ho tempo tutto il fine settimana, quando hai lo script mi dici da dove replicarlo su tutti gli sheets, senza fretta, buon weekend ;)

jenkin commented 8 years ago

@aborruso che si dice? :)

ebergam commented 8 years ago

@aborruso andy forse ho perso un passaggio io, devo adattare gli altri da questo che è già pronto? https://docs.google.com/spreadsheets/d/10FPEBTWhRWcaEu6OzlVXY3lxUnZXMuHoE6-_D_aQG7k/edit#gid=375343210 Se invece non hai lo script so che sei impegnatissimo nessuna fretta, solo che tra tutti gli sheets mi son perso :)

aborruso commented 8 years ago

caro @ebergam riemergo. Ecco il feed di Amatrice: http://feeds.feedburner.com/AlbopopAmatrice

Qui lo sheet con lo script da cui partire.

@jenkin ti scrivo da un'altra parte su una faccenda di specifice

jenkin commented 8 years ago

@aborruso e @ebergam finora io ho questi feed legati al terremoto...

feed-tci

Quando gli scraper sono tutti aggiornati alle nuove specifiche, mi avvertite? Così sistemo la strutturazione dei dati e siamo a posto... :)

aborruso commented 8 years ago

@jenkin sei nei nostri pensieri sempre e sarai il primo a saperlo :)

jenkin commented 8 years ago

@aborruso @ebergam mi pare ci sia un piccolo errore, le categorie a livello di channel hanno nel domain l'url alle specifiche a livello di item...

9486

aborruso commented 8 years ago

@jenkin colpa mia e del balletto item/channel :)

Ho aggiornato script e al prossimo aggiornamento la struttura sarà corretta.

ebergam commented 8 years ago

@aborruso Di tutti o devo fare un giro di script anch'io?

Il mercoledì 12 ottobre 2016, Andrea Borruso notifications@github.com ha scritto:

@jenkin https://github.com/jenkin colpa mia e del balletto item/channel :)

Ho aggiornato script e al prossimo aggiornamento la struttura sarà corretta.

— You are receiving this because you were mentioned. Reply to this email directly, view it on GitHub https://github.com/ondata/albopop-enhanced/issues/7#issuecomment-253350138, or mute the thread https://github.com/notifications/unsubscribe-auth/ANKE2py7r9F-zAxoAEtWwSrT9NNGh2Hkks5qzVX6gaJpZM4J1ks3 .

Sorry for typos sent by mobile

jenkin commented 8 years ago

Ho poi aggiornato il tutto, ma devo ricontrollare i risultati, mi pare che norcia rompa troppo le scatole... :)

aborruso commented 8 years ago

On 13 October 2016 at 12:59, Alessio Cimarelli notifications@github.com wrote:

Ho poi aggiornato il tutto, ma devo ricontrollare i risultati, mi pare che norcia rompa troppo le scatole... :)

Ale grazie :)

Ho appena visto Norcia http://feeds.feedburner.com/AlbopopNorcia?format=xml e mi sembra buono. Cosa ha che non va?

Questa issue la chiuderei e ora andrei di fino con segnalazioni più specifiche.


Andrea Borruso website: http://blog.spaziogis.it 38° 7' 48" N, 13° 21' 9" E, EPSG:4326


"cercare e saper riconoscere chi e cosa, in mezzo all’inferno, non è inferno, e farlo durare, e dargli spazio"

Italo Calvino