def __init__(self, slot, op, value):
        """
        Initialize a dialogue Act Item (slot - operator - value)

        :param slot: a string, representing the slot
        :param op: an Operator
        :param value: the value of the slot
        """
        if isinstance(slot, str):
            self.slot = slot
        else:
            raise ValueError('Unacceptable slot type: %s ' % slot)

        if op in Operator:
            self.op = op
        else:
            raise ValueError('Unacceptable operator: %s ' % op)

        # TODO: Check for all acceptable value types here?
        self.value = value

        Initialize a dialogue Act Item (slot - operator - value)

        :param slot: a string, representing the slot
        :param op: an Operator
        :param value: the value of the slot
        
plato/dialogue/action.py