def save_keywords_in_bulk(self, graph, data_source): keywords = [] for subject in graph.subjects(RDF.type, SKOS.Concept): if is_deprecated(graph, subject): continue keyword = Keyword(data_source=data_source) keyword.aggregate = is_aggregate_concept(graph, subject) keyword.id = self.yso_id(subject) keyword.created_time = BaseModel.now() keyword.last_modified_time = BaseModel.now() for _, literal in graph.preferredLabel(subject): with active_language(literal.language): keyword.name = str(literal) keywords.append(keyword) Keyword.objects.bulk_create(keywords, batch_size=1000)
def save_keyword(self, syncher, graph, subject, data_source, keyword_labels, save_set): keyword = syncher.get(subject) if not keyword: keyword = Keyword(data_source=self.data_source, url=subject) keyword._changed = True keyword._created = True else: keyword._created = False for _, literal in graph.preferredLabel(subject): with active_language(literal.language): if keyword.name != str(literal): keyword.name = str(literal) keyword._changed = True if keyword._changed: keyword.save() keyword.alt_labels.add(keyword_labels.get(str(subject), [])) if not getattr(keyword, '_found', False): syncher.mark(keyword) return keyword
def save_keyword(self, syncher, graph, subject, data_source, keyword_labels, save_set): keyword = syncher.get(subject) if not keyword: keyword = Keyword( data_source=self.data_source, url=subject) keyword._changed = True keyword._created = True else: keyword._created = False for _, literal in graph.preferredLabel(subject): with active_language(literal.language): if keyword.name != str(literal): keyword.name = str(literal) keyword._changed = True if keyword._changed: keyword.save() keyword.alt_labels.add(keyword_labels.get(str(subject), [])) if not getattr(keyword, '_found', False): syncher.mark(keyword) return keyword