generate unique IDs per graph node