What components are needed for building learning algorithms that leverage the structure and properties of graphs?