Data Model - Pink Flamingo

Answer 1)

Answer 2)

  • Which teams are having more conversations?
    As it is not entirely clear what is meant under term “conversation”, I will have to assume that a conversations corresponds to a chat session, meaning - new conversation is started when new chat session is created. In this case we can count number of edges Creates between nodes User and Chat Session and group them by teams. To be able to do it, the property graph is extended with Team node and edges, that allow us to determine to which team a user who starts new chat session belongs at the moment when chat session is started.

  • Do users chat more (or less) before they leave a team?
    Again to be able to answer this question we need to know when a user has left a team. An edge Leaves between nodes User and Team allows us to determine occurrence of such action. Now we are able to build a chart with let’s say average number of written text in a chat per day, and compare if it increases or decreases over time, when timestamps of edge Writes between nodes User and Chat Text are approaching timestamp of user leaving a team.

  • What are the dominant terms (words) used in a chat session within a specific time period?
    First we can filter out all tokenized texts of Chat Text of the desired time period by using timestamp of edge Writes between nodes User and Chat Text. On top of it we can build TFIDF (term frequency–inverse document frequency) matrix which would allow us to analyse usage frequency of various terms.

  • Which users are most active in a specific chat session?
    To be able to answer this question we need to define what “most active” actually means. For simplicity I will assume that most active user is the user who writes most messaged in a chat. It would be a simple count of Write edges between nodes User and Chat Text filtered by desired chat session ID.

  • How many chat sessions is a user participating in at the same time?
    Such count has any meaning only at a certain point in time, it has no meaning in a period of time. We could count number of chat session where desired point in time is between timestamps of edges Joins and Leaves between nodes User and Chat Session.
    Alternatively, if we’d like to know how many chat sessions user is participating now in, we can count number of Joins and subtract number of Leaves

Answer 3)

The tree looks complete and can be used to launch the game. We just need to make sure that the **flamingo_properties* nodes must be greater than equal to five.