I suppose we could assert that wherever a cycle is discovered, A subset of B subset of C subset of A, then all nodes in the cycle should be merged into a single node. Then we have a DAG. Any cycle thatās not so reduced would be breaking the rules, and the graph db would be not fully ānormalizedā (not sure if thatās the best word here). The reason for deviating from that and allowing cycles is UX. Suppose I develop the concept for cities. I want to arrange them by continent, and also by their official languages. And I want to visualize the tree of Sets in the page. On the left I arrange them by continent ā cities in N America, cities in Europe, etc ā and on the right I arrange them by language: cities that list English as an official language, cities that list French as an official language, etc. Any given city will be an element of more than one Set node. So at the top Iād have the Superset of all cities, then underneath two subsets: Cities that have an official language and Cities that are on a continent. Those two set nodes are each subsets of the other. (In theory they donāt have to be ā there could be a city thatās not on any continent ā but in reality, to the best of my knowledge, they are.) But we still keep them as separate nodes because itās just better UX.