<SYSTEM_TASK:>
Solve the following problem using Python, implementing the functions described below, one line at a time
<END_TASK>
<USER_TASK:>
Description:

def link(self, source_key, target_key):
    '''Creates a symbolic link key pointing from `target_key` to `source_key`'''
    link_value = self._link_value_for_key(source_key)

    # put straight into the child, to avoid following previous links.
    self.child_datastore.put(target_key, link_value)

    # exercise the link. ensure there are no cycles.
    self.get(target_key)