# Approach

Get introduced to the approach that we'll employ and the Elixir packages that we'll use.

## We'll cover the following

We are going to explore the graphs with Elixir in the following three parts:

Part I: Graphs Everywhere

Part II: Coming to Grips with Graphs

Part III: Graph to Graph

## Graphs Everywhere

In this part, we’ll give a simple introduction to graphs and networks and then go on to set up the project that we’ll develop together. This entails creating an umbrella app and a common library app that will be used by the apps developed later.

We’ll also spend a little time setting up project storage areas for graphs and queries for the various graph types and data structures for managing access to those areas. The goal of this exercise is to make it much simpler to reuse these components so that we can focus on graph manipulations rather than file operations.

## Coming to Grips with Graphs

This will be a hands-on investigation of a number of Elixir packages for working with graphs:

`libgraph`

`bolt_sips`

`rdf`

,`sparql`

,`sparql_query`

`gremlex`

`dlex`

We’ll first look at developing native graph models within Elixir and then go on to look at applied graph models and interacting with graph databases. In this area, we’ll be looking at the two main paradigms for modeling information networks—property graphs and RDF graphs.

We’ll be working with various graph types and their associated graph query languages and will introduce shorthand query forms to make querying simpler.

## Graph to Graph

Finally, we’ll look at moving between graphs, transforming graph models from one standard form to another, and using Elixir’s concurrent processing capabilities to manage distributed graphs and distributed computing.