This commit is contained in:
stpeter 2011-06-01 11:31:47 -06:00
parent d6c066f698
commit 3f921ac8dc
1 changed files with 69 additions and 49 deletions

View File

@ -17,9 +17,16 @@
<dependencies/>
<supersedes/>
<supersededby/>
<shortname>NOT YET ASSIGNED</shortname>
<shortname>microblog</shortname>
&stpeter;
&hildjj;
<author>
<firstname>Sergey</firstname>
<surname>Dobrov</surname>
<email>binary@jrudevels.org</email>
<jid>binary@jrudevels.org</jid>
<uri>http://jrudevels.org/</uri>
</author>
<author>
<firstname>Valérian</firstname>
<surname>Saliou</surname>
@ -27,6 +34,12 @@
<jid>vanaryon@jappix.com</jid>
<uri>http://vanaryon.eu/</uri>
</author>
<revision>
<version>0.4</version>
<date>2011-06-01</date>
<initials>vs</initials>
<remark><p>Added microblog informations feature, ID innacurracy fixed, urn:xmpp:inbox support added, new commenting namespaces, first comment marker, security considerations added.</p></remark>
</revision>
<revision>
<version>0.3</version>
<date>2011-04-26</date>
@ -94,10 +107,6 @@ xmpp:romeo@montague.lit?;node=urn%3Axmpp%3Amicroblog%3A0
<item id='1cb57d9c-1c46-11dd-838c-001143d5d5db'>
<entry xmlns='http://www.w3.org/2005/Atom'>
<source>
<title>Romeo&amp;apos;s Microblog</title>
<link href='http://montague.lit/romeo'/>
<id>tag:montague.lit,2008:home</id>
<updated>2008-05-08T18:30:02Z</updated>
<author>
<name>Romeo Montague</name>
<uri>xmpp:romeo@montague.lit</uri>
@ -109,7 +118,7 @@ xmpp:romeo@montague.lit?;node=urn%3Axmpp%3Amicroblog%3A0
href='http://montague.lit/romeo/posts/1cb57d9c-1c46-11dd-838c-001143d5d5db'/>
<link rel='alternate'
href='xmpp:romeo@montague.lit?;node=urn%3Axmpp%3Amicroblog%3A0;item=1cb57d9c-1c46-11dd-838c-001143d5d5db'/>
<id>tag:montague.lit,2008-05-08T18:30:02Z:posts-1cb57d9c-1c46-11dd-838c-001143d5d5db</id>
<id>tag:montague.lit,2008-05-08:posts-1cb57d9c-1c46-11dd-838c-001143d5d5db</id>
<published>2008-05-08T18:30:02Z</published>
<updated>2008-05-08T18:30:02Z</updated>
</entry>
@ -131,10 +140,6 @@ xmpp:romeo@montague.lit?;node=urn%3Axmpp%3Amicroblog%3A0
<item id='1cb57d9c-1c46-11dd-838c-001143d5d5db'>
<entry xmlns='http://www.w3.org/2005/Atom'>
<source>
<title>Romeo&amp;apos;s Microblog</title>
<link href='http://montague.lit/romeo'/>
<id>tag:montague.lit,2008:home</id>
<updated>2008-05-08T18:30:02Z</updated>
<author>
<name>Romeo Montague</name>
<uri>xmpp:romeo@montague.lit</uri>
@ -146,7 +151,7 @@ xmpp:romeo@montague.lit?;node=urn%3Axmpp%3Amicroblog%3A0
href='http://montague.lit/romeo/posts/1cb57d9c-1c46-11dd-838c-001143d5d5db'/>
<link rel='alternate'
href='xmpp:romeo@montague.lit?;node=urn%3Axmpp%3Amicroblog%3A0;item=1cb57d9c-1c46-11dd-838c-001143d5d5db'/>
<id>tag:montague.lit,2008-05-08T18:30:02Z:posts-1cb57d9c-1c46-11dd-838c-001143d5d5db</id>
<id>tag:montague.lit,2008-05-08:posts-1cb57d9c-1c46-11dd-838c-001143d5d5db</id>
<published>2008-05-08T18:30:02Z</published>
<updated>2008-05-08T18:30:02Z</updated>
</entry>
@ -170,10 +175,6 @@ xmpp:romeo@montague.lit?;node=urn%3Axmpp%3Amicroblog%3A0
<entry xmlns='http://www.w3.org/2005/Atom'
xmlns:thr='http://purl.org/syndication/thread/1.0'>
<source>
<title>Benvolio&amp;apos;s Microblog</title>
<link href='http://montague.lit/benvolio'/>
<id>tag:montague.lit,2008:home</id>
<updated>2008-05-08T18:31:21Z</updated>
<author>
<name>Benvolio Montague</name>
<uri>xmpp:romeo@montague.lit</uri>
@ -187,15 +188,15 @@ xmpp:romeo@montague.lit?;node=urn%3Axmpp%3Amicroblog%3A0
href='xmpp:benvolio@montague.lit?;
node=urn%3Axmpp%3Amicroblog%3A0;
item=c4145006-1c53-11dd-b2d5-000bcd82471e'/>
<id>tag:montague.lit,2008-05-08T18:31:21Z:posts-c4145006-1c53-11dd-b2d5-000bcd82471e</id>
<id>tag:montague.lit,2008-05-08:posts-c4145006-1c53-11dd-b2d5-000bcd82471e</id>
<published>2008-05-08T18:31:21Z</published>
<updated>2008-05-08T18:31:21Z</updated>
<thr:in-reply-to
ref='tag:montague.lit,2008-05-08T18:30:02Z:posts-1cb57d9c-1c46-11dd-838c-001143d5d5db'
ref='tag:montague.lit,2008-05-08:posts-1cb57d9c-1c46-11dd-838c-001143d5d5db'
type='application/xhtml+xml'
href='http://montague.lit/romeo/posts/1cb57d9c-1c46-11dd-838c-001143d5d5db'/>
<thr:in-reply-to
ref='tag:montague.lit,2008-05-08T18:30:02Z:posts-1cb57d9c-1c46-11dd-838c-001143d5d5db'
ref='tag:montague.lit,2008-05-08:posts-1cb57d9c-1c46-11dd-838c-001143d5d5db'
href='xmpp:romeo@montague.lit?;node=urn%3Axmpp%3Amicroblog%3A0;item=1cb57d9c-1c46-11dd-838c-001143d5d5db'/>
</entry>
</item>
@ -218,10 +219,6 @@ xmpp:romeo@montague.lit?;node=urn%3Axmpp%3Amicroblog%3A0
<item id='1re57d3c-1q46-11dd-748r-024943d2d5rt'>
<entry xmlns='http://www.w3.org/2005/Atom'>
<source>
<title>Benvolio&amp;apos;s Microblog</title>
<link href='http://montague.lit/benvolio'/>
<id>tag:montague.lit,2008:home</id>
<updated>2008-05-08T18:30:02Z</updated>
<author>
<name>Romeo Montague</name>
<uri>xmpp:romeo@montague.lit</uri>
@ -233,7 +230,7 @@ xmpp:romeo@montague.lit?;node=urn%3Axmpp%3Amicroblog%3A0
href='http://montague.lit/benvolio/posts/1re57d3c-1q46-11dd-748r-024943d2d5rt'/>
<link rel='alternate'
href='xmpp:benvolio@montague.lit?;node=urn%3Axmpp%3Amicroblog%3A0;item=1re57d3c-1q46-11dd-748r-024943d2d5rt'/>
<id>tag:montague.lit,2008-05-08T18:31:21Z:posts-1re57d3c-1q46-11dd-748r-024943d2d5rt</id>
<id>tag:montague.lit,2008-05-08:posts-1re57d3c-1q46-11dd-748r-024943d2d5rt</id>
<published>2008-05-08T18:30:02Z</published>
<updated>2008-05-08T18:32:02Z</updated>
</entry>
@ -256,10 +253,6 @@ xmpp:romeo@montague.lit?;node=urn%3Axmpp%3Amicroblog%3A0
<item id='1df87v1q-2d12-43se-761w-318790d3g1sq'>
<entry xmlns='http://www.w3.org/2005/Atom'>
<source>
<title>Romeo&amp;apos;s Microblog</title>
<link href='http://montague.lit/romeo'/>
<id>tag:montague.lit,2008:home</id>
<updated>2008-05-08T18:35:02Z</updated>
<author>
<name>Romeo Montague</name>
<uri>xmpp:romeo@montague.lit</uri>
@ -288,7 +281,7 @@ xmpp:romeo@montague.lit?;node=urn%3Axmpp%3Amicroblog%3A0
type='application/pdf'
length='67123'
href='http://montague.lit/romeo/files/82he1oh2084s.pdf'/>
<id>tag:montague.lit,2008-05-08T18:35:02Z:posts-1df87v1q-2d12-43se-761w-318790d3g1sq</id>
<id>tag:montague.lit,2008-05-08:posts-1df87v1q-2d12-43se-761w-318790d3g1sq</id>
<published>2008-05-08T18:35:02Z</published>
<updated>2008-05-08T18:35:02Z</updated>
</entry>
@ -304,7 +297,7 @@ xmpp:romeo@montague.lit?;node=urn%3Axmpp%3Amicroblog%3A0
<section1 topic='Comments' anchor='comments'>
<p>Juliet and Benvolio may want to discuss about latest Romeo's post. Romeo's client MIGHT add a <link /> element to the PubSub item. The element MUST have "rel", "title" and "href" attributes, where "rel" MUST have the "replies" value; "title" MUST have the "comments" value; "href" MUST be an XMPP URI (see &rfc5122; and &rfc3986;).</p>
<section2 topic='Post Comments' anchor='post_comments'>
<p>We assume Romeo's client first created a comments node (named "urn:xmpp:microblog:0:comments:hash", where "hash" is a client-side generated random hash), with defaults "pubsub#access_model" and "pubsub#publish_model" privacy settings (see &xep0060; for node creation and configuration).</p>
<p>We assume Romeo's client first created a comments node (named "urn:xmpp:microblog:0:comments/ID", where "ID" is the microblog item ID, or the SHA-1 encoded attachement URI, as defined in &rfc3174;), with defaults "pubsub#access_model" and "pubsub#publish_model" privacy settings (see &xep0060; for node creation and configuration).</p>
<example caption="Adding a comments link to a Post"><![CDATA[
<iq from='romeo@montague.lit/pda'
id='pub4'
@ -315,10 +308,6 @@ xmpp:romeo@montague.lit?;node=urn%3Axmpp%3Amicroblog%3A0
<item id='2ze57d9c-1c46-21df-830c-002143d3d2qgf'>
<entry xmlns='http://www.w3.org/2005/Atom'>
<source>
<title>Romeo&amp;apos;s Microblog</title>
<link href='http://montague.lit/romeo'/>
<id>tag:montague.lit,2008:home</id>
<updated>2008-05-08T18:30:02Z</updated>
<author>
<name>Romeo Montague</name>
<uri>xmpp:romeo@montague.lit</uri>
@ -332,8 +321,8 @@ xmpp:romeo@montague.lit?;node=urn%3Axmpp%3Amicroblog%3A0
href='xmpp:romeo@montague.lit?;node=urn%3Axmpp%3Amicroblog%3A0;item=2ze57d9c-1c46-21df-830c-002143d3d2qgf'/>
<link rel='replies'
title='comments'
href='xmpp:romeo@montague.lit?;node=urn%3Axmpp%3Amicroblog%3A0%3Acomments%3Add88c9bc58886fce0049ed050df0c5f2'/>
<id>tag:montague.lit,2008-05-08T18:38:02Z:posts-2ze57d9c-1c46-21df-830c-002143d3d2qgf</id>
href='xmpp:romeo@montague.lit?;node=urn%3Axmpp%3Amicroblog%3A0%3Acomments%2Fdd88c9bc58886fce0049ed050df0c5f2'/>
<id>tag:montague.lit,2008-05-08:posts-2ze57d9c-1c46-21df-830c-002143d3d2qgf</id>
<published>2008-05-08T18:38:02Z</published>
<updated>2008-05-08T18:38:02Z</updated>
</entry>
@ -342,6 +331,7 @@ xmpp:romeo@montague.lit?;node=urn%3Axmpp%3Amicroblog%3A0
</pubsub>
</iq>
]]></example>
<p>If the comment to publish is the first item of the node, the client MAY add a "link" element, with the "rel=start" attribute. In this way, clients can determine which comment is the first one of a discussion.</p>
</section2>
<section2 topic='Attachement Comments' anchor='attachement_comments'>
<p>As we do for <link url='#post_comments'>Post Comments</link>, Romeo's client MAY create one comments PubSub node for each attachement of a post (see section of <link url='#attach'>Attaching files to a Post</link> of this document).</p>
@ -356,10 +346,6 @@ xmpp:romeo@montague.lit?;node=urn%3Axmpp%3Amicroblog%3A0
<item id='1af87d4i-3f09-41gt-871e-098182g4b2az'>
<entry xmlns='http://www.w3.org/2005/Atom'>
<source>
<title>Romeo&amp;apos;s Microblog</title>
<link href='http://montague.lit/romeo'/>
<id>tag:montague.lit,2008:home</id>
<updated>2008-05-08T18:54:02Z</updated>
<author>
<name>Romeo Montague</name>
<uri>xmpp:romeo@montague.lit</uri>
@ -379,9 +365,9 @@ xmpp:romeo@montague.lit?;node=urn%3Axmpp%3Amicroblog%3A0
<link xmlns='urn:xmpp:microblog:0'
rel='replies'
title='comments_file'
href='xmpp:romeo@montague.lit?;node=urn%3Axmpp%3Amicroblog%3A0%3Acomments%3Aa9fe0b44ea62c6be71fac8471696fece'/>
href='xmpp:romeo@montague.lit?;node=urn%3Axmpp%3Amicroblog%3A0%3Acomments%2Fa9fe0b44ea62c6be71fac8471696fece'/>
</link>
<id>tag:montague.lit,2008-05-08T18:54:02Z:posts-1af87d4i-3f09-41gt-871e-098182g4b2az</id>
<id>tag:montague.lit,2008-05-08:posts-1af87d4i-3f09-41gt-871e-098182g4b2az</id>
<published>2008-05-08T18:54:02Z</published>
<updated>2008-05-08T18:54:02Z</updated>
</entry>
@ -393,13 +379,14 @@ xmpp:romeo@montague.lit?;node=urn%3Axmpp%3Amicroblog%3A0
</section2>
<section2 topic='Adding a comment' anchor='comment_add'>
<p>If Juliet wants to comment Romeo's latest post, her client MUST then send a new Atom entry to the defined PubSub node.</p>
<p>Note: A comments node SHOULD be located at a personal eventing (PEP) node but MAY be located at a generic publish-subscribe node that is not attached to a user's IM account.</p>
<example caption="Adding a comment to a comments node"><![CDATA[
<iq from='juliet@capulet.lit/pc'
id='comment1'
to='juliet@capulet.lit'
type='set'>
<pubsub xmlns='http://jabber.org/protocol/pubsub'>
<publish node='urn:xmpp:microblog:0:comments:dd88c9bc58886fce0049ed050df0c5f2'>
<publish node='urn:xmpp:microblog:0:comments/dd88c9bc58886fce0049ed050df0c5f2'>
<item id='b2106a80de39ef5ec6b8f7b69cb610c2'>
<entry xmlns='http://www.w3.org/2005/Atom'>
<source>
@ -433,10 +420,6 @@ xmpp:romeo@montague.lit?;node=urn%3Axmpp%3Amicroblog%3A0
<item id='1zr23z8a-3g12-34fh-750b-120867gjc1sqh'>
<entry xmlns='http://www.w3.org/2005/Atom'>
<source>
<title>Romeo&amp;apos;s Microblog</title>
<link href='http://montague.lit/romeo'/>
<id>tag:montague.lit,2008:home</id>
<updated>2008-05-08T18:43:01Z</updated>
<author>
<name>Romeo Montague</name>
<uri>xmpp:romeo@montague.lit</uri>
@ -450,8 +433,8 @@ xmpp:romeo@montague.lit?;node=urn%3Axmpp%3Amicroblog%3A0
href='xmpp:romeo@montague.lit?;node=urn%3Axmpp%3Amicroblog%3A0;item=1zr23z8a-3g12-34fh-750b-120867gjc1sqh'/>
<link rel='replies'
title='comments'
href='xmpp:romeo@montague.lit?;node=urn%3Axmpp%3Amicroblog%3A0%3Acomments%3A36ec6dfe61e52b1e2cdb248823520233'/>
<id>tag:montague.lit,2008-05-08T18:43:01Z:posts-1zr23z8a-3g12-34fh-750b-120867gjc1sqh</id>
href='xmpp:romeo@montague.lit?;node=urn%3Axmpp%3Amicroblog%3A0%3Acomments%2F36ec6dfe61e52b1e2cdb248823520233'/>
<id>tag:montague.lit,2008-05-08:posts-1zr23z8a-3g12-34fh-750b-120867gjc1sqh</id>
<published>2008-05-08T18:43:01Z</published>
<updated>2008-05-08T18:43:01Z</updated>
<geoloc xmlns="http://jabber.org/protocol/geoloc">
@ -469,12 +452,49 @@ xmpp:romeo@montague.lit?;node=urn%3Axmpp%3Amicroblog%3A0
]]></example>
</section1>
<section1 topic='Microblog informations' anchor='informations'>
<p>Romeo may want to publish some informations about his microblog, such as its title, an alternate web-version URI or the last time it was updated.</p>
<p>Romeo's client MAY publish these informations once he defined them. If so, his client MUST send them to the "urn:xmpp:microblog:0:informations" node, containing one only item, with the ID set to "0".</p>
<example caption="Publishing microblog informations"><![CDATA[
<iq from='romeo@montague.lit/pc'
id='pub8'
to='romeo@montague.lit'
type='set'>
<pubsub xmlns='http://jabber.org/protocol/pubsub'>
<publish node='urn:xmpp:microblog:0:informations'>
<item id='0'>
<entry xmlns='http://www.w3.org/2005/Atom'>
<source>
<title>Romeo&amp;apos;s Microblog</title>
<link href='http://montague.lit/romeo'/>
<id>tag:montague.lit,2008:home</id>
<updated>2008-05-08T18:30:02Z</updated>
<author>
<name>Romeo Montague</name>
<uri>xmpp:romeo@montague.lit</uri>
</author>
</source>
</entry>
</item>
</publish>
</pubsub>
</iq>
]]></example>
</section1>
<section1 topic='Notifications' anchor='body'>
<p>When replying to a comment, it is RECOMMENDED the user's client send a notification to the people who commented on the comments node, as defined in a forthcoming specification currently located at &lt;<link url='http://xmpp.org/extensions/inbox/notification-inbox.html'>http://xmpp.org/extensions/inbox/notification-inbox.html</link>&gt;.</p>
<p>When quoting an user's name (e.g., by using @user tag), it is also RECOMMENDED to send a similar notification.</p>
</section1>
<section1 topic='Message Body' anchor='body'>
<p>Depending on service policies and the value of the "pubsub#include_body" node configuration option, microblogging notifications SHOULD include a message &lt;body/&gt; element for backwards-compatibility with Jabber clients that are not pubsub-capable. It is RECOMMENDED for the XML character value of the &lt;body/&gt; element to be the same as that of the &lt;content/&gt; child of the Atom &lt;entry/&gt;.</p>
</section1>
<section1 topic='Security Considerations' anchor='security'>
<p>This specification does not introduce new security concerns above and beyond those already discussed in the specifications on which it depends.</p>
<section2 topic='Comment author' anchor='comment_author'>
<p>The client SHOULD check that the comment author informations (provided in the "author" element) are valid, by checking that the "publisher" item attribute value matches the "uri" element value. If there is a difference, the comment MIGHT be displayed, but it is RECOMMENDED to specify there is a security problem.</p>
</section2>
</section1>
<section1 topic='IANA Considerations' anchor='iana'>