=Claim Protocol Technical Specification This document describes the claim protocol. The claim protocol informs blogs that their owners have authored artifacts on other sites. For example, it allows website A to tell website B that A contains a comment authored by B's owner. Website B can then show a list of remote comments. =Motivating Use Case The claim protocol facilitates the following use case: 1. Blogger Erigami sees an interesting post on the CheeseDoodle.com blog, and decides comment on it. 2. When Erigami enters his identity for the CD blog comment, he enters the URL of his blog: http://piepalace.ca/blog. 3. The Cheese Doodle blog informs PiePalace.ca that has received (and approved) a comment from Erigami. 4. PiePalace.ca displays a link to Erigami's comment on the CD blog. Readers of PiePalace.ca can chase the link and read something that may (or may not) be of interest. =Protocol The claim protocol is similar to the trackback mechanism, in that it uses an RPC-over-HTTP-like mechanism for two blogs to communicate. In the protocol there are three actors: a human comment author, the commented blog, and the owner's blog. The commented blog has a comment that is of interest to the owner's blog. The owner's blog wants to display a link to that comment.
Commented Blog Owner's Blog
| |
1. -- Comment submission --} | |
v |
2. Validate comment |
| |
[Discovery] | |
| |
3. |------------- Query for Claim URI --} |
| |
4. | {-- Claim service URI ---------------|
| |
[Transmission] | |
| |
5. |------------- Submit item details --} |
| v
6. | Validate claim syntax
| |
7. | {-- Respond -------------------------|
| |
This scenario starts with the user (1) submitting a comment to the Commented Blog and (2) validating that is fit to be posted. The Commented Blog then performs two steps: discovery of the claim URI for the given blog, and transmission of the claim.
The claim URI is discovered by downloading the blog's main page searching it for a special link tag. The (3) download takes the form of an HTTP(s) GET request from the Commented Blog to the URI submitted with the comment. The Owner's Blog (4) replies with its usual front-page content, which must include a link tag with a rel of "claim" and an href of the claim URI. The Commented Blog finds that URI and moves on to the transmission step.
The transmission step sends the details of the claim to the Owner's Blog. The Commented Blog (5) sends an HTTP(s) GET or POST request to the discovered URI. The Owner's Blog (6) checks that the claim has the appropriate fields, and (7) sends a response. The response is carried in a normal HTTP 200 response, but with the first line of the form ### - Reason, where ### is an HTTP response code, and Reason is a human-meaningful explanation of the response.
At the end of this interaction, the Commented Blog MAY notify the user from (1) that a claim has been submitted. The Owner's Blog is expected to store the claim so that the user can validate it. After validation, the Owner's Blog will presumably show a link to the comment.
=Claim Payload
The claim submission in Step 5 should include the following fields: