def METHOD_NAME(self, triplet):
    head = self.ent_embedding(triplet[0]).to(self.device)
    rel = self.rel_embedding(triplet[1]).to(self.device)
    tail = self.ent_embedding(triplet[2]).to(self.device)
    '''
    if you are getting a low number, it means the triple is good, because the distance is short.
    therefore, the goal is to minimize the number here
    for the learning, the loss the rank_margin, max(0, -p * (x1 - x2))
    where x1 is a positive triple and x2 is the negative tripe, p = -1 which assumes that x2 > x1
    So, the ideal situation to minimize the loss is that x1 = 0, x2 = 1, which results in that 1 * (x1 - x2) = -1,
    where the loss is 0. if x2 < x1, then the value will be the drift ...
    therefore, the distance must be normalized into a [0,1] space
    '''
    return (head + rel - tail).norm(p=self.norm, dim=1).to(self.device)