def create_keyword(self, graph, subject): if is_deprecated(graph, subject): return keyword = Keyword(data_source=self.data_source) keyword._created = True keyword.id = get_yso_id(subject) keyword.created_time = BaseModel.now() keyword.aggregate = is_aggregate_concept(graph, subject) self.update_keyword(keyword, graph, subject) return keyword
def yso_keyword(): for kw, ids in YSO_KEYWORD_MAPS.items(): if not isinstance(ids, tuple): ids = (ids, ) for id_ in ids: kwargs = { 'id': 'yso:%s' % id_, 'origin_id': id_, 'data_source_id': 'yso', 'name': kw, } keyword = Keyword(**kwargs) keyword.save()
def yso_keyword(): for kw, ids in YSO_KEYWORD_MAPS.items(): if not isinstance(ids, tuple): ids = (ids,) for id_ in ids: kwargs = { 'id': 'yso:%s' % id_, 'origin_id': id_, 'data_source_id': 'yso', 'name': kw, } keyword = Keyword(**kwargs) keyword.save()
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