Muutke küpsiste eelistusi

Exploring Graphs with Elixir: Connect Data with Native Graph Libraries and Graph Databases [Pehme köide]

  • Formaat: Paperback / softback, 300 pages, kõrgus x laius: 235x191 mm
  • Ilmumisaeg: 19-Jan-2023
  • Kirjastus: The Pragmatic Programmers
  • ISBN-10: 1680508407
  • ISBN-13: 9781680508406
Teised raamatud teemal:
  • Formaat: Paperback / softback, 300 pages, kõrgus x laius: 235x191 mm
  • Ilmumisaeg: 19-Jan-2023
  • Kirjastus: The Pragmatic Programmers
  • ISBN-10: 1680508407
  • ISBN-13: 9781680508406
Teised raamatud teemal:

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.

Acknowledgments ix
Introduction xi
Part I Graphs Everywhere
1 Engaging with Graphs
3(10)
First Contact
5(2)
Coding a Hello World Graph
7(1)
Modeling a Book Graph
8(2)
Our Plan of Action
10(1)
Wrapping Up
11(2)
2 Getting Started
13(22)
General Project Outline
15(1)
Creating the Umbrella and Child Projects
15(4)
Packaging Graphs and Queries
19(5)
Building a Graph Store
24(5)
Defining a Graph Service API
29(3)
Wrapping Up
32(3)
Part II Getting to Grips with Graphs
3 Managing Graphs Natively with Elixir
35(20)
Creating the NativeGraph Project
35(2)
Basic Workout
37(4)
Storing Graphs In the Graph Store
41(6)
Visualizing Graphs
47(7)
Wrapping Up
54(1)
4 Exploring Graph Structures
55(16)
A Worked Example
55(6)
Modeling the Book Graph
61(7)
Generating Graphs
68(2)
Wrapping Up
70(1)
5 Navigating Graphs with Neo4j
71(22)
Property Graph Model
72(1)
Creating the PropertyGraph Project
73(3)
Querying with Cypher and APOC
76(3)
Trying Out the Bolt Driver
79(5)
Setting Up a Graph Service
84(8)
Wrapping Up
92(1)
6 Querying Neo4j with Cypher
93(22)
Getting Started with Cypher
94(4)
Modeling the Book Graph
98(7)
Recalling the ARPANET
105(4)
Passing Parameters to Queries
109(2)
Schemas and Types in Cypher
111(3)
Wrapping Up
114(1)
7 Graphing Globally with RDF
115(28)
What's Different About RDF?
116(2)
RDF Model
118(1)
Creating the RDFGraph Project
119(2)
Modeling the Book Graph
121(4)
Building an RDF Graph
125(9)
Setting Up a Graph Service
134(8)
Wrapping Up
142(1)
8 Querying RDF with SPARQL
143(20)
Getting Started with SPARQL
143(1)
Querying the Local RDF Service
144(5)
Case # 1 Tokyo Metro
149(6)
Querying a Remote RDF Service
155(1)
Case #2 Graph Walk (Querying)
156(3)
Browsing Linked Data
159(1)
Case #3 Graph Walk (Browsing)
159(3)
Wrapping Up
162(1)
9 Traversing Graphs with Gremlin
163(14)
Using Gremlin
163(1)
Creating the TinkerGraph Project
164(2)
Querying with Gremlin
166(3)
Setting Up a Graph Service
169(3)
Creating the Book Graph
172(2)
Wrapping Up
174(3)
10 Delivering Data with Dgraph
177(24)
GraphQL and DQL
178(1)
Dgraph Model
179(2)
Creating the DGraph Project
181(4)
Setting Up a Graph Service
185(2)
Modeling the Book Graph
187(6)
Reaching Back to the ARPANET
193(5)
Wrapping Up
198(3)
Part III Graph to Graph
11 Transforming Graph Models
201(24)
Serializing Graphs
201(2)
Importing RDF with n10s---A Neo4j Plugin
203(4)
A Graph-to-Graph Example
207(2)
Stage 1 Getting RDF into an LPG Store
209(8)
Stage 2 Getting RDF out of an LPG Store
217(5)
Federated Querying
222(1)
Wrapping Up
223(2)
12 Processing the Graph
225(20)
Creating the GraphCompute Project
226(2)
Adding a Supervision Tree (or Two)
228(3)
Building a Dynamic Process Graph
231(3)
Restoring the State for a Node
234(1)
Recovering the Graph
235(1)
Simulating a Network
236(7)
Wrapping Up
243(2)
A1 Project Setups
245(2)
A2 Database Setups
247(6)
Installing Neo4j
247(1)
Installing GraphDB
248(1)
Installing Gremlin Server
249(1)
Installing Dgraph
250(1)
Starting the Databases
251(2)
A3 Graph Anatomy
253(4)
Structural Elements
254(1)
Semantic Elements
254(3)
Bibliography 257(2)
Index 259
Tony Hammond is a longtime data professional with a wide experience of linked data architecture, public identifier management, and knowledge representation and engineering. He has worked on both sides of the information supply chain, from international research centers to leading academic publishers, and more recently is employed in the financial sector. He is especially interested in using graph databases and ontologies to build out integrated systems over distributed datasets.