A non-transitory machine-readable medium comprising instructions which, when executed by one or more processors of a server computer system, cause the server computer system to execute a distributed storytelling framework by performing operations comprising:
- receiving, at a memory associated with the one or more processors of the server computer system, a set of publicly accessible social network posts, each publicly accessible social network post including text comprising at least nouns and verbs and including a geographic location associated with the social networking post;
- converting, by the one or more processors of the server computer system, the set of publicly accessible social network posts into a plurality of adjacency lists, each adjacency list comprising a set of nodes linked together by a set of edges, wherein converting the set of publicly accessible social network posts into the plurality of adjacency lists comprises:
- performing natural language processing by the one or more processors on social network posts to extract entities corresponding to nouns and verbs that link two or more nouns from text of each post in the set of publicly accessible social network posts, and assigning each extracted entity to serve as a key or a value based on a verb linking two or more nouns in at least one adjacency list, the key and the value being nouns extracted from text of a social network post and verbs connecting the two or more nouns and partial storylines generated from those nouns and verbs;
- receiving a user query, by the one or more processors of the server computer system, wherein the user query comprises at least a starting entity and a storyline length of k nodes specified by a user in a user interface of a client device, wherein k is an integer greater than two;
- converting, by the one or more processors of the server computer system in response to the starting entity of the user query, an adjacency list from the plurality of adjacency lists to a set of generated storylines having a length of two or more nodes, each storyline being represented in the memory as a key-value pair, wherein the key-value pair represents a node and one or more partial more storylines comprising the node linked to other nodes by edges;
- combining, by the one or more processors of the server computer system, storylines, of the set of generated storylines, to generate an extended storyline in response to a value from a first storyline matching an entity from an adjacency list, wherein the extended storyline has a length of greater than two nodes, includes a single key and multiple values, and is added to the set of generated storylines;
- repeating, by the one or more processors of the server computer system, combining storylines, of the set of generated storylines, with co-occurring entities in values of adjacency lists, to generate extended storylines, at least one of the generated extended storylines having the length of k nodes specified in the user query;
- generating, by the one or more processors of the server computer system, an output comprising at least one output storyline corresponding to at least one of the generated extended storylines having the length of k nodes that starts from the starting entity;
- and
- communicating, with a network interface of the server computer system, the output as a digital transmission to a client device for display of the at least one output storyline to the user in response to the user query at the client device.