public void ExportRefinement(Goal parent, GoalRefinement refinement) { var tempGUID = Guid.NewGuid().ToString(); writer.WriteLine (@"""{0}""[shape=circle,width=.1,fixedsize=true,label=""""];", tempGUID); writer.WriteLine (@"""{0}"" -> ""{1}"" [arrowtail=onormal,label="" {2}""];", parent.Identifier, tempGUID, refinement.SystemReference() != null ? refinement.SystemReference().FriendlyName : string.Empty); foreach (var child in refinement.SubGoals()) { writer.WriteLine (@"""{0}"" -> ""{1}"" [arrowtail=none];", tempGUID, child.Identifier); } foreach (var domprop in refinement.DomainProperties()) { writer.WriteLine (@"""{0}"" -> ""{1}"" [arrowtail=none];", tempGUID, domprop.Identifier); } foreach (var domhyp in refinement.DomainHypotheses()) { writer.WriteLine (@"""{0}"" -> ""{1}"" [arrowtail=none];", tempGUID, domhyp.Identifier); } }
static Node ORPropagate(GoalRefinement r) { return new Or { Nodes = r.SubGoals().Select (GetNonSatisfactionFormula).Union (r.DomainProperties().Select (GetNonSatisfactionFormula)).ToList () }; }