|
|
|
|
RSS – היכרות עם סינדיקצית תוכן (Content Syndication) ב-XML
|
המאמר המקורי נכתב על ידי מת'יו לנגהאם ותורגם ועובד מגרמנית על ידי שירה בר-נס, ראש צוות פיתוח
ב-Netwise.
קישור למאמר:
http://www.entwickler.com/itr/online_artikel/psecom,id,272,nodeid,69.html
|
|
|
תקציר המאמר:
בזמן האחרון אתרים רבים ברשת מציעים סטנדרט חדש להעברת נתוני מידע ברשת – שימוש ב-RSS. הגרסה הראשונה והמוכרת לרבים של ה-RSS הייתה גרסה 0.91 הקיימת מאז יוני 2000. מאמר זה מביא סקירה קצרה על ההיסטוריה של ה-RSS, יתרונות וחסרונות של קובצי RSS 0.9x ו-RSS 1.0, מהם המקורות העיקריים למידע RSS וכן מסביר מהי התועלת בשימוש ב-RSS ומי המשתמשים בכלי זה.
|
|
|
|
ראשי התיבות RSS יכולים להיות קיצור של: Rich Text Syntax [2] ,[1] RDF Site Summary או לאחרונה גם [3] Really Simple Syndication. ריבוי פירושים הוא לא בדיוק התנאי האידיאלי לפריצת דרך עבור הסטנדרט החדש להעברת נתוני מידע ברשת, ובכל זאת יש לפורמט ה-XML הזה יתרון מנצח שפורמטים אחרים יכולים רק לחלום. בזכות הזמינות של מקורות מידע מרובים המציעים מידע בפורמט RSS, בזכות פרסום הבלוגים ב-RSS ובזכות העלייה במוצרי צד לקוח התומכים ב-RSS, רכש לו הפורמט הזה בזמן האחרון מעריצים רבים.
|
|
|
|
היסטוריה קצרה
|
|
|
|
נתחיל מההתחלה. איחזור מקורותיו של ה-RSS ייקח אותנו לדייב וינר (Dave Weiner) מחברת Userland, שכבר ב-1997 פירסם את הבלוג שלו [4] בפורמט XML. מאוחר יותר, הצוות של דן ליבי מחברת My Netscape תכנן פורמט XML והשתמש בכמה הגדרות תגים מאותו פורמט של Userland. בעקבות זה העבודה המקורית ננטשה לטובת ביסוס ה-RSS על RDF (Resource Description Framework). כיוון ש-RDF נתפס כמסובך מדי, RSS היה צריך לפשט את סיכומי האתרים ברשת (web site summary).
|
|
|
|
הגרסה הראשונה, והמוכרת ברבים, הייתה גרסה 0.91 הקיימת מאז יוני 2000. בדצמבר 2000 הגיעה גרסה 0.92, הבאה בתור. באוגוסט 2002, לאחר שה-RSS חזר לכותרות בגלל הבלוגים, ניסה דייב וינר להמשיך לפתח את הפורמט עם הצעות ל 0.93 ו- 0.94, אך ללא הצלחה גדולה בעולם ה-RSS. לכן וינר ניסה להתחיל מחדש ולבסוף פרסם את המפרט של גרסת [5] RSS 2.0 בספטמבר 2002. הסיבה לקפיצה בגרסאות היא פשוטה – גרסה 1.0 כבר הספיקה להתפרסם בינתיים [6].
|
|
|
|
כבר בסוף 2000 החלו חסידי הפורמט המקורי RDF בניסיון להמשיך לפתח את RSS בכיוון זה. משום כך הם הגדירו את פורמט RSS 1.0 על בסיס RDF. למרבה המזל המבנה של כל קבצי ה-RSS זהה. קובץ RSS כולל פריטים (Items) בתוך ערוצים (Channels). לעתים קרובות גם מדובר על RSS-feed (הזנות RSS) וזאת בהקשר של השימוש הנפוץ ב- RSS לשידורי חדשות. הפורמטים השונים נבדלים זה מזה בפרטים, כפי שנראה בהמשך.
|
|
|
|
RSS 0.9x - מאפיינים
|
|
|
|
מבנה של קובץ RSS בפורמט 0.9x הוא די פשוט, דבר שללא ספק תרם להצלחתו הגדולה.
|
|
|
|
|
כל קבצי ה- 0.9x RSS מתחילים בתג rss. לתג הזה יש מאפיין שנקרא version, המשמש לסמן את גרסת ה-RSS שבה משתמשים.
|
|
|
בין תגי ה-rss נמצא תג ה-channel. תג זה מכיל תיאור של ההזנות (feeds).
|
|
|
בתוך תגי ה-channel נמצאים פרטים נוספים לגבי המידע שיש בהזנות: title, link, ו–description.
|
|
|
בין תגי ה-link צריך להיות קישור לאתר הבסיסי.
|
|
|
ההודעות (Items) עצמן בתוך קובץ RSS צריכות להימצא בין תגי item. שם נמצאים גם התגים הפנימיים title, link ו-description.
|
|
|
|
|
מכך עולה כי קובץ RSS 0.92 מינימלי יכול להראות כך:
|
|
|
| <?xml version="1.0"?> |
| <rss version="0.92"> |
| <channel> |
| <title>Not the News Channel</title> |
| <link>http://www.example.com/</link> |
| <description>Lots of nice news</description> |
| </channel> |
| <item> |
| <title>Matthew strikes again</title> |
| <link>http://www.example.com/001</link> |
| <description>Matthew announces new product based on Cocoon<description/> |
| </item> |
| <item> |
| <title>Sebastian goes for more</title> |
| <link>http://www.example.com/002</link> |
| </item> |
| </rss> |
|
|
|
|
|
מהדוגמה הנ"ל ניתן להסיק שתג ה-description אינו חובה בכל מקום וקבצי הזנת RSS רבים מכילים רק כותרת קצרה. בעזרת תג ה-link יכול הקורא להגיע לידיעה האמיתית כפי שניתן לראות בדוגמה מס' 1.
|
|
|
|
דוגמה מספר 1
|
|
|
|
|
|
|
|
מלבד התגים שצוינו קודם קיימים גם אחרים, הנקראים מאוחר יותר על ידי המצרפים (aggregators) המתאימים. תיאור מפורט של גרסה 0.92 ניתן למצוא ב-[7]. לצורך השוואה, איור 1 מפרט את הפורמט החדש 2.0 , הממשיך הישיר של סדרת 0.9x .
|
|
|
איור 1
|
|
|
|
פגם ידוע של משפחת ה-0.9x הוא בעיית ההתאמות. כיוון שהגרסה הזאת איננה תומכת בקונספט של namespaces הנפוץ ב-XML, צריך לשנות את הפורמט ולעשות גם שינויים במוצרי ה-RSS בין גרסה לגרסה. בכך שונה העיקרון בגרסת RSS 1.0
|
|
|
|
RSS 1.0
|
|
|
|
ההבדלים בין משפחת הפורמטים 0.9x ו-1.0 יהיו ברורים כשנתבונן בדוגמה המקוצרת בדוגמה מס' 2. כבר בתחילת הפורמט קיים השימוש ב-namespaces המאפשר לנו להתאים את פורמט ה-RSS שלנו למה שנרצה.
|
|
|
|
דוגמה מספר 2
|
|
|
| <rdf:RDF xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" |
| xmlns:dc="http://purl.org/dc/elements/1.1/" |
| xmlns:sy="http://purl.org/rss/1.0/modules/syndication/" |
| xmlns:content="http://purl.org/rss/1.0/modules/content/" |
| xmlns:foaf="http://xmlns.com/foaf/0.1/"xmlns="http://purl.org/rss/1.0/"> |
| | <channel rdf:about="http://www.aaronsw.com/weblog/index.xml"> |
| <title>Aaron Swartz: The Weblog</title> |
| <link>http://www.aaronsw.com/weblog/</link> |
| <description>Aaron writes | | </description> |
| <language>en-us</language> |
| <dc:creator> |
| <rdf:Description> |
| <dc:title>Aaron Swartz</dc:title> |
| <foaf:aimNick rdf:resource="aim:addbuddy?screenname=jediofpi"/> |
| </rdf:Description> |
| </dc:creator> |
| | <items> |
| <rdf:Seq> |
| <rdf:li rdf:resource="http://www.aaronsw.com/weblog/000677"/> |
| <rdf:li rdf:resource="http://www.aaronsw.com/weblog/000676"/> |
| <rdf:li rdf:resource="http://www.aaronsw.com/weblog/000675"/> |
| </rdf:Seq> |
| </items> |
| </channel> |
| | <item rdf:about="http://www.aaronsw.com/weblog/000677"> |
| <title>Bernstein Reports</title> |
| <description>Here is the description</description> |
| <link>http://www.aaronsw.com/weblog/000677</link> |
| <dc:subject>Politics</dc:subject> |
| <dc:creator>Aaron Swartz</dc:creator> |
| <dc:date>2002-10-19T20:31:49-06:00</dc:date> |
| <content:encoded><![CDATA[<p>Here is the news item</p> ]]> |
| <content:encoded/> |
| </item> |
| </rdf:RDF> |
|
|
|
|
מלבד השימוש בתגים שב-RDF namespaces, גרסת RSS 1.0 תומכת גם בהכנסה של מודולים אופציונליים, המאפשרים מידע זמין נוסף. לעתים קרובות ניתן לראות גם את שני המודולים הבאים: Dublin Core (dc:) ו – Syndication (sy:). Dublin Core יוצר תגים נוספים בקובץ ה-RSS, לדוגמה, מתווסף התג creator המייצג את מחבר ההודעות. Syndication יוצר תגים נוספים הקשורים לוולידציה של ההזנות (לדוגמה updatePeriod). בעזרת האפשרויות השונות הללו (ראה [6]), מאפשר RSS 1.0 התאמה וגמישות רבה יותר מאשר גרסאות 0.9x.
|
|
|
|
פורמטים, פורמטים, פורמטים
|
|
|
|
למרות מגוון הגרסאות, הצליח ה-RSS בשנים האחרונות לבסס את מעמדו כפורמט לאספקת מידע. כיוון שהמוצרים הקיימים בשוק לרוב מצליחים להסתדר עם כל הגרסאות, משתמשי RSS לרוב אינם נתקלים בבעיות. יחד עם זאת, בהזנת תכנים צריך המשתמש לבחור באחד מהפורמטים או לספק RSS-ים שונים במספר פורמטים. ההזנה היא די פשוטה וקיימים גם פתרונות המאפשרים לייצר RSS מתוך נתונים קיימים. ניתן למשל להשתמש ב-[8] Apache project Cocoon לצורך כך. Cocoon מאפשר לייצר הזנות RSS מרכיבי מידע וקבצי Excel. כמו כן ה-Cocoon Portal מתאים לאספקת הזנות RSS מרובות, למשל על שרת מחלקתי. מלבד פתרונות מבוססי שרת קיימים גם מגוון מוצרי לקוח התומכים בהזנת RSS.
|
|
|
|
RSS - כיצד הגולש מפיק מזה תועלת?
|
|
|
|
הגלישה היומית ברשת בחיפוש אחר מידע מעניין יכולה להיות די מתסכלת בעת שמחפשים בהרבה אתרים שונים. כמה פעמים רצינו שיהיה לנו מקום מרכזי אחד שירכז את הכל ויציג לנו רק את המידע העדכני שמעניין אותנו? כאן בדיוק נכנסים RSS ומוצרי הלקוח לתמונה. אפליקציות כדוגמת [9] AmphetaDesk או [10] NetNewsWire Lite מצרפי- aggregators) RSS) מאפשרות קונפיגורציה של הזנות RSS. שם ניתן לבחור מתוך רשימה מוכנה מראש של מקורות מידע או להקליד את ה-URL (למשל http://radio.weblogs.com/0103021/rss.xml). לאחר מכן אפליקציות הלקוח מקבלות באופן קבוע את הנתונים (RSS feeds) וכך הגולשים מקבלים סקירה של התוכן המעניין אותם.
|
|
|
איור 2 - מצרף RSS הנקרא NetNewsWire Lite
|
|
|
|
קיימות מספר אפשרויות לחיפוש מקורות מידע של הזנות RSS. לרוב ניתן למצוא קישורים באתרים הרלוונטיים לגרסת RSS. מלבד הצעות בודדות קיימים גם "סוכנים" כמו Syndic8.com, meerkat.oreillynet.com או moreover.com. סוכנים אלה מאגדים את הנתונים מהמקורות השונים ומציעים הזנות RSS. השימוש הפרטי בסוכנים הוא לרוב חופשי ובחינם.
|
|
|
|
Weblog – המנוע החדש של RSS
|
|
|
|
דייב וינר תרם, ללא ספק, רבות להצלחת הבלוג עם מוצר הרדיו שלו. בהתחשב בהיסטוריה שלו, לא מפתיע שהוא קידם את RSS כפורמט לבלוג וכך מתאפשר לרדיו לפרסם בלוג כ-RSS ובו זמנית להכיל מצרף. הפופולריות הגדלה של הבלוגים גורמת לפיתוחים חדשים בעולם ה-RSS, עליהם בודאי עוד ידברו בעתיד.
|
|
|
|
שימוש מסחרי
|
|
|
|
עד כה דיברנו על חדשות ועל בלוגים כמקור למידע RSS אך הפורמט מתאים גם למידע מסוג נוסף – מידע מסחרי. בואו נחשוב רגע על אתר של סוכנות נסיעות כדוגמת הדקה ה-90 (מסווג ב-Channels שונים) בתור מקור המספק מידע. אם נניח שה-aggregators יהיו יותר ויותר פופולאריים, זה יכול מאוד להשתלם לתת הצעות כאלו באמצעות RSS. כך יוכל לדוגמה המשתמש להירשם ל-NetNewsWire Lite ולקבל את ההצעות כפי שהוא מקבל הודעות על חדשות מה-BBC. גם אספקת הפונקציונליות של RSS (פרסומים וצירופים) תגדל משמעותית בעתיד ככל הנראה וגם מוצרי groupware ו–office יותאמו לשימוש נוח.
|
|
|
|
פורמט עם עתיד
|
|
|
|
למרות הוויכוחים, בקהילת ה-RSS אין ספק לגבי העובדה שה-RSS יתקבל באופן כללי כפורמט. הצמיחה בשימוש המסחרי בנתונים בצירוף פיתוח היקף אפליקציות הקצה כפי הנראה יבטיחו את מקומו המנצח של RSS כפורמט אינפורמציה פשוט.
|
|
|
|
קישורים וספרות מקצועית
|
|
|
|
|
|
| |
|