ActivityStreams - формат представления социальной активности пользователя

Помимо материалов, публикуемых пользователем в сети, еще одним ресурсом является его сетевая активность. Она включает в себя следующие действия: изменение статуса, создание заметки, публикация фотографии или альбома, отметка понравившихся материалов других пользователей и т. д. Данная активность собранная с различных аккаунтов позволяет быть в курсе действий пользователя. Чтобы формализовать эту активность был создан формат ActivityStreams [1].

Участие в разработке спецификации ActivityStreams принимали участие представители известных компаний. На следующем снимке представлена одна из рабочих встреч, посвященная обсуждению этого формата [2]:

Данный формат основывается на следующих составных частях: автор (actor), действие (verb), объект (object) и цель (target).

Примеры активности, представлены ниже:

Сетевая активность
actor | verb | object | target
Person shared link target Person started following Person target Иван Васильевич меняет профессию царские палаты Вася разместил фотографию picasaweb
Форматы представления сетевой активности могут быть следующие: JSON и Atom. В случае Atom возможна интеграция в уже существующий feed.
Вот простой пример записи в формате JSON, взятый из спецификации [3] :
{ "published": "2011-02-10T15:04:55Z", "actor": { "url": "http://example.org/martin", "objectType" : "person", "id": "tag:example.org,2011:martin", "image": { "url": "http://example.org/martin/image", "width": 250, "height": 250 }, "displayName": "Martin Smith" }, "verb": "post", "object" : { "url": "http://example.org/blog/2011/02/entry", "id": "tag:example.org,2011:abc123/xyz" }, "target" : { "url": "http://example.org/blog/", "objectType": "blog", "id": "tag:example.org,2011:abc123", "displayName": "Martin's Blog" } }

В следующем примере демонстрируется интеграция в формат Atom:

<entry xmlns="http://www.w3.org/2005/Atom" xmlns:activity="http://activitystrea.ms/spec/1.0/">
  <id>tag:photopanic.example.com,2009:activity/4859/4352</id>
  <title>Geraldine posted a Photo on PhotoPanic</title>
  <published>2009-11-02T15:29:00Z</published>
  <link rel="alternate" type="text/html" href="http://example.com/geraldine/activities/4352" />
  <activity:verb>post</activity:verb>
  <activity:object>
    <id>tag:photopanic.example.com,2009:photo/4352</id>
    <title>My Cat</title>
    <published>2009-11-02T15:29:00Z</published>
    <link rel="alternate" type="text/html" href="http://example.com/geraldine/photos/4352" />
    <activity:object-type>photo</activity:object-type>
  </activity:object>
  <content type="html">
    &lt;p&gt;Geraldine posted a Photo on PhotoPanic&lt;/p&gt;
    &lt;img src="/geraldine/photos/4352.jpg"&gt;
  </content>
 </entry>

Определение пространства имен для формата ActivityStreams производится следующей строкой:

<entry xmlns:activity="http://activitystrea.ms/spec/1.0/" >

Формат AcvtivityStreams используется в распределенных социальных сетях, как формат передачи пользовательских событий. Так в протоколе Salmon, при создании пользователем комментария к статье на каком-либо ресурсе, производится идентификация автора и последующий импорт текста комментария или сообщения. Таким образом формат ActivityStreams вполне можно сопоставить с системой событий в операционной системе. Только вместо операционной системы - глобальная сеть Internet.

[1] Формат представления сетевой активности ActivityStreams. http://activitystrea.ms/

[2] Встреча в офисе Six Apart, посвященная формату ActivityStreams. http://www.readwriteweb.com/archives/google_facebook_myspace_activitystreams.php

[3] Спецификация JSON Activity Streams 1.0. http://activitystrea.ms/specs/json/1.0/

All Articles