My thoughts are inline.

On Apr 10, 2008, at 10:11 PM, Peter Saint-Andre wrote:

Last week after the groupchat I chatted a bit with Ralph Meijer about
blog integration. Assuming that folks publish to PEP nodes hosted at
their bare JIDs (see XEP-0163), we discussed a few possibilities (Ralph,
correct me if I'm missing anything):

I am a bit worried about the usage of PEP instead of vanilla PubSub. The reason is the "One Publisher Per Node" limitation (http://www.xmpp.org/extensions/xep-0163.html#approach-publisher ), which renders a lot of the solutions here problematic (except #3), as others could not post comments through PubSub.



1. I host one node for my entries (each item is an entry) and one node
for comments (each item is a comment). This requires a way for the
comment items to reference the entry items.

This is similar to #2, in that it requires us to define some syntax on how to relate from one published item to another (or in general how to "link" to a pubsub item). However, it does require two nodes per blog instead of one, so it seems a bit unnecessary. Also, because there is only "one node per namespace" (per the PEP spec), it is unclear to me how in PEP you can subscribe to both nodes at once. In vanilla PubSub, you could just create a "blog" collection node which hosts these two nodes, but I am not sure this is true in PEP, though I am probably wrong.



2. I host a single node for my blog. Both entries and comments get
published to the node, and an item can be an entry or a comment. This
requires some syntax in the payload format to differentiate entries from
comments (e.g., it can't be plain Atom).

This is the easiest to implement, but shifts some responsibility to clients to parse whether it is not only a "blog"-like message (based on the node), but also to parse the actual message and find out whether it is an entry or a comment.



3. I host a node only for my entries. If you want to comment, you
publish it at your own comments node. This requires cross-referencing
between my entries and your posts.

By far the hardest, but in a way, the best and most revolutionary. Many websites, even today, dislike the "comment" system, in that it localizes discussion rather than distribute it. This solves that problem. However, a lot would need to be invented:

1. How to notify the entry publisher that a comment has been posted.
2. How clients can be notified that a comment has been posted.
3. How clients can fetch those comments without subscribing to the other JID if they don't want to.



4. I host one node for each post; the first item published to the node
is the entry and subsequent items are comments.

This really pollutes the namespace and makes things very difficult to maintain, I think. Also, it suffers the most out of the lack of collection nodes in PEP, though again, I am probably wrong about this.



None of these approaches will work well if I have multiple blogs. To
solve that problem I'd need to have multiple nodes, one (or two) for
each blog.

If there are collection nodes in PEP, you could simply have a "blogs" node, of which all your other nodes are children of. If not, however, you are correct, though it is not such a big problem, just like today people subscribe to multiple RSS feeds.

Some more problems I see with using PEP instead of PubSub:

1. It can become very difficult to associate the online blog data with the PEP data. The Wordpress plugin would need to both publish to the entry node upon new entries, and also subscribe to some comment node and push comments, for example. On second thought, this is not more complicated than vanilla PubSub.

2. The one-publisher-per-node limitation needs to be seriously taken into consideration.

3. We are limited in the complexity of our node hierarchies. For example, Jehan (who is on vacation this week) wrote up a sample hierarchy given his experience with the Wordpress Pubsub plugin, and I'll reproduce it here:

"There should be one single node with a given tree inside: a leaf node for the posts (people can subscribe to this one to get only the posts); a container node for the comments (people can subscribe here to receive all comments) with
inside a new leaf node for the comments of every new post (people can
subscribe to a specific post once it has been published to get comments only
on this post).

node    -> posts (leaf)
                -> comments (Collection)     -> post_1
                                                                -> post_2
                                                                -> post_3
                                                                ..."

Whether or not this is better, I am not sure, but it certainly doesn't pollute the namespace, and solves the multiple blogs problem.

All in all, I like #3 the best, because I think it is the most social. It takes the goodness of Twitter - the locality of a message, namely, it is local to its author, and creates a distributed "blogosphere", which still has connections.


These are of course just my thoughts, so please tell me where I am wrong :)

Itay

Reply via email to