def init_indexes(): indexes = Vocabulary() indexes.identifier = IrokoVocabularyIdentifiers.INDEXES.value indexes.human_name = 'Indices, Bases de Datos' db.session.add(indexes) db.session.commit() work_dir = current_app.config['HARVESTER_SECONDARY_DIRECTORY'] miar_harvester = MiarHarvester(work_dir) miar_harvester.syncronize_miar_databases()
def sync_databases(cls, recheck=True): work_dir = current_app.config['IROKO_DATA_DIRECTORY'] indexes = Vocabulary.query.filter_by( identifier=IrokoVocabularyIdentifiers.INDEXES.value).first() if not indexes: indexes = Vocabulary() indexes.identifier = IrokoVocabularyIdentifiers.INDEXES.value indexes.human_name = 'Indices, Bases de Datos' db.session.add(indexes) db.session.commit() miar_harvester = MiarHarvester(work_dir) miar_harvester.syncronize_miar_databases()
def init_cuntries(path): vocab = Vocabulary() vocab.identifier = IrokoVocabularyIdentifiers.COUNTRIES.value vocab.human_name = 'Paises' db.session.add(vocab) db.session.commit() with open(path) as f: countries = json.load(f) for country in countries: nterm = Term() nterm.identifier = country['key'] nterm.description = country['text'] nterm.vocabulary_id = vocab.identifier db.session.add(nterm) db.session.commit()
def add_vocabulary(): """The create view.""" form = VocabularyForm() # if the form is submitted and valid if form.validate_on_submit(): new_vocab = Vocabulary() if form.name.data: new_vocab.identifier = form.name.data if form.description.data: new_vocab.description = form.description.data db.session.add(new_vocab) db.session.commit() flash(_('Vocabulary added'), 'info') return redirect(url_for('iroko_curator.add_vocabulary')) return render_template('add_vocabulary.html', form=form)
def init_unesco(path): subjects = Vocabulary() subjects.identifier = IrokoVocabularyIdentifiers.SUBJECTS.value subjects.human_name = 'Cobertura tematica' db.session.add(subjects) db.session.commit() groups = [ { 'name': 'http://vocabularies.unesco.org/thesaurus/domain1', 'description': 'Educación' }, { 'name': 'http://vocabularies.unesco.org/thesaurus/domain2', 'description': 'Ciencia' }, { 'name': 'http://vocabularies.unesco.org/thesaurus/domain3', 'description': 'Cultura' }, { 'name': 'http://vocabularies.unesco.org/thesaurus/domain4', 'description': 'Ciencias sociales y humanas' }, { 'name': 'http://vocabularies.unesco.org/thesaurus/domain5', 'description': 'Información y comunicación' }, { 'name': 'http://vocabularies.unesco.org/thesaurus/domain6', 'description': 'Política, derecho y economía' } ] graph = Graph() graph.load(path) for t in groups: term = Term() term.identifier = t['name'] term.description = t['description'] term.vocabulary_id = subjects.identifier db.session.add(term) db.session.commit() _add_group_terms(graph, t['name'], term, subjects) db.session.commit()
def new_vocabulary(cls, input_data) -> Dict[str, Vocabulary]: msg = '' try: data = vocabulary_schema.load(input_data) vocab = Vocabulary.query.filter_by(identifier=data['name']).first() if not vocab: vocab = Vocabulary() vocab.identifier = string_as_identifier(data['name']) vocab.human_name = data['human_name'] vocab.description = data['description'] vocab.data = data['data'] db.session.add(vocab) db.session.commit() msg = 'New Vocabulary CREATED name={0}'.format( vocab.identifier) else: msg = 'Vocabulary already exist name={0}'.format( vocab.identifier) vocab = None except Exception as err: msg = 'ERROR {0} - {1}'.format(err, data) vocab = None finally: return msg, vocab
def init_taxonomy(): """Init vocabularies""" delete_all_vocabs() # print('delete all vocabs and terms') # tax_path = '../../data/taxonomy.json' . datadir = current_app.config['IROKO_DATA_DIRECTORY'] init_cuntries(os.path.join(datadir, 'countries.json')) init_unesco(os.path.join(datadir, 'unesco-thesaurus.rdf')) init_indexes() path = os.path.join(datadir, 'vocabularies.json') with open(path) as f: tax = json.load(f) institutions = Vocabulary() institutions.identifier = IrokoVocabularyIdentifiers.CUBAN_INTITUTIONS.value institutions.human_name = 'Instituciones Cubanas' db.session.add(institutions) extra_institutions = Vocabulary() extra_institutions.identifier = IrokoVocabularyIdentifiers.EXTRA_INSTITUTIONS.value extra_institutions.human_name = 'Instituciones sin REUP' db.session.add(extra_institutions) provinces = Vocabulary() provinces.identifier = IrokoVocabularyIdentifiers.CUBAN_PROVINCES.value provinces.human_name = 'Provincias Cubanas' db.session.add(provinces) grupo_mes = Vocabulary() grupo_mes.identifier = IrokoVocabularyIdentifiers.INDEXES_CLASIFICATION.value grupo_mes.human_name = 'Clasificaciones de Bases de Datos e Indizadores' db.session.add(grupo_mes) licences = Vocabulary() licences.identifier = IrokoVocabularyIdentifiers.LICENCES.value licences.human_name = 'Licencias' db.session.add(licences) record_sets = Vocabulary() record_sets.identifier = IrokoVocabularyIdentifiers.RECOD_SETS.value record_sets.human_name = 'Conjuntos de Articulos' db.session.add(record_sets) # record_set is clasified as record_type record_types = Vocabulary() record_types.identifier = IrokoVocabularyIdentifiers.RECORD_TYPES.value record_types.human_name = 'Tipos de Articulos' db.session.add(record_types) db.session.commit() init_vocabulary(tax, 'institutions', institutions) init_vocabulary(tax, 'provinces', provinces) init_vocabulary(tax, 'grupo_mes', grupo_mes) init_vocabulary(tax, 'licences', licences)