When will a relation not have a target or source?  Might be worth a comment in the code.