Exploring Graphs with Elixir: Connect Data with Native Graph Libraries and Graph Databases

This document was uploaded by one of our users. The uploader already confirmed that they had the permission to publish it. If you are author/publisher or own the copyright of this documents, please report to us by using this DMCA report form.

Simply click on the Download Book button.

Yes, Book downloads on Ebookily are 100% Free.

Sometimes the book is free on Amazon As well, so go ahead and hit "Search on Amazon"

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! 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. What You Need: To follow along with the book, you should have Elixir 1.10+ installed. The book will guide you through setting up an umbrella application for a graph testbed using a variety of graph databases for which Java SDK 8+ is generally required. Instructions for installing the graph databases are given in an appendix.

Author(s): Tony Hammond
Edition: 1
Publisher: Pragmatic Bookshelf
Year: 2022

Language: English
Commentary: Publisher's PDF
Pages: 294
City: Raleigh, NC
Tags: Databases; Graph Data Model; Cypher; Queries; Neo4j; Elixir; Resource Description Framework; Gremlin; SPARQL

Cover
Table of Contents
Acknowledgments
Introduction
Who This Book Is For
How to Read This Book
About the Code
About the Software
Online Resources
Part I—Graphs Everywhere
1. Engaging with Graphs
First Contact
Coding a Hello World Graph
Modeling a Book Graph
Our Plan of Action
Wrapping Up
2. 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
Part II—Getting to Grips with Graphs
3. Managing Graphs Natively with Elixir
Creating the NativeGraph Project
Basic Workout
Storing Graphs in the Graph Store
Visualizing Graphs
Wrapping Up
4. Exploring Graph Structures
A Worked Example
Modeling the Book Graph
Generating Graphs
Wrapping Up
5. Navigating Graphs with Neo4j
Property Graph Model
Creating the PropertyGraph Project
Querying with Cypher and APOC
Trying Out the Bolt Driver
Setting Up a Graph Service
Wrapping Up
6. 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
7. Graphing Globally with RDF
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
8. 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
9. Traversing Graphs with Gremlin
Using Gremlin
Creating the TinkerGraph Project
Querying with Gremlin
Setting Up a Graph Service
Creating the Book Graph
Wrapping Up
10. 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
Part III—Graph to Graph
11. 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
12. 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
A1. Project Setups
A2. Database Setups
Installing Neo4j
Installing GraphDB
Installing Gremlin Server
Installing Dgraph
Starting the Databases
A3. Graph Anatomy
Structural Elements
Semantic Elements
Bibliography
Index
– SYMBOLS –
– A –
– B –
– C –
– D –
– E –
– F –
– G –
– H –
– I –
– J –
– K –
– L –
– M –
– N –
– O –
– P –
– Q –
– R –
– S –
– T –
– U –
– V –
– W –
– Z –