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">
<p>Geraldine posted a Photo on PhotoPanic</p>
<img src="/geraldine/photos/4352.jpg">
</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/