digraph moralCircleTerms { forcelabels=true; graph [fontname = "Handlee"]; node [fontname = "Sedgwick Ave" shape = "box"]; edge [fontname = "Handlee" lblstyle="above, sloped"]; circle [label = "Moral circle"]; boundary [label = "Moral boundary"]; agency [label = "Moral agency"]; patient [label = "Moral patient"]; subject [label = "Welfare subject"]; concern [label = "Moral concern/value/\nworth/weight"]; standing [label = "Moral standing"]; status [label = "Moral status"]; capacity [label = "Capacity for\nwelfare"]; adjustedWelfare [label = "Status-adjusted\nwelfare"]; dimension [label = "Moral dimension"]; MCE [label = "Moral Circle\nExpansion (MCE)"]; circle -> patient [label = "entity\nwithin" dir="back"]; patient -> agency [label = "has"]; patient -> standing [label = "has"]; subject -> patient [label = "another term for?" style=dashed constraint=false]; boundary -> circle [label = "another\ term for" constraint=false]; patient -> concern [label = "has"]; patient -> status [label = "has"]; status -> standing [label = "measure of" ]; subject -> capacity [label = "has"]; capacity -> adjustedWelfare [label = "based on" dir="back"]; status -> adjustedWelfare [label = "based on" dir="back"]; concern -> adjustedWelfare [label = "based on"]; concern -> status [label = "based on"]; concern -> capacity [label = "based on"]; subject -> adjustedWelfare [label = "has"]; status -> dimension [label = "measured on"]; capacity -> dimension [label = "measured on"]; MCE -> circle [label = "expands"]; {rank = same; patient; subject;} {rank = same; circle; boundary;} }