Search in sources :

Example 6 with SKOSRelation

use of mom.trd.opentheso.skosapi.SKOSRelation in project opentheso by miledrousset.

the class ImportRdf4jHelper method addGroups.

public void addGroups(rdf4jFileBean fileBean) {
    // récupération des groups ou domaine
    GroupHelper groupHelper = new GroupHelper();
    String idGroup;
    for (SKOSResource group : skosXmlDocument.getGroupList()) {
        fileBean.setAbs_progress(fileBean.getAbs_progress() + 1);
        fileBean.setProgress(fileBean.getAbs_progress() / fileBean.getTotal() * 100);
        idGroup = getIdFromUri(group.getUri());
        ArrayList<SKOSNotation> notationList = group.getNotationList();
        SKOSNotation notation = null;
        if (notationList != null && !notationList.isEmpty()) {
            notation = notationList.get(0);
        }
        String notationValue;
        if (notation == null) {
            notationValue = "";
        } else {
            notationValue = notation.getNotation();
        }
        String type;
        switch(group.getProperty()) {
            case SKOSProperty.Collection:
                type = "C";
                break;
            case SKOSProperty.ConceptGroup:
                type = "G";
                break;
            case SKOSProperty.MicroThesaurus:
            default:
                type = "MT";
                break;
            case SKOSProperty.Theme:
                type = "T";
                break;
        }
        groupHelper.insertGroup(ds, idGroup, thesaurus.getId_thesaurus(), type, notationValue, adressSite, useArk, idUser);
        // sub group
        String idSubGroup;
        // concept group concept
        String idSubConcept;
        for (SKOSRelation relation : group.getRelationsList()) {
            int prop = relation.getProperty();
            switch(prop) {
                case SKOSProperty.subGroup:
                    idSubGroup = getIdFromUri(relation.getTargetUri());
                    groupHelper.addSubGroup(ds, idGroup, idSubGroup, thesaurus.getId_thesaurus());
                    break;
                case SKOSProperty.member:
                    // option cochée
                    /*   if(identifierType.equalsIgnoreCase("sans")){
                            idSubConcept = getIdFromUri(relation.getTargetUri());
                        } else {*/
                    // Récupération de l'Id d'origine sauvegardé à l'import (idArk -> identifier)
                    idSubConcept = getOriginalId(relation.getTargetUri());
                    // }
                    groupHelper.addConceptGroupConcept(ds, idGroup, idSubConcept, thesaurus.getId_thesaurus());
                    memberHashMap.put(relation.getTargetUri(), idGroup);
                    break;
                case SKOSProperty.hasTopConcept:
                    hasTopConcceptList.add(relation.getTargetUri());
                    break;
                default:
                    break;
            }
        }
        for (SKOSLabel label : group.getLabelsList()) {
            // ajouter les traductions des Groupes
            ConceptGroupLabel conceptGroupLabel = new ConceptGroupLabel();
            conceptGroupLabel.setIdgroup(idGroup);
            conceptGroupLabel.setIdthesaurus(thesaurus.getId_thesaurus());
            conceptGroupLabel.setLang(label.getLanguage());
            conceptGroupLabel.setLexicalvalue(label.getLabel());
            groupHelper.addGroupTraduction(ds, conceptGroupLabel, idUser);
        }
    }
/*
        groupHelper.insertGroup(ds,
                idGroupDefault,
                thesaurus.getId_thesaurus(),
                "MT",
                "", //notation
                adressSite,
                useArk,
                idUser);
*/
// Création du domaine par défaut
// ajouter les traductions des Groupes
/*ConceptGroupLabel conceptGroupLabel = new ConceptGroupLabel();
        conceptGroupLabel.setIdgroup(idGroupDefault);
        conceptGroupLabel.setIdthesaurus(thesaurus.getId_thesaurus());
        
        conceptGroupLabel.setLang(langueSource);
        conceptGroupLabel.setLexicalvalue("groupDefault");
        groupHelper.addGroupTraduction(ds, conceptGroupLabel, idUser);*/
}
Also used : SKOSResource(mom.trd.opentheso.skosapi.SKOSResource) ConceptGroupLabel(mom.trd.opentheso.bdd.datas.ConceptGroupLabel) SKOSRelation(mom.trd.opentheso.skosapi.SKOSRelation) SKOSLabel(mom.trd.opentheso.skosapi.SKOSLabel) GroupHelper(mom.trd.opentheso.bdd.helper.GroupHelper) SKOSNotation(mom.trd.opentheso.skosapi.SKOSNotation)

Example 7 with SKOSRelation

use of mom.trd.opentheso.skosapi.SKOSRelation in project opentheso by miledrousset.

the class ImportRdf4jHelper method addThesaurus.

/**
 * Cette fonction permet de créer un thésaurus avec ses traductions (Import)
 * elle retourne l'identifiant du thésaurus, sinon Null
 *
 * @return
 * @throws java.sql.SQLException
 */
public String addThesaurus() throws SQLException {
    thesaurus = new Thesaurus();
    SKOSResource conceptScheme = skosXmlDocument.getConceptScheme();
    String creator = null;
    String contributor = null;
    for (SKOSCreator c : conceptScheme.getCreatorList()) {
        if (c.getProperty() == SKOSProperty.creator) {
            creator = c.getCreator();
        } else if (c.getProperty() == SKOSProperty.contributor) {
            contributor = c.getCreator();
        }
    }
    thesaurus.setCreator(creator);
    thesaurus.setContributor(contributor);
    ThesaurusHelper thesaurusHelper = new ThesaurusHelper();
    thesaurusHelper.setIdentifierType("2");
    Connection conn = ds.getConnection();
    conn.setAutoCommit(false);
    String idTheso1;
    if (thesaurus.getLanguage() == null) {
        thesaurus.setLanguage(langueSource);
    }
    if ((idTheso1 = thesaurusHelper.addThesaurusRollBack(conn, adressSite, useArk)) == null) {
        conn.rollback();
        conn.close();
        return null;
    }
    // Si le Titre du thésaurus n'est pas detecter, on donne un nom par defaut
    if (skosXmlDocument.getConceptScheme().getLabelsList().isEmpty()) {
        if (thesaurus.getTitle().isEmpty()) {
            thesaurus.setTitle("theso_" + idTheso1);
        // thesaurusHelper.addThesaurusTraduction(ds, thesaurus);
        }
    }
    thesaurus.setId_thesaurus(idTheso1);
    this.idTheso = idTheso1;
    // boucler pour les traductions
    for (SKOSLabel label : skosXmlDocument.getConceptScheme().getLabelsList()) {
        if (thesaurus.getLanguage() == null) {
            // test
            String workLanguage = "fr";
            thesaurus.setLanguage(workLanguage);
        }
        thesaurus.setTitle(label.getLabel());
        thesaurus.setLanguage(label.getLanguage());
        if (!thesaurusHelper.addThesaurusTraductionRollBack(conn, thesaurus)) {
            conn.rollback();
            conn.close();
            return null;
        }
    }
    UserHelper userHelper = new UserHelper();
    if (!userHelper.addRole(conn, idUser, idRole, idTheso1, "")) {
        conn.rollback();
        conn.close();
        return null;
    }
    conn.commit();
    conn.close();
    idGroupDefault = getNewGroupId();
    for (SKOSRelation relation : skosXmlDocument.getConceptScheme().getRelationsList()) {
        hasTopConcceptList.add(relation.getTargetUri());
    }
    return null;
}
Also used : SKOSCreator(mom.trd.opentheso.skosapi.SKOSCreator) SKOSResource(mom.trd.opentheso.skosapi.SKOSResource) Thesaurus(mom.trd.opentheso.bdd.datas.Thesaurus) UserHelper(mom.trd.opentheso.bdd.helper.UserHelper) ThesaurusHelper(mom.trd.opentheso.bdd.helper.ThesaurusHelper) Connection(java.sql.Connection) SKOSRelation(mom.trd.opentheso.skosapi.SKOSRelation) SKOSLabel(mom.trd.opentheso.skosapi.SKOSLabel)

Aggregations

SKOSRelation (mom.trd.opentheso.skosapi.SKOSRelation)7 SKOSLabel (mom.trd.opentheso.skosapi.SKOSLabel)3 SKOSResource (mom.trd.opentheso.skosapi.SKOSResource)3 HierarchicalRelationship (mom.trd.opentheso.bdd.datas.HierarchicalRelationship)2 Chunk (com.itextpdf.text.Chunk)1 Paragraph (com.itextpdf.text.Paragraph)1 Connection (java.sql.Connection)1 ArrayList (java.util.ArrayList)1 HashMap (java.util.HashMap)1 ConceptGroupLabel (mom.trd.opentheso.bdd.datas.ConceptGroupLabel)1 Thesaurus (mom.trd.opentheso.bdd.datas.Thesaurus)1 GroupHelper (mom.trd.opentheso.bdd.helper.GroupHelper)1 ThesaurusHelper (mom.trd.opentheso.bdd.helper.ThesaurusHelper)1 UserHelper (mom.trd.opentheso.bdd.helper.UserHelper)1 SKOSCreator (mom.trd.opentheso.skosapi.SKOSCreator)1 SKOSDocumentation (mom.trd.opentheso.skosapi.SKOSDocumentation)1 SKOSGPSCoordinates (mom.trd.opentheso.skosapi.SKOSGPSCoordinates)1 SKOSMatch (mom.trd.opentheso.skosapi.SKOSMatch)1 SKOSNotation (mom.trd.opentheso.skosapi.SKOSNotation)1 IRI (org.eclipse.rdf4j.model.IRI)1