1 Využití RSS pro personalizované doručování článků z vědeckých časopisů Martin Krčál * Abstrakt: Příspěvek pojednává o možnosti využití RSS kanálů pr...
Využití RSS pro personalizované doručování článků z vědeckých časopisů Martin Krčál * [email protected] Abstrakt: Příspěvek pojednává o možnosti využití RSS kanálů pro potřeby personalizovaného doručování článků z vědeckých časopisů. V první části autor popisuje technologii RSS a probírá specifikaci RSS 2.0. Ve druhé části se zamýšlí nad fungováním systému pro stahování článků z RSS kanálů vědeckých a odborných časopisů a jejich následným vyhledáváním a doručováním do RSS čteček. V závěru pak nabízí další možnosti vylepšení a napojení na jiné již existující webové služby. Klíčová slova: RSS, specifikace RSS, webové služby, personalizované doručování článků
1
Úvod
Distribuce informací prostřednictvím RSS kanálů se stala v poslední době velmi populární. RSS kanály lze nalézt nejen u velkých zpravodajských serverů, blogů a dalších často aktualizovaných stránek, ale v poslední době je začali využívat i někteří vydavatelé. Takové RSS kanály obsahují název, popis článku (často ve formě anotace), odkaz na časopis, seznam článků, které se v něm nacházejí (většinou z aktuálního čísla nebo výběr těch nejlepších), linky na konkrétní články (na volně dostupný fulltext nebo anotaci), případně údaje o autorovi. K podobné praxi se odhodlali také tvůrci významných databází článků a časopisů. Za všechny jmenujme alespoň časopisy z Oxford University Press nebo Wiley. Informace z těchto zdrojů lze využít při personalizovaném doručování článků, ale také v dalších službách.
2 2.1
Technologie RSS Co je RSS
RSS (Really Simple Syndication) je standardizovaný formát založený na XML, který umožňuje jednoduché sdílení obsahu na internetu. Vznikl již v roce 1999, svou popularitu však získává teprve v posledních letech. V čem je RSS tak skvělé? Jeho největší výhoda spočívá v jednoduchosti použití. Tvůrce stránky vygeneruje RSS kanál, do kterého uloží informace o zdrojovém dokumentu. Díky tomu, že jde o standardní formát, je poměrně dobře strojově zpracovatelný. Navštíví-li uživatel stránky a stáhne-li si RSS kanál do své RSS čtečky, může nepřetržitě sledovat, co je na stránkách nového bez toho, aby stránky znovu navštívil. Mohlo by se zdát, že to postihne návštěvnost daného serveru, ale opak je pravdou. Uživatelé tím, že mohou sledovat novinky ve své čtečce, udržují kontakt se stránkami a pravidelně se na ně vracejí, čímž jejich návštěvnost zvyšují. Samozřejmě obsah RSS kanálů nemusíme sledovat jen ve čtečkách. RSS kanál je vlastně XML dokument, a proto jeho obsah můžeme velmi jednoduše zobrazovat také na webových stránkách a doplňovat jej o další služby jako např. personalizované zobrazování zpráv. Dobrým příkladem využití RSS kanálů na webových stránkách může být služba Právě dnes – monitoring zpravodajství (http://www.pravednes.cz), která shromažďuje zprávy ze všech významných českých * Masarykova univerzita, Fakulta sociálních studií, Ústřední knihovna, Joštova 10, 602 00 Brno
zpravodajských serverů. Po registraci si můžeme vytvořit vlastní stránku se zdroji, které nás zajímají a které chcete sledovat. S první veřejně publikovanou verzí RSS přišel Netscape (verze 0.9). Širší uplatnění však našla až její úprava 0.91. Po ní přišla verze 1.0, která byla stejně jako v0.9 založena na specifikaci RDF. V současné době existuje RSS ve verzi 2.0 (resp. 2.0.1), která je kompatibilní s 0.91 (přibyly jen některé nepovinné prvky). Zároveň jde o nejčastěji užívané verze na webu. RSS kanály bývají na stránkách označeny těmito ikonami: 2.2
Specifikace RSS 2.0
Jak již bylo řečeno výše, RSS je založeno na XML, proto musí dodržovat jeho specifikaci. XML dokument by měl být kódován v UTF-8 a stejně tak je tomu i u RSS kanálů. Každý RSS dokument obsahuje povinné a nepovinné prvky. Musejí být vždy párové (uzavřené) a některé jsou opakovatelné. Vybrané prvky mohou obsahovat upřesňující parametry. Základními povinnými prvky jsou: - kořenový prvek obsahující parametr version, ve kterém se uvádí verze RSS. Tento údaj je velmi důležitý, neboť umožňuje stažení dat ve správném formátu. - je vnořený do prvku a je nositelem informací. Obsahuje nejen popisná metadata RSS kanálu, ale také samotný obsah kanálu v prvku . Všechny další níže popsané prvky jsou již vnořeny do prvku . K dalším povinným prvkům patří: - jméno kanálu, často to bývá název stránky. Pokud jde o RSS kanál článků z konkrétního časopisu, často zde bývá právě jeho název. - URL adresa daného RSS kanálu (včetně http://, ftp:// apod.). <description> - tento prvek slouží k popisu kanálu. Mimo to může obsahovat ještě nepovinné prvky: - umožňuje definovat jazyk RSS kanálu. Bohužel zápis jazyka nevychází z žádné normy, ale užívají se vlastní zkratky jazyků, které vytvořil a spravuje Netscape.† Jejich seznam najdete na adrese: http://blogs.law.harvard.edu/tech/stories/storyReader$15. Pro češtinu se užívá zápis cs. - informace o autorských právech pro data v RSS kanálu. <managingEditor> - email na osobu, která je zodpovědná za informace v RSS kanálu. <webMaster> - email na osobu, která je zodpovědná za technické záležitosti provozu RSS kanálu. - datum vytvoření obsahu v RSS kanálu. Formát pro zápis data a času lze nalézt ve specifikaci RFC 822 v kapitole 5 - Date and Time Specification (http://www.faqs.org/rfcs/rfc822.html).
- datum poslední změny obsahu RSS kanálu. Formát zápisu je stejný jako u prvku . - řadí kanál do jedné nebo více kategorií, může obsahovat parametr domain, který popisuje taxonomii kategorií. - název programu nebo aplikace, která RSS kanál vytvořila. <docs > - odkaz na dokumentaci, podle níž byl RSS kanál vytvořen (URL na specifikaci použité verze RSS) - může obsahovat parametry domain, port, path, registerProcedure a protocol. - určuje jak dlouho může být kanál cacheován před novou aktualizací zdroje. Zadává se celé číslo, které vyjadřuje počet minut. - definuje obrázek, který se má zobrazovat u daného RSS kanálu. Obrázek může být ve formátu JPG, GIF nebo PNG. Prvek obsahuje tři povinné a stejný počet nepovinných prvků: - URL obrázku, povinný prvek. - popisek obrázku, který se v HTML zobrazuje u tagu v parametru ALT, povinný prvek. - URL stránky. Při vykreslení kanálu je obrázek zároveň odkazem na stránky. V praxi by měl mít stejnou hodnotu jako link kanálu. Jde o povinný prvek. <width> - šířka obrázku v pixelech, výchozí hodnota je 88, maximální hodnota 144, nepovinný prvek. - výška obrázku v pixelech, výchozí hodnota je 31, maximální hodnota 400, nepovinný prvek. <description> - popisek obrázku, který se v HTML zobrazuje u tagu v parametru TITLE, nepovinný prvek. - hodnocení kanálu podle PICS (Platform for Internet Content Selection). Více informací o PICS najdete na adrese: http://www.w3.org/PICS. - specifikuje formulářové textové vstupní pole, které může být zobrazeno spolu s obsahem kanálu. Nenachází příliš velké uplatnění a většina agregátorů ho ignoruje. V praxi by měl sloužit třeba k získávání zpětné vazby od čtenářů. Může obsahovat tyto nepovinné prvky: - popisek odesílacího tlačítka ve formuláři. <description> - popisek formulářového textového vstupního pole. - jméno textového objektu. V HTML se zobrazí jako parametr name u formulářového pole. - odkaz na skript, který spustí požadavek po odeslání formuláře (ve specifikaci se uvádí, že musí jít o CGI skript). <skipHours> - definuje hodiny, ve kterých by neměl být obsah stahován. Tento prvek může nabývat hodnot 0-23. <skipDays > - definuje dny v týdnu, ve kterých by neměl být obsah stahován. Tento prvek může nabývat hodnot: Monday, Tuesday, Wednesday, Thursday, Friday, Saturday a Sunday. - prvek, který nese obsah kanálu. Je libovolně opakovatelný. Obsahuje další vnořené prvky, které jsou nepovinné. Vždy ale musí být uveden alespoň prvek nebo <description>. - titulek položky. 3
<description> - výtah z obsahu položky. - URL odkazující na položku. Většinou jde o odkaz na plný text. - emailová adresa na autora textu (článku), v závorce může být uvedeno i jeho jméno. - řadí položku do jedné nebo více kategorií, může obsahovat parametr domain, který popisuje taxonomii kategorií. - URL stránky odkazující na komentáře k položce. <enclosure> - popisuje přílohy, které jsou vložené k položce. Obsahuje povinné parametry url (URL přílohy), length (velikost přílohy v bytech), type (typ přílohy, standardně MIME type). - globální jednoznačný identifikátor položky. Pomáhá čtečkám rozhodovat, zda je daná položka nová. Specifikace neurčuje přesný formát tohoto prvku, ale musí vždy jít o řetězec. Může být zapsán ve formě URL adresy nebo lze zadat jiný jednoznačný identifikátor (např. DOI, URI,…). Prvek může obsahovat parametr isPermaLink, který definuje, zda jde o permanentní odkaz, jenž lze otevřít v prohlížeči (hodnota true), případně dočasný odkaz nebo jiný než URL identifikátor (hodnota false). Primárně je tomuto parametru nastavena hodnota true. - datum zveřejnění položky. Formát pro zápis data vychází opět ze specifikace RFC 822 (viz výše). <source> - jméno RSS kanálu, z něhož položka pochází. Může obsahovat parametr URL s odkazem na zdroj. 2.3
RSS validátory
Validátory lze definovat jako nástroje, které určují správnost zápisu zdrojového kódu na základě porovnání se standardy. Většinou jsou dostupné prostřednictvím internetu, a pak mluvíme o tzv. online validátorech. Některé jsou zakomponovány přímo do internetových prohlížečů (např. v Opeře nebo formou rozšíření ve Firefoxu). Fungují tak, že se do formulářového pole zadá URL dokumentu, u něhož chceme prověřit validitu, a systém vygeneruje chyby, případně zobrazí hlášku, že dokument je validní. Existuje velké množství validátorů na různé typy dokumentů. Za všechny jmenujme alespoň validátory na kontrolu zdrojového kódu webových stránek (XHTML, HTML), kaskádových stylů (CSS), XML, RDF, Atom atd. Svůj validátor má také RSS. Jde o Feed Validator od Marka Pilgrima, který lze nalézt na adrese http://www.feedvalidator.org. Slouží ke kontrole RSS ve verzích 0.90, 0.91, 0.92, 0.93, 0.94, 1.0, 1.1 a 2.0. V současnosti podporuje také Atom 0.3 a v betaverzi Atom 1.0. Validátory nejsou bezchybné. Jde jen o strojovou analýzu struktury dokumentu. Přesto hrají neocenitelnou roli při tvorbě dokumentů a dokáží ušetřit čas při odhalování chyb.
3 3.1
Systém pro personalizované doručování odborných článků z RSS zdrojů Stahování dat z RSS kanálů
V první fázi je nutné vytipovat si vhodné RSS kanály. V našem případě by mělo jít o RSS kanály odborných časopisů nebo specializovaných databází článků. Měly by mít kvalitní obsah a hlavně jejich zdrojový kód musí být validní se specifikací RSS. Validitu zdrojového kódu lze ověřovat pomocí Feed Validatoru. Nové odkazy na RSS kanály by do systému vkládali správci služby, případně by na ně mohli upozorňovat sami uživatelé např. odesláním odkazu na RSS zdroj prostřednictvím webového formuláře. Tyto zdroje od uživatelů by však měly procházet schvalovacím procesem se zaměřením na kontrolu relevance zdroje a 4
samozřejmě na kvalitu zdrojového kódu (bylo by možné kontrolovat automaticky pomocí vestavěného validátoru). Informace o zdrojích se budou ukládat do databáze. Bude nutné uchovávat zejména název zdroje () - v našem případě by to měl být název časopisu, jeho URL adresu () a informace o tom, kdy je zdroj aktualizován. Dále se může ukládat popis kanálu (<description>), jazyk (), informace o autorských právech (), kontakt na správce obsahu (<managingEditor>), datum poslední aktualizace ( případně ) a předmětové kategorie (). Asi nejdůležitějším údajem pro nás bude frekvence aktualizace zdroje. Na základě toho se budou informace stahovat. Bude-li tedy RSS kanál aktualizován vždy 23. den v měsíci, spustí se automaticky vždy tento den skript, který ověří, zda již zdroj obsahuje nové informace (podle prvků a ) a pokud ano, obsah stáhne do vlastní databáze. Nebude-li obsah ještě aktualizován, zopakuje proces třeba o den později. Dále se musí prověřit, zda již článek v databázi z tohoto zdroje není. K tomu potřebujeme jednoznačně identifikovat článek (data v prvku ). Můžeme využít prvek , případně porovnat název () a odkaz na článek (). Problém při ověřování by mohl nastat ve chvíli, kdy by nebyl vyplněn žádný z těchto prvků. Pak by se články z tohoto zdroje nestahovaly. K tomu však bude docházet pouze výjimečně. Snad všechny zdroje, které jsem prověřoval, měly v prvku (u ) zadaný název článku. Nyní se zaměřme na to, jaká data budeme stahovat u jednotlivých článků. Ideální by bylo stahovat obsah všech vnořených prvků prvku . To ale není v praxi vždy možné, protože ne každý producent RSS kanálů vyplňuje všechny položky. Pro provozování naší služby jsou klíčové prvky , , <description> a . Pro případné vyhledávání by bylo dobré stáhnout kategorie (). Diskutabilní je stahování prvku , kde se primárně zadává emailová adresa autora článku. Jméno autora se pak může zadat do závorky. Většinou tento údaj vyplněn nebyl. Budeme-li vycházet z toho, že většina uživatelů hledá článek podle klíčových slov a předmětových hesel, pak není tento údaj příliš důležitý a stahovat jej můžeme jen v případě, je-li uveden. Jak je ze specifikace RSS 2.0 patrné, naprosto chybí prvek pro označení ročníku a čísla časopisu, v němž se článek nachází. Tvůrci RSS kanálů to řeší různě. Nejčastěji tento údaj vůbec neuvádějí. U RSS zdrojů časopisů publikovaných The University of Chicago Press se ročník a číslo uvádí přímo v prvku a jsou odděleny od názvu článku dvojtečkou. Setkal jsem se také s tím, že byly tyto údaje uvedeny v prvku <description>. Otázkou zůstává, zda je tento údaj důležitý ve chvíli, kdy máme k dispozici odkaz na článek, případně na stránky časopisu, kde je informace o ročníku a čísle většinou uvedena. Asi největší problém nastane při pokusu o sjednocování záznamů. Příkladem může být výše zmíněné uvádění ročníku a čísla v prvku u časopisů z vydavatelství The University of Chicago Press. Tady bude zřejmě nutné ošetřit nejčastější varianty zápisu při stahování informací do vlastní databáze nebo je vkládat v takovém stavu, v jakém jsou uvedeny a zohlednit to při vyhledávání. 3.2
Co dále s uloženými daty
Stáhneme-li obsah RSS zdroje do databáze našeho systému, můžeme přemýšlet, jak s ním dále naložíme. Jako první se nabízí vytvořit vyhledávací rozhraní. Vyhledávat články by mělo jít podle slov z názvu nebo dle klíčových slov. Tomu samozřejmě musí předcházet indexace prvků , <description> a zpracování výrazů v položce . Systém by měl disponovat jednoduchým a pokročilým vyhledáváním. Mohl by využívat některé další funkce jako „našeptávač“ z databáze EBSCO apod. 5
Uživatel by také měl mít možnost vybrat si zdroje, které ho zajímají. Na základě toho by si vytvořil vlastní RSS kanál, jehož prostřednictvím by si mohl informace ze svých oblíbených zdrojů zobrazovat ve vlastní čtečce a samozřejmě také v systému na své personalizované stránce. Obdobně by mohla fungovat tzv. výstřižková služba. Uživatel by si v systému zadal klíčová slova, která ho zajímají. Jakmile by se do systému vložil článek, který odpovídá zaměření uživatele, systém by ho automaticky vložil do osobního RSS kanálu uživatele a tomu by se okamžitě zobrazil v jeho čtečce a samozřejmě také na jeho personalizované stránce. Klíčová slova by si mohl průběžně měnit. Navíc by měl uživatel k dispozici hodnocení jemu zobrazených článků. Na základě tohoto hodnocení by systém uživateli nabízel i podobné články, které by nespadaly do jeho původního výběru klíčových slov, ale odpovídaly by jeho zaměření a zájmům. Hodnotit by se samozřejmě daly všechny články. Mohl by existovat žebříček nejlépe hodnocených, ale třeba také nejčtenějších článků. Podle toho by šlo sestavovat nejčtenější zdroje (časopisy) apod. Články by mohli uživatelé hodnotit také slovně formou recenzí a komentářů. Zkrátka vytvořilo by se prostředí pro výměnu informací o kvalitních odborných textech založených na principu dnes stále populárnějšího Webu 2.0. 3.3
Propojení s externími službami
Zapomenout nemůžeme ani na spolupráci s dalšími externími službami. V prvé řadě je možné vyhledávat články a časopisy v knihovnách např. prostřednictvím Jednotné informační brány (http://www.jib.cz). Službu lze prolinkovat s různými databázemi článků (EBSCO, Proquest, apod.), případně se službami pro paralelní vyhledávání časopisů v těchto zdrojích jako je např. JaMM Journals (http://www.jammworld.com). Záznamy by mohly být exportovány do citačního softwaru (např. RefWorks), případně do Generátoru citací (http://www.citace.com). Podobných propojení služeb by šlo určitě nalézt více.
4
Závěr
Možnosti využití stále populárnějších RSS kanálů jsou velké. V tomto příspěvku jsem se snažil nastínit alespoň jeden způsob, který by mohl oživit kdysi tak populární výstřižkovou službu. Samozřejmě systém asi nikdy nebude dokonalý. V prvé řadě nelze pokrýt všechny časopisy. Ne každý vydavatel a producent prezentuje články nebo alespoň obsahy svých časopisů prostřednictvím RSS kanálů. Navíc při personalizovaném vyhledávání vždy záleží na správnosti zadaných klíčových slov a samozřejmě na správné indexaci článků systémem. Přesto si myslím, že pro řadu vědců a odborníků by takový systém znamenal obrovskou úsporu času a byl by přínosem pro jejich práci.
Použitá literatura a WWW odkazy 1. RSS 2.0 Specification [online]. Aug. 12, 2006 [cit. 2007-04-04]. Dostupný z WWW: . 2. RSS. Wikipedia : The Free Encyclopedia [online]. 27 September 2002, [cit. 2007-04-04]. Dostupný z WWW: . 3. BUREŠ, Jiří. RSS? RSS!. Interval.cz [online]. 4.3.2003 [cit. 2007-04-04]. Dostupný z WWW: . ISSN 1212-8651. 4. BUREŠ, Jiří. RSS 2.0. Interval.cz [online]. 16.9.2004 [cit. 2007-04-04]. Dostupný z WWW: . ISSN 1212-8651.
5. KING, Andrew B. Introduction to RSS. WebReference.com [online]. March 27, 2000, revised April 14, 2003 [cit. 2007-04-04]. Dostupný z WWW: . 6. LEWIN, James. Content feeds with RSS 2.0. IBM [online]. 23 Dec 2003 [cit. 2007-04-04]. Dostupný z WWW: . 7. http://www.bytowninternet.com/glossary 8. http://www.anvilmediainc.com/search-engine-marketing-glossary.html