TOC 
Network Working GroupJ. Snell
Internet-DraftIBM
Intended status: ExperimentalM. Atkins
Expires: November 28, 2011SAY Media
 D. Recordon
 Six Apart, Facebook
 C. Messina
 Citizen Agency, Google
 M. Keller
 MySpace, Facebook
 A. Steinberg
 Facebook
 R. Dolin
 Microsoft
 May 27, 2011


Activity Base Schema (Draft)
activity-schema-01

Abstract

This document presents a base set of Object types and Verbs for use with Activity Streams.

Requirements Language

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].

Status of this Memo

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.



Table of Contents

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 

1.  Introduction

This document presents a base set of object types and verbs for use with Activity Streams.



 TOC 

2.  Notational Conventions

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 

3.  Verbs

VerbDescription
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 

4.  Object Types



 TOC 

4.1.  Article

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:

PropertyValueDescription
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 

4.2.  Audio

The "audio" object type represents audio content.

At a minimum, an audio object has the following properties:

PropertyValueDescription
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 

4.3.  Badge

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:

PropertyValueDescription
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 

4.4.  Bookmark

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:

PropertyValueDescription
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 

4.5.  Collection

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:

PropertyValueDescription
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 

4.6.  Comment

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:

PropertyValueDescription
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 

4.7.  Event

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:

PropertyValueDescription
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 

4.8.  File

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:

PropertyValueDescription
author  Activity Object Activity Object, typically using the "person" object type, responsible for the creation of the file. If the file 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 file.
fileUrl  JSON (Crockford, D., “The application/json Media Type for JavaScript Object Notation (JSON),” July 2006.) [RFC4627] String The IRI of the file described by this object.
id  JSON (Crockford, D., “The application/json Media Type for JavaScript Object Notation (JSON),” July 2006.) [RFC4627] String The unique identifier for the file object.
published  JSON (Crockford, D., “The application/json Media Type for JavaScript Object Notation (JSON),” July 2006.) [RFC4627] String The optional time the file object was created in the form of an [RFC3339] (Klyne, G., “Date and Time on the Internet: Timestamps,” July 2002.) "date-time".
mimeType  JSON (Crockford, D., “The application/json Media Type for JavaScript Object Notation (JSON),” July 2006.) [RFC4627] String The MIME type of the file described by the object.
updated  JSON (Crockford, D., “The application/json Media Type for JavaScript Object Notation (JSON),” July 2006.) [RFC4627] String The optional time the file 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 file's HTML representation.



 TOC 

4.9.  Group

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:

PropertyValueDescription
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 

4.10.  Image

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:

PropertyValueDescription
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 

4.11.  Note

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:

PropertyValueDescription
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 

4.12.  Person

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:

PropertyValueDescription
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 

4.13.  Place

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:

PropertyValueDescription
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:

PropertyValueDescription
formatted  JSON (Crockford, D., “The application/json Media Type for JavaScript Object Notation (JSON),” July 2006.) [RFC4627] String The full mailing address formatted for display or use with a mailing label.
streetAddress  JSON (Crockford, D., “The application/json Media Type for JavaScript Object Notation (JSON),” July 2006.) [RFC4627] String The street address including house number, street name, P.O. Box, and extended multi-line address information.
locality  JSON (Crockford, D., “The application/json Media Type for JavaScript Object Notation (JSON),” July 2006.) [RFC4627] String The city or locality.
region  JSON (Crockford, D., “The application/json Media Type for JavaScript Object Notation (JSON),” July 2006.) [RFC4627] String The state or region.
postalCode  JSON (Crockford, D., “The application/json Media Type for JavaScript Object Notation (JSON),” July 2006.) [RFC4627] String The zip or postal code.
country  JSON (Crockford, D., “The application/json Media Type for JavaScript Object Notation (JSON),” July 2006.) [RFC4627] String The country name component.



 TOC 

4.14.  Product

The "product" object type represents a commercial good or service.

At a minimum, the product object has the following properties:

PropertyValueDescription
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 

4.15.  Question

The "question" object type represents a question or poll.

At a minimum, a question object has the following properties:

PropertyValueDescription
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 

4.16.  Review

The "review" object type represents a primarily prose-based commentary on another object.

At a minimum, a review object has the following properties:

PropertyValueDescription
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 

4.17.  Service

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:

PropertyValueDescription
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 

4.18.  Video

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:

PropertyValueDescription
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 

5.  Base Extension Properties

This specification defines an initial set of extension properties that can be used with all activities or objects.



 TOC 

5.1.  Location

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 

5.2.  Mood

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:

PropertyValueDescription
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 

5.3.  Rating

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 

5.4.  Source

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 

5.5.  Tags

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 

6. Normative References

[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 

Appendix A.  Acknowledgements

...



 TOC 

Authors' Addresses

  James M Snell
  IBM
  
  Martin Atkins
  SAY Media
  
  David Recordon
  Six Apart, Facebook
  
  Chris Messina
  Citizen Agency, Google
  
  Monica Keller
  MySpace, Facebook
  
  Ari Steinberg
  Facebook
  
  Rob Dolin
  Microsoft