def filtered_search(
            self,
            id_list: List,
            negated_classes: List,
            limit: Optional[int] = 100,
            taxon_filter: Optional[int] = None,
            category_filter: Optional[str] = None,
            method: Optional[SimAlgorithm] = SimAlgorithm.PHENODIGM) -> SimResult:
        """
        Owlsim2 filtered search, resolves taxon and category to a namespace,
        calls search_by_attribute_set, and converts to SimResult object
        """
        if len(negated_classes) > 0:
            logging.warning("Owlsim2 does not support negation, ignoring neg classes")

        namespace_filter = self._get_namespace_filter(taxon_filter, category_filter)
        owlsim_results = search_by_attribute_set(self.url, tuple(id_list), limit, namespace_filter)
        return self._simsearch_to_simresult(owlsim_results, method)
Owlsim2 filtered search, resolves taxon and category to a namespace,
        calls search_by_attribute_set, and converts to SimResult object