Kein Folientitel

Download Report

Transcript Kein Folientitel

Webbasierte Informationssysteme WS 2000/2001
Kilian Lenz
Ein Vortrag über
RSS (RDF Site Summary)
a lightweight multipurpose extensible metadata description
and syndication format
Gliederung
• Einführung
– Was ist RSS?
– Geschichte
• RSS-Dokumentstruktur
–
–
–
–
Beispiel-Channel mit RSS 0.91
Funktionsweise
Erweiterung zu RSS 1.0
Core-Syntax für RSS 1.0
• Zusammenfassung
Kilian Lenz
2
Einführung - Was ist RSS?
• Lightweight:
– simple Erweiterung von XML - im Gegensatz zu
XML-News oder ICE
– deshalb „lesbar“ und von Hand editierbar
– automatisierungsfähig
• Multipurpose:
– ursprünglich als reines framework für NewsHeadlines gedacht
– heute auch für Diskussionsforen, Sporttabellen,
Jobangebote, Ankündigungen etc.
• Extensible:
– erweiterbar über XML-namespaces
Kilian Lenz
3
Einführung - Was ist RSS? (2)
• Metadata:
– enthält einfaches RDF zur Beschreibung von
Channels
• Syndication:
– das Ziel: Verbreitung der wichtigsten
Informationen der eigenen Site als
„snapshot-in-a-document“ z.B. im MyNetscapeNetwork
– Aggregation und Veröffentlichung von News
– (Syndication meint hier nicht die Verbreitungsart
wie push, pull, subscribe etc.)
Kilian Lenz
4
Einführung - Geschichte
• 1997 von Dave Winer „erfunden“
als Versuch mit XML eine News-Site zu erweitern
• 1999 von Netscape übernommen?
– weiterentwickelt für My.Netscape - ein
personalisierter Nachrichtendienst, der XML/
RSS-0.9-channels in HTML übersetzen konnte.
• 2000 RSS 0.91 als Kombination von Winers
und Netscapes RSS veröffentlicht
– Abkehr vom RDF
– erhielt neue Elemente aus Winers „Userland‘s
scriptingNews format“
Kilian Lenz
5
Einführung - Geschichte (2)
• nach AOL-Übernahme:
Einstellung der Entwicklung bei Netscape
• danach von Winers und ehem. Mitarbeitern
fortgeführt und von W3C anerkannt
• heute RSS 1.0
– wieder RDF-like für eine namespace basierte
modulare Struktur
– erlaubt somit eine Standardisierung aber auch
wohldefinierte Anpassungsfähigkeit an eigene
Bedürfnisse.
Kilian Lenz
6
RDF Site Summary 0.91
• Einfachster Fall:
– RSS ist XML-Dokument, das einen Channel
beschreibt, der verlinkte „Items“ enthält
– „Metadata Summary“
• Jedes „Item“ besteht aus
– Titel
– Link (URL)
– kurze textliche Beschreibung (plain text)
Kilian Lenz
7
RSS-0.91-Beispiel
<?xml version="1.0"?>
<!DOCTYPE rss PUBLIC "-//Netscape Communications//DTD RSS 0.91//EN"
"http://my.netscape.com/publish/formats/rss-0.91.dtd">
<rss version="0.91">
<channel>
<title>MozillaZine</title>
<link>http://www.mozillazine.org</link>
<description>Your source for Mozilla news, advocacy,...</description>
<language>en-us</language>
<image>
<title>MozillaZine</title>
<url>http://www.mozillazine.org/image/mynetscape88.gif</url>
<link>http://www.mozillazine.org</link>
<width>88</width> <height>31</height>
<description>Articles, discussions, builds, and more...</description>
</image>
<item>
<title>Java2 in Navigator 5?</title>
<link>http://www.mozillazine.org/talkback.html?article=607</link>
<description>Will Java2 be an integrated part of Navigator 5?
Read more about it in this discussion...</description>
</item>
Kilian Lenz
8
RSS-Beispiel (2)
<textinput>
<title>Send</title>
<description>Comments about MozillaZine?</description>
<name>responseText</name>
<link>http://www.mozillazine.org/cgi-bin/sampleonly.cgi</link>
</textinput>
</channel>
</rss>
Kilian Lenz
9
RSS-Beispiel (3)
Kilian Lenz
10
Funktionsweise bei MyNetscape
• Anmelden des RSS-Files bei MyNetscape
– RSS-File muß auf eigenem Server ständig zur
Verfügung stehen.
– MyNetscape checkt RSS-File und stellt
„Add this Site“-Button zur Verfügung.
– Einfügen des Buttons auf der eigenen
Homepage.
• Interessenten: Channel auf eigener Seite
einfügen:
– Der Channel wird bei jedem Aufruf von
MyNetscape in HTML gerendert zur Vefügung
gestellt.
– Update der Daten: per „schedule“ vom RSS-File.
Kilian Lenz
11
Erweiterung zu RSS-1.0
• RSS 0.91 besitzt sehr wenige Elemente
und ist nicht erweiterbar!
– User definierten selbst neue Tags und benutzen
HTML in Items  Chaos
• RSS 1.0 besitzt (wieder) RDF-Fähigkeiten
• deswegen Einführung von:
– namespaces
– Assoziation jeder Resource mit einer URI
(rdf:about-Attribut)  Aggregation von Items
– Table of Contents (vgl. Zitat/Referenz)
Motivation: Aggregatoren extrahieren Daten um
eigene Syndikate zu erstellen. Damit geht die
Channelherkunft verloren.
Kilian Lenz
12
Core-Syntax für RSS 1.0
• XML-Version-Tag
– <?xml version=“1.0“?>
– optional ab RSS 0.91
• RDF-Element
– <rdf:RDF xmlns:rdf={URL}>
– benötigt
– enthält: channel, image?, item+, textinput?
• Channel-Tag
– <channel rdf:about={resource}>
– benötigt
– Attribut: rdf:about Identifier für Channel-URI
– enthält: title, link, description, image?, items, textinput?
Kilian Lenz
13
Core-Syntax (2)
• Titel des Channels
– <title> {Titel} </title>
– benötigt
– #PCDATA, Länge ca. 40 Zeichen
• Link für Channel-Titel
– <link> {URL} </link>
– benötigt
– #PCDATA, Länge ca. 500 Zeichen
• Description Kurzbeschreibung des Channelinhaltes
– <description> {Text} </description>
– benötigt
– #PCDATA, Länge ca. 500 Zeichen
Kilian Lenz
14
Core-Syntax (3)
• RDF-Image-Assoziation
– <image rdf:resource={URI}/>
– optional
• RDF-Items-Assoziation
– RDF-Inhaltsverzeichnis der Items
– <items><rdf:Seq><rdf:li resource={URI}/> ...
</rdf:Seq></items>
– benötigt
• RDF-Textinput-Assoziation
– <textinput rdf:resource={URI}/>
– nur für Textelement benötigt
Kilian Lenz
15
Core-Syntax (4)
• Image
– <image rdf:about={URI}> ... </image>
– optional, Größe 88 x 31 Pixel
– enthält title (alternative), url, link
• Titel für Image oder Item
– <titel> {Text} </title>
– benötigt, falls Element vorhanden
– #PCDATA, ca. 40 Zeichen
• URL des Bildes
– <url> {URL} </url>
– benötigt
– #PCDATA, ca. 500 Zeichen
Kilian Lenz
16
Core-Syntax (5)
• Link für Image, Item oder Textinput
– <link> {URL} </link>
– benötigt
– #PCDATA, Länge ca. 500 Zeichen
• Item
– <item rdf:about={URI}>
– mind. 1 Element (bei RSS <1.0 maximal 15)
– enthält title, link, description?
• Description für Item oder Textinput
– <description> {Text} </description>
– optional
– #PCDATA, Länge ca. 500 Zeichen
Kilian Lenz
17
Core-Syntax (6)
• Textinput für Usereingaben
– <textinput rdf:about={URI}>
– enthält title, name, link, description?
• Name
– <name> {textinput varname} </name>
– required
– #PCDATA, Länge ca. 500 Zeichen
• Erweiterung durch Module
– Einbindung über namespaces
Kilian Lenz
18
Zusammenfassung
• RSS spezifiziert keinen Notification-Service
sondern nur Inhalte.
• RSS stellt einfache Beschreibungssprache
für Channels zur Verfügung
– XMLNews, ICE == overkill
• erweiterbar
• Möglichkeit der Aggregation von Items
– aus verschiedenen Channels (Syndication) für
maßgescheiderte Angebote
– z.B. xmlTree, My.UserLand
Kilian Lenz
19
Zusammenfassung (2)
• MyN-Channel erlaubt Angebot von fremden
Anbietern auf eigener Seite zu publizieren,
ohne sich um Darstellung zu kümmern.
• Aktualisierung des Inhalts durch MyN. mit
jedem Aufruf des Channels (pull)
• Kaum Unterschied zu CDF
• ca. 2000 RSS-Quellen in über 300
Kategorien
• wird kaum von bekannten/großen ContentProvidern eingesetzt
Kilian Lenz
20
Quellen
• Rael Dornfest: „Writing RSS 1.0“
www.oreillynet.com/pub/a/network/2000/08/25/magazine/rss_tut.html
• Dave Winer: „What to do about RSS?“
davenet.userland.com/2000/09/02/whatToDoAboutRss
• R. Dornfest: „Lightweight Web Syndication“
www.xml.com/pub/2000/07/17/syndication/rss.html
• MyNetscapeNetwork: „Quick Start Guide“
my.netscape.com/publish/help/mnn20/quickstart.html
• RDF Site Summary 1.0
groups.yahoo.com/group/rss-dev/files/specification.html
Kilian Lenz
21