Course Outline
Introduction
- Graph databases and libraries.
Understanding Graph Data
- The graph as a data structure.
- Utilizing vertices (nodes) and edges (connections) to model real-world scenarios.
Using Graph Databases for Modeling, Persistence, and Processing
- Local graph algorithms and traversals.
- Tools: Neo4j, OrientDB, and Titan.
Exercise: Modeling Graph Data with Neo4j
- Whiteboard-based data modeling.
Beyond Graph Databases: Graph Computing
- Understanding the property graph model.
- Modeling various scenarios (software graphs, discussion graphs, concept graphs).
Solving Real-World Problems with Traversals
- Algorithmic and directed walks across the graph.
- Determining circular dependencies.
Case Study: Ranking Discussion Contributors
- Ranking based on the volume and depth of contributed discussions.
- Insights on sentiment and concept analysis.
Graph Computing: Local, In-Memory Graph Toolkits
- Graph analysis and visualization techniques.
- Tools: JUNG, NetworkX, and iGraph.
Exercise: Modeling Graph Data with NetworkX
- Using NetworkX to model a complex system.
Graph Computing: Batch Processing Graph Frameworks
- Leveraging Hadoop for storage (HDFS) and processing (MapReduce).
- Overview of iterative algorithms.
- Tools: Hama, Giraph, and GraphLab.
Graph Computing: Graph-Parallel Computation
- Unifying ETL, exploratory analysis, and iterative graph computation within a single system.
- GraphX.
Setup and Installation
- Hadoop and Spark.
GraphX Operators
- Property, structural, join, neighborhood aggregation, caching, and uncaching operations.
Iterating with Pregel API
- Passing arguments for sending, receiving, and computing.
Building a Graph
- Using vertices and edges within an RDD or on disk.
Designing Scalable Algorithms
- GraphX optimization strategies.
Accessing Additional Algorithms
- PageRank, Connected Components, Triangle Counting.
Exercise: PageRank and Top Users
- Building and processing graph data using text files as input.
Deploying to Production
Closing Remarks.
Requirements
- A working knowledge of Java programming and associated frameworks.
- A general understanding of Python is beneficial but not mandatory.
- Familiarity with core database concepts.
Target Audience
- Developers.
Testimonials (3)
She was very well verse with the material. Very nice, engaging. She always pauses to ask if there are questions or clarifications.
Jones Manlapaz - Nordstern Group
Course - Introduction to Semantic MediaWiki
Broad coverage and deep knowledge about Semantic Web
XINJIAN GUO - Yale University
Course - Semantic Web Overview
Very nice training