def _valid_lsid(self):
        """
        Performs some basic (non-comprehensive) LSID validation
        :return:
        """
        if not isinstance(self.lsid, str):
            raise TypeError("lsid is not a string, string expected: " + str(self.lsid))

        if self.lsid.count(':') != 4:
            raise ValueError("lsid contains incorrect number of colons, 4 expected: " + str(self.lsid))

        if self.lsid.split(':')[0].lower() != 'urn':
            raise ValueError("lsid does not begin with urn: " + str(self.lsid))

        # If an LSID authority is specified, check with the authority
        if self.lsid_authority:
            if not self.lsid_authority.validate(self.lsid, check_existing=False):
                raise ValueError("lsid does not the authority: " + str(self.lsid))