def METHOD_NAME(self):
    # Use one query to find all the properties fo all species under the type species .
    short_species_list = []
    triples = []
    tmp = []
    value_dictionary = {}
    rst = query_blazegraph(query=ONTOKIN_ALL_PROPERTIES_ALL_SPECIES, namespace="ontokin")
    non_attributes = ['species', 'label', 'transport']
    heads = [h for h in rst['head']['vars'] if h not in non_attributes and '_unit' not in h]
    unique_labels = []
    for r in rst['results']['bindings']:
        row = []
        species = r['species']['value']  # .split('/')[-1]
        transport = r['transport']['value']
        label = r['label']['value']
        if "#" in species:
            short_species = species.split('#')[-1]
        else:
            short_species = species.split('/')[-1]
        # filter, only put findable species ...
        counter = 0
        if label not in unique_labels:
            short_species_list.append(short_species)
            counter += 1
            print(f"number of selected iris", counter)
            row.append(species)
            row.append(label)
            for head in heads:
                if head in r:
                    data = r[head]['value']
                else:
                    data = "EMPTY"
                new_node = head + '_' + short_species
                row.append(new_node)
                if head + '_unit' in r:
                    data_unit = r[head + '_unit']['value']
                    value_dictionary[new_node] = data + ' ' + data_unit
                else:
                    # insert a new node, with part of the species and the relations
                    value_dictionary[new_node] = data
                triples.append((short_species, head + '_latent', new_node))
            tmp.append(row)
            unique_labels.append(label)
    print('number of unique labels', len(unique_labels))
    df_all_species = pd.DataFrame(tmp)
    df_all_species.columns = ['species', 'label'] + heads
    df_all_species.to_csv(os.path.join(self.dataset_path, 'all_species.tsv'), sep='\t')
    with open(os.path.join(self.dataset_path, 'value_dict.json'), 'w') as f:
        f.write(json.dumps(value_dictionary))
        f.close()
    df_triples = pd.DataFrame(triples)
    df_triples.to_csv(os.path.join(self.dataset_path, 'ontokin-train.txt'), sep='\t', index=False, header=False)
    df_test = df_triples.sample(frac=0.2)
    df_test.to_csv(os.path.join(self.dataset_path, 'ontokin-test.txt'), sep='\t', index=False, header=False)