Технология RSS (Resource Description Framework (RDF) Site Summary или просто Rich Site Summary) была разработана десять лет назад для публикации новостей и аналогичной информации.
Говоря простым языком, RSS - это формат, который описывает содержимое (контент, информацию) сайта, не затрагивая дизайн и структуру сайта. Прямой доступ к представленной на сайте информации - нет банннеров, нет скриптов, нет таблиц стилей и несовместимости браузеров - только структурированная по определенным правилам информация.
RSS — это диалект XML, поэтому любые RSS документы должны соответствовать стандарту XML 1.0, опубликованному на официальном сайте .
Язык HTML описывает внешний вид web-сайтов, их отдельных страниц, обеспечивая прежде всего визуализацию. Этот формат был разработан, в первую очередь, для решения задач отображения содержания на каждом конкретном ресурсе, поэтому не всегда удобен для автоматической обработки информации, в том числе и организации поиска. В результате вся Сеть Интернет оказалась ориентирована, прежде всего, на отдельные сайты и очень слабо приспособлена для автоматизированного обобщения информации, ее классификации и аналитической обработки.
Очень часто возникает необходимость обмена информацией, например, между несколькими сайтами, при этом всегда встает вопрос о технологии однотипного представления их содержания. Если такая технология не используется, то изменение HTML-оформления одного сайта приведет к необходимости одновременной модификации программного обеспечения на всех сайтах, которые принимают от него информацию. Приблизительно такая же ситуация возникает при необходимости импортировать информацию на один ресурс с нескольких других, предположим, тематически близких. Изменения оформления на каждом из сайтов-экспортеров информации будет каждый раз требовать модификации соответствующего программного кода на сайте-импортере.
Одним из первых проектов, призванных решить задачи унификации обмена данными между серверами Великой Сети, стал Semantic Web. В его основу была положена следующая идея организации данных в Интернете - cерверы должны уметь не только визуализировать информацию, но и использовать ее. Таким образом различные программы разных производителей могли эффективно работать с данными из Сети. Именно для проекта Semantic Web были разработаны спецификации XML, предусматривающие разделение содержания, представления и смыслового значения.
XML представляет собой метаязык, то есть язык, на базе которого можно определять новые языки. Он предназначен не только для создания программного обеспечения, служащего для организации обмена данными в Web, но и для распознавания семантики этих данных. В отличие от HTML, XML предназначен для представления информации в «чистом» виде, предполагая структурную, а не оформительскую разметку данных.
Вместе с тем XML сам по себе не может дать ничего того, что необходимо для инфраструктуры обработки данных. Формально теги XML оторваны от определения их смыслового наполнения. Параллельно с XML было начата разработка стандарта схемы описания источников (Resource Description Framework, или RDF). Спецификации RDF поддерживают теги, позволяющие определять любые понятия (например, теги PRICE и INVOICE можно использовать для обозначения типов данных, соответственно, «цена» и «счет»). В этом случае отпадает необходимость анализировать все остальное содержание wеb-страницы в поисках нужной информации. Данным в формате RDF присваиваются дескрипторы, которые могут определяться в отдельных файлах определения типов документов Document Type Definitions (DTD). В каждой отрасли имеется свой, постоянно расширяющийся список DTD. Находящиеся в Сети узлы метаданных RDF должны обеспечить значительно более высокое качество и скорость обмена информацией и поиска данных в Интернете.
На верхнем уровне RSS-документа находится элемент <rss>, который содержит обязательный атрибут version, который, в свою очередь, указывает на версию документа. Если документ соответствует данной спецификации, то атрибут version должен быть равен 2.0.
На уровень ниже от элемента <rss> находится единожды встречающийся элемент <channel>, который содержит информацию о канале (метаданные) и о его содержании.
Тэги элемента <channel>.
| Элемент | Описание | Пример |
|---|---|---|
| title | Название канала. Если у вас есть web-сайт, который содержит некоторую информации о канале, то имя канала, упомянутое на сайте, должно соответствовать имени, описанному в этом элементе. | TVYSoftware.com : Новости Рунета |
| link | URL web-сайта, соответствующего данному каналу | http://www.tvysoftware.com/ |
| description | Фраза или предложение, описывающее канал | Студия веб-дизайна TVYSoftware.com: вебдизайн, хостинг, раскрутка и оптимизация сайтов. |
| Элемент | Описание | Пример |
|---|---|---|
| language | Язык канала. Список допустимых значений, которые приводит Netscape, находятся тут. Также можно пользоваться определенными W3C обозначениями. | ru |
| copyright | Информация об авторских правах. | (c) TVYSoftware.com |
| managinEditor | E-mail адрес ответственного за содержание канала. | main@tvysoftware.com |
| webMaster | E-mail адрес ответственного за техническую составляющую работы канала. | webmaster@tvysoftware.com |
| pubDate | Дата публикации контента канала, по формату соответствующая RFC 822. | Thu, 15 Jul 2004 11:45:04 +0400 |
| lastBuildDate | Дата и время последнего изменения контента канала, по формату соответствующая RFC 822. | Thu, 15 Jul 2004 11:45:04 +0400 |
| category | Одна или несколько категории, к которым принадлежит канал. | Новости Рунета |
| generator | Строка, описывающая программу, которая использовалась для создания канала. | TVYRSSmaker v.0.2 |
| docs | URL спецификации RSS 2.0. | http://blogs.law.harvard.edu/tech/rss |
| cloud | Позволяет процессорам зарегистрироваться, используя cloud, и быть проинформированными об изменениях канала, используя легкий протокол публикации-подписки на RSS-фиды. | <cloud domain="rpc.sys.com" port="80" path="/RPC2" registerProcedure="pingMe" protocol="soap" /> |
| ttl | Устанавливает время жизни (time to live). Это число в минутах, которое показывает, насколько долго канал может быть кэширован без обновления из источника. | 60 |
| image | Определяет GIF, JPEG или PNG изображение, которое может быть ассоциировано с каналом. | |
| rating | PICS рейтинг канала. | |
| textInput | Определяет поле текстового ввода, которое может быть ассоциировано с каналом. | |
| skipHours | Подсказка процессорам, сообщающая, сколько часов они могут пропустить. | |
| skipDays | Подсказка процессорам, сообщающая, сколько дней они могут пропустить. |
<image>, вложенный элемент <channel>
<image> — это необязательный вложенный элемент <channel>, который содержит в себе три обязательных и три необязательных элемента.
<cloud>, вложенный элемент <channel>
<cloud> — это необязательный вложенный элемент <channel>, который определяет web-службу, поддерживающую интерфейс rssCloud. Данный интерфейс может быть реализован с помощью протоколов HTTP-POST, XML-RPC или SOAP 1.1.
Его роль заключается в том, чтобы дать возможность процессорам RSS быть оповещенными об изменениях, произошедших с каналом, используя легкий протокол публикации-подписки на RSS-фиды.
<cloud domain="rpc.sys.com" port="80" path="/RPC2" registerProcedure="myCloud.rssPleaseNotify" protocol="xml-rpc" />
В этом примере для запроса информации об изменениях канала нужно отправить XML-RPC сообщение на rpc.sys.com (порт 80), указав путь равным "/RPC2". Процедура, которую необходимо вызвать, называется myCloud.rssPleaseNotify. Полное описание интерфейса rssCloud находиться здесь.
<ttl>, вложенный элемент <channel>
<ttl> — это необязательный вложенный элемент
<ttl>60</ttl>
<textInput>, вложенный элемент <channel>
<textInput> — это необязательный вложенный элемент <channel>, который должен содержать 4 обязательных вложенных элемента:
Элементы <item>
<channel> может содержать любое количество элементов <item>. Эти элементы могут содержать в себе публикации целиком, или же анонсы со ссылками на полные варианты публикаций. Все вложенные элементы являются необязательными, однако хотя бы один элемент <title> или <description> должен присутствовать.
| Элемент | Описание | Пример |
|---|---|---|
| title | Заголовок. | Новая болезнь – аллергия на окна… у Майкрософт |
| link | URL на публикацию | http://www.tvysoftware.com/news/20040715114439 |
| description | Синопсис публикации (краткий обзор) или полный вариант публикации | Компания Майкрософт, известная не только своими софтверными разработками, но и многочисленными судебными исками, решила взяться за дело всерьез – судя по недавнему иску, и страница букваря со словом «Окна» предоставлена компанией Майкрософт. |
| author | E-mail адрес автора публикации | main@tvysoftware.com |
| category | Категория или категории публикации | Судебные процессы |
| comments | URL страницы отзывов и комментариев данной публикации | http://www.tvysoftware.com/news/20040715114439/comments |
| enclosure | Описание медиа объекта, который прикреплен к публикации | |
| guid | Строка, однозначно определяющая публикацию | http://www.tvysoftware.com/news/20040715114439 |
| pubDate | Дата и время публикации, по формату соответствующая RFC 822. | Thu, 15 Jul 2004 11:45:04 +0400 |
| source | RSS канал которому принадлежит публикация | Новости Рунета |
<source>, вложенный элемент <item>
<source> — это необязательный вложенный элемент <item>. Его значение — это имя RSS канала, которому принадлежит публикация. Он имеет один обязательный атрибут url, в котором указывается URL XML версии источника.
<source url="http://www.tvysoftware.com/rss/_runet.rss">Новости Рунета</source>
Роль данного элемента заключена в распространении информации об источнике публикации.
<enclosure>, вложенный элемент <item>
<enclosure> — это необязательный вложенный элемент <item>. Данный элемент имеет три обязательных атрибута. Url указывает URL вложения, length указывает длину в байтах, type указывает стандартный MIME тип вложения. Атрибут url должен быть HTTP URL.
<enclosure url="http://rssnet.info/music.mp3" length="12216320" type="audio/mpeg" />
<category>, вложенный элемент <item>
<category> — это необязательный вложенный элемент <item>. Этот элемент имеет единственный необязательный атрибут domain, который указывает на систематику классификации категории.
Значение элемента - это разделенная прямым слешем ("/") строка, которая описывает иерархическое положение в данной таксономии. Процессоры могут использовать эту информацию для устанавливания связей при интерпретировании категорий.
<category>Почетная Смерть</category>
<category domain="http://www.tvysoftware.com/news/">Байнет</category>
В элемент <item> можно включать любое количество элементов <category>, в том числе для разных доменов, а так же иметь различные пересечения в пределах одного домена.
<pubDate>, вложенный элемент <item>
<pubDate> — это необязательный вложенный элемент <item>. Значение этого элемента — это дата публикации, соответствующая стандарту RFC 822. Если дата указывает на будущее время, то процессоры могут не отображать элемент до тех пор, пока дата не станет текущей или прошедшей.
<pubDate>Sun, 19 May 2002 15:21:36 GMT</pubDate>
<guid>, вложенный элемент <item>
<guid> — это необязательный вложенный элемент <item>. Значение элемента <guid> — это строка, однозначно определяющая публикацию. Например, данное значение может использоваться процессорами для определения новизны публикации.
<guid>http://www.tvysoftware.com/news/20040715114439</guid>
Не существует каких-либо определенных правил формирования значения <guid>. Обеспечение уникальности этой строки — задача канала.
Если элемент <guid> имеет атрибут isPermaLink, который равен true, процессор интерпретирует элемент <guid> как URL на публикацию, которая может быть открыта в web-браузере.
<guid isPermaLink="true">http://www.tvysoftware.com/news/</guid>
<comments>, вложенный элемент <item>
<comments> — это необязательный вложенный элемент <item>. Данный параметр указывает URL страницы комментариев, ассоциированной с данной публикацией.
<comments>http://www.tvysoftware.com/news/20040715114439/comments</comments>
<author>, вложенный элемент <item>
<author> — это необязательный вложенный элемент <item>. Данный элемент указывает e-mail адрес автора публикации. Для газет и журналов, использующих RSS, автором является тот, кто написал публикацию, описанную в элементе <item>. Для общих блогов, авторы могут быть различными. Для личных блогов, имеет смысл пропускать данный элемент.
<author»main@tvysoftware.com (Vitaly Trakhtenberg)</author>
Комментарии.
RSS накладывает ограничение на использование первых непробельных символов в элементах <link> и <url>. Данные, содержащиеся в этих элементах, должны соответствовать стандарту URI IANA (http://, https://, news://, mailto: и ftp://). Предшествующие RSS 2.0 спецификации допускали использование только http:// и ftp:// схем, однако на практике другие URI схемы использовались авторами контента и каналов, а так же поддерживались процессорами. Стоит учитывать, что обработчики могут иметь ограничения на возможные URI схемы. Авторам не следует полагаться на полную поддержку URI схем со стороны процессоров RSS.
В спецификации RSS 0.91 длина данных элементов была ограниченна 500 или 100 символами. В элементе
В RSS 2.0 ставка сделана на связывание канала с его идентификатором в некотором катологе, широко используя систему категорий и иерархий. Например, для того, чтобы связать канал с идентификатором Syndic8, достаточно включить элемент <category> в качестве вложенного элемента <channel>, с атрибутом domain равным "Syndic8", и указать значение идентификатора для канала Syndic8 в базе данных.
<category domain="Syndic8">1765</category>
Часто задаваемый вопрос, как связаны значения элементов <guid> и <link>. Не одно и тоже ли это? Действительно, в некоторых системах управления контентом это так. В некоторых других системах <link> - это ссылка на первоисточник. Т.к. в некоторых системах
Если у вас имеются вопросы по формату RSS 2.0, задавайте их в списке рассылки RSS2-Support.
Расширение RSS.
RSS основан в 1999 году, и он должен был быть прозрачным для понимания форматом, со скоромными показаниями к применению. После того, как RSS превратился в популярный формат, разработчики стремятся расширить его, используя различные модули, определенные в различных пространствах имен (согласно спецификации W3C).
RSS позволяет расширять себя новыми возможностями. Для этого достаточно соблюдать простое правило. RSS канал может содержать элементы, отличные от описанных в данной спецификации, только в том случае, если эти элементы определены в пространстве имен.
Элементы, определенные в данной спецификации, сами не являются членами какого-либо пространства имен. Так что RSS 2.0 может оставаться совместимым с предыдущими версиями в таком смысле — версии 0.91 и 0.92 так же являются корректными с точки зрения RSS 2.0 спецификации. Если бы элементы RSS 2.0 были бы членами какого-либо пространства имен, то обратная совместимость была бы нарушена.
Заключение.
Несомненно, RSS — это отличный формат, он крайне популярен и широко распространен. Наличие устоявшейся концепции — это то, в чем RSS нуждался длительное время. Смысл данной работы — помочь формату стать неизменным, чтобы стимулировать рост среды, формирующейся вокруг RSS, а так же расчистить путь для появления инноваций в форматах обмена информацией. Поэтому спецификация заморожена на версии 2.0.1. Возможные версии 2.0.2, 2.0.3 и т.п. ожидаются только для пояснения, но никак не для добавления новых возможностей. Последующая работа должна происходить на уровне дополнительных модулей, которые используют пространства имен, и на уровне совершенно новых форматов обмена информации.
Лицензии и авторство.
Спецификация RSS 2.0 предложена Berkman Center for Internet & Society at Harvard Law School под лицензией Attribution/Share Alike Creative Commons license. Автором данного документа является Dave Winer, основатель UserLand Software и просто парень из Berkman Center.
Перевод выполнил Dmitry Bikman.
Оригинал текста: http://blogs.law.harvard.edu/tech/rss.
Примеры RSS документов: 0.91, 0.92, 2.0.
Для отправки письма воспользуйтесь адресом info@rssnet.info
Идея, разработка и поддержка студии веб-дизайна TVYSoftware.com |
© RSSnet.info - «Реклама. Информация. Сеть. RSS.», 2004-2007 |
|
|
|
Вход рекламодателя
1 октября 2005г. - ищем ведущих RSS-колонок, приглашаем к сотрудничеству!
26 августа 2004г. - открыта колонка «Валютный информер»
16 июля 2004г. - на сайте опубликован русский перевод «Спецификация RSS2.0»
22 марта 2004г. - начало эры RSS в Байнете.