@startuml
digraph CopyrightOntoCreationModel {
  node [shape=box]; rankdir=TB; nodesep=0.8; compound=true; newrank=true;

  "Work":n -> "Work":n [label="Derive"];
  "Work":w -> "Manifestation":n [label="Manifest"];
  "Work":e -> "Improvisation":ne [label="Improvise"];

  subgraph cluster_MR {
    "Manifestation";
    "Recording";
  }
  subgraph cluster_PC {
    subgraph cluster_P { label="Performance";
      "Improvisation"
    }
    "Communication";
  }

  "Manifestation" -> "Improvisation" [label="Perform", lhead=cluster_P, ltail=cluster_MR];

  "Improvisation":e -> "Communication":e [label="Retransmit", ltail=cluster_PC];

  "Improvisation":se -> "Recording":n [xlabel="Record  ", ltail=cluster_PC];

  "Recording" -> "Instance" [label=" Copy", ltail=cluster_MR];
  "Recording" -> "Communication" [label=" Communicate", lhead=cluster_C, ltail=cluster_MR];

  {rank=same "Manifestation" "Improvisation"}
  {rank=same "Recording" "Communication"}
}
@enduml