def get_artist_of_unknown_type_by_uri(self, uri): rows_canonical = self._graph.query(Queries.find_canonical_compiled(uri)) canonical_tuple = MeraRdflibGraph._get_double_rows_simple_result(rows_canonical) if canonical_tuple is None: return None rows_aliases = self._graph.query(Queries.find_aliases_compiled(uri)) rows_namevars = self._graph.query(Queries.find_namevars_compiled(uri)) rows_country = self._graph.query(Queries.find_country_compiled(uri)) rows_civil = self._graph.query(Queries.find_civil_compiled(uri)) if rows_civil is not None: # It is an ArtistPerson return MeraArtistPerson(labelled_canonical=canonical_tuple, labelled_aliases=MeraRdflibGraph._get_double_rows_multiple_result(rows_aliases), labelled_namevars=MeraRdflibGraph._get_double_rows_multiple_result(rows_namevars), labelled_country=MeraRdflibGraph._get_double_rows_simple_result(rows_country), labelled_civil=MeraRdflibGraph._get_double_rows_simple_result(rows_civil)) rows_members = self._graph.query(Queries.find_members_uri_compiled(uri)) if rows_members is None: # It has not members, so it hasn't group properties return MeraArtist(labelled_canonical=canonical_tuple, labelled_aliases=MeraRdflibGraph._get_double_rows_multiple_result(rows_aliases), labelled_namevars=MeraRdflibGraph._get_double_rows_multiple_result(rows_namevars), labelled_country=MeraRdflibGraph._get_double_rows_simple_result(rows_country)) # By elimination, it is a group object_members = None uri_members = MeraRdflibGraph._get_single_rows_multiple_result(rows_members) if uri_members is not None: object_members = [self.get_artist_person_by_uri(person) for person in uri_members] return MeraArtistGroup(labelled_canonical=canonical_tuple, labelled_aliases=MeraRdflibGraph._get_double_rows_multiple_result(rows_aliases), labelled_namevars=MeraRdflibGraph._get_double_rows_multiple_result(rows_namevars), labelled_country=MeraRdflibGraph._get_double_rows_simple_result(rows_country), members=object_members)
def get_artist_group_by_uri(self, uri): rows_canonical = self._graph.query(Queries.find_canonical_compiled(uri)) canonical_tuple = MeraRdflibGraph._get_double_rows_simple_result(rows_canonical) if canonical_tuple is None: return None rows_aliases = self._graph.query(Queries.find_aliases_compiled(uri)) rows_namevars = self._graph.query(Queries.find_namevars_compiled(uri)) rows_country = self._graph.query(Queries.find_country_compiled(uri)) rows_members = self._graph.query(Queries.find_members_uri_compiled(uri)) object_members = None uri_members = MeraRdflibGraph._get_single_rows_multiple_result(rows_members) if uri_members is not None: object_members = [self.get_artist_person_by_uri(person) for person in uri_members] return MeraArtistGroup(labelled_canonical=canonical_tuple, labelled_aliases=MeraRdflibGraph._get_double_rows_multiple_result(rows_aliases), labelled_namevars=MeraRdflibGraph._get_double_rows_multiple_result(rows_namevars), labelled_country=MeraRdflibGraph._get_double_rows_simple_result(rows_country), members=object_members)