среда, 15 октября 2008 г.

[Онтологии] Trackback

trackbackЭто вольный перевод наброска спецификации онтологии TrackBack. Начнём:

Авторы:

Justin Klubnik (justin AT madskills DOT com), justin.madskills.com
Benjamin and Mena Trott (trackback AT movabletype DOT com), movabletype.org

Версия:

Current Version: 1.0 (Draft)

Права:

Разрешено использование, копирование, модифицирование и распространение Спецификации Модуля RSS 1.0/2.0 TrackBack,а также её сопроводительной документации для любых целей, при условии, что уведомление об авторских правах и этот пункт будет присутствовать во всех копиях. Владельцыавторских прав не гарантируют пригодность спецификации для каких-либо целей. Она предоставляется “как есть” без выраженных или подразумеваемых гарантий.

Данный копирайт относится к авторским правам на Модуль RSS 1.0/2.0 TrackBack и к его сопроводительной документации, и не распространяется на формат самого RSS Модуля.

Описание:

Модуль построен на TrackBack-системе, разработанной в рамках движка MovableType. TrackBack - это P2P фреймворк, разработанный для коммуникации между сайтами. Сайты, поддерживающие данную технологию, общаются при помощи пингов. Пинг сообщает сайту, что на пингующем сайте появилась ссылка на пост (либо на категорию) с целевого сайта.

Пинги посылаются на TrackBack-URL’ы. TrackBack-URL’ы - это уникальные URL’ы, ассоциированные с постом (категорией), которые умеют принимать пинги. Производится запрос (HTTP GET) к соответствующей URL, которая в общем виде выглядит следующим образом:

http://foo.com/mt/mt-tb.cgi?tb_id=ID

Тут ID - это ID того, к чему мы посылаем ТрекБек (пост, категория).

Определение пространства имён:

xmlns:trackback=”http://madskills.com/public/xml/rss/module/trackback/

Синтаксис:

Модели данных у RSS 1.0 (RDF Site Summary) и у RSS 2.0 (Really Simple Syndication) разные. Потому синтаксис модуля будет отличаться в каждом из них. Значения же различных элементов остаётся, в основном, тем же.

trackback:ping

trackback:ping - является суб-элементом элемента item, и содержит TrackBack URL item‘a. Вот пример реализации для RSS 1.0:

<item rdf:about="http://blog.folone.org.ua/MOCK=155/“>   	<title>[Онтологии] Trackback</title>   	<link>http://blog.folone.org.ua/MOCK=155/</link>   	<description>Жорик решил рассказать об и так всем уже известном механизме трекбека</description>   	<trackback:ping rdf:resource=”http://blog.folone.org.ua/MOCK=155/trackback”/>  </item>

И для RSS 2.0:

<item>   	<title>[Онтологии] Trackback</title>   	<link>http://blog.folone.org.ua/MOCK=155/</link>   	<description>Жорик решил рассказать об и так всем уже известном механизме трекбека</description>   	<trackback:ping>http://blog.folone.org.ua/MOCK=155/trackback</trackback:ping>  </item>

Вкратце, эти RSS itemы теперь говорят: “Пингуйте, будьте добры, сюда: http://blog.folone.org.ua/MOCK=155/trackback.”

trackback:about

trackback:about - суб-элемент item‘а, содержит TrackBack URL, который пингуется как ссылка к данному item‘у. Каждый item может содержать ноль и больше инстанций trackback:about.

Для RSS 1.0 это выглядит так:

<item rdf:about="http://bar.com/weblog/rss_plus_trackback.html">   	<title>[Онтологии] Trackback</title>   	<link>http://blog.folone.org.ua/MOCK=155/</link>   	<description>Жорик решил рассказать об и так всем уже известном механизме трекбека</description>   	<trackback:ping rdf:resource=”http://blog.folone.org.ua/MOCK=155/trackback“/>   	<trackback:about rdf:resource=”http://blog.folone.org.ua/MOCK=154/trackback“/>  </item>

Для RSS 2.0 - так:

<item>   	<title>[Онтологии] Trackback</title>   	<link>http://blog.folone.org.ua/MOCK=155/</link>   	<description>Жорик решил рассказать об и так всем уже известном механизме трекбека</description>   	<trackback:ping>http://blog.folone.org.ua/MOCK=155/trackback</trackback:ping>   	<trackback:about>http://blog.folone.org.ua/MOCK=154/trackback</trackback:about>  </item>

Вкратце, эти item‘ы теперь говорят: “Пингуйте, будьте добры, сюда: http://blog.folone.org.ua/MOCK=155/trackback. А сам я пингану http://blog.folone.org.ua/MOCK=154/trackback, ибо мой материал каким-то образом схож, либо ссылается на пост (категорию), ассоциированную с данной ссылкой.”

Это всё нужно чтобы:

Пользователю не приходилось искать ТрекБек-ссылку к посту, на который он хочет сослаться. А также чтобы оторвать механизм реализации трекбеков от конкретного движка.