def manage_uri_synonyms(collection: SolrCollection) -> None: logging.info('> managing uri_synonyms resources') uri_synonyms = {'uri_nl': {}, 'uri_en': {}} legacy_license_files = ['ckan_license.json', 'overheid_license.json'] for valuelist in os.listdir(os.getenv('VALUELIST_DIR')): if not valuelist.endswith('.json'): continue if valuelist in legacy_license_files: continue filepath = os.path.join(os.getenv('VALUELIST_DIR'), valuelist) for uri, properties in utils.load_json_file(filepath).items(): uri_synonyms['uri_nl'][uri] = properties['labels']['nl-NL'] uri_synonyms['uri_en'][uri] = properties['labels']['en-US'] for lang in uri_synonyms.keys(): logging.info('managed resource: synonyms|%s', lang) current_uri_synonyms = collection.select_managed_synonyms(lang) if not current_uri_synonyms: current_uri_synonyms = {} logging.info(' current: %s synonyms', len(current_uri_synonyms)) synonyms_to_add = { key: value for key, value in uri_synonyms[lang].items() if key not in current_uri_synonyms.keys() } logging.info(' adding: %s synonyms', len(synonyms_to_add)) if len(synonyms_to_add) > 0: collection.add_managed_synonyms(lang, synonyms_to_add)
def manage_label_synonyms(collection: SolrCollection, language_code: str) -> None: logging.info('> managing label resource') current_label_synonyms = collection.select_managed_synonyms( 'label_{0}'.format(language_code)) logging.info(' current: %s synonyms', len(current_label_synonyms)) label_synonyms = utils.load_resource('labels_{0}'.format(language_code)) synonyms_to_add = { key: value for key, value in label_synonyms.items() if key not in current_label_synonyms.keys() } logging.info(' adding: %s synonyms', len(synonyms_to_add)) if len(synonyms_to_add) > 0: collection.add_managed_synonyms('label_{0}'.format(language_code), synonyms_to_add)
def manage_hierarchy_theme(collection: SolrCollection) -> None: logging.info('> managing hierarchy_theme resources') for hierarchy_item in ['hierarchy_theme', 'hierarchy_theme_query']: logging.info('managed resource: synonyms|{0}'.format(hierarchy_item)) hierarchy_data = utils.load_resource(hierarchy_item) current_data = collection.select_managed_synonyms(hierarchy_item) if not current_data: current_data = {} logging.info(' current: %s synonyms', len(current_data)) data_to_add = { key: value for key, value in hierarchy_data.items() if key not in current_data.keys() } logging.info(' adding: %s synonyms', len(data_to_add)) if len(data_to_add) > 0: collection.add_managed_synonyms(hierarchy_item, data_to_add)