public function compile($csdl = false)
    {
        if ($csdl) {
            $this->_csdl = $csdl;
        }

        if (strlen($this->_csdl) == 0) {
            throw new DataSift_Exception_InvalidData('Cannot compile an empty definition.');
        }

        $res = $this->_user->post('pylon/compile', array('csdl' => $this->_csdl));

        $this->_hash = $res['hash'];

        return $res;
    }