code: public Collection<SmallMolecule> getUbiques(Set<PhysicalEntity> entities, RelType context)
  	{
  		Map<String, SmallMolecule> ubiques = new HashMap<String, SmallMolecule>();
  		boolean allUbiques = true;
  
  		for (PhysicalEntity pe : entities)
  		{
  			if (pe instanceof SmallMolecule)
  			{
  				EntityReference er = ((SmallMolecule) pe).getEntityReference();
  
  				if (er != null && isUbique(er.getUri(), context))
  				{
  					ubiques.put(er.getUri(), (SmallMolecule) pe);
  				}
  				else
  				{
  					allUbiques = false;
  				}
  			}
  			else allUbiques = false;
  		}
  
  		if (allUbiques && !ubiques.isEmpty())
  		{
  			Set<String> least = getLeastUbique(ubiques.keySet());
  			for (String id : least)
  			{
  				ubiques.remove(id);
  			}
  		}
  
  		return ubiques.values();
  	}
docs: Gets the ubiquitous small molecules among the given set and in the given context. It is
  assumed that the given set is either left or right of a Conversion. If there is no
  non-ubiquitous element in the set, then the least ubique(s) are removed from the result.
  @param entities left or right of a conversion
  @param context are these entities input or output
  @return ubiquitous small molecules in the given context