implement edge materialize, hash, equality. add graph. [ci skip]