Building a conversation platform — Part 2

Conversations as graphs

Mikolaj Szabó
3 min readAug 23, 2016

In the previous part, I used schematic figures of networks or graphs, to illustrate a certain aspect of an online conversation, and to describe the spectrum, that ranges from asynchronous and asymmetric blog comments to synchronous and symmetric chats, with forums somewhere in between. Specifically, I used the following three schematic figures (with blog comments on the left, forums in the middle, and chats on the right):

Figure 1

Blog posts and comments are 1-level deep, but infinitely branching structures, where each new comment adds a new branch at the root of the conversation. Chats are infinitely deep, but non-branching structures, where each new message is appended to the last one, adding a new level to the structure. These two flat extremes represent the two ends of this spectrum.

These graphs are not just illustrations of our discussion, but are actually at the core of the concept. Each of the three conversation forms discussed here can be described by a graph model. (A graph is an abstraction, consisting of objects that are connected together. We call the objects of a graph vertices or nodes, and the links between them edges. These edges can be directed, meaning that they can be thought of as arrows pointing from an object to another.)

The simplest graph model of blogs is one with three types of nodes:

  • user
  • post
  • comment

And two types of relationships:

  • a user can author a post, which is an arrow pointing from a user node to a post node (or a user can author a comment, which is an arrow pointing from a user node to a comment node), so authorship, in this model, is a relationship between user and post,
  • a comment comments a post, which is an arrow pointing from a comment node to a post node.

A similar model can be sketched for forums, but with only two types of nodes: users and posts, and two types of relationships: a user authors a post, and a post replies to a post.

The simple graph model of a chat is not any different from the previous, with nodes of two types: user and message, and relationships of two types: a user authors a message, a message follows another message. It is actually identical to the forum graph model, only with different labels.

This is not immediately obvious, and one might ask, where is the chatroom in all this? It’s almost as if the chatroom was a thread of messages, instead of being a separate kind of entity, represented by its own node type. But what about the first (root) message in the thread, which chatroom does that belong to?

Also, we have not mentioned yet the blog in the blog graph model, and the topic in the forum graph model either. We will discuss these in the next part.

--

--