in clutrr/relations/builder.py [0:0]
def almost_complete(self,edge):
"""
Build an almost complete graph by iteratively applying the rules
Recursively apply rules and invert
:return:
"""
# apply symmetric, equivalence and inverse rules
self.invert_rel()
self.equivalence_rel()
self.symmetry_rel()
# apply compositional rules
keys = list(self.anc.family.keys())
edge_1 = [self.compose_rel(e, edge) for e in keys if e[1] == edge[0]]
edge_2 = [self.compose_rel(edge, e) for e in keys if e[0] == edge[1]]
edge_1 = list(filter(None.__ne__, edge_1))
edge_2 = list(filter(None.__ne__, edge_2))
for e in edge_1:
self.almost_complete(e)
for e in edge_2:
self.almost_complete(e)