Two sets and a relation
A graph is a set of vertices and a set of edges joining pairs of them. That is the entire definition, and its poverty is the point: nothing in it mentions distance, position, or what the vertices represent.
Definition: Edges are undirected when the relation is symmetric (friendship, adjacency) and directed when it is not (following, dependency, one-way streets). They are weighted when each carries a number: distance, capacity, cost, probability.
Because the definition assumes so little, a theorem about graphs applies to every domain that fits the shape. "Find the cheapest route" and "find the least-error decoding of a message" and "find the most likely sequence of hidden states" are the same shortest-path problem, and one algorithm solves all three.

