def exhaustive_label_check( self,
                                ontology:pd.DataFrame,
                                label_predicate='rdfs:label',
                                diff:bool=True, ) -> Tuple[list]:
        ''' All entities with conflicting labels gets a full diff

            Args:
                ontology: pandas DataFrame created from an ontology where the colnames are predicates
                    and if classes exist it is also thrown into a the colnames.
                label_predicate: usually in qname form and is the colname of the DataFrame for the label
                diff: complete exhaustive diff if between curie matches... will take FOREVER if there are a lot -> n^2
            Returns:
                inside: entities that are inside of InterLex
                outside: entities NOT in InterLex
                diff (optional): List[List[dict]]... so complicated but usefull diff between matches only '''

        inside, outside = [], []
        header = ['Index'] + list(ontology.columns)
        for row in ontology.itertuples():

            row = {header[i]:val for i, val in enumerate(row)}
            label_obj = row[label_predicate]
            if isinstance(label_obj, list):
                if len(label_obj) != 1:
                    exit('Need to have only 1 label in the cell from the onotology.')
                else:
                    label_obj = label_obj[0]
            entity_label = self.local_degrade(label_obj)
            ilx_rows = self.label2rows.get(entity_label)
            if ilx_rows:
                inside.append({
                    'external_ontology_row': row,
                    'ilx_rows': ilx_rows,
                })
            else:
                outside.append(row)

        if diff:
            diff = self.__exhaustive_diff(inside)
            return inside, outside, diff
        return inside, outside
All entities with conflicting labels gets a full diff

            Args:
                ontology: pandas DataFrame created from an ontology where the colnames are predicates
                    and if classes exist it is also thrown into a the colnames.
                label_predicate: usually in qname form and is the colname of the DataFrame for the label
                diff: complete exhaustive diff if between curie matches... will take FOREVER if there are a lot -> n^2
            Returns:
                inside: entities that are inside of InterLex
                outside: entities NOT in InterLex
                diff (optional): List[List[dict]]... so complicated but usefull diff between matches only