code: private void generateRuleDependencyGraph(List<CQIE> program) {
  		for (CQIE rule : program) {
  			ruleDependencyGraph.addVertex(rule);
  			Predicate headPred = rule.getHead().getFunctionSymbol();
  			Set<DefaultEdge> ontgoingEdges = predicateDependencyGraph
  					.outgoingEdgesOf(headPred);
  
  			for (DefaultEdge e : ontgoingEdges) {
  				Predicate edgeTarget = predicateDependencyGraph
  						.getEdgeTarget(e);
  				Collection<CQIE> rules = ruleIndex.get(edgeTarget);
  				if (rules != null) {
  					for (CQIE dependentRule : rules) {
  						ruleDependencyGraph.addVertex(dependentRule);
  						ruleDependencyGraph.addEdge(rule, dependentRule);
  					}
  				}
  			}
  		}
  	}
docs: *
  
  generates the {@link #ruleDependencyGraph}
  
  
  @param program