Limiti e possibilità della ricerca su Twitter

Il crescere del numero di ricercatori che scelgono i social media come luogo di osservazione per studiare le dinamiche sociali rende indispensabile fare il punto su limiti e possibilità offerti da queste piattaforme

Facendo seguito al diffondersi dei social media presso la popolazione del nostro Paese, si va progressivamente affermando, anche nella comunità accademica italiana, l’idea che questi spazi possano essere considerati un luogo di osservazione per le dinamiche sociali interne ed esterne alla rete.
Come all’estero anche in Italia, i ricercatori, al pari dei media, dedicano a Twitter un’attenzione talvolta non giustificata dai dati sulla diffusione della piattaforma stessa.
Sul blog ufficiale di Twitter si legge che la piattaforma ha recentemente tagliato il traguardo dei 100 milioni di account attivi nel mondo, che la metà di questi accede quotidianamente e che il 40% di essi legge i Tweet creati da altri utenti senza produrne di propri. Dopo questo annuncio, Vincenzo Cosenza ha messo a confronto questi dati con quelli rilasciati da Facebook.
Twitter non rilascia dati ufficiali sul numero di utenti registrati o attivi in ogni nazione, ma fonti attendibili stimavano circa 1,3 milioni di utenti italiani registrati di cui circa 350.000 attivi (che avevano cioè fatto login durante i precedenti trenta giorni attraverso Twitter o le sue API) a ottobre 2010. Per darvi un termine di paragone, nello stesso periodo Facebook aveva oltre 16 milioni di utenti italiani registrati e Linkedin 1,1.
Capire la situazione a oggi non è affatto semplice.
Stimare il traffico verso il sito non è infatti, in questo caso, un buon indicatore perché una significativa fetta di utenti accede a Twitter usando client che consentono di fruire della piattaforma senza passare dal sito twitter.com. Le statistiche di ricerca di Google evidenziano un interesse crescente, in Italia, per questa piattaforma con un volume che, tuttavia, non si discosta molto da quello di siti come Badoo, Netlog o Flickr. Provate voi stessi ad aggiungere la parola chiave Facebook per farvi un’idea dei rapporti fra i volumi di ricerca (che rappresentano un indicatore dell’interesse degli utenti verso una certa piattaforma).
Chiarite le proporzioni ci sarebbe da attendersi una analoga sproporzione nell’interesse dei ricercatori italiani.
Di fatto così non è. Anche se non ho dati specifici a riguardo ho la sensazione che gli studi basati sull’analisi dei contenuti generati dagli utenti su Facebook e su Twitter si equivalgano o propendano piuttosto per quest’ultima piattaforma. Basta scorrere il resoconto del recente convegno dell’associazione internazionale dei ricercatori che studiano internet, per capire che non si tratta di un fenomeno italiano e che l’interesse della comunità accademica è centrato, a dispetto dei dati sull’utilizzo, più su Twitter che su Facebook. Questa tendenza è particolarmente curiosa in Paesi come il nostro dove i dati sulla diffusione delle piattaforme restituiscono una mappa che indica piuttosto chiaramente dove si trova la maggior parte di utenti e dunque le dinamiche sociali che riguardano settori significativi della popolazione.
Credo ci siano diversi motivi che contribuiscono in vario modo a rendere Twitter una piattaforma attraente dal punto di vista dei ricercatori:
1. Il sistema di privacy e le pratiche d’uso di Facebook rendono inaccessibile gran parte dei contenuti. Su Twitter la maggior parte dei contenuti sono pubblici ed accessibili tramite semplici (o apparentemente semplici) ricerche;
2. L’interesse dei media verso Twitter rende notiziabili le ricerche che riguardano questa piattaforma;
3. La natura orientata all’informazione (la domanda di Twitter è “Cosa sta succedendo” e non “A cosa stai pensando”) lo rendono particolarmente indicato per studi orientati a comprendere i percorsi di diffusione delle notizie;
4. L’emergere di pratiche come l’uso degli hashtag, il retweet, il replay e trending topics (ormai parte delle funzionalità interne della piattaforma) rendono più semplice comprendere la struttura delle conversazioni.
Dunque ci sono diversi buoni motivi per usare Twitter come luogo di osservazione.
L’apparente semplicità di accesso cela tuttavia dei rischi di cui il ricercatore dovrebbe essere, quanto meno, al correte.
Intanto i Tweet reperibili sono, ovviamente, solo quelli pubblici. Per la maggior parte dei progetti non si tratta di un grosso problema che va semplicemente rendicontato specificando, quando ci si riferisce al corpus di dati, di Tweet pubblici.
Ma c’è dell’altro. Come forse saprete Twitter impone dei limiti di accesso per l’utilizzo delle sue API pubbliche.
Purtroppo questi limiti non sono affatto chiari.
Si sa che le Twitter REST API sono soggette ai seguenti limiti:
– 150 richieste non autenticate ogni ora (basate sul numero ip dal quale proviene la richiesta);
– 350 richieste autenticate all’ora (basate sull’identificativo dell’utente che fa la richiesta).
Si sa inoltre che ogni richiesta può restituire un massimo di 1500 tweet.
La documentazione che riguarda le Twitter Search API specifica che la ricerca non dà accesso all’indice completo di tutti i Tweet ma solo di quelli recenti (fino a 6-9 giorni prima) e che non si possono usare le Search API per trovare Tweet più vecchi di una settimana.
Inoltre aggiunge:

The Rate Limits for the Search API are not the same as for the REST API. When using the Search API you are not restricted by a certain number of API requests per hour, but instead by the complexity and frequency.
As requests to the Search API are anonymous, the rate limit is measured against the requesting client IP.
To prevent abuse the rate limit for Search is not published. If you are rate limited, the Search API will respond with an HTTP 420 Error. {"error":"You have been rate limited. Enhance your calm."}.

Dunque i Tweet reperiti attraverso questa API non garantiscono la completezza (la documentazione parla invece di focus sulla rilevanza) e alcuni Tweet potrebbero mancare all’appello per raggiunti limiti di richieste, perché l’utente che ha generato il tweet ha un basso ranking o, infine, semplicemente perché, a causa della limitatezza delle risorse, non tutti i Tweet possono essere indicizzati in Twitter Search (si veda qui).
Se si desidera la completezza (un requisito di solito indispensabile per chi fa ricerca), dice sempre la documentazione di Twitter, conviene usare le Streaming API.
Le Straming API restituiscono i Tweet in tempo reale. Questo significa che non è possibile tornare indietro nel tempo.
Ma anche le Streaming API hanno dei limiti.

Both the Streaming API and the Search API filter, and on some end-points, discard, statuses created by a small proportion of accounts based upon status quality metrics.

In compenso

 The Streaming API results are a superset of the Search API result. The Search API filters and ranks statuses for relevance. On certain queries, the Search relevance filtering can be quite selective. The Streaming API does not perform any relevance filtering or ranking. All statuses that pass the Result Quality filter are available on Streaming API.

L’uso delle Streaming API richiede l’autenticazione.
Di seguito, nel paragrafo su accesso e limiti di utilizzo, si dice che tutti gli utenti di Twitter sono abilitati a usare due metodi chiamati statuses/sample e statuses/filter e che per tutti gli altri metodi bisogna contattare Twitter.
Ora cosa sono questi statuses/sample e statuses/filter?
Il primo restituisce un campione di Tweet basato sull’universo costituito dal flusso di tutti gli status pubblici (il cui flusso è chiamato da Twitter Firehose).
Le proporzioni di questo campione possono cambiare senza preavviso ma al momento sono le seguenti:
– Circa l’1% degli status pubblici per il flusso che Twitter chiama Spritzer (disponibile a tutti);
– Circa il 10% per il flusso denominato Gardenhose (disponibile su richiesta).
Il metodo statuses/filter è quello che dovrebbe maggiormente interessare un ricercatore. Consente in pratica di filtrare il flusso per specifiche parole chiave (ad esempio un certo hashtag), per posizione geografica, che contengono il nome di un utente (@nomeutente) come un replay o un retweet o una semplice menzione.
Il livello di accesso di default consente l’accesso ad un massimo di 400 parole chiave, di 5000 nomi utente e 25 luoghi geografici (non è chiaro se si tratta di limiti legati alla storia del singolo utente o contemporanei).
In aggiunta a questi limiti la documentazione di Twitter contiene un paragrafo intitolato Filter Limiting nel quale si specifica che le ricerche per parole (track) chiave e quelle per luogo sono soggette ad un limite di utilizzo e aggiunge…

Reasonably focused track and location predicates will return all occurrences in the full Firehose stream of public statuses. Overly broad predicates will cause the output to be periodically limited. After the limitation period expires, all matching statuses will once again be delivered, along with a limit message that enumerates the total number of statuses that have been eliminated from the stream since the start of the connection. Limit messages are described in Parsing Responses.

Non è dato sapere cosa costituisca una ricerca ragionevolmente focalizzata. Rimane dunque la sensazione di una certa confusione.  Nell’articolo Six Provocations for Big Data le autrici affermano che

Twitter Inc. makes a fraction of its material available to the public through its APIs. The ‘firehose’ theoretically contains all public tweets ever posted and explicitly excludes any tweet that a user chose to make private or ‘protected.’ Yet, some publicly accessible tweets are also missing from the firehose. Although a handful of companies and startups have access to the firehose, very few researchers have this level of access. Most either have access to a ‘gardenhose’ (roughly 10% of public tweets), a ‘spritzer’ (roughly 1% of public tweets), or have used ‘white-listed’ accounts where they could use the APIs to get access to different subsets of content from the public stream. It is not clear what tweets are included in these different data streams or sampling them represents. It could be that the API pulls a random sample of tweets or that it pulls the first few thousand tweets per hour or that it only pulls tweets from a particular segment of the network graph. Given uncertainty, it is difficult for researchers to make claims about the quality of the data that they are analyzing. Is the data representative of all tweets? No, because it excludes tweets from protected accounts.Is the data representative of all public tweets? Perhaps, but not necessarily.

Di recente DiscoverText ha siglato un accordo con Gnip per offrire ai ricercatori che usano questa piattaforma l’accesso alla Firehose di Twitter. Al momento il servizio è in beta limitata ad un ristretto numero di utenti.
Da ieri ho accesso a questo servizio e lo avrò per i prossimi 4 giorni. Ho già iniziato a raccogliere dati per i principali trending topic italiani. In questi giorni cercherò di capire meglio i vantaggi e gli eventuali limiti di questa soluzione e ne parlerò in un prossimo post.Facendo seguito al diffondersi dei social media presso la popolazione del nostro Paese, si va progressivamente affermando, anche presso la comunità accademica italiana, l’idea che questi spazi possano essere considerati un luogo di osservazione per le dinamiche sociali interne ed esterne alla rete.
Come all’estero anche in Italia, i ricercatori, come i media, dedicano a Twitter un’attenzione talvolta non giustificata dai dati sulla diffusione della piattaforma stessa.
Sul blog ufficiale di Twitter si legge che la piattaforma ha recentemente tagliato il traguardo dei 100 milioni di account attivi nel mondo, che la metà di questi accede quotidianamente e che il 40% di essi legge i Tweet creati da altri utenti senza produrne di propri. Dopo questo annuncio, Vincenzo Cosenza ha messo a confronto questi dati con quelli rilasciati da Facebook.
Twitter non rilascia dati ufficiali sul numero di utenti registrati o attivi in ogni nazione, ma fonti attendibili stimavano circa 1,3 milioni di utenti italiani registrati di cui circa 350.000 attivi (che avevano cioè fatto login durante i precedenti trenta giorni attraverso Twitter o le sue API) a ottobre 2010. Per darvi un termine di paragone, nello stesso periodo Facebook aveva oltre 16 milioni di utenti italiani registrati e Linkedin 1,1.
Capire la situazione a oggi non è affatto semplice.
Stimare il traffico verso il sito non è infatti, in questo caso, un buon indicatore perché una significativa fetta di utenti accede a Twitter usando client che consentono di fruire della piattaforma senza passare dal sito twitter.com. Le statistiche di ricerca di Google evidenziano un interesse crescente, in Italia, per questa piattaforma con un volume che, tuttavia, non si discosta molto da quello di siti come Badoo, Netlog o Flickr. Provate voi stessi ad aggiungere la parola chiave Facebook per farvi un’idea dei rapporti fra i volumi di ricerca (che rappresentano un indicatore dell’interesse degli utenti verso una certa piattaforma).
Chiarite le proporzioni ci sarebbe da attendersi una analoga sproporzione nell’interesse dei ricercatori italiani.
Di fatto così non è. Anche se non ho dati specifici a riguardo ho la sensazione che gli studi basati sull’analisi dei contenuti generati dagli utenti su Facebook e su Twitter si equivalgano o propendano piuttosto per quest’ultima piattaforma. Basta scorrere il resoconto del recente convegno dell’associazione internazionale dei ricercatori che studiano internet, per capire che non si tratta di un fenomeno italiano e che l’interesse della comunità accademica è centrato, a dispetto dei dati sull’utilizzo, più su Twitter che su Facebook. Questa tendenza è particolarmente curiosa in Paesi come il nostro dove i dati sulla diffusione delle piattaforme restituiscono una mappa che indica piuttosto chiaramente dove si trova la maggior parte di utenti e dunque le dinamiche sociali che riguardano settori significativi della popolazione.
Credo ci siano diversi motivi che contribuiscono in vario modo a rendere Twitter una piattaforma attraente dal punto di vista dei ricercatori:
1. Il sistema di privacy e le pratiche d’uso di Facebook rendono inaccessibile gran parte dei contenuti. Su Twitter la maggior parte dei contenuti sono pubblici ed accessibili tramite semplici (o apparentemente semplici) ricerche;
2. L’interesse dei media verso Twitter rende notiziabili le ricerche che riguardano questa piattaforma;
3. La natura orientata all’informazione (la domanda di Twitter è “Cosa sta succedendo” e non “A cosa stai pensando”) lo rendono particolarmente indicato per studi orientati a comprendere i percorsi di diffusione delle notizie;
4. L’emergere di pratiche come l’uso degli hashtag, il retweet, il replay e trending topics (ormai parte delle funzionalità interne della piattaforma) rendono più semplice comprendere la struttura delle conversazioni.
Dunque ci sono diversi buoni motivi per usare Twitter come luogo di osservazione.
L’apparente semplicità di accesso cela tuttavia dei rischi di cui il ricercatore dovrebbe essere, quanto meno, al correte.
Intanto i Tweet reperibili sono, ovviamente, solo quelli pubblici. Per la maggior parte dei progetti non si tratta di un grosso problema che va semplicemente rendicontato specificando, quando ci si riferisce al corpus di dati, di Tweet pubblici.
Ma c’è dell’altro. Come forse saprete Twitter impone dei limiti di accesso per l’utilizzo delle sue API pubbliche.
Purtroppo questi limiti non sono affatto chiari.
Si sa che le Twitter REST API sono soggette ai seguenti limiti:
– 150 richieste non autenticate ogni ora (basate sul numero ip dal quale proviene la richiesta);
– 350 richieste autenticate all’ora (basate sull’identificativo dell’utente che fa la richiesta).
Si sa inoltre che ogni richiesta può restituire un massimo di 1500 tweet.
La documentazione che riguarda le Twitter Search API specifica che la ricerca non dà accesso all’indice completo di tutti i Tweet ma solo di quelli recenti (fino a 6-9 giorni prima) e che non si possono usare le Search API per trovare Tweet più vecchi di una settimana.
Inoltre aggiunge:

The Rate Limits for the Search API are not the same as for the REST API. When using the Search API you are not restricted by a certain number of API requests per hour, but instead by the complexity and frequency.
As requests to the Search API are anonymous, the rate limit is measured against the requesting client IP.
To prevent abuse the rate limit for Search is not published. If you are rate limited, the Search API will respond with an HTTP 420 Error. {"error":"You have been rate limited. Enhance your calm."}.

Dunque i Tweet reperiti attraverso questa API non garantiscono la completezza (la documentazione parla invece di focus sulla rilevanza) e alcuni Tweet potrebbero mancare all’appello per raggiunti limiti di richieste, perché l’utente che ha generato il tweet ha un basso ranking o, infine, semplicemente perché, a causa della limitatezza delle risorse, non tutti i Tweet possono essere indicizzati in Twitter Search (si veda qui).
Se si desidera la completezza (un requisito di solito indispensabile per chi fa ricerca), dice sempre la documentazione di Twitter, conviene usare le Streaming API.
Le Straming API restituiscono i Tweet in tempo reale. Questo significa che non è possibile tornare indietro nel tempo.
Ma anche le Streaming API hanno dei limiti.

Both the Streaming API and the Search API filter, and on some end-points, discard, statuses created by a small proportion of accounts based upon status quality metrics.

In compenso

 The Streaming API results are a superset of the Search API result. The Search API filters and ranks statuses for relevance. On certain queries, the Search relevance filtering can be quite selective. The Streaming API does not perform any relevance filtering or ranking. All statuses that pass the Result Quality filter are available on Streaming API.

L’uso delle Streaming API richiede l’autenticazione.
Di seguito, nel paragrafo su accesso e limiti di utilizzo, si dice che tutti gli utenti di Twitter sono abilitati a usare due metodi chiamati statuses/sample e statuses/filter e che per tutti gli altri metodi bisogna contattare Twitter.
Ora cosa sono questi statuses/sample e statuses/filter?
Il primo restituisce un campione di Tweet basato sull’universo costituito dal flusso di tutti gli status pubblici (il cui flusso è chiamato da Twitter Firehose).
Le proporzioni di questo campione possono cambiare senza preavviso ma al momento sono le seguenti:
– Circa l’1% degli status pubblici per il flusso che Twitter chiama Spritzer (disponibile a tutti);
– Circa il 10% per il flusso denominato Gardenhose (disponibile su richiesta).
Il metodo statuses/filter è quello che dovrebbe maggiormente interessare un ricercatore. Consente in pratica di filtrare il flusso per specifiche parole chiave (ad esempio un certo hashtag), per posizione geografica, che contengono il nome di un utente (@nomeutente) come un replay o un retweet o una semplice menzione.
Il livello di accesso di default consente l’accesso ad un massimo di 400 parole chiave, di 5000 nomi utente e 25 luoghi geografici (non è chiaro se si tratta di limiti legati alla storia del singolo utente o contemporanei).
In aggiunta a questi limiti la documentazione di Twitter contiene un paragrafo intitolato Filter Limiting nel quale si specifica che le ricerche per parole (track) chiave e quelle per luogo sono soggette ad un limite di utilizzo e aggiunge…

Reasonably focused track and location predicates will return all occurrences in the full Firehose stream of public statuses. Overly broad predicates will cause the output to be periodically limited. After the limitation period expires, all matching statuses will once again be delivered, along with a limit message that enumerates the total number of statuses that have been eliminated from the stream since the start of the connection. Limit messages are described in Parsing Responses.

Non è dato sapere cosa costituisca una ricerca ragionevolmente focalizzata. Rimane dunque la sensazione di una certa confusione.  Nell’articolo Six Provocations for Big Data le autrici affermano che

Twitter Inc. makes a fraction of its material available to the public through its APIs. The ‘firehose’ theoretically contains all public tweets ever posted and explicitly excludes any tweet that a user chose to make private or ‘protected.’ Yet, some publicly accessible tweets are also missing from the firehose. Although a handful of companies and startups have access to the firehose, very few researchers have this level of access. Most either have access to a ‘gardenhose’ (roughly 10% of public tweets), a ‘spritzer’ (roughly 1% of public tweets), or have used ‘white-listed’ accounts where they could use the APIs to get access to different subsets of content from the public stream. It is not clear what tweets are included in these different data streams or sampling them represents. It could be that the API pulls a random sample of tweets or that it pulls the first few thousand tweets per hour or that it only pulls tweets from a particular segment of the network graph. Given uncertainty, it is difficult for researchers to make claims about the quality of the data that they are analyzing. Is the data representative of all tweets? No, because it excludes tweets from protected accounts.Is the data representative of all public tweets? Perhaps, but not necessarily.

Di recente DiscoverText ha siglato un accordo con Gnip per offrire ai ricercatori che usano questa piattaforma l’accesso alla Firehose di Twitter. Al momento il servizio è in beta limitata ad un ristretto numero di utenti.
Da ieri ho accesso a questo servizio e lo avrò per i prossimi 4 giorni. Ho già iniziato a raccogliere dati per i principali trending topic italiani. In questi giorni cercherò di capire meglio i vantaggi e gli eventuali limiti di questa soluzione e ne parlerò in un prossimo post.Facendo seguito al diffondersi dei social media presso la popolazione del nostro Paese, si va progressivamente affermando, anche presso la comunità accademica italiana, l’idea che questi spazi possano essere considerati un luogo di osservazione per le dinamiche sociali interne ed esterne alla rete.
Come all’estero anche in Italia, i ricercatori, come i media, dedicano a Twitter un’attenzione talvolta non giustificata dai dati sulla diffusione della piattaforma stessa.
Sul blog ufficiale di Twitter si legge che la piattaforma ha recentemente tagliato il traguardo dei 100 milioni di account attivi nel mondo, che la metà di questi accede quotidianamente e che il 40% di essi legge i Tweet creati da altri utenti senza produrne di propri. Dopo questo annuncio, Vincenzo Cosenza ha messo a confronto questi dati con quelli rilasciati da Facebook.
Twitter non rilascia dati ufficiali sul numero di utenti registrati o attivi in ogni nazione, ma fonti attendibili stimavano circa 1,3 milioni di utenti italiani registrati di cui circa 350.000 attivi (che avevano cioè fatto login durante i precedenti trenta giorni attraverso Twitter o le sue API) a ottobre 2010. Per darvi un termine di paragone, nello stesso periodo Facebook aveva oltre 16 milioni di utenti italiani registrati e Linkedin 1,1.
Capire la situazione a oggi non è affatto semplice.
Stimare il traffico verso il sito non è infatti, in questo caso, un buon indicatore perché una significativa fetta di utenti accede a Twitter usando client che consentono di fruire della piattaforma senza passare dal sito twitter.com. Le statistiche di ricerca di Google evidenziano un interesse crescente, in Italia, per questa piattaforma con un volume che, tuttavia, non si discosta molto da quello di siti come Badoo, Netlog o Flickr. Provate voi stessi ad aggiungere la parola chiave Facebook per farvi un’idea dei rapporti fra i volumi di ricerca (che rappresentano un indicatore dell’interesse degli utenti verso una certa piattaforma).
Chiarite le proporzioni ci sarebbe da attendersi una analoga sproporzione nell’interesse dei ricercatori italiani.
Di fatto così non è. Anche se non ho dati specifici a riguardo ho la sensazione che gli studi basati sull’analisi dei contenuti generati dagli utenti su Facebook e su Twitter si equivalgano o propendano piuttosto per quest’ultima piattaforma. Basta scorrere il resoconto del recente convegno dell’associazione internazionale dei ricercatori che studiano internet, per capire che non si tratta di un fenomeno italiano e che l’interesse della comunità accademica è centrato, a dispetto dei dati sull’utilizzo, più su Twitter che su Facebook. Questa tendenza è particolarmente curiosa in Paesi come il nostro dove i dati sulla diffusione delle piattaforme restituiscono una mappa che indica piuttosto chiaramente dove si trova la maggior parte di utenti e dunque le dinamiche sociali che riguardano settori significativi della popolazione.
Credo ci siano diversi motivi che contribuiscono in vario modo a rendere Twitter una piattaforma attraente dal punto di vista dei ricercatori:
1. Il sistema di privacy e le pratiche d’uso di Facebook rendono inaccessibile gran parte dei contenuti. Su Twitter la maggior parte dei contenuti sono pubblici ed accessibili tramite semplici (o apparentemente semplici) ricerche;
2. L’interesse dei media verso Twitter rende notiziabili le ricerche che riguardano questa piattaforma;
3. La natura orientata all’informazione (la domanda di Twitter è “Cosa sta succedendo” e non “A cosa stai pensando”) lo rendono particolarmente indicato per studi orientati a comprendere i percorsi di diffusione delle notizie;
4. L’emergere di pratiche come l’uso degli hashtag, il retweet, il replay e trending topics (ormai parte delle funzionalità interne della piattaforma) rendono più semplice comprendere la struttura delle conversazioni.
Dunque ci sono diversi buoni motivi per usare Twitter come luogo di osservazione.
L’apparente semplicità di accesso cela tuttavia dei rischi di cui il ricercatore dovrebbe essere, quanto meno, al correte.
Intanto i Tweet reperibili sono, ovviamente, solo quelli pubblici. Per la maggior parte dei progetti non si tratta di un grosso problema che va semplicemente rendicontato specificando, quando ci si riferisce al corpus di dati, di Tweet pubblici.
Ma c’è dell’altro. Come forse saprete Twitter impone dei limiti di accesso per l’utilizzo delle sue API pubbliche.
Purtroppo questi limiti non sono affatto chiari.
Si sa che le Twitter REST API sono soggette ai seguenti limiti:
– 150 richieste non autenticate ogni ora (basate sul numero ip dal quale proviene la richiesta);
– 350 richieste autenticate all’ora (basate sull’identificativo dell’utente che fa la richiesta).
Si sa inoltre che ogni richiesta può restituire un massimo di 1500 tweet.
La documentazione che riguarda le Twitter Search API specifica che la ricerca non dà accesso all’indice completo di tutti i Tweet ma solo di quelli recenti (fino a 6-9 giorni prima) e che non si possono usare le Search API per trovare Tweet più vecchi di una settimana.
Inoltre aggiunge:

The Rate Limits for the Search API are not the same as for the REST API. When using the Search API you are not restricted by a certain number of API requests per hour, but instead by the complexity and frequency.
As requests to the Search API are anonymous, the rate limit is measured against the requesting client IP.
To prevent abuse the rate limit for Search is not published. If you are rate limited, the Search API will respond with an HTTP 420 Error. {"error":"You have been rate limited. Enhance your calm."}.

Dunque i Tweet reperiti attraverso questa API non garantiscono la completezza (la documentazione parla invece di focus sulla rilevanza) e alcuni Tweet potrebbero mancare all’appello per raggiunti limiti di richieste, perché l’utente che ha generato il tweet ha un basso ranking o, infine, semplicemente perché, a causa della limitatezza delle risorse, non tutti i Tweet possono essere indicizzati in Twitter Search (si veda qui).
Se si desidera la completezza (un requisito di solito indispensabile per chi fa ricerca), dice sempre la documentazione di Twitter, conviene usare le Streaming API.
Le Straming API restituiscono i Tweet in tempo reale. Questo significa che non è possibile tornare indietro nel tempo.
Ma anche le Streaming API hanno dei limiti.

Both the Streaming API and the Search API filter, and on some end-points, discard, statuses created by a small proportion of accounts based upon status quality metrics.

In compenso

 The Streaming API results are a superset of the Search API result. The Search API filters and ranks statuses for relevance. On certain queries, the Search relevance filtering can be quite selective. The Streaming API does not perform any relevance filtering or ranking. All statuses that pass the Result Quality filter are available on Streaming API.

L’uso delle Streaming API richiede l’autenticazione.
Di seguito, nel paragrafo su accesso e limiti di utilizzo, si dice che tutti gli utenti di Twitter sono abilitati a usare due metodi chiamati statuses/sample e statuses/filter e che per tutti gli altri metodi bisogna contattare Twitter.
Ora cosa sono questi statuses/sample e statuses/filter?
Il primo restituisce un campione di Tweet basato sull’universo costituito dal flusso di tutti gli status pubblici (il cui flusso è chiamato da Twitter Firehose).
Le proporzioni di questo campione possono cambiare senza preavviso ma al momento sono le seguenti:
– Circa l’1% degli status pubblici per il flusso che Twitter chiama Spritzer (disponibile a tutti);
– Circa il 10% per il flusso denominato Gardenhose (disponibile su richiesta).
Il metodo statuses/filter è quello che dovrebbe maggiormente interessare un ricercatore. Consente in pratica di filtrare il flusso per specifiche parole chiave (ad esempio un certo hashtag), per posizione geografica, che contengono il nome di un utente (@nomeutente) come un replay o un retweet o una semplice menzione.
Il livello di accesso di default consente l’accesso ad un massimo di 400 parole chiave, di 5000 nomi utente e 25 luoghi geografici (non è chiaro se si tratta di limiti legati alla storia del singolo utente o contemporanei).
In aggiunta a questi limiti la documentazione di Twitter contiene un paragrafo intitolato Filter Limiting nel quale si specifica che le ricerche per parole (track) chiave e quelle per luogo sono soggette ad un limite di utilizzo e aggiunge…

Reasonably focused track and location predicates will return all occurrences in the full Firehose stream of public statuses. Overly broad predicates will cause the output to be periodically limited. After the limitation period expires, all matching statuses will once again be delivered, along with a limit message that enumerates the total number of statuses that have been eliminated from the stream since the start of the connection. Limit messages are described in Parsing Responses.

Non è dato sapere cosa costituisca una ricerca ragionevolmente focalizzata. Rimane dunque la sensazione di una certa confusione.  Nell’articolo Six Provocations for Big Data le autrici affermano che

Twitter Inc. makes a fraction of its material available to the public through its APIs. The ‘firehose’ theoretically contains all public tweets ever posted and explicitly excludes any tweet that a user chose to make private or ‘protected.’ Yet, some publicly accessible tweets are also missing from the firehose. Although a handful of companies and startups have access to the firehose, very few researchers have this level of access. Most either have access to a ‘gardenhose’ (roughly 10% of public tweets), a ‘spritzer’ (roughly 1% of public tweets), or have used ‘white-listed’ accounts where they could use the APIs to get access to different subsets of content from the public stream. It is not clear what tweets are included in these different data streams or sampling them represents. It could be that the API pulls a random sample of tweets or that it pulls the first few thousand tweets per hour or that it only pulls tweets from a particular segment of the network graph. Given uncertainty, it is difficult for researchers to make claims about the quality of the data that they are analyzing. Is the data representative of all tweets? No, because it excludes tweets from protected accounts.Is the data representative of all public tweets? Perhaps, but not necessarily.

Di recente DiscoverText ha siglato un accordo con Gnip per offrire ai ricercatori che usano questa piattaforma l’accesso alla Firehose di Twitter. Al momento il servizio è in beta limitata ad un ristretto numero di utenti.
Da ieri ho accesso a questo servizio e lo avrò per i prossimi 4 giorni. Ho già iniziato a raccogliere dati per i principali trending topic italiani. In questi giorni cercherò di capire meglio i vantaggi e gli eventuali limiti di questa soluzione e ne parlerò in un prossimo post.