| TOC |
|
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), its areas, and its working groups. Note that other groups may also distribute working documents as Internet-Drafts.
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.”
The list of current Internet-Drafts can be accessed at http://www.ietf.org/ietf/1id-abstracts.txt.
The list of Internet-Draft Shadow Directories can be accessed at http://www.ietf.org/shadow.html.
This Internet-Draft will expire on January 6, 2011.
This specification details how to serialize activities in JSON. Activities are very important in making the web a more social place as they allow individuals to process the latest news of people and things they care about.
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.).
1.
Introduction
2.
Notational Conventions
3.
Activity Concepts
3.1.
The Activity Construct
3.1.1.
Icon
3.1.2.
Time
3.1.3.
Actor
3.1.4.
Verb
3.1.5.
Object
3.1.6.
Target
3.1.7.
Generator
3.1.8.
Service Provider
3.1.9.
Title
3.1.10.
Body
3.1.11.
Standard Link
3.2.
The Object Construct
3.2.1.
ID
3.2.2.
Name
3.2.3.
Summary
3.2.4.
Representative Image
3.2.5.
Permalink URL
3.2.6.
Object Type
3.2.7.
In Reply To Object
3.2.8.
Attached Object
3.2.9.
Reply Object
3.2.10.
Reaction Activity
3.2.11.
Action Link
3.2.12.
Upstream Duplicate ID
3.2.13.
Downstream Duplicate ID
3.2.14.
Standard Link
3.3.
The Media Link Construct
3.3.1.
Target URL
3.3.2.
Media Type
3.3.3.
Width
3.3.4.
Height
3.3.5.
Duration
3.4.
The Action Link Construct
3.4.1.
Target URL
3.4.2.
Caption
4.
JSON Representation
4.1.
Activity Construct represented as JSON object
4.1.1.
Full Activity Dictionary
4.1.2.
Activity Dictionary with Implied Object
4.2.
Object Construct represented as JSON dictionary
4.2.1.
Full Object Dictionary
4.2.2.
Object Dictionary with Implied In Reply To Object
4.3.
Other Representations
4.3.1.
Media Link Construct represented as JSON dictionary
4.3.2.
Set of Standard Links represented as JSON dictionary
4.4.
Stream of Activity Constructs represented as a JSON Document
5.
The "Post" Verb
5.1.
Implied "Post" Activity
6.
Extension Object Types and Verbs
7.
Other Representations
8.
Requirements for Re-publishers
9.
Security Considerations
10.
IANA Considerations
11.
Normative References
Appendix A.
Acknowledgements
§
Authors' Addresses
| TOC |
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.
| TOC |
The text of this specification provides the sole definition of conformance. Examples in this specification are non-normative.
| TOC |
In its simplest form, an activity consists of an actor, a verb, and an object. It tells the story of a person performing an action on or with an object -- "Geraldine posted a photo" or "John shared a video". In most cases these components will be explicitly declared, but they may also be implied.
| TOC |
An activity consists of the following logical components:
| TOC |
This URI value identifies an image resource which provides a visual representation of the activity, intended for human consumption. The image SHOULD be square and SHOULD be suitable for presentation at a small size. An Activity construct MAY have an icon but it MUST NOT have more than one.
| TOC |
A Date Construct that identifies the time at which the activity occurred. It is important to note that this is not necessarily the same as the time at which the activity was published. An Activity construct MUST have exactly one Time value.
| TOC |
An Object Construct (The Object Construct) that identifies the entity that performed the activity. An Activity construct MUST have exactly one actor.
| TOC |
A string value that identifies the type of action performed. See Activity Schema (, “Atom Activity Base Schema (Draft),” .) [activity‑schema‑01] for the list of verbs the community has agreed on using and what each one means.
Publishers can invent their own verbs but it is recommended for them to register these verbs so that consumers can rely on using the same definition whenever they see a verb.
| TOC |
This Object Construct (The Object Construct) identifies the primary object of the activity. An Activity construct MUST have exactly one object.
| TOC |
The target of an activity is an Object Construct (The Object Construct) that represents the object to which the activity was performed. The exact meaning of an activity's target is dependent on the verb of the activity, but will often be the object of the English preposition "to". For example, 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 identify an indirect object that is not a target of the activity. An Activity construct MAY have a target but it MUST NOT have more than one.
| TOC |
The generator of an activity is an Object Construct (The Object Construct) that represents the application which created it, which may be separate from the service to which the activity is published. For example, a third-party application on a mobile phone may be used to post a photo to a photo sharing service. An Activity construct MAY have a generator but it MUST NOT have more than one.
| TOC |
The service provider of an activity is an Object Construct (The Object Construct) that represents the service which is publishing the activity. An Activity Construct MAY have a provider but it MUST NOT have more than one.
| TOC |
An HTML representation of the natural language title for this activity. Consumers MAY use the value of this field, if set, as a fallback for when none of the provided verbs are recognized. An Activity Construct MAY have a title but it MUST NOT have more than one.
| TOC |
An HTML representation of a natural language describing this activity including visual elements such as thumbnails. Consumers MAY use the value of this field, if set, as a fallback for when none of the provided verbs are recognized. An Activity Construct MAY have a body but it MUST NOT have more than one.
| TOC |
A Link as defined by section 3 of [draft‑nottingham‑http‑link‑header‑10] (Nottingham, M., “Web Linking,” May 2010.). An Activity Construct MAY have one ore more Standard Links.
This component is provided to allow the use of the registry of link relations defined by the Web Linking specification to create links between an Activity Construct and other resources. The Context of the Link is the Object Construct. This component MUST NOT be used to publish data that matches a meaning that could be published by another Activity Streams component.
| TOC |
An object construct 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 the logical components defined in the following sections. Certain object types may further refine the meaning of these components, or they may define additional components. If an object type defines an additional component then it SHOULD also define the representation of that component in one or more serialization formats.
| TOC |
The id of an object construct is an absolute URI that uniquely identifies the object. An Object construct SHOULD have exactly one ID value. If an object construct does not have an ID value consumers MAY use the Permalink URL as a weaker identifier, but must in this case allow for the fact that Permalink URL is not defined to be unique across all objects and be prepared to handle duplicates.
| TOC |
This string value provides a human readable display name for the object, if the object has a name. An Object construct MAY have a name, but MUST NOT have more than one.
| TOC |
This string value provides a human readable description or summary of the Object. An Object construct MAY have a summary, but MUST NOT have more than one.
| TOC |
A Media Link Construct (The Media Link Construct) that identifies an image resource which provides a visual representation of the object, intended for human consumption. An Object construct MAY have a representative image, but MUST NOT have more than one.
| TOC |
This URI value identifies a resource which provides an HTML representation of the object. An Object construct MAY have a Permalink URL, but MUST NOT have more than one. The presence of this construct implies a Link as defined in section 3 of [draft‑nottingham‑http‑link‑header‑10] (Nottingham, M., “Web Linking,” May 2010.) whose Context is this Object Construct, whose Link Relation Type is "alternate" and whose Target IRI is the Permalink URL value.
| TOC |
A string value that identifies the type of object. See Activity Schema (, “Atom Activity Base Schema (Draft),” .) [activity‑schema‑01] for the list of object types the community has agreed on using and what each one means.
If no object type is present, the object has no specific type. Consumers SHOULD refer to such objects only by their names. For example, when forming an activity sentence a consumer might say "Johan posted 'My Cat'" rather than "Johan posted a photo: 'My Cat'".
| TOC |
An Object Construct (The Object Construct) that this object is a response to. An Object Construct MAY have one In Reply To Object, but MUST NOT have more than one.
This is not set unless the Object Construct is a response to another Object Construct.
| TOC |
An Object Construct (The Object Construct) that is attached to this object. An Object Construct MAY have one or more attached objects.
An attached Object Construct can be used when one object is used as a wrapper or carrier for another object, similar to the concept of attached files in an email message.
| TOC |
An Object Construct (The Object Construct) that has this Object Construct as its In Reply To Object. An Object Construct MAY have one more more Reply Objects.
In many cases a specific publication of an object will include only a selection of the full set of objects posted as replies to this object. Publishers MAY choose any subset of the set of all reply objects to include. Publishers MAY make available a complete list of reply objects for a particular object via a separate mechanism, but that mechanism is not defined by this specification.
| TOC |
An Activity Construct (The Activity Construct) that describes an Activity whose Object is this Object Construct. An Object Construct MAY have one or more Reaction Activities.
In many cases a specific publication of an object will include only a selection of the full set of activities that are reactions to this object. Publishers MAY choose any subset of the set of all reaction activities to include. Publishers MAY make available a complete list of reaction activities for a particular object via a separate mechanism, but that mechanism is not defined by this specification.
| TOC |
An Action Link (The Action Link Construct) that represents an action that a human could perform on this object. An Object Construct MAY have one or more Action Links.
| TOC |
A string containing the ID value of another Object Construct for which this Object Construct is a duplicate created by re-publishing. An Object Construct MAY have one or more Upstream Duplicate IDs.
A publisher SHOULD use this component if it is knowingly duplicating with a new ID the content from an Object Construct that was obtained elsewhere. This MAY be used as a hint for consumers to use when resolving duplicates between objects received from different sources.
| TOC |
A string containing the ID value of another Object Construct for which was created as a duplicate of this Object Construct. An Object Construct MAY have one or more Downstream Duplicate IDs.
A publisher SHOULD use this component if has knowingly created another Object Construct with a new ID, possibly in another system, that duplicates the content in this object. A publisher might choose to do this in order to make the content available to a wider audience. This MAY be used as a hint for consumers to use when resolving duplicates between objects received from different sources.
| TOC |
A Link as defined by section 3 of [draft‑nottingham‑http‑link‑header‑10] (Nottingham, M., “Web Linking,” May 2010.). An Object Construct MAY have one ore more Standard Links.
This component is provided to allow the use of the registry of link relations defined by the Web Linking specification to create links between an Object Construct and other resources. The Context of the Link is the Object Construct. This component MUST NOT be used to publish data that matches a meaning that could be published by another Activity Streams component.
| TOC |
A Media Link Construct represents a hyperlink to a media item. TODO: elaborate
A Media Link Construct consists of the logical components defined in the following sections.
| TOC |
The URL that is the target of this hyperlink. A Media Link Construct MUST have one Target URL and MUST NOT have more than one.
| TOC |
A hint to the consumer about the media type of the target resource. The value of this component is a media type as defined in [TODO: reference and xref]. A Link Construct MAY have one Media Type but MUST NOT have more than one.
| TOC |
A hint to the consumer about the natural width of the resource that is the target of this hyperlink, in pixels. This MAY be included when the target resource is a visual media item such as an image, video or embeddable HTML page, but a Link Construct MUST NOT have more than one Width.
| TOC |
A hint to the consumer about the natural height of the resource that is the target of this hyperlink, in pixels. This MAY be included when the target resource is a visual media item such as an image, video or embeddable HTML page, but a Link Construct MUST NOT have more than one Height.
| TOC |
A hint to the consumer about the length of the resource that is the target of this hyperlink, in seconds. This MAY be included when the target resource is a time-based media item such as an audio or video, but a Link Construct MUST NOT have more than one Duration.
| TOC |
An Action Link Construct represents a hyperlink at which an action can be performed. TODO: elaborate
An Action Link Construct consists of the logical components defined in the following sections.
| TOC |
The URL that is the target of this hyperlink. An Action Link Construct MUST have one Target URL and MUST NOT have more than one.
| TOC |
The human-readable caption of the UI element that a user will interact with in order to navigate to the Target URL. An Action Link Construct MUST have one Caption and MUST NOT have more than one.
| TOC |
An Activity Construct can be represented with the JSON format, as defined in [RFC4627] (Crockford, D., “The application/json Media Type for JavaScript Object Notation (JSON),” July 2006.), using the object structures defined in the following subsections. This object model MAY be applied to other serialization formats with a similar data model to JSON.
In order to avoid confusion with the Object Construct concept in the Activity Streams data model, in this section the term "dictionary" will be used to refer to the JSON object data type.
In the JSON dictionary structures defined in the following subsections, absent components 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.
| TOC |
An Activity Construct is represented in JSON as a JSON dictionary. The primary representation of an Activity Construct in JSON is a Full Activity Dictionary as described in Section 4.1.1 (Full Activity Dictionary).
| TOC |
The components of the Activity Construct are represented in this JSON as follows:
- Actor
- The Actor (Actor) of the Activity Construct is represented by a property named actor whose value is a JSON dictionary as described in Section 4.2 (Object Construct represented as JSON dictionary).
- Object
- The Object (Object) of the Activity Construct is represented by a property named object whose value is a JSON dictionary as described in Section 4.2 (Object Construct represented as JSON dictionary).
- Target
- The Target (Target) of the Activity Construct is represented by a property named target whose value is a JSON dictionary as described in Section 4.2 (Object Construct represented as JSON dictionary).
- Verb
- The verb (Verb) of the Activity Construct is represented by a property named verb whose value is a JSON string.
- Time
- The Time (Time) of the Activity Construct is represented by a property named postedTime whose value is a JSON string containing a timestamp in W3CDTF format as described in [TODO: xref W3CDTF spec].
- Generator
- The Generator (Generator) of the Activity Construct is represented by a property named generator whose value is a JSON dictionary as described in Section 4.2 (Object Construct represented as JSON dictionary).
- Service Provider
- The Service Provider (Service Provider) of the Activity Construct is represented by a property named provider whose value is a JSON dictionary as described in Section 4.2 (Object Construct represented as JSON dictionary).
- Title
- The Title (Title) of the Activity Construct is represented by a property named title whose value is a JSON string containing the title value. This string MUST be a HTML fragment that would be valid in an inline context as described in [TODO: what can we reference for this definition?].
- Body
- The Body (Body) of the Activity Construct is represented by a property named body whose value is a JSON string containing the body value. This string MUST be a HTML fragment that would be valid in a block context as described in [TODO: what can we reference for this definition?].
- Standard Link
- The set of Standard Links (Standard Link) of the Activity Construct is represented as described in Section 4.3.2 (Set of Standard Links represented as JSON dictionary).
| TOC |
The components of the Activity Construct are represented in JSON as defined in Section 4.1.1 (Full Activity Dictionary) except for the following exception:
- Object
- The Object Component is not explicitly represented inside the JSON dictionary, and is instead implied by context. The contextual object is defined as part of the definition of any property which uses this representation for its value.
| TOC |
An Object Construct is represented in JSON as a JSON dictionary. The primary representation of an Object Construct is a Full Object Dictionary as defined in Section 4.2.1 (Full Object Dictionary).
| TOC |
The components of the Object Construct are represented in this dictionary as follows:
- ID
- The ID (ID) of the Object Construct is represented by a property named id whose value is a JSON string containing the ID.
- Name
- The name (Name) of the Object Construct is represented by a property named displayName whose value is a JSON string containing the name.
- Summary
- The summary (Summary) of the Object Construct is represented by a property called summary whose value is a JSON string containing the summary.
- Representative Image
- The representative image (Representative Image) of the Object Construct is represented by a property called image whose value is a JSON dictionary as defined in Section 4.3.1 (Media Link Construct represented as JSON dictionary).
- Permalink URL
- The permalink URL (Permalink URL) of the Object Construct is represented by a property named link whose value is a JSON string containing the permalink URL.
- Object Type
- The object type (Object Type) of the Object Construct is represented by a property named objectType whose value is a JSON string.
- In Reply To Object
- The In Reply To Object (In Reply To Object) of the Object Construct is represented by a property called inReplyTo whose value is a JSON dictionary as described in Section 4.2 (Object Construct represented as JSON dictionary).
- Reply Object
- The set of Reply Objects (Reply Object) that the publisher choses to include for this object is represented by a property named replies whose value is a JSON array of JSON objects of the form defined in Section 4.2.2 (Object Dictionary with Implied In Reply To Object), where the implied In Reply To Object is the Object Construct represented by the JSON object which contains this replies property.
- Reaction Activity
- The set of Reaction Activities (Reaction Activity) that the publisher choses to include for this object is represented by a property named reactions whose value is a JSON array of JSON objects of the form defined in Section 4.1.2 (Activity Dictionary with Implied Object), where the implied Object is the Object Construct represented by the JSON object which contains this replies property.
- Attached Object
- Thee set of Attached Objects (Attached Object) of the Object Construct is represented by a property called attachedObjects whose value is a JSON array of JSON dictionaries as described in Section 4.2 (Object Construct represented as JSON dictionary).
- Upstream Duplicate ID
- The set of Upstream Duplicate IDs (Upstream Duplicate ID) of the Object Construct is represented by a property named upstreamDuplicates whose value is a JSON array of JSON string values containing the ID URIs.
- Downstream Duplicate ID
- The set of Downstream Duplicate IDs (Downstream Duplicate ID) of the Object Construct is represented by a property named downstreamDuplicates whose value is a JSON array of JSON string values containing the ID URIs.
- Standard Link
- The set of Standard Links (Standard Link) of the Activity Construct is represented as described in Section 4.3.2 (Set of Standard Links represented as JSON dictionary).
| TOC |
The components of the Object Construct are represented in JSON as defined in Section 4.2.1 (Full Object Dictionary) except for the following exception:
- In Reply To Object
- The In Reply To Object Component is not explicitly represented inside the JSON dictionary, and is instead implied by context. The contextual object is defined as part of the definition of any property which uses this representation for its value.
| TOC |
[TODO: write something here]
| TOC |
The components of a Media Link Construct is represented by a JSON dictionary as follows:
- Target URL
- Represented by the url property of the JSON dictionary.
- Width
- Represented by the width property of the JSON dictionary.
- Height
- Represented by the height property of the JSON dictionary.
- Duration
- Represented by the duration property of the JSON dictionary.
| TOC |
The set of Standard Link components of both an Activity Construct and an Object Construct are represented by a JSON dictionary whose properties are named for Link Relation Types as defined in [draft‑nottingham‑http‑link‑header‑10] (Nottingham, M., “Web Linking,” May 2010.). Valid Link Relation Types and their meanings are defined in the Link Relation Type registry created by that specification. A particular property MUST NOT be included unless there is at least one link in the set with the corresponding Link Relation Type.
The value of each of the properties is a JSON array containing a JSON object for each Link in the set with the corresponding Link Relation Type. containing a property href whose value is a JSON string containing the Target URI of the link it represents. Target Attributes of the Link are represented by additional properties whose names correspond to Target Attributes defined for the link, where the value of each is a JSON string containing the value of the corresponding Target Attribute.
| TOC |
The above defined JSON dictionary formats can be used to represent the Activity Streams concepts in any JSON context. This section defines one particular use of the above dictionary formats to publish a JSON document that represents a set of Activity Constructs.
Publishers using this format MUST produce a valid JSON document whose root value is a JSON object. This document MUST include a property named items whose value is a JSON array of JSON dictionaries of the form described in Section 4.1.1 (Full Activity Dictionary). Other properties MAY be included in the root JSON object, but the meaning of these properties is not defined by this specification.
| TOC |
This specification defines one initial verb and defers to other specifications to define the full schema of verb and object types as defined in Section 6 (Extension Object Types and Verbs).
The "Post" verb describes the act of authoring an object and then publishing it online. The verb URI for the "Post" verb is http://activitystrea.ms/schema/1.0/post.
The actor of an Activity Construct using the "Post" verb is an Object Construct representing the person or object that authored and posted the item represented by the object of the Activity Construct.
The target of the Activity Construct, if present, represents the item into which the object is posted. For example, this could represent a blog that the author has posted in.
It is not appropriate to use the target of the Activity Construct to represent an Object Construct that this new Object Construct is posted in reply to. Instead, this SHOULD be represented as the In Reply To Object component of the new object.
| 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 Construct even if such an activity was never explicitly published or received. The components of this implied activity are as follows; any component 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 (Actor) of the Activity Construct 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 (Object) of the Activity Construct is the object for which this implied activity is being constructed.
- Verb
- The Activity Construct has the "Post" verb as defined in Section 5 (The "Post" Verb) as its only Verb (Verb).
- Time
- The Time (Time) of the Activity Construct is unknown unless the consumer is able to infer a time based on an extension property defined for the Object Construct's Object Type that is defined to be the time the object was created and/or posted online.
| TOC |
Other specifications MAY define new object types and verbs for use with the concepts and serializations defined in this specification.
When defining a new verb, the defining specification MUST provide a verb identifier URI for the new verb and MUST define the meaning of the verb in terms of the Actor, Object and Target components of the Activity Construct, 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 URI for the new object type. The definition of the new object type MAY define additional components specific to that object type; if so, the specification SHOULD define how these additional components are to be represented as JSON properties, and the specification MAY define how these additional components 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 Construct components as long as the new definition remains compatible with the definition of the base component. New Object Construct components SHOULD be defined such that the object would remain useful if those components are omitted or removed during processing, to enable graceful fallback by consumers that do not implement the extension components or alternative representations that are unable to represent the extensions.
| TOC |
This specification defines the primary representation for the Activity Streams concepts in terms of the JSON serialization format. Other specifications MAY define additional representations of the Activity Streams concepts. If the new representation is compatible with the JSON data model, the new representation SHOULD be defined as a transformation of the raw JSON structures. Otherwise, the new representation MAY be defined in terms of the Activity Streams concepts in Section 3 (Activity Concepts).
Defining a new representation as a transformation from JSON will allow the new representation to automatically support additional components added for new object types as described in Section 6 (Extension Object Types and Verbs). Otherwise the representation of these new components must be defined on a case-by-case basis.
| TOC |
A Re-publisher is an agent which receives Activity Constructs or Object Constructs and then transmits these items to other agents.
When a Re-publisher transmits an Activity Construct, the Re-publisher MUST preserve the original Verb and Posted Time components, MUST re-publish the Actor, Object and Target components as defined in the previous paragraph. 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 Construct, the Re-publisher MUST maintain the full integrity of the Object Construct, 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 Upstream Duplicates component of the new copy. In the latter case, a new Object Construct is created which is considered to be a duplicate of the original Object Construct.
| 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.
| TOC |
None.
| TOC |
| [RFC2119] | Bradner, S., “Key words for use in RFCs to Indicate Requirement Levels,” March 1997. |
| [RFC3986] | Berners-Lee, T., Fielding, R., and L. Masinter, “Uniform Resource Identifiers (URI): Generic Syntax,” 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. |
| [activity-schema-01] | “Atom Activity Base Schema (Draft).” |
| [draft-nottingham-http-link-header-10] | Nottingham, M., “Web Linking,” May 2010. |
| TOC |
...
| TOC |
| Martin Atkins | |
| Six Apart | |
| Will Norris | |
| Chris Messina | |
| Citizen Agency, Google | |
| Monica Keller | |
| MySpace, Facebook | |
| Rob Dolin | |
| Microsoft |