Sindicació de continguts

Quan es parla de sindicació de continguts s’està fent referència a l’intercanvi actualitzat d’informació entre pàgines web.

La primera manera de sindicació que hi va haver va ser la integració de notícies d’una pàgina dins d’una altra per mitjà d’algun tipus de programa que obtenia la informació cercant per dins del contingut HTML. Però aquests programes tenien el problema que sovint quedaven obsolets, ja que qualsevol canvi en la pàgina original podia fer que deixessin de funcionar correctament.

A pesar del que pugui semblar per l’abundància de “decoració” que hi ha en les pàgines web, el més important és el contingut. La informació continguda en els articles, els fitxers, etc., és el que fa que els visitants hi tornin o no.

Amb el sistema tradicional de navegació per Internet, per a un usuari era molt important obtenir els enllaços dels llocs web que li interessaven i emmagatzemar-los d’alguna manera per poder-hi tornar ràpidament. Si es volien seguir els canvis en les pàgines web l’única manera que hi havia era anar visitant de tant en tant la pàgina per comprovar si hi havia novetats.

L’aparició del que es va conèixer com a Web 2.0 va complicar les coses. El Web es va emplenar d’una gran quantitat de blogs i pàgines que publicaven informació, i visitar-les totes per veure si hi havia canvis va passar a requerir molt de temps, tot plegat per visitar pàgines que potser no havien canviat. S’havia d’optimitzar d’alguna manera aquesta tasca.

Figura Amb RSS és la informació la que ve a nosaltres

L’aparició dels sistemes estàndard de sindicació va fer possible obtenir la informació de les actualitzacions d’un lloc web d’una manera estable per mitjà d’una adreça. La sindicació de continguts va canviar la manera com es recupera la informació. Ja no calia anar a buscar la informació: era la informació la que acudia a l’usuari (figura).

Fent servir la sindicació ja no cal que l’usuari visiti les pàgines que li interessen per a veure si hi ha canvis perquè si n’hi ha ja els rebrà. Això comporta un estalvi de temps, ja que no caldrà visitar pàgines per descobrir que no hi ha canvis.

Amb la sindicació el disseny de la pàgina original no afecta els programes que hi busquen informació, ja que la sindicació de continguts està basada en XML i no prioritza la informació d’estil sinó el contingut.

Aquesta està pensada perquè hi puguin interactuar tant els humans com els programes, i això fa que es puguin dissenyar fàcilment aplicacions que obtinguin la informació de manera automàtica sense que calgui cap tipus d’intervenció humana. La participació de l’humà es limitarà a dir al programa quins llocs ha de vigilar.

A més, un cop l’usuari rep la informació en pot fer el que vulgui: filtrar-ne els continguts, classificar-la per temes… Per tant, tindrà el control de quina és la informació que vol veure i quina no.

Un altre dels avantatges que aporta la sindicació és inherent a XML. A diferència del que passa amb HTML, és fàcil interpretar el contingut de la informació que es rep i, per tant, també serà fàcil poder reutilitzar-ne el contingut per fer-hi altres tasques.

A pesar que la sindicació es veu sovint com un sistema enfocat a detectar novetats en el Web, també s’està fent servir per a mantenir actualitzacions en altres camps. Per exemple, alguns programes d’ordinador fan servir RSS per saber si n’han sortit actualitzacions i d’aquesta manera mantenen els programes actualitzats.

"Feeds" o canals

Un canal és un arxiu que conté una versió específica de la informació que s’ha publicat en un lloc web.

En aquest arxiu es troba tota la informació sobre el lloc web i enllaços als seus continguts. El gran avantatge és que en estar basat en XML es pot aconseguir transmetre la informació de manera automatitzada i els receptors la podran interpretar fàcilment.

Per poder obtenir la informació del canal normalment caldrà localitzar el fitxer. Generalment aquests canals estan associats a una pàgina web i s’hi pot accedir per mitjà d’un enllaç.

Els enllaços solen estar clarament especificats amb el text RSS, XML o bé fent servir un grup d’icones (figura).

Figura Icones típiques per marcar contingut RSS

És bastant habitual que les pàgines que tenen contingut de sindicació tinguin en algun lloc del seu web un enllaç o la icona d’RSS (figura).

Figura Enllaç al canal de contingut de l’XTEC

Els fitxers dels canals normalment es passaran a programes que seran els que s’encarregaran de recollir periòdicament les actualitzacions de la informació del canal. En la terminologia de sindicació això se sol anomenar subscripció.

L’ús de canals aportarà diferents avantatges als usuaris:

  • Com que funciona per subscripció, aquests només rebran les noticies d’interès seu.
  • El programa tendirà a donar informació més acurada a les seves preferencies i gustos del que ho fan els cercadors generalistes com Google, ja que els canals contenen el resultat d’una cerca.
  • La informació es pot classificar i ordenar segons els gustos de l’usuari i consumir-se segons els criteris que es vulgui.
  • En qualsevol moment es pot deixar de seguir un canal sense haver de demanar cap tipus de permís.

Al llarg dels anys s’han desenvolupat diverses tecnologies per crear canals com CDF (channel definition format, desenvolupat per Microsoft), PointCast o Apple MCF (meta content framework), però els llenguatges de creació de canals que s’han fet més populars i que s’han convertit en la manera estàndard de sindicació han estat sobretot RSS i en menys mesura Atom.

RSS

RSS són les sigles que es fan servir per anomenar diferents estàndards molt populars per a la sindicació de continguts que s’han convertit en una manera estàndard d’intercanviar informació al Web.

RSS no ha estat desenvolupat per cap organisme d’estàndards ni és una recomanació del W3C, però és un format obert i lliure sota llicència Creative Commons:

Les sigles RSS

Les sigles RSS han anat canviant de significat en les diferents versions d’RSS:

  • Rich site summary
  • RDF site summary
  • Really simple syndication

A pesar que generalment es parla d’RSS de manera genèrica, al parlar d’RSS sempre s’hauria d’especificar quina és la versió d’RSS de la qual es parla, ja que les versions existents són bastant diferents.

Els vocabularis RSS són probablement uns dels vocabularis XML que han tingut més èxit de tots els que es fan servir a Internet. Han aconseguit aquesta popularitat entre d’altres coses perquè són senzills i oberts.

Des de l’aparició d’RSS 0.9 el 1999 han anat apareixent diferents versions d’RSS que es poden resumir en dos grans grups:

  • RSS 0.92/ RSS 2.0
  • RSS 1.0

Aquesta divisió va ser deguda a problemes d’enteniment sobre quin havia de ser l’objectiu d’RSS i va fer que es creessin dues versions. A pesar de la semblança del nom de totes dues, RSS 1.0 és un llenguatge basat en RDF (resource description framework), cosa que el fa bastant diferent d’RSS 0.9.

La versió que es fa servir més és la 2.0, que s’assembla més a la versió 0.92 però incorpora alguns aspectes de la versió 1.0. Probablement la versió 2.0 és una de les més senzilles d’utilitzar; a pesar d’això, no obstant això, és una de les més malinterpretades. Algunes de les definicions dels elements no sempre es fan servir de la mateixa manera per a tots els canals.

RSS 3.0

RSS està aturat en les versions 2.0, en concret en la versió 2.0.1, perquè es considera que ja té tot el suficient per funcionar, i perquè ha costat que fos molt adoptat.

Hi ha una proposta per fer un “RSS 3.0” que, per no trencar amb la tradició, també seria incompatible amb les altres versions:

  • Abandonant XML per fer servir un llenguatge de marques més lleuger, ja que es considera que XML és massa complex per fer tasques senzilles.
  • Abandonar l’ús d’espais de noms, ja que compliquen les coses.
  • No permetre fer servir HTML dins d’RSS.

En aquesta proposta es defineix que els elements es posin en línies diferents i que si el seu contingut no hi cap es comenci a la línia següent deixant un espai en blanc. A més, hi ha d’haver una línia en blanc per separar les notícies.

  1. title: Notícies
  2. description: Canal de notícies
  3. link: http://noticiesA.cat/rss30
  4. creator: esport@noticesA.cat
  5. language: ca-ES
  6.  
  7. title: Primera notícia
  8. created: 2011-11-02
  9. guid: 00795648-C1E0-11D6-9AA6-003065F376B6
  10. description: Notícia número 1
  11.  
  12. title: Segona notícia
  13. created: 2011-06-13
  14. guid: 0894CB2F-C1E0-11D6-9649-003065F376B6
  15. description: Notícia número 2

Podeu trobar més informació sobre aquesta versió a l’enllaç www.aaronsw.com/2002/rss30

Molta gent no s’ha pres seriosament aquesta prescripció, però qui sap si amb el temps s’aconseguirà que s’apliqui majoritàriament.

Llenguatge RSS 2.0

Algunes fonts diuen que el 80% dels canals RSS són 2.0, tot i que no hi ha estadístiques oficials

Entre tots els canals disponibles, RSS 2.0 és el més usat amb molta diferència, i per tant, la gran majoria dels programes lectors d’RSS el suporten.

Una de les característiques que defineixen RSS és que fa honor al seu nom oficial, really simple syndication (sindicació realment senzilla), i és un sistema senzill. Es tracta d’un sistema que no té cap estructura complexa, en què les etiquetes descriuen el contingut que hi ha en l’element, en què pràcticament no es fan servir els atributs per a res i els espais de noms només es fan servir en les extensions, si n’hi ha.

L'arrel

RSS és un llenguatge XML, de manera que n’ha de complir les normes i, per tant, només té un sol element arrel, <rss>. La funció d’aquest element és simplement informar a qui llegeixi el document que el que està llegint és un canal RSS.

L’element arrel té un dels pocs atributs obligatoris de l’especificació, version, que és necessari per indicar la versió que s’està fent servir. Aquest atribut serveix perquè els programes sàpiguen quina versió d’RSS es fa servir en el document.

  1. <rss version="2.0">
  2. ...
  3. </rss>

A pesar que s’hi pot especificar l’espai de noms, RSS no el té en compte, de manera que mai no caldrà posar cap àlies davant de les seves etiquetes.

Però si el canal fa servir alguna extensió sí que caldrà que es defineixi l’espai de noms de les extensions que es fan servir.

Vegeu l’apartat “Espais de noms” en la unitat “Llenguatges de marques”.

  1. <rss version="2.0"
  2. xmlns:dc="http://purl.org/dc/elements/1.1/"
  3. xmlns:content="http://purl.org/rss/1.0/modules/content/">
  4. ...
  5. </rss>

L'element <channel>

L’arrel només serveix per indicar que el document és de tipus RSS, i el contingut del canal estarà dins de l’únic fill de <rss>, que s’anomena <channel>. L’element <channel> serà el que contindrà totes les etiquetes que aporten informació sobre el canal, i sobretot les que tindran les novetats del lloc.

Només hi pot haver una sola etiqueta <channel> en tot el document RSS.

  1. <rss version="2.0">
  2. <channel>
  3. ... contingut ...
  4. </channel>
  5. </rss>

Es pot dividir el contingut d’un canal RSS en dos grans grups (figura):

  1. Un grup d’etiquetes destinades a descriure el canal.
  2. Els elements <item>, que són els que contindran el contingut del canal.
Figura Divisió del contingut d’un document RSS

Per fer-ho tot més senzill algunes de les etiquetes es repeteixen en els dos grups. Per exemple les etiquetes més importants de <channel>, que són <title>, <link> i <description>, són també les més importants dels elements <item>.

Etiquetes per a descriure el canal

Els primers elements que es troben dins de l’element <channel> estan destinats a donar informació sobre el canal RSS. Aquestes etiquetes no són de contingut ni serà habitual que es produeixin canvis en els seus valors.

L’especificació a l’hora de definir els valors que s’han de posar en cada una de les etiquetes és poc concreta i alguns dels seus elements han estat subjectes a diferents interpretacions per part dels creadors de contingut.

RSS 1.0, que està basat en l’estàndard del W3C RDF, va néixer amb l’objectiu d’intentar que els elements d’RSS deixessin de ser tan malinterpretats. Però RSS 2.0 no parteix d’RSS 1.0 sinó de les versions 0.9.

Els elements més importants d’aquesta part són els elements <title>, <link> i <description> (taula) que són obligatoris en tots els canals RSS.

Taula: Elements obligatoris de l’element ‘channel’
Element Ús
title El nom del canal. És la manera com es coneix el servei.
link Normalment s’inclou un enllaç a l’adreça on hi ha el contingut HTML que es correspon amb el canal.
description Conté una descripció curta del contingut del canal.

Aquests són els únics elements obligatoris i, per tant, el document següent seria un document RSS vàlid:

  1. <rss version="2.0">
  2. <channel>
  3. <title>Canal de llenguatges de marques</title>
  4. <link>http://ioc.xtec.cat/rss/Marques.html</link>
  5. <description>Canal per entrar les notes del mòdul 4 d'ASIX</description>
  6. </channel>
  7. </rss>

A part dels elements obligatoris en RSS també n’hi ha uns quants que són voluntaris i que serveixen per donar informació extra sobre el canal. Es poden veure aquests elements a la taula.

Taula: Altres elements possibles de l’element ‘channel’
Element Ús
language Especifica l’idioma en que està escrit el canal.
copyright Informació sobre el copyright del contingut.
managingEditor Correu electrònic del responsable del contingut.
webMaster Correu electrònic del responsable tècnic.
pubDate Darrera data de publicació en el canal.
category Categoria del contingut.
lastBuildDate Darrera data de modificació del canal.
generator Programa fet servir per generar el contingut.
docs Descriu el format específic.
ttl Temps que els clients han d’esperar per tornar a demanar.
image Icona que representa el canal.
rating Fa servir una classificació americana sobre el contingut.
cloud Grup de gent a la qual s’informa dels canvis.
textInput És una etiqueta antiga que ja no es fa servir.
skipHours En quines hores no es poden demanar actualitzacions.
skipDays Quins dies no es poden demanar actualitzacions.

Contingut del canal

El contingut visible d’un canal RSS anirà en els elements <item>, dels quals n’hi pot haver la quantitat que es vulgui (fins i tot cap).

Normalment cada vegada que es produeix una novetat en el lloc associat al contingut d’un canal es crea un nou element item que s’afegeix al document.

A pesar que no sembla que tingui sentit crear ítems sense contingut, això és estrictament possible perquè ítem no té cap element obligatori però sempre hi ha d’haver un <description> o un <title>.

Per tant, el següent seria un document RSS correcte. Tenim dos ítems, un amb títol sense contingut i un amb contingut sense títol.

  1. <rss version="2.0">
  2. <channel>
  3. <title>RSS</title>
  4. <link>http://ioc.xtec.cat/rss/RSS</link>
  5. <description>Provant</description>
  6. <item>
  7. <title>Títol sense contingut</title>
  8. </item>
  9. <item>
  10. <description>Contingut sense títol</description>
  11. </item>
  12. </channel>
  13. </rss>

El més normal serà que hi hagi els elements <title>, <link>, i <description> però a més també hi ha altres atributs que es poden veure a la taula com <pubDate> o <guid>.

Taula: Subelements d’ítem
Element Ús
title Títol del nou contingut.
link Enllaç al contingut en el lloc de referència.
description Contingut.
guid Una cadena que identifica totalment l’ítem per evitar entrades duplicades en els programes. S’hi sol posar l’URL del lloc.
pubDate Data i hora en què s’ha publicat.
author Correu electrònic de l’autor.
category Nom de la categoria que descriu el contingut.
comments Adreça de la pàgina on es poden entrar comentaris.
enclosure Identifica un fitxer extern associat. Normalment música o vídeo.
source Una referència al canal. És rar que hi sigui.

Contingut HTML

Al principi tothom feia servir text pla en els continguts del canal però aviat es va començar a pensar a incloure HTML, sobretot en aquelles etiquetes que els usuaris poden veure.

Estrictament parlant no es pot fer servir HTML dins d’RSS, perquè com que està basat en XML ha d’estar ben format, mentre que l’HTML no té l’obligació d’estar ben format i, per tant, en afegir HTML a un RSS hi ha la possibilitat que el resultat sigui mal format.

En l’exemple següent, dins de l’element description es volia afegir una imatge i s’ha fet servir l’etiqueta <img> d’HTML per fer-ho. El problema és que aquesta etiqueta converteix el document en incorrecte, ja que aquest deixa d’estar ben format (invalida la regla que diu que s’han de tancar totes les etiquetes que s’obren).

<description>
Quina imatge més bonica! <img src="like.png">
</description>

Per tant, per afegir HTML a un document RSS s’ha de fer com en XML. Si es vol afegir contingut que no ha de ser processat s’ha de fer per mitjà d’una secció <![CDATA[…]]>. Per tant, l’exemple anterior es podria representar de la manera següent:

<description>
   <![CDATA[
      <div>
         Quina imatge més bonica! <img src="like.png">
      </div>
   ]]>
</description>

Per evitar problemes sovint tots els canals fan servir aquest sistema per a incloure HTML dins dels elements RSS, tant si el contingut està ben format com si no.

Representació de dates

RSS fa servir el sistema de representació de dates que hi ha en un document relativament obsolet, l’especificació RFC 822 (“ARPA Internet text messages”)

El format de les dates ha de seguir la forma següent:

Dia de la setmana, Dia Mes Any Hora:Minut:Segon Zona_Horaria

On:

  • El dia de la setmana és opcional i només pot ser només una abreviació dels noms en anglès: “Mon”, “Tue”, “Wed”, “Thu”, “Fri”, “Sat”, “Sun”.
  • El mes també es defineix en abreviacions (“Jan”, “Feb”, “Mar”, “Apr”, “May”, “Jun”, “Jul”, “Aug”, “Sep”, “Oct”, “Nov”, “Dec”).
  • L’any sempre ha de tenir quatre dígits.
  • La zona horària es pot expressar en diferències numèriques o per mitjà de constants de temps americanes. El més corrent sol ser que sigui expressada en GMT (universal time).

Per tant, seran dates correctes:

  • Sat, 13 Aug 2011 10:43:37 GMT
  • 13 Aug 2011 10:43:37 +0100

Extensions

La popularitat d’RSS ha fet que moltes grans companyies l’hagin fet servir per a les seves tasques. Però a vegades no solament l’han fet servir sinó que hi han afegit funcions segons les seves necessitats.

Amazon

La llibreria en línia Amazon permet accedir al seu catàleg de productes per mitjà d’RSS, de manera que qualsevol pot estar al dia de què és el que s’està venent més, quines són les novetats, etc., simplement subscrivint-se a un dels RSS.

Per exemple, aquest és el canal de llibres més venuts de programació web:

www.amazon.com/gp/rss/bestsellers/books/377888011/ref=zg_bs_377888011_rsslink

Com que RSS està basat en XML es pot barrejar amb altres llenguatges XML fent servir els espais de noms. Això ha permès que qualsevol pugui incrementar la funcionalitat d’RSS sense canviar-ne el nucli de funcionament.

S’ha d’anar amb compte en fer servir extensions perquè no tots els lectors d’RSS les entenen.

Per tant, hi ha tota una sèrie d’extensions que es poden usar dins d’RSS per obtenir funcions no previstes en l’especificació. Entre les més populars destaquen:

  • Dublin core metadata initiative: es tracta d’una extensió que permet introduir els elements definits en el Dublin core en RSS. Aquests elements serveixen com a metadades per a descriure els recursos d’una xarxa
  1. <rss version="2.0"
  2. xmlns:dc="http://dublincore.org/documents/dcmi-namespace/">
  • Content: l’objectiu de content és incloure el contingut d’un web dins d’un canal RSS.
  1. <rss version="2.0"
  2. xmlns:content="http://purl.org/rss/1.0/modules/content/">
  • Yahoo Media RSS: afegeix suport multimèdia. Incorpora tota una sèrie d’elements i atributs pensats per donar millor suport multimèdia a RSS.
  1. <rss version="2.0"
  2. xmlns:media="http://search.yahoo.com/mrss/">
  • BlogChannel RSS: afegeix un grup de funcionalitats pensades per treballar amb blogs.
  1. <rss version="2.0"
  2. xmlns:C="http://backend.userland.com/blogChannelModule/">

Però com que estem parlant de vocabularis XML, això implica que qualsevol pot crear la seva extensió pròpia d’RSS.

S’ha de tenir en compte que no sempre tots els lectors d’RSS comprenen les extensions. Per tant, la recomanació general és només fer servir les extensions que siguin absolutament necessàries per al contingut que es vol transmetre.

Atom

Atom va ser dissenyat pensant a superar els problemes d’interpretació que tenia RSS 2.0 i evitar la complexitat afegida d’RSS 1.0. La seva idea era aprofitar les millors coses dels RSS i arreglar les parts que en causaven confusió.

Un segon objectiu que el diferencia clarament d’RSS és que també es volia que no solament servís per recuperar els canvis en la informació del canal sinó que també es pogués fer servir de manera estandarditzada per afegir-hi informació. La sindicació ha estat molt lligada als blogs i fins al moment cada programa per fer blogs feia servir el seu protocol propi (Blogger API, MetaWebLog API, …), que estaven pensats només per un blog en concret.

Per tant, podem dividir Atom en dues parts:

  • Atom syndication format: un llenguatge XML per sindicar continguts.
  • Atom publishing protocol: un protocol basat en HTTP pensat per actualitzar i crear recursos en el Web.

Va ser desenvolupat per un comitè de l’IETF (Internet Engineering Task Force) i va ser publicat en dos RFC (RFC 4287 i RFC 5023).

A part de les diferències en les etiquetes, les grans diferències amb RSS són que:

  • Permet definir quin és el contingut de les etiquetes (text, HTML, etc.), però també permet referències a arxius externs. En RSS no es defineix quin contingut hi ha.
  • Es pot fer servir dins d’altres documents XML, ja que té la seva definició i fa servir els espais de noms. No es pot posar RSS dins d’altres documents XML perquè no té en compte l’espai de noms.
  • RSS no ofereix un protocol de publicació com Atom.

Però Atom, malgrat el suport obtingut (va ser adoptat per Google), no ha pogut superar RSS 2.0.

Llenguatge Atom

Com a bon llenguatge XML, Atom té només una arrel, que és <feed>. Aquesta etiqueta la poden fer servir els programes per detectar que el document que estan llegint és de tipus Atom.

L’arrel <feed> sempre ha de tenir definit l’espai de noms dels documents Atom, que és www.w3.org/2005/Atom. Si no s’especifica l’espai de noms el document no validarà.

  1. <feed xmlns="http://www.w3.org/2005/Atom">
  2. ...
  3. </feed>

El fet de tenir un espai de noms i de fer-lo servir possibilita que els documents Atom es puguin mesclar amb documents XML d’altres vocabularis sense problemes.

Atom té disponibles els atributs d’XML xml:lang, que serveix per identificar l’idioma del document, i xml:base, que es fa servir per controlar com es resolen les adreces relatives.

De la mateixa manera que en altres llenguatges de canals, com RSS, es poden agrupar les etiquetes d’Atom en dos grups:

  • Etiquetes que proporcionen dades sobre el canal.
  • Etiquetes amb el contingut del canal.

Etiquetes amb dades del canal

Els elements obligatoris dins de l’etiqueta <feed> sempre han de tenir els elements fills <title>, <id> i <updated> (taula).

Taula: Elements obligatoris en Atom
Element Ús
title És el nom del canal. Normalment és el de la pàgina web que l’ha creat.
updated Darrer cop que es va actualitzar el canal.
id Identificador únic i universal del canal. Si es té una adreça web que no està prevista que canviï en molt de temps es pot fer servir aquesta adreça com a id.

Per tant, aquest seria un document Atom vàlid, ja que aquestes són les úniques etiquetes obligatòries:

  1. <?xml version="1.0" encoding="utf-8"?>
  2. <feed xmlns="http://www.w3.org/2005/Atom">
  3.  
  4. <title>Atom IOC</title>
  5. <updated>2011-08-13T15:20:02Z</updated>
  6. <id>http://ioc.xtec.cat/</id>
  7.  
  8. </feed>

A part dels elements obligatoris, en l’especificació d’Atom també es fa referència a uns elements que anomena “molt recomanables” (taula). Els elements recomanables són <link> i <author>.

Taula: Elements molt recomanables en Atom
Element Ús
link Identifica la pàgina web equivalent al canal. S’hi defineix la relació amb l’atribut rel.
author Es tracta d’un element que permet identificar l’autor del canal. Hi pot haver múltiples autors.

I lògicament també hi ha tota una llista d’elements opcionals que es fan servir per aportar informació extra sobre el canal (taula).

Taula: Elements opcionals
Element Ús
category A quina categoria pertany el feed.
contributor Gent que col·labora. N’hi pot haver tants com calguin.
generator Identifica el programa que s’ha fet servir per crear el canal.
icon Enllaç a una icona identificativa del canal.
logo Enllaç al logotip del canal.
rights Informació sobre els drets d’ús del canal.
subtitle Títol secundari del canal.

Etiquetes de contingut del canal

Per definir les diferents entrades dins d’un canal es fa servir com a base l’element <entry>. Cada nova aportació crearà un nou element <entry>, que com a mínim ha de tenir les etiquetes <title>, <id>, <updated>, i a més un element <content> o bé un element <link> (taula).

Taula: Elements obligatoris de entry
Element Ús
title Títol de l’entrada que es publica.
id Identificador únic de l’entrada. Sol ser la URI de la pàgina on és.
updated Data en què es va crear o actualitzar l’entrada.
content El contingut de l’entrada. S’hi pot especificar de quin tipus és el contingut.
link Conté l’URL de l’entrada. N’hi pot haver diverses sempre que es canviï el tipus o s’apunti a un lloc diferent.

Com fa sovint l’especificació, Atom també defineix un segon nivell d’elements, considerats “molt recomanats”, i que, per tant, també haurien de sortir. Entre els recomanats hi haurà <content> o <link> si no s’han especificat anteriorment (taula).

L’element <author> es converteix en obligatori si no se n’ha especificat cap en les metadades del canal.

Taula: Elements molt recomanats a ‘entry’
Element Ús
author Nom de l’autor de l’entrada. N’hi pot haver diversos.
summary Resum del contingut. Pot tenir l’atribut que indiqui de quin tipus és el contingut que té.

I lògicament també hi ha elements opcionals (taula).

Taula: Elements opcionals a ‘entry’
Element Ús
category Categoria de l’entrada. N’hi pot haver diverses.
published Data en què es va crear l’entrada.
rights Informació del copyright associada a l’entrada.
source Informació sobre d’on prové l’entrada. Es fa servir en cas que l’entrada vingui d’un altre lloc i s’estigui reaprofitant.
contributor Gent que ha col·laborat en l’entrada. Hi pot haver diversos noms.

Descripció de persones

Les etiquetes <author> i <contributor> serveixen per a descriure una persona. Les persones en Atom es defineixen fent servir una estructura XML que pot tenir els tres elements que es poden veure a la taula.

Taula: Descripció de persones
Etiqueta Ús
name Nom de la persona.
email Correu electrònic.
uri Adreça de la seva pàgina web.

De tots tres elements només <name> és obligatori; els altres són opcionals. Per tant, podem definir el contingut de l’element <author> d’aquesta manera:

  1. <author>
  2. <name>Pere Garcia</name>
  3. </author>

Però mai deixant el nom. I fer-ho d’aquesta manera seria incorrecte perquè no hi ha l’element <name>.

  1. <author>
  2. <email>pere@ioc.cat</email>
  3. <uri>http://ioc.xtec.cat/pere</uri>

Format de les dates

Atom fa servir l’RFC 3339 (ISO 8601) per definir el format de les dates. Les dates en Atom han de tenir aquesta forma:

  Any-Mes-DiaTHora:Minuts:Segons-zonahoraria

De manera que:

  • Tots els valors són numèrics excepte la zona horària, que en alguns casos pot ser el caràcter “Z” per indicar l’hora universal.
  • Davant de la zona horària s’especifiquen les hores de retard o d’avançament amb els símbols de suma o resta.
  • Es fa servir la lletra “T” per separar els dies de les hores.

Per tant aquests valors serien correctes:

  • 2011-08-13T19:16:20-00:00
  • 2011-08-13T19:16:20Z

El contingut

Si no s’especifica cap atribut en l’element <content> o en <summary>, aquest serà tractat com si fos text pla. Si es vol deixar clar que el contingut és en algun altre format s’ha d’especificar amb l’atribut type, que normalment tindrà els valors “text”, “html” o “xhtml”.

  1. <content type="text">Contingut</content>

També es pot enllaçar a contingut extern via una adreça en l’atribut src i podem especificar el tipus d’atribut amb type.

  1. <content src="http://ioc.xtec.cat/Hola.mp3" type="audio/mpeg" />

Validació

Com que tant RSS com Atom són documents XML, es podrà comprovar que són correctes fent servir les mateixes eines de comprovació que es fan servir en XML.

Malgrat que és possible fer servir els validadors d’XML, el més normal és fer servir programes específics per validar RSS i Atom. I com que aquests dos vocabularis només tenen sentit en xarxa, els validadors més populars d’Atom i RSS són en línia.

Entre els validadors d’RSS i Atom destaquen:

Com a exemple es veurà com es fa per validar un document RSS fent servir un d’aquests validadors (el procediment fent servir Atom és exactament el mateix).

Exemple de validació d'un document RSS

Un cop s’ha generat el fitxer del canal, per validar-lo cal accedir a l’adreça del validador amb qualsevol navegador que suporti Javascript. En aquest cas anem a l’adreça del W3C (validator.w3.org/feed).

El validador del W3C permet validar els documents RSS tant a partir d’una adreça d’Internet com copiant el fitxer en el web mateix, tal com es pot veure en la figura.

Figura Possibles maneres de validar RSS en el web del W3C

Independentment de quin sigui el sistema triat, si se li passa aquest codi:

  1. <rss version="2.0">
  2. <channel>
  3. <title>Canal de Llenguatges de Marques</title>
  4. <link>http://ioc.xtec.cat/rss/Marques.html</link>
  5. <description>Canal per entrar les notes del mòdul 4 d'ASIX</description>
  6. <item>
  7. <link>http://ioc.xtec.cat/marques/RSS.html</link>
  8. </item>
  9. </channel>
  10. </rss>

El programa detectarà una sèrie d’errors (figura). S’ha d’anar amb compte perquè aquest validador no diferencia gaire l’aspecte dels errors del de les recomanacions.

Figura Errors detectats en validar el document

Es pot obtenir més informació dels errors detectats clicant en l’enllaç ”[help]”. Aquest enllaç porta a una nova pàgina on es descriu l’error amb detall i en alguns casos explica com solucionar-lo. En l’exemple, l’error és que l’element <item> ha de contenir o bé un <title> o bé un <description>. S’hi afegeixen tots dos i tornem a validar el document.

  1. <rss version="2.0">
  2. <channel>
  3. <title>Canal de Llenguatges de Marques</title>
  4. <link>http://ioc.xtec.cat/rss/Marques.html</link>
  5. <description>Canal per entrar les notes del mòdul 4 d'ASIX</description>
  6. </channel>
  7. <item>
  8. <title>Exemple de com validar RSS</title>
  9. <link>http://ioc.xtec.cat/marques/RSS.html</link>
  10. <description>
  11. Això és un exemple per veure com es fa per validar RSS
  12. </description>
  13. </item>
  14. </rss>

Ara el document ja és vàlid, com es pot veure en la figura.

Figura Document vàlid

A pesar d’això encara hi surten les recomanacions per a no tenir problemes de compatibilitat. En aquest els problemes són:

  • Que s’afegeixi l’espai de noms d’Atom.
  • Que s’hi defineixi un guid.

Definir el guid és relativament senzill. Es defineix dins de l’element <entry> un identificador únic que pot ser una URL.

  1. <guid>http://ioc.xtec.cat/rss/Marques.html</guid>

I l’altra recomanació és que s’afegeixi l’espai de noms d’Atom i un enllaç al document Atom. Per tant, s’afegeix l’espai de noms a <rss>.

  1. <rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom">

I dins de <entry> s’afegeix l’enllaç Atom.

  1. <atom:link href="http://ioc.xtec.cat/rss/Marques.xml" rel="self"
  2. type="application/rss+xml" />

El resultat final serà aquest:

  1. <?xml version="1.0" encoding="UTF-8" ?>
  2. <rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom">
  3. <channel>
  4. <title>Canal de Llenguatges de Marques</title>
  5. <link>http://ioc.xtec.cat/rss/Marques.xml</link>
  6. <description>Canal per entrar les notes del mòdul 4 d'ASIX</description>
  7. <atom:link href="http://ioc.xtec.cat/rss/Marques.xml" rel="self"
  8. type="application/rss+xml" />
  9. <item>
  10. <title>Exemple de com validar RSS</title>
  11. <link>http://ioc.xtec.cat/marques/RSS.html</link>
  12. <description>
  13. Això és un exemple per veure com es fa per validar RSS.
  14. </description>
  15. <guid>http://ioc.xtec.cat/rss/Marques.html</guid>
  16. </item>
  17. </channel>
  18. </rss>

El document ara validarà correctament.

Agregadors / lectors

Els agregadors i lectors de feeds són programes que permeten a l’usuari mantenir en un sol lloc tota la informació dels canals que li interessen.

Entre altres coses:

  • S’encarreguen d’actualitzar els canvis que s’hi van produint sense que l’usuari hagi de visitar la pàgina.
  • Porten el control dels continguts llegits i no llegits dels canals.
  • Permeten veure un resum de les notícies d’un lloc web.
  • S’hi poden organitzar les notícies en grups personalitzats.
  • Permeten fer cerques d’informació entre la informació del canal.

Tant RSS com Atom són estàndards oberts, i això ha permès que s’hagin creat una gran quantitat de lectors que els suporten i que ofereixen funcions extra per als usuaris per intentar millorar-ne l’experiència.

A pesar que es poden llegir els canals des de diferents programes de correu o els navegadors, normalment s’aconsegueix treballar de manera més còmoda i personalitzable fent servir programes especialitzats.

En general podem dividir els programes lectors de canals en dos grans grups:

  • Lectors web
  • Lectors d’escriptori

A pesar de la divisió normalment l’aspecte visual d’aquests programes és relativament semblant. Tots solen tenir la pantalla dividida en blocs:

  • En un dels blocs hi sol haver la llista de subscripcions en la qual es poden agrupar aquestes subscripcions per temes.
  • Un bloc per mostrar el contingut de cada una de les subscripcions.

En la imatge següent podem veure la semblança entre l’aspecte d’un programa web com el Feedly i un programa d’escriptori com Liferea (figura).

Figura Comparació entre el Feedly i el Liferea

La gran diferència sol estar en els filtres o les característiques extra que ofereixen cada un dels programes per fer l’ús més interessant per als usuaris: visualitzacions originals, estadístiques, etc.

Lectors via web

Alguns dels agregadors més populars són els que s’executen directament des d’un lloc web. Aquestes aplicacions se n’encarreguen d’oferir les funcions d’un agregador sense que l’usuari hagi d’instal·lar res.

Si s’hi afegeix el fet de s’hi pot accedir per mitjà de diferents dispositius (ordinadors, telèfons mòbils, etc.) tot plegat ha propiciat que aquests siguin els lectors més populars.

Hi ha una gran quantitat d’aplicacions web disponibles a Internet i sovint n’apareixen de noves. Alguns exemples són:

  • Feedly
  • Netvibes
  • BlogLines
  • FeedLooks

Programari d'escriptori

Són programes tradicionals que requereixen ser instal·lats en el sistema de l’usuari. Solen tenir interfícies gràfiques semblants a les dels programes de correu electrònic.

N’hi ha una gran quantitat i amb les eines de programació actuals no és gaire difícil programar-ne un. Alguns exemples són:

  • Liferea
  • SharpReader
  • FeedDemon
  • FeedReader

Problemes

No tot són avantatges amb la sindicació de continguts, ja que alguns usuaris s’han queixat que el fet que sigui més fàcil i ràpid obtenir la informació no sempre fa que es perdi menys temps per revisar la informació, ja que aquesta facilitat fa que els usuaris acabin seguint més llocs i, per tant, acabin perdent el mateix temps que abans, fins i tot més.

D’altra banda, malgrat que la sindicació de continguts s’ha fet molt popular, encara hi ha molts usuaris que no entenen per a què serveix i no la fan servir.

També alguns usuaris creadors dels continguts han expressat les seves reserves a la sindicació, ja que sovint els resta ingressos per publicitat: el fet que els usuaris no hagin de visitar els seus llocs web els resta visites i, per tant, acaben tenint menys ingressos.

De totes maneres, des d’un punt de vista tècnic i d’utilitat és una tecnologia que cal tenir en compte, atès que els avantatges són molt superiors als possibles inconvenients.

Anar a la pàgina anterior:
Referències
Anar a la pàgina següent:
Activitats