Перед тем, как переходить к рассмотрению самого сервиса, следует пояснить, что такое блогосфера.
Термин "блогосфера" можно часто услышать от журналистов, а также от увлекающихся компьютерами людей. Под ним понимается конкретный сегмент Web, на страницах которого их авторы (блоггеры) излагают свои идеи, размышления, увлечения и помещают ссылки на другие ресурсы. Базовый термин "блог" является ничем иным, как сокращением от "Web log" (online-дневник).
В настоящее время существуют ряд сервисов, позволяющие вести блоги даже людям, не обладающими специальными техническими навыками. Например, WordPress предоставляет обычным пользователям, не занимающимися разработкой программного обеспечения, такие средства, как визуальные компоненты, темы и шаблоны, для создания достаточно сложных блогов. Благодаря подобным сервисам число блогов и их авторов растет с огромной скоростью. По данным blogherald.com в прошлом году во всем мире насчитывалось почти 200 миллионов блогов. На сегодняшний день, блогосфера является основным источником новостей о событиях, происходящих во множестве стран.
Поскольку блогосфера содержит такой колоссальный объем уникальной информации, невольно напрашивается вопрос: где и каким образом она классифицируется, помечается тегами и обрабатывается в процессе поиска?
Ответ на этот вопрос дает сервис Technorati: "Technorati собирает, классифицирует и делает доступным содержание публичного общения в Интернет". По сути, данный сервис представляет собой Google для поиска в блогосфере. Журнал Time охарактеризовал его следующим образом: "если Google является справочником для Web, то Technorati постепенно становится его кофейней" (ссылки на пресс-релиз Technorati и статью в Time приведены в разделе Ресурсы).
Сервис Technorati находится по адресу http://technorati.com. В верхней части главной страницы вы увидите приятную зеленую строку поиска с надписью "Search the blogosphere..." (поиск в блогосфере). Введите в ней "Obama" и нажмите на увеличительное стекло справа. В результате вы получите список избранных статей в блогах, в которых упоминается президент США.
Web-сайт Technorati предоставляет широкие возможности для поиска статей в блогосфере. Однако, как Web-разработчику, вам может потребоваться автоматизировать данный процесс поиска, например, добавить функции на вашу Web-страницу, позволяющие ее посетителям просматривать информацию, найденную в блогосфере на основе их собственных критериев поиска.
Эти возможности можно реализовать при помощи программного интерфейса Technorati. Подобно многим другим API в Web, он следует принципам архитектуры REST.
Аббревиатуры REST означает "передача репрезентативного состояния" (Representational State Transfer). Подробное рассмотрение всех аспектов данной архитектуры выходит далеко за рамки этой статьи, однако его можно найти в других публикациях на сайте IBM developerWorks (см. Ресурсы). Для понимания материала, приведенного ниже, достаточно знать, что REST предоставляет средства для доступа к информации и ресурсам при помощи простых запросов по протоколу HTTP.
Работу по принципам REST можно представить себе следующим образом: для получения некоторого информационного объекта предметной области достаточно просто отправить запрос по нужному URL. В рамках данной статьи этого достаточно. Кроме того, REST можно рассматривать в качестве упрощенного Web-сервиса, но будьте осторожны: подобная точка зрения может вызвать жаркие дебаты в определенном кругу людей.
Возвращаясь к теме данной статьи, API Technorati – это не что иное, как сервис-REST, позволяющий пользователям обращаться по специальным URL, указывая в них критерии поиска, и получать в ответ набор статей из блогосферы, удовлетворяющих этим критериям. Как разработчик, вы также можете воспользоваться этой возможностью, динамически преобразовывая запросы от пользователей вашего Web-приложения в запросы к блогосфере, в URL которых представлены все критерии поиска в понятном для API формате.
Рассмотрим пример, приведенный в листинге 1:
Листинг 1. Пример простого поискового запроса
http://api.technorati.com/search?key=xxxx&query=Obama
|
Как видите, это достаточно простой URL, включающий только два параметра.
Следует отметить, что целевая функция API Technorati указывается после последней косой черты (в данном случае это search). Таким образом, при обработке этого запроса REST будет выполнен поиск в блогосфере.
Первым параметром запроса является ключ, являющийся уникальным для каждого пользователя (разумеется, реальный ключ отличается от строки xxxx). Для получения собственного ключа необходимо зарегистрироваться в сервисе Technorati, но, к счастью, это достаточно просто и бесплатно. С другой стороны, это означает, что вы не сможете просто скопировать данный URL в адресную строку браузера и увидеть результаты поиска. Перед этим необходимо запросить собственный ключ и подставить его вместо xxxx.
Второй параметр представляет собой критерий поиска. Как и ранее, поиск осуществляется по ключевому слову Obama.
Заменив строку xxxx на значение собственного ключа, можно обратиться по данному URL в браузере и получить результаты поиска. При этом внешний вид страницы зависит от вашего браузера и его версии. Как бы она не выглядела, лучше всего вызвать правой кнопкой мыши контекстное меню и выбрать пункт View Source (код страницы). В результате вы увидите документ XML, возвращенный сервисом.
Разумеется, результаты поиска могут меняться со временем, но структура документа должна выглядеть как в листинге 2.
Листинг 2. Фрагмент результатов простого поискового запроса
<?xml version="1.0" encoding="utf-8"?>
<!-- generator="Technorati API version 1.0 /search" -->
<!DOCTYPE tapi PUBLIC "-//Technorati, Inc.//DTD TAPI 0.02//EN"
"http://api.technorati.com/dtd/tapi-002.xml">
<tapi version="1.0">
<document>
<result>
<query>Obama</query>
<querycount>2270581</querycount>
<rankingstart></rankingstart>
</result>
<item>
<weblog>
<name>Critica Pura</name>
<url>http://criticapura.com</url>
<rssurl>http://criticapura.com/feed/</rssurl>
<atomurl></atomurl>
<inboundblogs>7</inboundblogs>
<inboundlinks>10</inboundlinks>
<lastupdate>2009-06-21 17:13:23 GMT</lastupdate>
</weblog>
<title>Jib Jab Obama</title>
<excerpt>Try JibJab Sendables</excerpt>
<created>2009-06-21 17:13:23 GMT</created>
<permalink>http://criticapura.com/2009/06/jib-jab-obama/</permalink>
</item>
...
|
Кстати говоря, на момент написания этой статьи первой строкой в результатах данного запроса фигурировала статья на иностранном (т. е. не английском) языке.
Элемент result содержит метаданные, описывающие результаты запроса, query – критерии поиска, а querycount – число статей в блогосфере, которые удовлетворяют этим критериям.
Сразу после result следуют элементы item, каждый из которых соответствует статье в блоге, выбранной в результате поиска.
Наконец, элемент weblog содержит информацию, которая относится ко всему блогу в целом, а не только к конкретной выбранной статье. Его дочерние элементы описаны в таблице 1.
Таблица 1. Дочерние элементы
weblog| Элемент | Описание |
|---|---|
name
| Название блога |
url
| URL блога |
rssurl
| URL ленты RSS (Really Simple Syndication) для данного блога |
atomurl
| URL ленты Atom для данного блога |
inboundblogs
| Число блогов, ссылающихся на данный |
inboundlinks
| Общее число сайтов, ссылающихся на данный блог |
lastupdate
| Дата и время последнего обновления блога |
В таблице 2 описаны элементы, дочерние по отношению к item, которые содержат информацию, относящуюся к конкретной записи в блоге.
Таблица 2. Дочерние элементы
item| Элемент | Описание |
|---|---|
title
| Заголовок статьи |
excerpt
| Краткое изложение статьи |
created
| Дата и время написания статьи |
permalink
| URL статьи |
Основные функции API Technorati
В дополнение к мощной операции поиска, API сервиса предоставляет и другие функции, которые могут оказаться полезными в вашем приложении.
Одной из таких функций является cosmos, название которой мало что говорит о ее назначении. Она служит для поиска блогов, которые содержат ссылки на ресурс с указанным URL. Например, допустим, что вам требуется найти все блоги, которые ссылаются на статью в другом блоге по адресу http://nicole-rensmann.bookola.de/blog. Для этого достаточно выполнить следующий запрос REST: http://api.technorati.com/cosmos?key=xxxx&url=http://nicole-rensmann.bookola.de/blog. Выполнив этот запрос в браузере (предварительно подставив ваш ключ Technorati), вы получите результаты, аналогичные показанным в листинге 3.
Листинг 3. Фрагмент результатов, возвращенных функцией
cosmos
<?xml version="1.0" encoding="utf-8"?>
<!-- generator="Technorati API version 1.0" -->
<!DOCTYPE tapi PUBLIC "-//Technorati, Inc.//DTD TAPI 0.02//EN"
"http://api.technorati.com/dtd/tapi-002.xml">
<tapi version="1.0">
<document>
<result>
<url>http://nicole-rensmann.bookola.de/blog</url>
<weblog>
<name>Nicole Rensmanns kleine Welt</name>
<url>http://nicole-rensmann.bookola.de/blog</url>
<rssurl>http://nicole-rensmann.bookola.de/blog/?feed=rss2</rssurl>
<atomurl>http://nicole-rensmann.bookola.de/blog/?feed=atom</atomurl>
<inboundblogs>6</inboundblogs>
<inboundlinks>6</inboundlinks>
<lastupdate>2009-06-21 17:10:52 GMT</lastupdate>
<rank>575630</rank>
</weblog>
<inboundlinks>7</inboundlinks>
<rankingstart>1</rankingstart>
</result>
<item>
<weblog>
<name>Das Datenschutz-Blog</name>
<url>http://www.datenschutzbeauftragter-online.de</url>
<rssurl>http://www.datenschutzbeauftragter-online.de/feed/</rssurl>
<atomurl>http://www.datenschutzbeauftragter-online.de/feed/atom/</atomurl>
<inboundblogs>83</inboundblogs>
<inboundlinks>343</inboundlinks>
<lastupdate>2009-06-20 07:22:20 GMT</lastupdate>
</weblog>
<nearestpermalink>http://www.datenschutzbeauftragter-online.de</nearestpermalink>
<title>Uberblick zum Thema Netzsperren</title>
<excerpt>der Ursula von der Leyen Sachliche Debatte uber das Thema</excerpt>
<linkcreated>2009-05-11 04:20:01 GMT</linkcreated>
<linkurl>http://nicole-rensmann.bookola.de/blog/?p=3293</linkurl>
</item>
...
|
Формат полученного документа выглядит очень похоже на ранее показанный в листинге 2, однако имеет ряд важных отличий. В частности, в данном случае элемент weblog содержит информацию о блоге, на который ссылаются статьи из других блогов. Обратите внимание на дочерний элемент url, который в точности соответствует параметру url.
Как и ранее, в результатах присутствуют несколько элементов item. Каждый из них содержит информацию о блоге, ссылающемся на базовый блог.
Функция tag позволяет осуществлять поиск статей в блогах, отмеченных специальным тегом. Technorati использует теги для классификации статей. Авторы могут помечать свои записи в блогах одним или несколькими тегами, таким образом, указывая на их принадлежность определенном тематике.
Например, для поиска статей о рыбалке (fishing) можно использовать следующий запрос: http://api.technorati.com/tag?key=xxxx&tag=fishing. Как и ранее, вам необходимо подставить в URL значение вашего ключа Technorati. При выполнении этого запроса в браузере, результаты должны выглядеть аналогично показанным в листинге 4.
Листинг 4. Фрагмент результатов, возвращенных функцией
tag
<?xml version="1.0" encoding="utf-8"?>
<!-- generator="Technorati API version 1.0" -->
<!DOCTYPE tapi PUBLIC "-//Technorati, Inc.//DTD TAPI 0.02//EN"
"http://api.technorati.com/dtd/tapi-002.xml">
<tapi version="1.0">
<document>
<result>
<query>fishing</query>
<postsmatched>43655</postsmatched>
<blogsmatched></blogsmatched>
<start>1</start>
<limit>20</limit>
<querytime>3.126</querytime>
</result>
<item>
<weblog>
<name>Travel and Leisure Articles</name>
<url>http://www.toptravelarticles.com</url>
<rssurl>http://www.toptravelarticles.com/feed</rssurl>
<atomurl>http://www.toptravelarticles.com/feed/atom</atomurl>
<inboundlinks>40</inboundlinks>
<inboundblogs>19</inboundblogs>
<lastupdate>2009-06-21 17:06:01</lastupdate>
<hasphoto></hasphoto>
</weblog>
<title>Visiting Ghana?</title>
<excerpt>If you want to experience the culture up close</excerpt>
<created>2009-06-21 17:06:01</created>
<postupdate>2009-06-21 17:06:01</postupdate>
<permalink>http://www.toptravelarticles.com/visiting-ghana.html</permalink>
</item>
...
|
Как видите, результаты очень напоминают те, которые были получены выше с использованием других функций, за исключением того, что в данном случае выбранные статьи отмечены тегом fishing.
Особый интерес представляет функция toptags, которая служит для получения списка наиболее часто используемых тегов. Например, выполните в браузере следующий запрос, подставив в него ваш ключ: http://api.technorati.com/toptags?key=xxxx. В результате вы должны получить документ, схожий с показанным в листинге 5.
Листинг 5. Фрагмент результатов, возвращенных функцией
toptags
<?xml version="1.0" encoding="utf-8"?>
<!-- generator="Technorati API version 1.0 /topptags" -->
<!DOCTYPE tapi PUBLIC "-//Technorati, Inc.//DTD TAPI 0.02//EN"
"http://api.technorati.com/dtd/tapi-002.xml">
<tapi version="1.0">
<document>
<result>
<limit>20</limit>
</result>
<item>
<tag>Weblog</tag>
<posts>9578863</posts>
</item>
<item>
<tag>Life</tag>
<posts>7355121</posts>
</item>
<item>
<tag>News</tag>
<posts>4638644</posts>
</item>
...
|
Как видите, полученные результаты интерпретируются без всяких проблем: для каждого тега указывается его имя и то, сколько раз он использовался для пометки статей в блогах.
Technorati представляет собой Web-сайт, через который можно получить информацию о статьях, содержащихся в блогосфере. Он позволяет находить записи в блогах, удовлетворяющие указанным критериям поиска.
Кроме того, следуя негласным законам нашего времени, Technorati предоставляет API, позволяющий программно искать статьи в соответствии с заданными параметрами поиска. Работа с данным API осуществляется по принципам REST.
Использование API Technorati позволяет разработчикам Web-приложений автоматизировать процесс поиска в блогах. В частности, это позволяет добавить в Web-приложения функции, через которые пользователи смогут находить статьи, удовлетворяющие их собственным интересам.
Научиться
- Оригинал статьи: "Using the Technorati API". (EN)
- Прочитайте статью "Основы Web-сервисов REST" (Алекс Родригес, developerWorks, ноябрь 2008 г.), в которой содержится хороший обзор базовых принципов архитектуры REST. (EN)
- Обратите внимание на блог "Теги Technorati", в котором с практической точки зрения рассматриваются теги Technorati, в том числе их использование в статьях в вашем собственном блоге. (EN)
- Прочитайте статью "Кто-нибудь еще ведет счет блогам в Интернете?" (Энн Эльмонд, the Blog Herald, ноябрь 2008 г.), в которой приводятся данные о числе блогов в Интернете. (EN)
- Узнайте больше о Technorati – первом сервисе поиска в блогах, и его возможностях на сайте Technorati Media. (EN)
- Прочитайте статью "Луч света для поиска в блогосфере" (Джереми Каплан, Time, декабрь 2006 г.), сравнивающую Technorati с кофейней для Web, в которой вы можете узнать, кто, что и где сказал. (EN)
-
Сертификация по XML корпорации IBM: узнайте, как стать сертифицированным разработчиком IBM в области XML и связанных с ним технологий. (EN)
- В технической библиотеке XML содержится множество статей, советов, руководств, стандартов и справочников IBM Redbooks. (EN)
-
Технические мероприятия и Web-трансляции developerWorks: в этих разделах можно получить самую актуальную информацию о современных технологиях. (EN)
- Слушайте интервью и обсуждения вопросов, интересующих разработчиков программного обеспечения, в трансляциях developerWorks. (EN)
Получить продукты и технологии
- Загрузите ознакомительные версии продуктов IBM, а также опробуйте средства разработки приложений и промежуточное программное обеспечение IBM, в частности DB2®, Lotus®, Rational®, Tivoli® и WebSphere® на сайте online-тестирования IBM SOA Sandbox. (EN)
Обсудить
- Примите участие в обсуждении материала на форуме.
- Читайте блоги developerWorks и становитесь членами нашего сообщества. (EN)
