TOC |
|
This specification details the serialization of a stream of social activities using the JSON format. Activities are important in that they allow individuals to process the latest news of people and things they care about.
1.
Introduction
2.
Notational Conventions
3.
JSON Serialization
3.1.
Example Activities
3.2.
Activity Serialization
3.3.
Media Link Serialization
3.4.
Object Serialization
3.5.
Collection Serialization
4.
The Activity Stream JSON Document
5.
Comparison of Identifier Values
6.
The "post" Verb
6.1.
Implied "post" Activity
7.
The "activity" Object Type
8.
Extension Object Types and Verbs
9.
Other Representations
10.
Requirements for Re-publishers
11.
Security Considerations
12.
IANA Considerations
13.
License
14.
Errata
15.
Normative References
Appendix A.
Acknowledgements
§
Authors' Addresses
TOC |
In its simplest form, an activity consists of an actor, a verb, an object, and a target. It tells the story of a person performing an action on or with an object -- "Geraldine posted a photo to her album" or "John shared a video". In most cases these components will be explicit, but they may also be implied.
It is a goal of this specification to provide sufficient metadata about an activity such that a consumer of the data can present it to a user in a rich human-friendly format. This may include constructing readable sentences about the activity that occurred, visual representations of the activity, or combining similar activities for display.
The basic properties that comprise the description of an activity are defined in the following sections.
Within this specification, an object is a thing, real or imaginary, which participates in an activity. It may be the entity performing the activity, or the entity on which the activity was performed. An object consists of properties defined in the following sections. Certain object types may further refine the meaning of these properties, or they may define additional properties.
Some types of objects may have an alternative visual representation in the form of an image, video or embedded HTML fragments. A Media Link represents a hyperlink to such resources.
An Activity Stream is a collection one or more individual activities. The relationship between the activities within the collection is undefined by this specification.
TOC |
The text of this specification provides the sole definition of conformance. Examples in this specification are non-normative.
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 [RFC2119] (Bradner, S., “Key words for use in RFCs to Indicate Requirement Levels,” March 1997.).
This specification allows the use of IRIs [RFC3987] (Duerst, M. and M. Suignard, “Internationalized Resource Identifiers (IRIs),” January 2005.). Every URI [RFC3986] (Berners-Lee, T., Fielding, R., and L. Masinter, “Uniform Resource Identifier (URI),” January 2005.) is also an IRI, so a URI may be used wherever below an IRI is named. There are two special considerations: (1) 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] (Duerst, M. and M. Suignard, “Internationalized Resource Identifiers (IRIs),” January 2005.) and (2) when an IRI is serving as an id value, it MUST NOT be so mapped.
TOC |
Activities are serialized using the JSON format, as defined in [RFC4627] (Crockford, D., “The application/json Media Type for JavaScript Object Notation (JSON),” July 2006.). Alternative serializations MAY be used but are outside the scope of this specification.
In the JSON serialization, absent properties MAY be represented either by an explicit declaration of the property whose value is null or by omitting the property declaration altogether at the option of the publisher; these two representations are semantically equivalent. If a property is having a value whose type is a JSON array, the absence of any items in that array MUST be represented by omitting the property entirely or publishing it with the value null, and MUST NOT be represented as an empty array, except as otherwise stated in the definition of a specific property.
Unless otherwise specified, all properties specifying date and time values within the JSON serialization, including extensions, MUST conform to the "date-time" production in [RFC3339] (Klyne, G., “Date and Time on the Internet: Timestamps,” July 2002.). In addition, an uppercase "T" character MUST be used to separate date and time, and an uppercase "Z" character MUST be present in the absence of a numeric time zone offset.
TOC |
Following is a simple, minimal example of a JSON serialized activity:
{ "published": "2011-02-10T15:04:55Z", "actor": { "url": "http://example.org/martin", "objectType" : "person", "id": "tag:example.org,2011:martin", "image": { "url": "http://example.org/martin/image", "width": 250, "height": 250 }, "displayName": "Martin Smith" }, "verb": "post", "object" : { "url": "http://example.org/blog/2011/02/entry", "id": "tag:example.org,2011:abc123/xyz" }, "target" : { "url": "http://example.org/blog/", "objectType": "blog", "id": "tag:example.org,2011:abc123", "displayName": "Martin's Blog" } }
A more extensive, single-entry Activity Stream follows. In addition to containing a number of required and optional core properties, the example contains the additional, undefined extension properties "foo" and "foo2" for illustrative purposes only.
{ "items" : [ { "published": "2011-02-10T15:04:55Z", "foo": "some extension property", "generator": { "url": "http://example.org/activities-app" }, "provider": { "url": "http://example.org/activity-stream" }, "title": "Martin posted a new video to his album.", "actor": { "url": "http://example.org/martin", "objectType": "person", "id": "tag:example.org,2011:martin", "foo2": "some other extension property", "image": { "url": "http://example.org/martin/image", "width": 250, "height": 250 }, "displayName": "Martin Smith" }, "verb": "post", "object" : { "url": "http://example.org/album/my_fluffy_cat.jpg", "objectType": "photo", "id": "tag:example.org,2011:my_fluffy_cat", "image": { "url": "http://example.org/album/my_fluffy_cat_thumb.jpg", "width": 250, "height": 250 } }, "target": { "url": "http://example.org/album/", "objectType": "photo-album", "id": "tag:example.org,2011:abc123", "displayName": "Martin's Photo Album", "image": { "url": "http://example.org/album/thumbnail.jpg", "width": 250, "height": 250 } } } ] }
TOC |
Property | Value | Description |
---|---|---|
actor | Object (Object Serialization) | Describes the entity that performed the activity. An activity MUST contain one actor property whose value is a single Object (Object Serialization). |
content | JSON (Crockford, D., “The application/json Media Type for JavaScript Object Notation (JSON),” July 2006.) [RFC4627] String | Natural-language description of the activity encoded as a single JSON String containing HTML markup. Visual elements such as thumbnail images MAY be included. An activity MAY contain a content property. |
generator | Object (Object Serialization) | Describes the application that generated the activity. An activity MAY contain a generator property whose value is a single Object (Object Serialization). |
icon | Media Link (Media Link Serialization) | Description of a resource providing a visual representation of the object, intended for human consumption. The image SHOULD have an aspect ratio of one (horizontal) to one (vertical) and SHOULD be suitable for presentation at a small size. An activity MAY have an icon property. |
id | JSON (Crockford, D., “The application/json Media Type for JavaScript Object Notation (JSON),” July 2006.) [RFC4627] String | Provides a permanent, universally unique identifier for the activity in the form of an absolute IRI [RFC3987] (Duerst, M. and M. Suignard, “Internationalized Resource Identifiers (IRIs),” January 2005.). An activity SHOULD contain a single id property. If an activity does not contain an id property, consumers MAY use the value of the url property as a less-reliable, non-unique identifier. |
object | Object (Object Serialization) | Describes the primary object of the activity. For instance, in the activity, "John saved a movie to his wishlist", the object of the activity is "movie". An activity SHOULD contain an object property whose value is a single Object (Object Serialization). If the object property is not contained, the primary object of the activity MAY be implied by context. |
published | [RFC3339] (Klyne, G., “Date and Time on the Internet: Timestamps,” July 2002.) date-time | The date and time at which the activity was published. An activity MUST contain a published property. |
provider | Object (Object Serialization) | Describes the application that published the activity. Note that this is not necessarily the same entity that generated the activity. An activity MAY contain a provider property whose value is a single Object (Object Serialization). |
target | Object (Object Serialization) | Describes the target of the activity. The precise meaning of the activity's target is dependent on the activities verb, but will often be the object the English preposition "to". For instance, in the activity, "John saved a movie to his wishlist", the target of the activity is "wishlist". The activity target MUST NOT be used to identity an indirect object that is not a target of the activity. An activity MAY contain a target property whose value is a single Object (Object Serialization). |
title | JSON (Crockford, D., “The application/json Media Type for JavaScript Object Notation (JSON),” July 2006.) [RFC4627] String | Natural-language title or headline for the activity encoded as a single JSON String containing HTML markup. An activity MAY contain a title property. |
updated | [RFC3339] (Klyne, G., “Date and Time on the Internet: Timestamps,” July 2002.) date-time | The date and time at which a previously published activity has been modified. An Activity MAY contain an updated property. |
url | JSON (Crockford, D., “The application/json Media Type for JavaScript Object Notation (JSON),” July 2006.) [RFC4627] String | An IRI [RFC3987] (Duerst, M. and M. Suignard, “Internationalized Resource Identifiers (IRIs),” January 2005.) identifying a resource providing an HTML representation of the activity. An activity MAY contain a url property. |
verb | JSON (Crockford, D., “The application/json Media Type for JavaScript Object Notation (JSON),” July 2006.) [RFC4627] String | Identifies the action that the activity describes. An activity SHOULD contain a verb property whose value is a JSON String that is non-empty and matches either the "isegment-nz-nc" or the "IRI" production in [RFC3339] (Klyne, G., “Date and Time on the Internet: Timestamps,” July 2002.). Note that the use of a relative reference other than a simple name is not allowed. If the verb is not specified, or if the value is null, the verb is assumed to be "post" (The "post" Verb). |
TOC |
Property | Value | Description |
---|---|---|
duration | JSON (Crockford, D., “The application/json Media Type for JavaScript Object Notation (JSON),” July 2006.) [RFC4627] int | A hint to the consumer about the length, in seconds, of the media resource identified by the url property. A media link MAY contain a "duration" property when the target resource is a time-based media item such as an audio or video. |
height | JSON (Crockford, D., “The application/json Media Type for JavaScript Object Notation (JSON),” July 2006.) [RFC4627] int | A hint to the consumer about the height, in pixels, of the media resource identified by the url property. A media link MAY contain a height property when the target resource is a visual media item such as an image, video or embeddable HTML page. |
url | String | The IRI of the media resource being linked. A media link MUST have a url property. |
width | JSON (Crockford, D., “The application/json Media Type for JavaScript Object Notation (JSON),” July 2006.) [RFC4627] int | A hint to the consumer about the width, in pixels, of the media resource identified by the url property. A media link MAY contain a width property when the target resource is a visual media item such as an image, video or embeddable HTML page. |
TOC |
Property | Value | Description |
---|---|---|
attachments | JSON (Crockford, D., “The application/json Media Type for JavaScript Object Notation (JSON),” July 2006.) [RFC4627] Array of Objects (Object Serialization) | A collection of one or more additional, associated objects, similar to the concept of attached files in an email message. An object MAY have an attachments property whose value is a JSON Array of Objects (Object Serialization). |
author | Object (Object Serialization) | Describes the entity that created or authored the object. An object MAY contain a single author property whose value is an Object (Object Serialization) of any type. Note that the author field identifies the entity that created the object and does not necessarily identify the entity that published the object. For instance, it may be the case that an object created by one person is posted and published to a system by an entirely different entity. |
content | JSON (Crockford, D., “The application/json Media Type for JavaScript Object Notation (JSON),” July 2006.) [RFC4627] String | Natural-language description of the object encoded as a single JSON String containing HTML markup. Visual elements such as thumbnail images MAY be included. An object MAY contain a content property. |
displayName | JSON (Crockford, D., “The application/json Media Type for JavaScript Object Notation (JSON),” July 2006.) [RFC4627] String | A natural-language, human-readable and plain-text name for the object. HTML markup MUST NOT be included. An object MAY contain a displayName property. If the object does not specify an objectType property, the object SHOULD specify a displayName. |
downstreamDuplicates | JSON (Crockford, D., “The application/json Media Type for JavaScript Object Notation (JSON),” July 2006.) [RFC4627] Array of Strings | A JSON Array of one or more absolute IRI's [RFC3987] (Duerst, M. and M. Suignard, “Internationalized Resource Identifiers (IRIs),” January 2005.) identifying objects that duplicate this object's content. An object SHOULD contain a downstreamDuplicates property when there are known objects, possibly in a different system, that duplicate the content in this object. This MAY be used as a hint for consumers to use when resolving duplicates between objects received from different sources. |
id | JSON (Crockford, D., “The application/json Media Type for JavaScript Object Notation (JSON),” July 2006.) [RFC4627] String | Provides a permanent, universally unique identifier for the object in the form of an absolute IRI [RFC3987] (Duerst, M. and M. Suignard, “Internationalized Resource Identifiers (IRIs),” January 2005.). An object SHOULD contain a single id property. If an object does not contain an id property, consumers MAY use the value of the url property as a less-reliable, non-unique identifier. |
image | Media Link (Media Link Serialization) | Description of a resource providing a visual representation of the object, intended for human consumption. An object MAY contain an image property whose value is a Media Link (Media Link Serialization). |
objectType | JSON (Crockford, D., “The application/json Media Type for JavaScript Object Notation (JSON),” July 2006.) [RFC4627] String | Identifies the type of object. An object MAY contain an objectType property whose value is a JSON String that is non-empty and matches either the "isegment-nz-nc" or the "IRI" production in [RFC3987] (Duerst, M. and M. Suignard, “Internationalized Resource Identifiers (IRIs),” January 2005.). Note that the use of a relative reference other than a simple name is not allowed. If no objectType property is contained, the object has no specific type. |
published | [RFC3339] (Klyne, G., “Date and Time on the Internet: Timestamps,” July 2002.) date-time | The date and time at which the object was published. An object MAY contain a published property. |
summary | JSON (Crockford, D., “The application/json Media Type for JavaScript Object Notation (JSON),” July 2006.) [RFC4627] String | Natural-language summarization of the object encoded as a single JSON String containing HTML markup. Visual elements such as thumbnail images MAY be included. An activity MAY contain a summary property. |
updated | [RFC3339] (Klyne, G., “Date and Time on the Internet: Timestamps,” July 2002.) date-time | The date and time at which a previously published object has been modified. An Object MAY contain an updated property. |
upstreamDuplicates | JSON (Crockford, D., “The application/json Media Type for JavaScript Object Notation (JSON),” July 2006.) [RFC4627] Array of Strings | A JSON Array of one or more absolute IRI's [RFC3987] (Duerst, M. and M. Suignard, “Internationalized Resource Identifiers (IRIs),” January 2005.) identifying objects that duplicate this object's content. An object SHOULD contain an upstreamDuplicates property when a publisher is knowingly duplicating with a new ID the content from another object. This MAY be used as a hint for consumers to use when resolving duplicates between objects received from different sources. |
url | JSON (Crockford, D., “The application/json Media Type for JavaScript Object Notation (JSON),” July 2006.) [RFC4627] String | An IRI [RFC3987] (Duerst, M. and M. Suignard, “Internationalized Resource Identifiers (IRIs),” January 2005.) identifying a resource providing an HTML representation of the object. An object MAY contain a url property |
TOC |
A "collection" is a generic list of Objects (Object Serialization) of any object type. The objectType of each item in the collection MAY be omitted if the type of object can be established through context. The collection is used primarily as the root of an Activity Streams document as described in Section 4 (The Activity Stream JSON Document), but can be used as the value of extension properties in a variety of situations.
Property | Value | Description |
---|---|---|
totalItems | JSON (Crockford, D., “The application/json Media Type for JavaScript Object Notation (JSON),” July 2006.) [RFC4627] Integer | Non-negative integer specifying the total number of activities within the stream. The Stream serialization MAY contain a count property. |
items | JSON (Crockford, D., “The application/json Media Type for JavaScript Object Notation (JSON),” July 2006.) [RFC4627] Array of Objects (Object Serialization) | An array containing a listing of Objects (Object Serialization) of any object type. If used in combination with the url property, the items array can be used to provide a subset of the objects that may be found in the resource identified by the url. |
url | JSON (Crockford, D., “The application/json Media Type for JavaScript Object Notation (JSON),” July 2006.) [RFC4627] String | An IRI [RFC3987] (Duerst, M. and M. Suignard, “Internationalized Resource Identifiers (IRIs),” January 2005.) referencing a JSON document containing the full listing of objects in the collection. |
A valid Collection object serialization MUST contain at least the url or items properties.
TOC |
The above defined JSON serialization can be used to represent activities, objects and media links in any JSON context. This section defines one particular use of the above formats to publish a JSON document representing a stream of activities.
Publishers using this format MUST produce a valid JSON document whose root value is a Collection (Collection Serialization). This object MUST, at a minimum, include the items property whose objects MUST be Activities (Activity Serialization).
TOC |
The values of multiple Object's (Object Serialization) id, upstreamDuplicates, and downstreamDuplicates properties can be compared to determine if the objects represent duplicate content. Processors MUST compare these values on a character-by-character basis (in a case-sensitive fashion). Comparison operations MUST be based solely on the IRI character strings and MUST NOT rely on dereferencing the IRIs or URIs mapped from them.
As a result, two IRIs that resolve to the same resource but are not character-for-character identical will be considered different for the purposes of identifier comparison.
TOC |
This specification defines one initial verb and defers to other specifications to define additional verb and object types as defined in Section 8 (Extension Object Types and Verbs).
The "post" verb describes the act of authoring an object and then publishing it online. The actor can be any entity; the object can be of any object type; and the target, if specified, can be of any object type. A target, however, is not required.
TOC |
Because the "post" verb is defined to include the act of publishing an object online, it is possible to assume an implied "post" activity for any object even if such an activity was never explicitly published or received. The properties of this implied activity are as follows; any property not explicitly listed here is absent from the resulting activity unless the consumer is able to infer a value based on out-of-band information outside the scope of this specification:
- actor
- The actor of the implied activity is unknown unless the consumer is able to infer an actor based on information outside the scope of this specification. For example, the consumer may know via some out-of-band information that all of the objects in a particular document were posted by a particular user.
- object
- The object of the implied activity is the object for which this implied activity is being constructed.
- verb
- The verb of the implied activity is "post".
- published
- The published of the implied activity is unknown unless the consumer is able to infer a time based on information outside the scope of this specification.
TOC |
The "activity" object type indicates that an Object represents an Activity. It can be used whenever an event involving another activity is described within an Activity Stream. For instance, when one user "shares" or "reposts" an activity from another user.
In addition to the core Object properties, an "activity" object MAY contain any combination of the properties defined for an Activity (Activity Serialization). The values of the object's id and url fields MUST match those of the activity being described.
Note that an activity object MUST be processable as both an Object (Object Serialization) and an Activity (Activity Serialization) and may contain fields from either construct, some of which may overlap or duplicate content. When duplication of content may occur, an implementation SHOULD choose to use the fields from the Activity (Activity Serialization) object. For instance, in an activity object, the Activity's title property and the Object's displayName properties serve identical functions, therefore the use of the title property SHOULD be favored over the use of displayName.
The example below illustrates an activity in which one user, Jane, is sharing another activity performed by a second user, John.
{ "published": "2011-02-10T15:04:55Z", "actor": { "objectType" : "person", "id": "tag:example.org,2011:jane" }, "verb": "share", "object" : { "objectType":"activity", "title": "John posted a photo", "id": "tag:example.org,2011:abc123", "verb": "post", "actor": { "objectType":"person", "id":"tag:example.org,2011:john" }, "object": { "objectType":"photo", "url":"http://example.org/album/my_fluffy_cat.jpg" } } }
TOC |
Other specifications MAY define new object types and verbs for use with the concepts and serializations defined in this specification. To be clear, new extension properties can be added anywhere in the JSON serialization of an object or activity.
When defining a new verb, the defining specification MUST provide a verb identifier for the new verb and MUST define the meaning of the verb in terms of the actor, object and target properties of the activity, and MUST define whether a target is required and what it represents when present.
When defining a new object type, the defining specification MUST provide an object type identifier for the new object type. The definition of the new object type MAY define additional properties specific to that object type; if so, the specification SHOULD define how these additional properties are to be serialized within the JSON document, and the specification MAY define how these additional properties are to be represented in other serialization formats. The definition of the new object type MAY impose additional meaning or constraint on the core object properties as long as the new definition remains compatible with the definition of the base component.
Additional extension properties MAY also be defined for Activities (Activity Serialization) and Media Links (Media Link Serialization). The specification of these properties SHOULD define how they are to be serialized within the JSON document, and the specification MAY define how they are to be represented in other serialization formats.
New properties SHOULD be defined such that the Object (Object Serialization), Activity (Activity Serialization) or Media Link (Media Link Serialization) would remain useful if those properties are omitted or removed during processing, to enable graceful fallback by consumers that do not implement the extension properties or alternative representations that are unable to represent the extensions.
Processors that encounter unfamiliar extension properties within an Object (Object Serialization), Activity (Activity Serialization) or Media Link (Media Link Serialization) MUST NOT stop processing or signal an error and MUST continue processing the items as if the extension properties were not present.
TOC |
This specification defines the primary representation for "activities", "objects" and "media links" in terms of the JSON serialization format. Other specifications MAY define additional serializations of these items. If the new serialization is compatible with the JSON data model, the new representation SHOULD be defined as a transformation of the raw JSON structures.
Defining a new representation as a transformation from JSON will allow the new representation to automatically support additional properties added for new object types as described in Section 8 (Extension Object Types and Verbs). Otherwise the representation of these new properties must be defined on a case-by-case basis.
TOC |
A Re-publisher is an agent which receives "activities" or "objects" and then transmits these items to other agents.
When a Re-publisher transmits an "activity", the Re-publisher MUST preserve the original verb, published, actor, object and target properties. The Re-publisher MAY preserve the remaining properties, OR the Re-publisher MAY omit these properties entirely or replace these properties with locally-determined values.
When a Re-publisher transmits an object, the Re-publisher MUST maintain the full integrity of the object, including any extension properties, and retain the original id value OR, if maintaining full fidelity is not possible the Re-publisher MUST assign this copy a new id and include the id of the original object as a value of the upstreamDuplicates property of the new copy. In the latter case, a new object is created which is considered to be a duplicate of the original.
TOC |
Publishers or Consumers implementing Activity Streams as a stream of public data may also want to consider the potential for unsolicited commercial or malicious content and should take preventative measures to recognize such content and either identify it or not include it in their stream implementations.
Publishers should take reasonable measures to make sure potentially malicious user input such as cross-site scripting attacks are not included in the Activity Streams data they publish.
Consumers that re-emit ingested content to end-users MUST take reasonable measures if emitting ingested content to make sure potentially malicious ingested input is not re-emitted.
Consumers that re-emit ingested content for crawling by search engines should take reasonable measures to limit any use of their site as a Search Engine Optimization loophole. This may include converting un-trusted hyperlinks to text or including a rel="nofollow" attribute.
Consumers should be aware of the potential for spoofing attacks where the attacker publishes activities or objects with falsified property values with the intent of injecting malicious content, hiding or corrupting legitimate content, or misleading users.
Activity Streams are JSON Documents and are subject to the same security considerations described in [RFC4627] (Crockford, D., “The application/json Media Type for JavaScript Object Notation (JSON),” July 2006.).
Activity Streams implementations handle URIs. See Section 7 of [RFC3986] (Berners-Lee, T., Fielding, R., and L. Masinter, “Uniform Resource Identifier (URI),” January 2005.).
Activity Streams implementations handle IRIs. See Section 8 of [RFC3987] (Duerst, M. and M. Suignard, “Internationalized Resource Identifiers (IRIs),” January 2005.).
TOC |
None.
TOC |
As of [date], the following persons or entities have made this Specification available under the Open Web Foundation Agreement Version 1.0, which is available at http://www.openwebfoundation.org/legal/.
[List of persons or entities]
You can review the signed copies of the Open Web Foundation Agreement Version 1.0 for this Specification at http://activitystrea.ms/licensing/, which may also include additional parties to those listed above.
Your use of this Specification may be subject to other third party rights. THIS SPECIFICATION IS PROVIDED "AS IS." The contributors expressly disclaim any warranties (express, implied, or otherwise), including implied warranties of merchantability, non-infringement, fitness for a particular purpose, or title, related to the Specification. The entire risk as to implementing or otherwise using the Specification is assumed by the Specification implementer and user. IN NO EVENT WILL ANY PARTY BE LIABLE TO ANY OTHER PARTY FOR LOST PROFITS OR ANY FORM OF INDIRECT, SPECIAL, INCIDENTAL, OR CONSEQUENTIAL DAMAGES OF ANY CHARACTER FROM ANY CAUSES OF ACTION OF ANY KIND WITH RESPECT TO THIS SPECIFICATION OR ITS GOVERNING AGREEMENT, WHETHER BASED ON BREACH OF CONTRACT, TORT (INCLUDING NEGLIGENCE), OR OTHERWISE, AND WHETHER OR NOT THE OTHER PARTY HAS BEEN ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
TOC |
Changes and clarifications to this document are available at http://activitystrea.ms/specs/json/1.0/errata.
TOC |
[RFC2119] | Bradner, S., “Key words for use in RFCs to Indicate Requirement Levels,” March 1997. |
[RFC3339] | Klyne, G., “Date and Time on the Internet: Timestamps,” July 2002. |
[RFC3986] | Berners-Lee, T., Fielding, R., and L. Masinter, “Uniform Resource Identifier (URI),” January 2005. |
[RFC3987] | Duerst, M. and M. Suignard, “Internationalized Resource Identifiers (IRIs),” January 2005. |
[RFC4627] | Crockford, D., “The application/json Media Type for JavaScript Object Notation (JSON),” July 2006. |
TOC |
The authors wish to thank the Activity Streams community and implementers for their support, encouragement, and enthusiasm including but not limited to: Abdul Qabiz, Adina Levin, Adrian Chan, Adriana Javier, Alan Hoffman, Alex Kessinger, Alexander Ovchinnikov, Alexander Zhuravlev, Alexandre Loureiro Solleiro, Amy Walgenbach, Andres Vidal, Angel Robert Marquez, Ari Steinberg, Arjan Scherpenisse, Arne Roomann-Kurrik, Beau Lebens, Ben Hedrington, Ben Metcalfe, Ben Werdmuller, Benjamin Goering, Bill de hÓra, Bo Xing, Bob Aman, Bob Wyman, Brett Slatkin, Brian Walsh, Brynn Evans, Charlie Cauthen, Chris Chabot, Chris Toomey, Christian Crumlish, Dan Brickley, Dan Scott, Daniel Chapman, Danny Ayers, Dare Obasanjo, Darren Bounds, David Cramer, David Nelson, David Recordon, DeWitt Clinton, Douglas Pearce, Ed Summers, Elias Bizannes, Elisabeth Norris, Eric Marcoullier, Eric Woods, Evan Prodromou, Gee-Hsien Chuang, Greg Biggers, Gregory Foster, Henry Saputra, Hillary Madsen, Howard Liptzin, Hung Tran, Ian Kennedy, Ian Mulvany, Ivan Pulleyn, Jacob Kim, James Falkner, James Pike, James Walker, Jason Kahn, Jason Kantz, Jeff Kunins, Jeff Martin, Jian Lin, Johannes Ernst, John Panzer, Jon Lebkowsky, Jon Paul Davies, Jonathan Coffman, Jonathan Dugan, Joseph Boyle, Joseph Holsten, Joseph Smarr, Josh Brewer, Jud Valeski, Julien Chaumond, Julien Genestoux, Jyri Engeström, Kaliya Hamlin, Kevin Marks, Laurent Eschenauer, Laurie Voss, Leah Culver, Libby Miller, Manu Mukerji, Mark Weitzel, Marko Degenkolb, Marshall Kirkpatrick, Martin Svensson, Marty Alchin, Mary Hoder, Matt Leventi, Matt Wilkinson, Matthias Müller-Prove, Max Engel, Max Wegmueller, Melvin Carvalho, Michael Buckbee, Michael Chan, Michael Richardson, Michael Sullivan, Mike Macgirvin, Mislav Marohnić, Mo Jangda, Nate Benes, NeilFred Picciotto, Nick Howard, Nick Lothian, Nissan Dookeran, Nitya Narasimhan, Pablo Martin, Pádraic Brady, Pat G. Cappalaere, Patrick Aljord, Peter Ferne, Peter Reiser, Peter Saint-Andre, Phil Wolff, Philip (flip) Kromer, Richard Cunningham, Richard Zhao, Rick Severson, Robert Hall, Robert Langbert, Robin Cover, Ryan Boyd, Sam Sethi, Scott Raymond, Scott Seely, Simon Grant, Simon Wistow, Stephen Garcia, Stephen Sisk, Stephen Paul Weber, Steve Ivy, Steve Midgley, Steven Livingstone-Perez, Sylvain Carle, Sylvain Hellegouarch, Tantek Çelik, Tatu Saloranta, Tim Moore, Timothy Young, Todd Barnard, Tosh Meston, Tyler Gillies, Zach Copley, and Zach Shepherd.
TOC |
James M Snell | |
IBM | |
Martin Atkins | |
SAY Media | |
Will Norris | |
Chris Messina | |
Citizen Agency, Google | |
Monica Wilkinson | |
MySpace, Facebook, VMware | |
Rob Dolin | |
Microsoft |