boolean forallRule(OWLIndividual node)
	{
		boolean changed = false;
		HashMap<OWLIndividual, HashSet<OWLClassExpression>> toadd = new HashMap<OWLIndividual, HashSet<OWLClassExpression>>();
		for(OWLClassExpression label:nodeLabels.get(node))
			if(label instanceof OWLObjectAllValuesFrom)
			{
				OWLObjectAllValuesFrom all = (OWLObjectAllValuesFrom) label;
				if(edges.get(node) !=null && edges.get(node).get(all.getProperty()) != null)
					for(OWLIndividual object:edges.get(node).get(all.getProperty()))
						if(!nodeLabels.get(object).contains(all.getFiller()))
						{
							changed = true;
							HashSet<OWLClassExpression> newlabels = toadd.get(object);
							if(newlabels == null)
							{
								newlabels = new HashSet<OWLClassExpression>();
								toadd.put(object, newlabels);
							}
							newlabels.add(all.getFiller());
						}
			}
		for(OWLIndividual object:toadd.keySet())
			nodeLabels.get(object).addAll(toadd.get(object));
		return changed;
	}