# Chapter 1: Graph¶

Graphs express entities (nodes) along with their relations (edges), and both nodes and edges can be typed (e.g., "user" and "item" are two different types of nodes). DGL provides a graph-centric programming abstraction with its core data structure – DGLGraph. DGLGraph provides its interface to handle a graph’s structure, its node/edge features, and the resulting computations that can be performed using these components.

The chapter starts with a brief introduction to graph definitions in 1.1 and then introduces some core concepts of DGLGraph: