TOC |
|
This document presents a base set of Object types and Verbs for use with Activity Streams.
The key words "MUST", "MUST NOT", "REQUIRED", "SHALL", "SHALL NOT", "SHOULD", "SHOULD NOT", "RECOMMENDED", "MAY", and "OPTIONAL" in this document are to be interpreted as described in RFC 2119 (, “RFC 2119,” .) [RFC2119].
This document is an Internet-Draft and is NOT offered in accordance with Section 10 of RFC 2026, and the author does not provide the IETF with any rights other than to publish as an Internet-Draft.
Internet-Drafts are working documents of the Internet Engineering Task Force (IETF). Note that other groups may also distribute working documents as Internet-Drafts. The list of current Internet-Drafts is at http://datatracker.ietf.org/drafts/current/.
Internet-Drafts are draft documents valid for a maximum of six months and may be updated, replaced, or obsoleted by other documents at any time. It is inappropriate to use Internet-Drafts as reference material or to cite them other than as “work in progress.”
This Internet-Draft will expire on November 28, 2011.
1.
Introduction
2.
Notational Conventions
3.
Verbs
4.
Object Types
4.1.
Article
4.2.
Audio
4.3.
Badge
4.4.
Bookmark
4.5.
Collection
4.6.
Comment
4.7.
Event
4.8.
File
4.9.
Group
4.10.
Image
4.11.
Note
4.12.
Person
4.13.
Place
4.14.
Product
4.15.
Question
4.16.
Review
4.17.
Service
4.18.
Video
5.
Base Extension Properties
5.1.
Location
5.2.
Mood
5.3.
Rating
5.4.
Source
5.5.
Tags
6.
Normative References
Appendix A.
Acknowledgements
§
Authors' Addresses
TOC |
This document presents a base set of object types and verbs for use with Activity Streams.
TOC |
This specification allows the use of IRIs [RFC3987]. Every URI [RFC3986] is also an IRI, so a URI MAY be used wherever an IRI is named. When an IRI that is not also a URI is given for dereferencing, it MUST be mapped to a URI using the steps in Section 3.1 of [RFC3987]. When an IRI is serving as an identifier, it MUST NOT be so mapped.
TOC |
Verb | Description |
---|---|
add | Indicates that the actor has added the object to the target. For instance, adding a photo to an album. |
cancel | Indicates that the actor has canceled the object. For instance, canceling a calendar event. |
checkin | Indicates that the actor has checked-in to the object. For instance, a person checking-in to a Place. |
delete | Indicates that the actor has deleted the object. This implies, but does not require, the permanent destruction of the object. |
favorite | Indicates that the actor marked the object as an item of special interest. |
follow | Indicates that the actor began following the activity of the object. In most cases, the object will be a Person (Person), but it can potentially be of any type that can sensibly generate activity. Processors MAY ignore (silently drop) successive identical "follow" activities. |
give | Indicates that the actor is giving an object to the target. Examples include one person giving a badge object to another person. The object identifies the object being given. The target identifies the receiver. |
ignore | Indicates that the actor has ignored the object. For instance, this verb may be used when an actor has ignored a friend request, in which case the object may be the request-friend activity. |
invite | Indicates that the actor has invited the object, typically a person object, to join or participate in the object described by the target. The target could, for instance, be an event, group or a service. |
join | Indicates that the actor has become a member of the object. This specification only defines the meaning of this verb when its object is a group (Group), though implementors SHOULD be prepared to handle other Object types as meaning MAY be provided by extension specifications. Processors MAY ignore (silently drop) successive identical "join" activities. |
leave | Indicates that the actor has left the object. For instance, a Person leaving a Group or checking-out of a Place. |
like | Indicates that the actor marked the object as an item of special interest. The "like" verb is considered to be an alias of "favorite". The two verb are semantically identical. |
make-friend | Indicates the creation of a friendship that is reciprocated by the object. Since this verb implies an activity on the part of its object, processors MUST NOT accept activities with this verb unless they are able to verify through some external means that there is in fact a reciprocated connection. For example, a processor may have received a guarantee from a particular publisher that the publisher will only use this Verb in cases where a reciprocal relationship exists. |
play | Indicates that the actor spent some time enjoying the object. For example, if the object is a video this indicates that the subject watched all or part of the video. |
receive | Indicates that the actor is receiving an object. Examples include a person receiving a badge object. The object identifies the object being received. |
remove | Indicates that the actor has removed the object from the target. |
remove-friend | Indicates that the actor has removed the object from the collection of friends. |
request-friend | Indicates the creation of a friendship that has not yet been reciprocated by the object. |
rsvp-maybe | The "possible RSVP" verb indicates that the actor has made a possible RSVP for the object. This specification only defines the meaning of this verb when its object is an event (see Section 4.7 (Event)), though implementors SHOULD be prepared to handle other object types as meaning MAY be provided by extension specifications. The use of this verb is only appropriate when the RSVP was created by an explicit action by the actor. It is not appropriate to use this verb when a user has been added as an attendee by an event organiser or administrator. |
rsvp-no | The "negative RSVP" verb indicates that the actor has made a negative RSVP for the object. This specification only defines the meaning of this verb when its object is an event (see Section 4.7 (Event)), though implementors SHOULD be prepared to handle other object types as meaning MAY be provided by extension specifications. The use of this verb is only appropriate when the RSVP was created by an explicit action by the actor. It is not appropriate to use this verb when a user has been added as an attendee by an event organiser or administrator. |
rsvp-yes | The "positive RSVP" verb indicates that the actor has made a positive RSVP for an object. This specification only defines the meaning of this verb when its object is an event (see Section 4.7 (Event)), though implementors SHOULD be prepared to handle other object types as meaning MAY be provided by extension specifications. The use of this verb is only appropriate when the RSVP was created by an explicit action by the actor. It is not appropriate to use this verb when a user has been added as an attendee by an event organiser or administrator. |
save | Indicates that the actor has called out the object as being of interest primarily to him- or herself. Though this action MAY be shared publicly, the implication is that the object has been saved primarily for the actor's own benefit rather than to show it to others as would be indicated by the "share" verb. |
share | Indicates that the actor has called out the object to readers. In most cases, the actor did not create the object being shared, but is instead drawing attention to it. |
stop-following | Indicates that the actor has stopped following the object. |
tag | Indicates that the actor has identified the presence of a target inside another object. For example, the actor may have specified that a particular user appears in a photo. The target of the "tag" verb gives the object in which the tag has been added. For example, if a user appears in a photo, the object is the user and the target is the photo. |
unfavorite | Indicates that the actor has removed the object from the collection of favorited items. |
unlike | Indicates that the actor has removed the object from the collection of liked items. |
unsave | Indicates that the actor has removed the object from the collection of saved items. |
update | The "update" verb indicates that the actor has modified the object. Implementors SHOULD use verbs such as post where the actor is adding new items to a collection (Collection) or similar. Update is reserved for modifications to existing objects or data such as changing a user's profile information. |
TOC |
TOC |
The "article" object type indicates that the object is an article, such as a news article, a knowledge base entry, or other similar construct. Such objects generally consist of paragraphs of text, in some cases incorporating embedded media such as photos and inline hyperlinks to other resources.
At a minimum, an article object has the following properties:
Property | Value | Description |
---|---|---|
author | Activity Object | Activity Object, typically using the "person" object type, responsible for the creation of the article. If the article object appears within an activity, and the author of the article is the actor for the activity, the author property MAY be omitted |
content | JSON (Crockford, D., “The application/json Media Type for JavaScript Object Notation (JSON),” July 2006.) [RFC4627] String | The optional main body content represented as a fragment of HTML. |
displayName | JSON (Crockford, D., “The application/json Media Type for JavaScript Object Notation (JSON),” July 2006.) [RFC4627] String | The natural-language, human-readable and plain-text title of the article.HTML markup MUST NOT be included |
id | JSON (Crockford, D., “The application/json Media Type for JavaScript Object Notation (JSON),” July 2006.) [RFC4627] String | The unique identifier for the article. |
published | JSON (Crockford, D., “The application/json Media Type for JavaScript Object Notation (JSON),” July 2006.) [RFC4627] String | The optional time the article was created in the form of an [RFC3339] (Klyne, G., “Date and Time on the Internet: Timestamps,” July 2002.) "date-time". |
summary | JSON (Crockford, D., “The application/json Media Type for JavaScript Object Notation (JSON),” July 2006.) [RFC4627] String | Optional short, natural-language, human-readable snippet or summary of the article represented as a fragment of HTML. |
updated | JSON (Crockford, D., “The application/json Media Type for JavaScript Object Notation (JSON),” July 2006.) [RFC4627] String | The optional time the article was last updated in the form of an [RFC3339] (Klyne, G., “Date and Time on the Internet: Timestamps,” July 2002.) "date-time". |
url | JSON (Crockford, D., “The application/json Media Type for JavaScript Object Notation (JSON),” July 2006.) [RFC4627] String | The permanent IRI of the article's HTML representation. |
TOC |
The "audio" object type represents audio content.
At a minimum, an audio object has the following properties:
Property | Value | Description |
---|---|---|
author | Activity Object | Activity Object, typically using the "person" object type, responsible for the creation of the audio stream. If the audio object appears within an activity, and the author is the actor for the activity, the author property MAY be omitted |
displayName | JSON (Crockford, D., “The application/json Media Type for JavaScript Object Notation (JSON),” July 2006.) [RFC4627] String | The natural-language, human-readable and plain-text title for the audio stream. HTML markup MUST NOT be included |
embedCode | JSON (Crockford, D., “The application/json Media Type for JavaScript Object Notation (JSON),” July 2006.) [RFC4627] String | An optional HTML fragment that, when embedded in an HTML page, will provide an interactive player UI for the audio stream. |
id | JSON (Crockford, D., “The application/json Media Type for JavaScript Object Notation (JSON),” July 2006.) [RFC4627] String | The unique identifier for the audio object. |
published | JSON (Crockford, D., “The application/json Media Type for JavaScript Object Notation (JSON),” July 2006.) [RFC4627] String | The optional time the audio object was created in the form of an [RFC3339] (Klyne, G., “Date and Time on the Internet: Timestamps,” July 2002.) "date-time". |
stream | Media Link | A link to the audio content itself. Represented in JSON as a media link as defined in JSON Activity Streams 1.0. |
summary | JSON (Crockford, D., “The application/json Media Type for JavaScript Object Notation (JSON),” July 2006.) [RFC4627] String | Optional short, natural-language, human-readable snippet or summary of the audio stream represented as a fragment of HTML. |
updated | JSON (Crockford, D., “The application/json Media Type for JavaScript Object Notation (JSON),” July 2006.) [RFC4627] String | The optional time the audio object was last updated in the form of an [RFC3339] (Klyne, G., “Date and Time on the Internet: Timestamps,” July 2002.) "date-time". |
TOC |
The "badge" object type represents a Badge or Award granted to an object (typically a person).
At a minimum, an badge object has the following properties:
Property | Value | Description |
---|---|---|
author | Activity Object | Activity Object, typically using the "person" object type, responsible for the creation of the badge. If the badge object appears within an activity, and the author is the actor for the activity, the author property MAY be omitted |
displayName | JSON (Crockford, D., “The application/json Media Type for JavaScript Object Notation (JSON),” July 2006.) [RFC4627] String | The natural-language, human-readable and plain-text title for the badge. HTML markup MUST NOT be included |
id | JSON (Crockford, D., “The application/json Media Type for JavaScript Object Notation (JSON),” July 2006.) [RFC4627] String | The unique identifier for the badge object. |
image | Media Link | An optional link to an image resource providing a visual representation of the badge. Processors MAY ignore images that are of an inappropriate size for their user interface. |
published | JSON (Crockford, D., “The application/json Media Type for JavaScript Object Notation (JSON),” July 2006.) [RFC4627] String | The optional time the badge object was created in the form of an [RFC3339] (Klyne, G., “Date and Time on the Internet: Timestamps,” July 2002.) "date-time". |
summary | JSON (Crockford, D., “The application/json Media Type for JavaScript Object Notation (JSON),” July 2006.) [RFC4627] String | Optional short, natural-language, human-readable description of the badge represented as a fragment of HTML. |
updated | JSON (Crockford, D., “The application/json Media Type for JavaScript Object Notation (JSON),” July 2006.) [RFC4627] String | The optional time the badge object was last updated in the form of an [RFC3339] (Klyne, G., “Date and Time on the Internet: Timestamps,” July 2002.) "date-time". |
url | JSON (Crockford, D., “The application/json Media Type for JavaScript Object Notation (JSON),” July 2006.) [RFC4627] String | The permanent IRI of the badge's HTML representation. |
TOC |
The "bookmark" object type represents a pointer to some URL -- typically a web page. In most cases, a bookmark is specific to a given user and contains metadata chosen by that user. Bookmark Objects are similar in principle to the concept of bookmarks or favorites in a web browser. A bookmark represents a pointer to the URL, not the URL or the associated resource itself.
When dealing with bookmarks it is important to note the distinction between the title, description, and URL of the bookmark itself and the title, content, and URL of the resource that is the target of the bookmark. In some implementations these MAY be the same, but bookmark managers often allow a user to edit the title and description of his or her own bookmarks to differ from the metadata on the target itself.
Some implementations refer to this object type as a "link". This specification uses the term "bookmark" to avoid confusion with the general concept of hyperlinks which apply to all object types.
Since bookmarks are often specific to a particular user, even though multiple users might have bookmarks pointing at the same resource, it is appropriate to use the post verb to describe the publication of such a bookmark. The favorite verb SHOULD be used when a user flags another user's bookmark as being a favorite without creating his own bookmark, or when a user flags his own bookmark as being a favorite as a special classification within his own bookmark collection.
At a minimum, a bookmark object has the following properties:
Property | Value | Description |
---|---|---|
author | Activity Object | Activity Object, typically using the "person" object type, responsible for the creation of the bookmark. If the bookmark object appears within an activity, and the author is the actor for the activity, the author property MAY be omitted |
displayName | JSON (Crockford, D., “The application/json Media Type for JavaScript Object Notation (JSON),” July 2006.) [RFC4627] String | The natural-language, human-readable and plain-text title of the bookmark as entered by the user who created it. HTML markup MUST NOT be included. Publishers MAY user the title of the target resource as a default for this peroperty where a user has not entered a customized value |
id | JSON (Crockford, D., “The application/json Media Type for JavaScript Object Notation (JSON),” July 2006.) [RFC4627] String | The unique identifier for the bookmark object. |
image | Media Link | An optional link to an image resource providing a visual representation of the bookmarked resource. Processors MAY ignore thumbnails that are of an inappropriate size for their user interface. |
published | JSON (Crockford, D., “The application/json Media Type for JavaScript Object Notation (JSON),” July 2006.) [RFC4627] String | The optional time the bookmark object was created in the form of an [RFC3339] (Klyne, G., “Date and Time on the Internet: Timestamps,” July 2002.) "date-time". |
targetUrl | JSON (Crockford, D., “The application/json Media Type for JavaScript Object Notation (JSON),” July 2006.) [RFC4627] String | The IRI of the item that is the target of the bookmark. |
updated | JSON (Crockford, D., “The application/json Media Type for JavaScript Object Notation (JSON),” July 2006.) [RFC4627] String | The optional time the bookmark object was last updated in the form of an [RFC3339] (Klyne, G., “Date and Time on the Internet: Timestamps,” July 2002.) "date-time". |
TOC |
The "collection" object type represents a generic collection of objects of any type. This object type can be used, for instance, to represent a collection of files like a folder, a collection of photos like an album, and so forth.
At a minimum, the collection object has the following properties:
Property | Value | Description |
---|---|---|
author | Activity Object | Activity Object, typically using the "person" object type, responsible for the creation of the collection. If the collection object appears within an activity, and the author is the actor for the activity, the author property MAY be omitted |
displayName | JSON (Crockford, D., “The application/json Media Type for JavaScript Object Notation (JSON),” July 2006.) [RFC4627] String | The natural-language, human-readable and plain-text title of the collection. |
id | JSON (Crockford, D., “The application/json Media Type for JavaScript Object Notation (JSON),” July 2006.) [RFC4627] String | The unique identifier for the collection object. |
image | Media Link | A link to an image resource that can be used as a preview image for the collection. Processors MAY ignore images that are of an inappropriate size for their user interface. |
objectTypes | JSON (Crockford, D., “The application/json Media Type for JavaScript Object Notation (JSON),” July 2006.) [RFC4627] Array of Strings | An optional array of JSON strings identifying the member object types for the collection. |
published | JSON (Crockford, D., “The application/json Media Type for JavaScript Object Notation (JSON),” July 2006.) [RFC4627] String | The optional time the collection object was created in the form of an [RFC3339] (Klyne, G., “Date and Time on the Internet: Timestamps,” July 2002.) "date-time". |
updated | JSON (Crockford, D., “The application/json Media Type for JavaScript Object Notation (JSON),” July 2006.) [RFC4627] String | The optional time the collection object was last updated in the form of an [RFC3339] (Klyne, G., “Date and Time on the Internet: Timestamps,” July 2002.) "date-time". |
url | JSON (Crockford, D., “The application/json Media Type for JavaScript Object Notation (JSON),” July 2006.) [RFC4627] String | The permanent IRI of the collection's HTML representation. |
TOC |
The "comment" object type represents a textual response to another object. The comment object type MUST NOT be used for other kinds of responses, such as video replies or reviews.
At a minimum, the comment object has the following properties:
Property | Value | Description |
---|---|---|
author | Activity Object | Activity Object, typically using the "person" object type, responsible for the creation of the comment. If the comment object appears within an activity, and the author is the actor for the activity, the author property MAY be omitted |
content | JSON (Crockford, D., “The application/json Media Type for JavaScript Object Notation (JSON),” July 2006.) [RFC4627] String | The main body content represented as a fragment of HTML. Publishers SHOULD include any markup necessary to achieve a similar presentation to that on the publisher's own HTML pages. Processors MAY remove all HTML markup and consider the comment to be plain text. |
displayName | JSON (Crockford, D., “The application/json Media Type for JavaScript Object Notation (JSON),” July 2006.) [RFC4627] String | The optional, natural-language, human-readable and plain-text subject of the comment. Many systems do not have the concept of a title or subject for a comment; such systems MUST omit the displayName property. Processors SHOULD refer to such comments as simply being "a comment", with appropriate localization, if they are to be described in a sentence. |
id | JSON (Crockford, D., “The application/json Media Type for JavaScript Object Notation (JSON),” July 2006.) [RFC4627] String | The unique identifier for the comment object. |
inReplyTo | JSON (Crockford, D., “The application/json Media Type for JavaScript Object Notation (JSON),” July 2006.) [RFC4627] Array of Objects | A listing of one or more objects for which this object is a response. |
published | JSON (Crockford, D., “The application/json Media Type for JavaScript Object Notation (JSON),” July 2006.) [RFC4627] String | The optional time the comment object was created in the form of an [RFC3339] (Klyne, G., “Date and Time on the Internet: Timestamps,” July 2002.) "date-time". |
updated | JSON (Crockford, D., “The application/json Media Type for JavaScript Object Notation (JSON),” July 2006.) [RFC4627] String | The optional time the comment object was last updated in the form of an [RFC3339] (Klyne, G., “Date and Time on the Internet: Timestamps,” July 2002.) "date-time". |
TOC |
The "event" object type represents an event that occurs in a certain place during a particular interval of time.
At a minimum, the event object has the following properties:
Property | Value | Description |
---|---|---|
attending | Collection object | An optional link to a collection providing information about actors who have responded to the event object using the rsvp-yes verb. |
author | Activity Object | Activity Object, typically using the "person" object type, responsible for the creation of the event. If the event object appears within an activity, and the author is the actor for the activity, the author property MAY be omitted |
displayName | JSON (Crockford, D., “The application/json Media Type for JavaScript Object Notation (JSON),” July 2006.) [RFC4627] String | The natural-language, human-readable and plain-text title of the event. |
endTime | JSON (Crockford, D., “The application/json Media Type for JavaScript Object Notation (JSON),” July 2006.) [RFC4627] String | The date and time that the event ends represented as a JSON String conforming to the "date-time" production in [RFC3339] (Klyne, G., “Date and Time on the Internet: Timestamps,” July 2002.) |
id | JSON (Crockford, D., “The application/json Media Type for JavaScript Object Notation (JSON),” July 2006.) [RFC4627] String | The unique identifier for the event object. |
location | Place (Location) object | The optional, location or venue for the event expressed as a place object as described in Section 5.1 (Location). |
maybeAttending | Collection object | An optional link to a collection providing information about actors who have responded to the event object using the rsvp-maybe verb. |
notAttending | Collection object | An optional link to a collection providing information about actors who have responded to the event object using the rsvp-no verb. |
published | JSON (Crockford, D., “The application/json Media Type for JavaScript Object Notation (JSON),” July 2006.) [RFC4627] String | The optional time the event object was created in the form of an [RFC3339] (Klyne, G., “Date and Time on the Internet: Timestamps,” July 2002.) "date-time". |
startTime | JSON (Crockford, D., “The application/json Media Type for JavaScript Object Notation (JSON),” July 2006.) [RFC4627] String | The date and time that the event begins represented as a JSON String conforming to the "date-time" production in [RFC3339] (Klyne, G., “Date and Time on the Internet: Timestamps,” July 2002.) |
summary | JSON (Crockford, D., “The application/json Media Type for JavaScript Object Notation (JSON),” July 2006.) [RFC4627] String | Optional short, natural-language, human-readable description of the event represented as a fragment of HTML. |
updated | JSON (Crockford, D., “The application/json Media Type for JavaScript Object Notation (JSON),” July 2006.) [RFC4627] String | The optional time the event object was last updated in the form of an [RFC3339] (Klyne, G., “Date and Time on the Internet: Timestamps,” July 2002.) "date-time". |
url | JSON (Crockford, D., “The application/json Media Type for JavaScript Object Notation (JSON),” July 2006.) [RFC4627] String | The permanent IRI of the event's HTML representation. |
TOC |
The "file" object type represents some document or other file with no additional machine-readable semantics.
It is intended that this type be used as a base type for other Objects that manifest as files, so that additional semantics can be added while providing a fallback ability for clients that do not support the more specific Object type.
At a minimum, the file object has the following properties:
TOC |
The "group" object type represents a grouping of objects in which member objects can join or leave.
At a minimum, the group object has the following properties:
Property | Value | Description |
---|---|---|
author | Activity Object | Activity Object, typically using the "person" object type, responsible for the creation of the group. If the group object appears within an activity, and the author is the actor for the activity, the author property MAY be omitted |
displayName | JSON (Crockford, D., “The application/json Media Type for JavaScript Object Notation (JSON),” July 2006.) [RFC4627] String | The natural-language, human-readable and plain-text title of the group. |
id | JSON (Crockford, D., “The application/json Media Type for JavaScript Object Notation (JSON),” July 2006.) [RFC4627] String | The unique identifier for the group object. |
published | JSON (Crockford, D., “The application/json Media Type for JavaScript Object Notation (JSON),” July 2006.) [RFC4627] String | The optional time the group object was created in the form of an [RFC3339] (Klyne, G., “Date and Time on the Internet: Timestamps,” July 2002.) "date-time". |
updated | JSON (Crockford, D., “The application/json Media Type for JavaScript Object Notation (JSON),” July 2006.) [RFC4627] String | The optional time the group object was last updated in the form of an [RFC3339] (Klyne, G., “Date and Time on the Internet: Timestamps,” July 2002.) "date-time". |
url | JSON (Crockford, D., “The application/json Media Type for JavaScript Object Notation (JSON),” July 2006.) [RFC4627] String | The permanent IRI of the group's HTML representation. |
TOC |
The "image" object type represents a graphical image.
Previous versions of this specification had defined a "photo" object type which SHOULD be treated as a deprecated alias of "image".
At a minimum, the image object has the following properties:
Property | Value | Description |
---|---|---|
author | Activity Object | Activity Object, typically using the "person" object type, responsible for the creation of the image. If the image object appears within an activity, and the author is the actor for the activity, the author property MAY be omitted |
displayName | JSON (Crockford, D., “The application/json Media Type for JavaScript Object Notation (JSON),” July 2006.) [RFC4627] String | Optional natural-language and plain-text caption for the image. HTML Markup MUST NOT be used. |
image | Media Link | A link to a thumbnail version of the image. Processors MAY ignore thumbnails that are of an inappropriate size for their user interface. |
fullImage | Media Link | A link to a larger -- ideally, full-size -- version of the image intended for standalone viewing. |
id | JSON (Crockford, D., “The application/json Media Type for JavaScript Object Notation (JSON),” July 2006.) [RFC4627] String | The unique identifier for the image object. |
published | JSON (Crockford, D., “The application/json Media Type for JavaScript Object Notation (JSON),” July 2006.) [RFC4627] String | The optional time the image object was created in the form of an [RFC3339] (Klyne, G., “Date and Time on the Internet: Timestamps,” July 2002.) "date-time". |
summary | JSON (Crockford, D., “The application/json Media Type for JavaScript Object Notation (JSON),” July 2006.) [RFC4627] String | Optional, natural-language description of the image in the form of a fragment of HTML. |
updated | JSON (Crockford, D., “The application/json Media Type for JavaScript Object Notation (JSON),” July 2006.) [RFC4627] String | The optional time the image object was last updated in the form of an [RFC3339] (Klyne, G., “Date and Time on the Internet: Timestamps,” July 2002.) "date-time". |
url | JSON (Crockford, D., “The application/json Media Type for JavaScript Object Notation (JSON),” July 2006.) [RFC4627] String | The permanent IRI of the image's HTML representation. |
TOC |
The "note" object type represents short-form text messages. This object type is intended for use in "micro-blogging" and in systems where users are invited to publish short, often plain-text messages whose useful lifespan is generally shorter than that of an article or weblog entry.
A note is similar in structure to an article, but it does not have a title and its body tends to be shorter. Applications will often display the entire content of a note in an activity stream UI, whereas they MAY display only the title or the title and summary for a weblog entry.
At a minimum, a note object has the following properties:
Property | Value | Description |
---|---|---|
author | Activity Object | Activity Object, typically using the "person" object type, responsible for the creation of the note. If the note object appears within an activity, and the author is the actor for the activity, the author property MAY be omitted |
content | JSON (Crockford, D., “The application/json Media Type for JavaScript Object Notation (JSON),” July 2006.) [RFC4627] String | The content of the note. Publishers SHOULD include any markup necessary to achieve a similar presentation to that on the publisher's own HTML pages, including any links that the service automatically adds. Processors MAY remove all HTML markup and consider the comment to be plain text. |
id | JSON (Crockford, D., “The application/json Media Type for JavaScript Object Notation (JSON),” July 2006.) [RFC4627] String | The unique identifier for the note object. |
published | JSON (Crockford, D., “The application/json Media Type for JavaScript Object Notation (JSON),” July 2006.) [RFC4627] String | The optional time the note object was created in the form of an [RFC3339] (Klyne, G., “Date and Time on the Internet: Timestamps,” July 2002.) "date-time". |
updated | JSON (Crockford, D., “The application/json Media Type for JavaScript Object Notation (JSON),” July 2006.) [RFC4627] String | The optional time the note object was last updated in the form of an [RFC3339] (Klyne, G., “Date and Time on the Internet: Timestamps,” July 2002.) "date-time". |
url | JSON (Crockford, D., “The application/json Media Type for JavaScript Object Notation (JSON),” July 2006.) [RFC4627] String | The permanent IRI of the note's HTML representation. |
It is expected that the "note" object type can be used for a broad range of purposes, including the representation of a human-readable description of what the author is doing, feeling or experiencing. Older versions of this specification had defined a "status" object type for that purpose. There are deployed implementations that currently still use "status". The "status" object type SHOULD be treated as a deprecated alias of the "note" object type. The determination of whether or not a "note" object represents a person's current status is based on the context in which the "note" is used.
TOC |
The "person" object type represents a user account. This is often represents a person, but might also be a company or fictitious character that is being represented by a user account.
At a minimum, the person object has the following properties:
Property | Value | Description |
---|---|---|
displayName | JSON (Crockford, D., “The application/json Media Type for JavaScript Object Notation (JSON),” July 2006.) [RFC4627] String | A name that can be used for the person in the user interface. This is often a name by which the individual is known in a given context; no restriction is placed on what kind of name may be used here. |
image | Media Link | A link to an image representing the person. Processors MAY ignore thumbnails that are of an inappropriate size for their user interface. |
id | JSON (Crockford, D., “The application/json Media Type for JavaScript Object Notation (JSON),” July 2006.) [RFC4627] String | The unique identifier for the person object. |
published | JSON (Crockford, D., “The application/json Media Type for JavaScript Object Notation (JSON),” July 2006.) [RFC4627] String | The optional time the person object was created in the form of an [RFC3339] (Klyne, G., “Date and Time on the Internet: Timestamps,” July 2002.) "date-time". |
updated | JSON (Crockford, D., “The application/json Media Type for JavaScript Object Notation (JSON),” July 2006.) [RFC4627] String | The optional time the person object was last updated in the form of an [RFC3339] (Klyne, G., “Date and Time on the Internet: Timestamps,” July 2002.) "date-time". |
url | JSON (Crockford, D., “The application/json Media Type for JavaScript Object Notation (JSON),” July 2006.) [RFC4627] String | The permanent IRI of the person's HTML representation. |
TOC |
The "place" object type represents a location on Earth. Locations can be represented using geographic coordinates, a physical address, a free-form location name, or any combination of these.
At a minimum, the place object has the following properties:
Property | Value | Description |
---|---|---|
displayName | JSON (Crockford, D., “The application/json Media Type for JavaScript Object Notation (JSON),” July 2006.) [RFC4627] String | An optional natural-language, human-readable and plain-text name of the place. HTML markup MUST NOT be included |
id | JSON (Crockford, D., “The application/json Media Type for JavaScript Object Notation (JSON),” July 2006.) [RFC4627] String | The unique identifier for the place object. |
position | JSON (Crockford, D., “The application/json Media Type for JavaScript Object Notation (JSON),” July 2006.) [RFC4627] String | The optional latitude, longitude and altitude of the place as a point on Earth. Represented as an ISO 6709 compliant string. For instance "position":"+27.5916+086.5640+8850/". |
address | JSON (Crockford, D., “The application/json Media Type for JavaScript Object Notation (JSON),” July 2006.) [RFC4627] Object | A optional physical address represented as a JSON object with the properties defined in the table below. |
url | JSON (Crockford, D., “The application/json Media Type for JavaScript Object Notation (JSON),” July 2006.) [RFC4627] String | The permanent IRI of the place's HTML representation. |
The properties for the address property are:
TOC |
The "product" object type represents a commercial good or service.
At a minimum, the product object has the following properties:
Property | Value | Description |
---|---|---|
author | Activity Object | Activity Object, typically using the "person" object type, responsible for the creation of the product. If the product object appears within an activity, and the author is the actor for the activity, the author property MAY be omitted |
displayName | JSON (Crockford, D., “The application/json Media Type for JavaScript Object Notation (JSON),” July 2006.) [RFC4627] String | Optional natural-language and plain-text name for the product. HTML Markup MUST NOT be used. |
fullImage | Media Link | A link to a larger -- ideally, full-size -- version of the image of the product. |
image | Media Link | A link to a thumbnail-sized image of the product. Processors MAY ignore thumbnails that are of an inappropriate size for their user interface. |
id | JSON (Crockford, D., “The application/json Media Type for JavaScript Object Notation (JSON),” July 2006.) [RFC4627] String | The unique identifier for the product object. |
published | JSON (Crockford, D., “The application/json Media Type for JavaScript Object Notation (JSON),” July 2006.) [RFC4627] String | The optional time the product object was created in the form of an [RFC3339] (Klyne, G., “Date and Time on the Internet: Timestamps,” July 2002.) "date-time". |
summary | JSON (Crockford, D., “The application/json Media Type for JavaScript Object Notation (JSON),” July 2006.) [RFC4627] String | Optional, natural-language description of the product in the form of a fragment of HTML. |
updated | JSON (Crockford, D., “The application/json Media Type for JavaScript Object Notation (JSON),” July 2006.) [RFC4627] String | The optional time the product object was last updated in the form of an [RFC3339] (Klyne, G., “Date and Time on the Internet: Timestamps,” July 2002.) "date-time". |
url | JSON (Crockford, D., “The application/json Media Type for JavaScript Object Notation (JSON),” July 2006.) [RFC4627] String | The permanent IRI of the product's HTML representation. |
TOC |
The "question" object type represents a question or poll.
At a minimum, a question object has the following properties:
Property | Value | Description |
---|---|---|
author | Activity Object | Activity Object, typically using the "person" object type, responsible for the creation of the question. If the review object appears within an activity, and the author is the actor for the activity, the author property MAY be omitted |
content | JSON (Crockford, D., “The application/json Media Type for JavaScript Object Notation (JSON),” July 2006.) [RFC4627] String | The content of the question in the form of a fragment of HTML. Publishers SHOULD include any markup necessary to achieve a similar presentation to that on the publisher's own HTML pages, including any links that the service automatically adds. Processors MAY remove all HTML markup and consider the content to be plain text. |
displayName | JSON (Crockford, D., “The application/json Media Type for JavaScript Object Notation (JSON),” July 2006.) [RFC4627] String | The title of the question. Some systems do not have the concept of a title for a question; such systems MUST omit the displayName property. Processors SHOULD refer to such questions as simply being "a question", with appropriate localization, if they are to be described in a sentence. |
id | JSON (Crockford, D., “The application/json Media Type for JavaScript Object Notation (JSON),” July 2006.) [RFC4627] String | The unique identifier for the question object. |
options | JSON (Crockford, D., “The application/json Media Type for JavaScript Object Notation (JSON),” July 2006.) [RFC4627] Array of Objects | An optional listing of possible answers for the question. These may be of any objectType and SHOULD contain an id property distinctly identifying each possible answer. |
published | JSON (Crockford, D., “The application/json Media Type for JavaScript Object Notation (JSON),” July 2006.) [RFC4627] String | The optional time the question object was created in the form of an [RFC3339] (Klyne, G., “Date and Time on the Internet: Timestamps,” July 2002.) "date-time". |
updated | JSON (Crockford, D., “The application/json Media Type for JavaScript Object Notation (JSON),” July 2006.) [RFC4627] String | The optional time the question object was last updated in the form of an [RFC3339] (Klyne, G., “Date and Time on the Internet: Timestamps,” July 2002.) "date-time". |
url | JSON (Crockford, D., “The application/json Media Type for JavaScript Object Notation (JSON),” July 2006.) [RFC4627] String | The permanent IRI of the question's HTML representation. |
TOC |
The "review" object type represents a primarily prose-based commentary on another object.
At a minimum, a review object has the following properties:
Property | Value | Description |
---|---|---|
author | Activity Object | Activity Object, typically using the "person" object type, responsible for the creation of the review. If the review object appears within an activity, and the author is the actor for the activity, the author property MAY be omitted |
content | JSON (Crockford, D., “The application/json Media Type for JavaScript Object Notation (JSON),” July 2006.) [RFC4627] String | The content of the review in the form of a fragment of HTML. Publishers SHOULD include any markup necessary to achieve a similar presentation to that on the publisher's own HTML pages, including any links that the service automatically adds. Processors MAY remove all HTML markup and consider the content to be plain text. |
displayName | JSON (Crockford, D., “The application/json Media Type for JavaScript Object Notation (JSON),” July 2006.) [RFC4627] String | The title of the review. Many systems do not have the concept of a title for a review; such systems MUST omit the displayName property. Processors SHOULD refer to such reviews as simply being "a review", with appropriate localization, if they are to be described in a sentence. |
id | JSON (Crockford, D., “The application/json Media Type for JavaScript Object Notation (JSON),” July 2006.) [RFC4627] String | The unique identifier for the review object. |
published | JSON (Crockford, D., “The application/json Media Type for JavaScript Object Notation (JSON),” July 2006.) [RFC4627] String | The optional time the review object was created in the form of an [RFC3339] (Klyne, G., “Date and Time on the Internet: Timestamps,” July 2002.) "date-time". |
rating | JSON (Crockford, D., “The application/json Media Type for JavaScript Object Notation (JSON),” July 2006.) [RFC4627] Number | A rating for the object given as a number between 1.0 and 5.0 inclusive with one decimal place of precision. |
updated | JSON (Crockford, D., “The application/json Media Type for JavaScript Object Notation (JSON),” July 2006.) [RFC4627] String | The optional time the review object was last updated in the form of an [RFC3339] (Klyne, G., “Date and Time on the Internet: Timestamps,” July 2002.) "date-time". |
url | JSON (Crockford, D., “The application/json Media Type for JavaScript Object Notation (JSON),” July 2006.) [RFC4627] String | The permanent IRI of the review's HTML representation. |
TOC |
The "service" object type represents a website, personal website or blog, business, brand, or other entity that performs some kind of work for other entities, people, or services, or acts as kind of container for other objects.
At a minimum, the service object has the following properties:
Property | Value | Description |
---|---|---|
displayName | JSON (Crockford, D., “The application/json Media Type for JavaScript Object Notation (JSON),” July 2006.) [RFC4627] String | The natural-language, plain-text name of the service. HTML markup MUST NOT be used. |
id | JSON (Crockford, D., “The application/json Media Type for JavaScript Object Notation (JSON),” July 2006.) [RFC4627] String | The unique identifier for the service object. |
image | Media Link | A link to a small image representing the service. |
published | JSON (Crockford, D., “The application/json Media Type for JavaScript Object Notation (JSON),” July 2006.) [RFC4627] String | The optional time the service object was created in the form of an [RFC3339] (Klyne, G., “Date and Time on the Internet: Timestamps,” July 2002.) "date-time". |
summary | JSON (Crockford, D., “The application/json Media Type for JavaScript Object Notation (JSON),” July 2006.) [RFC4627] String | A description of the service in the form of a fragment of HTML. Publishers SHOULD include any markup necessary to achieve a similar presentation to that on the publisher's own HTML pages, including any links that the service automatically adds. Processors MAY remove all HTML markup and consider the content to be plain text. |
updated | JSON (Crockford, D., “The application/json Media Type for JavaScript Object Notation (JSON),” July 2006.) [RFC4627] String | The optional time the service object was last updated in the form of an [RFC3339] (Klyne, G., “Date and Time on the Internet: Timestamps,” July 2002.) "date-time". |
url | JSON (Crockford, D., “The application/json Media Type for JavaScript Object Notation (JSON),” July 2006.) [RFC4627] String | The permanent IRI of the service's HTML representation. |
TOC |
The "video" object type represents video content, which usually consists of a motion picture track and an audio track.
At a minimum, the video object has the following properties:
Property | Value | Description |
---|---|---|
author | Activity Object | Activity Object, typically using the "person" object type, responsible for the creation of the video stream. If the video object appears within an activity, and the author is the actor for the activity, the author property MAY be omitted |
displayName | JSON (Crockford, D., “The application/json Media Type for JavaScript Object Notation (JSON),” July 2006.) [RFC4627] String | The natural-language, human-readable and plain-text title for the video stream. HTML markup MUST NOT be included |
embedCode | JSON (Crockford, D., “The application/json Media Type for JavaScript Object Notation (JSON),” July 2006.) [RFC4627] String | An optional HTML fragment that, when embedded in an HTML page, will provide an interactive player UI for the video stream. |
id | JSON (Crockford, D., “The application/json Media Type for JavaScript Object Notation (JSON),” July 2006.) [RFC4627] String | The unique identifier for the video object. |
published | JSON (Crockford, D., “The application/json Media Type for JavaScript Object Notation (JSON),” July 2006.) [RFC4627] String | The optional time the video object was created in the form of an [RFC3339] (Klyne, G., “Date and Time on the Internet: Timestamps,” July 2002.) "date-time". |
stream | Media Link | A link to the video content itself. Represented in JSON as a media link as defined in JSON Activity Streams 1.0. |
summary | JSON (Crockford, D., “The application/json Media Type for JavaScript Object Notation (JSON),” July 2006.) [RFC4627] String | Optional short, natural-language, human-readable snippet or summary of the video stream represented as a fragment of HTML. |
updated | JSON (Crockford, D., “The application/json Media Type for JavaScript Object Notation (JSON),” July 2006.) [RFC4627] String | The optional time the video object was last updated in the form of an [RFC3339] (Klyne, G., “Date and Time on the Internet: Timestamps,” July 2002.) "date-time". |
TOC |
This specification defines an initial set of extension properties that can be used with all activities or objects.
TOC |
Location data can be added to any object type or activity. Location can be specified via geographic coordinates, a street address, a free-form location name or any combination of these.
Within a JSON-serialized Activity Stream, the Location is represented using a property named location whose value is a Place (Place) object. The objectType property of this object MAY be omitted.
When appearing within an activity, the location data indicates the location where the activity occurred. When appearing within an object, the location data indicates the location of that object at the time the activity occurred.
For example:
{ "objectType": "person", "displayName": "John Doe", "location": { "displayName": "Mount Everest", "position": "+27.5916+086.5640+8850/" } }
TOC |
Mood describes the mood of the user when the activity was performed. This is usually collected via an extra field in the user interface used to perform the activity. For the purpose of this schema, a mood is a freeform, short mood keyword or phrase along with an optional mood icon image.
In JSON, Moods are included within an object or activity using a property named mood whose value is a JSON object with the following properties:
Property | Value | Description |
---|---|---|
displayName | JSON (Crockford, D., “The application/json Media Type for JavaScript Object Notation (JSON),” July 2006.) [RFC4627] String | The natural-language, human-readable and plain-text keyword or phrase describing the mood. HTML markup MUST NOT be included |
image | Media Link | An optional image that provides a visual representation of the mood. |
For example:
{ "objectType": "note", "content": "Working on the activity streams spec", "mood": { "displayName": "Optimistic", "image": "http://example.org/moods/optimistic.png" } }
TOC |
A rating given as a number between 1.0 and 5.0 inclusive with one decimal place of precision. Represented in JSON as a property called rating whose value is a JSON number giving the rating.
Ratings are generally most useful only for particular types of objects, such as audio, video, photos and places.
For example:
{ "objectType": "review", "content": "This is a great product", "rating": 3.5 }
TOC |
The source property provides a reference to the original source of an object or activity. The value of the source property is an Object of any object type.
The source property is closely related to the generator and provider properties but serves the distinct purpose of identifying where the activity or object was originally published as opposed to identifying the applications that generated or published it.
For example:
{ "actor": { "objectType": "person", "displayName": "Joe" }, "verb": "post", "object": { "objectType": "photo", "image": "http://example.org/photos/fluffycat.jpg" }, "source": { "objectType": "collection", "displayName": "Joe's Photo's", "url": "http://example.org/joes/photos" } }
TOC |
A listing of the objects that have been associated with a particular object using the tag verb. Represented in JSON using a property named tags whose value is an Array of objects.
For example:
{ "objectType": "photo", "image": "http://example.org/photos/fluffycat.jpg", "tags": [ { "objectType": "person", "displayName": "John" }, { "objectType": "person", "displayName": "Jane" } ] }
TOC |
[RFC2119] | “RFC 2119.” |
[RFC3339] | Klyne, G., “Date and Time on the Internet: Timestamps,” July 2002. |
[RFC3987] | “Internationalized Resource Identifiers (IRIs).” |
[RFC4627] | Crockford, D., “The application/json Media Type for JavaScript Object Notation (JSON),” July 2006. |
[activitystreams] | Snell, J., Atkins, M., Norris, W., Messina, C., Wilkinson, M., and R. Dolin, “JSON Activity Streams 1.0,” May 2011. |
TOC |
...
TOC |
James M Snell | |
IBM | |
Martin Atkins | |
SAY Media | |
David Recordon | |
Six Apart, Facebook | |
Chris Messina | |
Citizen Agency, Google | |
Monica Keller | |
MySpace, Facebook | |
Ari Steinberg | |
Rob Dolin | |
Microsoft |