digraph forest {
rankdir=BT
IdentityA [rank=0,label="Identity: Alice"]
IdentityB [rank=0,label="Identity: Bob"]
CommunityA [rank=0,label="Community: Cryptography"]
CommunityB [rank=0,label="Community: Arbor"]
ReplyA [rank=1,label="Hey all!"]
ReplyB [rank=1,label="Is P=NP?"]
ReplyC [rank=2,label="I hope not!"]
ReplyD [rank=1,label="How does this work?"]
ReplyE [rank=2,label="Reply to any message"]
ReplyF [rank=2,label="Like this?"]
ReplyG [rank=3,label="You got it!"]
ReplyA -> CommunityA
ReplyA -> IdentityA [label="author",color="gray",style="dashed"]
ReplyB -> CommunityA
ReplyB -> IdentityB [label="author",color="gray",style="dashed"]
ReplyC -> ReplyB
ReplyC -> IdentityA [label="author",color="gray",style="dashed"]
ReplyD -> CommunityB
ReplyD -> IdentityA [label="author",color="gray",style="dashed"]
ReplyE -> ReplyD
ReplyE -> IdentityB [label="author",color="gray",style="dashed"]
ReplyF -> ReplyD
ReplyF -> IdentityA [label="author",color="gray",style="dashed"]
ReplyG -> ReplyF
ReplyG -> IdentityB [label="author",color="gray",style="dashed"]
}