diff --git a/penman/graph.py b/penman/graph.py
index <HASH>..<HASH> 100644
--- a/penman/graph.py
+++ b/penman/graph.py
@@ -109,6 +109,13 @@ class Graph(object):
             id(self)
         )
 
+    def __eq__(self, other):
+        if not isinstance(other, Graph):
+            return NotImplemented
+        return (self.top == other.top
+                and len(self.triples) == len(other.triples)
+                and set(self.triples) == set(other.triples))
+
     def __or__(self, other):
         if isinstance(other, Graph):
             g = self.copy(epidata=True, metadata=False)
Add Graph.__eq__ for exact comparisons

Epidata and metadata are ignored, but the triples and top must
match (including variable names).