':return:
A human-friendly unicode string containing the parts of the name'

@property
def human_friendly(self):

    if (self._human_friendly is None):
        data = OrderedDict()
        last_field = None
        for rdn in self.chosen:
            for type_val in rdn:
                field_name = type_val[u'type'].human_friendly
                last_field = field_name
                if (field_name in data):
                    data[field_name] = [data[field_name]]
                    data[field_name].append(type_val[u'value'])
                else:
                    data[field_name] = type_val[u'value']
        to_join = []
        keys = data.keys()
        if (last_field == u'Country'):
            keys = reversed(list(keys))
        for key in keys:
            value = data[key]
            native_value = self._recursive_humanize(value)
            to_join.append((u'%s:    %s' % (key, native_value)))
        has_comma = False
        for element in to_join:
            if (element.find(u',') != (-1)):
                has_comma = True
                break
        separator = (u',    ' if (not has_comma) else u';    ')
        self._human_friendly = separator.join(to_join[::(-1)])
    return self._human_friendly
