A conversation in About The System

From the Official Sylbi Blog

As a conversation system, Sylbi has three specific features that make it unique and hopefully interesting. Here, I'll try to summarize them.

Multiple conversation perspectives. Conversations are a series of posts with one starting post (entry) and multiple responses. A conversation may exist in more than one place. First, it exists within a topic defined by the site. This is the "forum" perspective. Topics are defined by the site owner, and people participate in those topics. For instance a topic might be on "C# programming" and all conversations that match this criteria will end up there. The same conversation also belongs to the person who made the first post, or entry. This is the "blog" perspective. Suppose UserA starts a conversation about using Hashtables in C#. If someone browsed to the "C# programming" topic, they can find the conversation there. But what if you only read UserA's blog, and don't really pay much attention to the remainder of the site? Because UserA started the conversation, it will also appear on his personal blog, along with all the other conversations he's started. He can customize his "blog" with templates to make it look however he wants.

Flat-threaded discussion. It is my opinion that threading a conversation, that is, grouping replies to a post immediately below that post, provides the most logical organization method. Slashdot replies are threaded, as are those on reddit. However, I think that indenting replies adds no real value, and instead actually makes the conversation more difficult to read. Sylbi threads conversations, but uses no indentation. So as you scan posts from top to bottom, post replies are clustered together, but you must use the content of the posts to determine the grouping. I refer to this as a "flat-threaded" conversation. Sylbi provides the means to quote previous posts, if this should be necessary.

Here's why I think this view works. Books are written from top to bottom. If an author refers to something that occurred in a previous chapter, you rely on your memory and comprehension to understand the reference. If the reference is subtle enough, an author may quote himself. Where a conversation is concerned, I think that memory and comprehension don't need to be aided by indentation, and where a reference may require it, you can easily provide a quote.

Automatic categorization of conversations. Typical forum systems create topics, and then require that users "follow the rules" and use the appropriate topic for making their posts. If you've frequented forums or newsgroups at all, you have no doubt come across a post where one person informs another that they should have chosen topic "X" instead of the current one to make their post.

Sylbi gets around having to do this by automatically matching conversations to topics using a Bayesian-like method. It generates a hash of all the content words in a conversation, and compares this to the hash of each topic. The best match over the topic's threshold gets the conversation.

The categorization, like spam prevention, must be trained. As they topics grow, the better the system becomes at getting the right conversation into the right topic. This implies a little extra work for the admins at the start, but a lot less later.

Thresholds provide a way for administrators to force stronger or weaker topical matching. So a topic with a low threshold will end up with more conversations that are loosely related. A high threshold means stronger conversation relatedness, but (most likely) fewer conversations.

If a match is under the threshold on a topic, the conversation will not be placed. If a conversation does not make it into a topic, it ends up in the default "catchall" topic and remains there until it exceeds catchall's retention policy, if one is set.