Graph Query Portal
MetadataShow full item record
Prashant Chandrasekar, a lead developer for the Social Interactome project, has tasked the team with creating a graph representation of the data collected from the social networks involved in that project. The data is currently stored in a MySQL database. The client requested that the graph database be Cayley, but after a literature review, Neo4j was chosen. The reasons for this shift will be explained in the design section. Secondarily, the team was tasked with coming up with three scenarios in which the researchers’ queries would fit. The scenarios that were chosen were the following: Single Participant query (give me all the information about person X), Comparative Study query (let me compare group x with group y), and Summarization query (let me see all the engagements that exist in the network). These scenarios would be used to form an API that used Node.js. Queries executed within the API would be cached in a Mongo Database in order to save time. The API handles fetching data from the graph, conducting multiple queries to synthesize a comparative study, updating nodes in the graph, and creating nodes in the graph. The developers migrated the data from a MySQL database to Neo4j. Then, the team created an API endpoint using Node.js that researchers can use to conduct simple repeatable queries of the database. The procedure for this is discussed in the user manual. Finally, the team created a front-end website to further streamline the steps they will have to take. The team delivered to the client a graph-based database, a user and developer manual, a graph interface, a graph querying interface (the API), logging capabilities, and a front-end. The team learned lessons along the way, mostly relating to milestone scheduling and leaving a buffer of time for when things go wrong. They also learned how to work with Neo4j and Node.js.