Try to get a unique ID from the object. By default, this will be
        the 'id' field of any given object, or a field specified by the
        'rdfSubject' property. If no other option is available, a UUID will be
        generated.

def get_subject(self, data):
        """ Try to get a unique ID from the object. By default, this will be
        the 'id' field of any given object, or a field specified by the
        'rdfSubject' property. If no other option is available, a UUID will be
        generated. """
        if not isinstance(data, Mapping):
            return None
        if data.get(self.subject):
            return data.get(self.subject)
        return uuid.uuid4().urn