Exploring Graphs with Elixir
Connect Data with Native Graph Libraries and Graph Databases
by: Tony Hammond
Published | 2022-11-08 |
---|---|
Internal code | thgraphs |
Print status | In Print |
Pages | 294 |
User level | Intermediate |
Keywords | graphs, graph data models, elixir, big data, concurrency, |
Related titles | Craft GraphQL APIs in Elixir with Absinthe |
ISBN | 9781680508406 |
Other ISBN |
Channel epub: 9798888650066 Channel PDF: 9798888650073 Kindle: 9798888650042 Safari: 9798888650059 Kindle: 9798888650042 |
BISACs | COM062000 COMPUTERS / Data Modeling & DesignCOM021000 COMPUTERS / Databases / GeneralCOM021000 COMPUTERS / Databases / General |
Highlight
Data is everywhere—it’s just not very well connected, which makes it super hard to relate dataset to dataset. Using graphs as the underlying glue, you can readily join data together and create navigation paths across diverse sets of data. Add Elixir, with its awesome power of concurrency, and you’ll soon be mastering data networks. Learn how different graph models can be accessed and used from within Elixir and how you can build a robust semantics overlay on top of graph data structures. We’ll start from the basics and examine the main graph paradigms. Get ready to embrace the world of connected data!
Description
Graphs provide an intuitive and highly flexible means for organizing and querying huge amounts of loosely coupled data items. These data networks, or graphs in math speak, are typically stored and queried using graph databases. Elixir, with its noted support for fault tolerance and concurrency, stands out as a language eminently suited to processing sparsely connected and distributed datasets.
Using Elixir and graph-aware packages in the Elixir ecosystem, you’ll easily be able to fit your data to graphs and networks, and gain new information insights. Build a testbed app for comparing native graph data with external graph databases. Develop a set of applications under a single umbrella app to drill down into graph structures. Build graph models in Elixir, and query graph databases of various stripes—using Cypher and Gremlin with property graphs and SPARQL with RDF graphs. Transform data from one graph modeling regime to another. Understand why property graphs are especially good at graph traversal
problems, while RDF graphs shine at integrating different semantic models and can scale up to web proportions.
Harness the outstanding power of concurrent processing in Elixir to work with distributed graph datasets and manage data at scale.
Contents and Extracts
- Preface
- Graphs Everywhere
- Engaging with Graphs excerpt
- First Contact
- Coding a Hello World Graph
- Modeling a Book Graph
- Our Plan of Action
- Wrapping Up
- Getting Started
- General Project Outline
- Creating the Umbrella and Child Projects
- Packaging Graphs and Queries
- Building a Graph Store
- Defining a Graph Service API
- Wrapping Up
- Engaging with Graphs excerpt
- Getting to Grips with Graphs
- Managing Graphs Natively with Elixir
- Creating the NativeGraph Project
- Basic Workout
- Storing Graphs in the Graph Store
- Visualizing Graphs
- Wrapping Up
- Exploring Graph Structures
- A Worked Example
- Modeling the Book Graph
- Generating Graphs
- Wrapping Up
- Navigating Graphs with Neo4j extract
- Property Graph Model
- Creating the PropertyGraph Project
- Querying with Cypher and APOC
- Trying Out the Bolt Driver
- Setting Up a Graph Service
- Wrapping Up
- Querying Neo4j with Cypher
- Getting Started with Cypher
- Modeling the Book Graph
- Recalling the ARPANET
- Passing Parameters to Queries
- Schemas and Types in Cypher
- Wrapping Up
- Graphing Globally with RDF excerpt
- What’s Different About RDF?
- RDF Model
- Creating the RDFGraph Project
- Modeling the Book Graph
- Building an RDF Graph
- Setting Up a Graph Service
- Wrapping Up
- Querying RDF with SPARQL
- Getting Started with SPARQL
- Querying the Local RDF Service
- Case #1: Tokyo Metro
- Querying a Remote RDF Service
- Case #2: Graph Walk (Querying)
- Browsing Linked Data
- Case #3: Graph Walk (Browsing)
- Wrapping Up
- Traversing Graphs with Gremlin
- Using Gremlin
- Creating the TinkerGraph Project
- Querying with Gremlin
- Setting Up a Graph Service
- Creating the Book Graph
- Wrapping Up
- Delivering Data with Dgraph
- GraphQL and DQL
- Dgraph Model
- Creating the DGraph Project
- Setting Up a Graph Service
- Modeling the Book Graph
- Reaching Back to the ARPANET
- Wrapping Up
- Managing Graphs Natively with Elixir
- Graph to Graph
- Transforming Graph Models
- Serializing Graphs
- Importing RDF with n10s—A Neo4j Plugin
- A Graph-to-Graph Example
- Stage 1: Getting RDF into an LPG Store
- Stage 2: Getting RDF out of an LPG Store
- Federated Querying
- Wrapping Up
- Processing the Graph
- Creating the GraphCompute Project
- Adding a Supervision Tree (or Two)
- Building a Dynamic Process Graph
- Restoring the State for a Node
- Recovering the Graph
- Simulating a Network
- Wrapping Up
- Transforming Graph Models