code: def interact(self, datum):
          
          validated = self._validate_input(datum)
          if validated:
              self.send(validated)
              result = self.receive()
          else:
              result, lines = _make_response(
                  [('NOTE: PyDelphin could not validate the input and '
                    'refused to send it to ACE'),
                   'SKIP: {}'.format(datum)],
                  self.run_info)
          result['input'] = datum
          return result
docs: Send *datum* to ACE and return the response.
  
          This is the recommended method for sending and receiving data
          to/from an ACE process as it reduces the chances of
          over-filling or reading past the end of the buffer. It also
          performs a simple validation of the input to help ensure that
          one complete item is processed at a time.
  
          If input item identifiers need to be tracked throughout
          processing, see :meth:`process_item`.
  
          Args:
              datum (str): the input sentence or MRS
          Returns:
              :class:`~delphin.interfaces.ParseResponse`