Ejemplo n.º 1
0
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()
Ejemplo n.º 2
0
 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()
Ejemplo n.º 3
0
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()
Ejemplo n.º 4
0
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)
Ejemplo n.º 5
0
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()
Ejemplo n.º 6
0
    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
Ejemplo n.º 7
0
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)