Articoli Manifesto Tools Links Canali Libri Contatti ?
Linguaggi / XML

News feed RSS, un'introduzione

Abstract
News feeds, RSS, RDF e aggregatori sono tutti termini con cui sempre più spesso si ha a che fare. Cosa sono? E quanto possono essere utili per la nostra "vita on-line"?
Data di stesura: 10/01/2005
Data di pubblicazione: 12/01/2005
Ultima modifica: 04/04/2006
di Marco Lamberto Discuti sul forum   Stampa

Prendiamo in esame un ipotetico "utente web" che ogni mattina si alza e sa che dovrà aprire qualche decina di urls per leggersi i suoi blog preferiti, le notizie dai siti che segue quotidianamente, ... per ciascuno di questi dovrà ricordarsi quelli che ha già letto (cosa relativamente semplice) e magari sfogliare gli articoli fino all'ultima volta che l'ha letto (cosa un po' più complicata quando le fonti da consultare sono parecchie e quando magari non le si seguono tutti i giorni). A questo potremmo aggiungere un problema di immediatezza, legata alle differenti presentazioni di ciascun sito, o a quale sia il rapporto fra la quantità di informazioni scaricata (e a quale velocita`) e quella realmente letta.

Quanto tempo porta via l'operazione di cernita delle notizie quotidiane?

Molti di voi saranno sicuramente incappati nelle icone solitamente arancioni o blu in cui campeggiavano le tre lettere XML, RSS o RDF. Generalmente a queste icone sono associati dei link relativi a dei documenti testuali con un formato opportuno detti news feeds.

A grandi linee i news feeds permettono ai siti di rendere noti quali contenuti sono disponibili e soprattutto quali novità.

I vari formati sono tutti applicazioni di XML, un acronimo che sembra ormai aver pervaso ogni ambito dell'informatica, specialmente quella legata al mondo dell'informazione on-line.

RSS, RDF e variazioni sul tema

Il formato RSS 0.91 [2] è stato progettato in seno alla Netscape Communications e UserLand. RSS è l'acronimo per "Really Simple Syndication".

L'estendibilità di RSS 0.9x è vincolata alla versione, ad esempio nella 0.91 i tags sono stati scelti, definiti e "congelati", nuove caratteristiche sono state inserite nella revisione 0.92 [4].

Nell'esempio qui sotto potete vedere un news feed RSS 0.91 minimale, le informazioni sono organizzate in canali, ciascuno solitamente provvisto almeno di un titolo ed una descrizione.

Ogni canale può contenere diverse notizie all'interno di blocchi item.

<?xml version="1.0"?>
<rss version="0.91">
<channel>
<title>SIForge.org: articoli pubblicati</title>
<link>http://www.siforge.org/</link>
<description>dove teoria e realta` dell'informatica si incontrano</description>
<item>
  <title>kvm: le mani sul kernel</title>
  <link>http://www.siforge.org/articles/2004/12/16-kvm.html</link>
  <description>In questo articolo tratteremo della libreria libkvm che permette
  di accedere alla memoria virtuale del kernel dei sistemi *BSD. La prima parte
  illustra l'utilizzo di alcune funzioni della libreria e nella seconda parte
  vedremo l'implementazione di alcune di esse.</description>
</item>
</channel>
</rss>
Con la versione 1.0 [5] RSS cambia faccia e si appoggia alle specifiche RDF (uno standard W3C per i metadati [1]) e diviene "RDF Site Summary". La cosa più interessante è che il formato può essere esteso appoggiandosi ai namespace XML, non richiedendo più una modifica esplicita del formato e permettendo di realizzare quelli che in gergo vengono chiamati RSS Modules.

L'esempio proposto qui sotto illustra un esempio di blocco item arricchito da alcuni tags extra che permettono di specificare ad esempio il creatore (dc:creator), la data di stesura (dc:date), entrambi sono definiti in un modulo che si chiama Dublin Core [6].

<item rdf:about="http://www.siforge.org/articles/2004/12/16-kvm.html">
  <title>kvm: le mani sul kernel</title>
  <link>http://www.siforge.org/articles/2004/12/16-kvm.html</link>
  <description>In questo articolo tratteremo della libreria libkvm che permette
  di accedere alla memoria virtuale del kernel dei sistemi *BSD. La prima parte
  illustra l'utilizzo di alcune funzioni della libreria e nella seconda parte
  vedremo l'implementazione di alcune di esse.</description>
  <dc:creator>Gianluigi Spagnuolo</dc:creator>
  <dc:date>2004-12-16</dc:date>
  <dc:subject>BSD / Kernel</dc:subject>
</item>
A colpo d'occhio un feed RSS 1.0 differisce per pochi elementi rispetto alle specifiche 0.9x. Nonostante questo garantisce una flessibilità molto maggiore.

Oltre ai due formati sopracitati, ormai in uso da parecchio tempo, va ricordato che sono stati definiti anche altre due alternative: RSS 2.0 [7] ed Atom [8]. Una descrizione dettagliata esula dagli scopi di questo documento, ai più curiosi lascio tutti i riferimenti per saperne di più nelle risorse presenti alla fine dell'articolo.

Cosa fare dei feed RSS?

Ora che abbiamo visto come sono strutturati i dati, la domanda successiva è sicuramente come e dove usarli.

Molti siti esportano le proprie news sotto forma di feed RSS (anche SIForge.org), queste informazioni possono essere incluse all'interno di portali, pagine personali, magari filtrandone i contenuti in base a criteri precisi o a preferenze degli utenti.

Un ottimo esempio è sicuramente l'eccellente lavoro che fa il sito di Riassunto [15] che raccoglie e propone costantemente tutte le novità disponibili in svariati siti.

Un'altra opzione è quella che viene incontro all'ipotetico "utente web" con cui ho aperto l'articolo: l'adozione di un aggregatore.

Assemblare fonti differenti

Vengono chiamati aggregatori quei programmi in grado di riconoscere i formati di news feeds e presentarli in maniera opportuna, ve ne sono parecchi, più o meno potenti ma che solitamente condividono degli elementi di base quali la possibilità di navigare fra i canali di notizie, marcare quelle lette, evidenziare quelle nuove, aggiornare i canali automaticamente e/o secondo criteri definibili dall'utente.
[Figura 1]

Figura 1: L'aggregatore Liferea all'opera

Alcuni esempi di aggregatori:
  • RSSOwl [9]
  • AmphetaDesk [11]
  • Liferea [10]
Ovviamente ce ne sono moltissimi altri a disposizione!

Ad ulteriore esempio, per tutti coloro che usassero abitualmente il browser Firefox faccio notare che qualora una pagina implementi il meccanismo di RSS Autodiscovery, il browser mostrerà nella barra di stato un pulsante per aggiungere quello che nel gergo di Firefox viene chiamato "Live Bookmark". Per chi cercasse un aggregatore vero e proprio integrato nel browser suggerisco l'estensione Sage [12].

L'uso di un aggregatore diventa una notevole comodità per chiunque consulti periodicamente delle fonti disponibili anche come feed RSS, è possibile infatti impostare il programma in modo da operare aggiornamenti periodici con differenti frequenze a seconda della fonte.

Inoltre sono disponibili alcuni aggregatori on-line come Bloglines [13] che vi permettono di avere a disposizione le vostre fonti preferite indipendentemente dal computer da cui vi accedete.

OPML

Outline Processor Markup Language, o più brevemente OPML, è un formato basato su XML progettato per permettere lo scambio di informazioni strutturabili come liste fra applicazioni che operano in differenti ambienti e sistemi operativi.

OPML è usato normalmente dagli aggregatori come formato di esportazione/importazione degli elenchi dei news feeds. Fate dunque attenzione a scegliere un aggregatore che permetta lo scambio dei dati così organizzati perché vi permetterà di spostare o portare velocemente i vostri canali preferiti ad altri aggregatori (specie se ne usate più d'uno quando lavorate in ambienti diversi) senza dover impazzire facendo il tutto manualmente!

Conclusioni

Rimane così evidente che RSS, o più in generale i news feeds, divengono un'alternativa meno invasiva al "vecchio" sistema di sottoscrizione via e-mail, con poche operazioni vi troverete tutti i canali con le novità dei vostri siti preferiti, seguire le discussioni sui forums o i blogs, aggiornati come e quando volete senza dovervi preoccupare di registrazioni o quant'altro.

Inoltre i canali ben organizzati vi permetteranno di discriminare velocemente in base a titolo e descrizione, cosa leggere o no.

Informazioni sull'autore

Marco Lamberto, laureato in Informatica presso la Statale di Milano, con diversi anni di esperienza sistemistica, di sicurezza e sviluppo prevalentemente in ambienti UNIX (Linux in primis) con linguaggi come C, Java, Perl, PHP, XML, HTML, ...

È possibile consultare l'elenco degli articoli scritti da Marco Lamberto.

Altri articoli sul tema Linguaggi / XML.

Risorse

  1. Resource Description Framework (RDF)
    http://www.w3.org/RDF/
  2. RSS 0.91 Spec, revision 3
    http://my.netscape.com/publish/formats/rss-spec-0.91.html
  3. RSS 0.91
    http://backend.userland.com/stories/rss091
  4. RSS 0.92
    http://backend.userland.com/rss092
  5. RSS 1.0
    http://web.resource.org/rss/1.0/spec
  6. RSS 1.0 Doublin Core Module
    http://web.resource.org/rss/1.0/modules/dc/
  7. RSS 2.0 Specification
    http://blogs.law.harvard.edu/tech/rss
  8. Atom
    http://www.atomenabled.org/
  9. Sito ufficiale dell'aggregatore RSSOwl.
    http://www.rssowl.org/
  10. Sito ufficiale dell'aggregatore Liferea.
    http://liferea.sf.net/
  11. Sito ufficiale dell'aggregatore AmphetaDesk.
    http://www.disobey.com/amphetadesk/
  12. Estensione Sage per Firefox.
    https://addons.update.mozilla.org/extensions/moreinfo.php?application=firefox&id=77&vid=1147
  13. Bloglines.
    http://www.bloglines.com/
  14. OPML 1.0 Specification.
    http://opml.scripting.com/spec
  15. Riassunto, il raccoglitore di notizie della rete!
    http://www.riassunto.jsk.it/
  16. Nell'articolo Python: un'introduzione è possibile trovare un esempio di RSS/RDF reader scritto in Python.
    http://www.siforge.org/articles/2002/09/01-python-intro.html
Discuti sul forum   Stampa

Cosa ne pensi di questo articolo?

Discussioni

Questo articolo o l'argomento ti ha interessato? Parliamone.