SimpleAttribute String {} SimpleAttribute Boolean {} Class Rule { name : String } Class Node { value? : String } Class Match : Node { match? : Boolean } Class Create : Node {} Class Delete : Match {} Class NAC : Node { match : Boolean } Class Root : Node {} Association contains (Rule, Node) {} Association Edge : Node (Node, Node) { name? : String } Association CreateEdge : Edge (Node, Node) {} Association MatchEdge : Edge (Node, Node) {} Association DeleteEdge : MatchEdge (Node, Node) {} Association NACEdge : Edge (Node, Node) {}