graph data structures consist of two main componentsnodes--these are the entities themselves in our case studythese are recipes and ingredients edges--the relationships between entities relationshipslike nodescan be of all kinds of types (for example "contains,"likes,"has been to"and can have their own specific properties such as namesweightsor other measures we looked at neo jcurrently the most popular graph database for instruction on how to install ityou can consult appendix we looked into adding data to neo jquerying it using cypherand how to access its web interface cypher is the neo database-specific query languageand we looked at few examples we also used it in the case study as part of our dishes recommender system in the case study we made use of elasticsearch to clean huge recipe data dump we then converted this data to neo database with recipes and ingredients the goal of the case study was to recommend dishes to people based on previously shown interest in other dishes for this we made use of the connectedness of recipes via their ingredients the py neo library enabled us to communicate with neo server from python it turns out the graph database is not only useful for implementing recommendation system but also for data exploration one of the things we found out is the diversity (ingredient-wiseof spaghetti bolognese recipes out there we used the neo web interface to create visual representation of how we get from dish preferences to dish recommendations via the ingredient nodes