Search in sources :

Example 1 with HierarchicalRelationship

use of mom.trd.opentheso.bdd.datas.HierarchicalRelationship in project opentheso by miledrousset.

the class NewTreeBean method fusionConcept.

/**
 * Fusionne les concepts avec mise à  jour dans l'abre
 */
public void fusionConcept() {
    if (selectedTerme.getConceptFusionId().equals(selectedTerme.getIdC())) {
        FacesContext.getCurrentInstance().addMessage(null, new FacesMessage(FacesMessage.SEVERITY_ERROR, langueBean.getMsg("error"), langueBean.getMsg("error")));
        selectedTerme.setConceptFusionId(null);
        selectedTerme.setConceptFusionAlign(null);
        selectedTerme.setConceptFusionNodeRT(null);
    } else {
        int idUser = selectedTerme.getUser().getUser().getId();
        for (NodeRT rt : selectedTerme.getConceptFusionNodeRT()) {
            HierarchicalRelationship hr = new HierarchicalRelationship(rt.getIdConcept(), selectedTerme.getConceptFusionId(), selectedTerme.getIdTheso(), "RT");
            new ConceptHelper().addAssociativeRelation(connect.getPoolConnexion(), hr, idUser);
        }
        for (NodeAlignment na : selectedTerme.getConceptFusionAlign()) {
            new AlignmentHelper().addNewAlignment(connect.getPoolConnexion(), idUser, na.getConcept_target(), na.getThesaurus_target(), na.getUri_target(), na.getAlignement_id_type(), selectedTerme.getConceptFusionId(), selectedTerme.getIdTheso(), 0);
        }
        new ConceptHelper().addConceptFusion(connect.getPoolConnexion(), selectedTerme.getConceptFusionId(), selectedTerme.getIdC(), selectedTerme.getIdTheso(), idUser);
        FacesContext.getCurrentInstance().addMessage(null, new FacesMessage(langueBean.getMsg("info") + " :", langueBean.getMsg("tree.info6")));
        reInit();
        reExpand();
    }
    selectedTerme.setSelectedTermComp(new NodeAutoCompletion());
    vue.setAddTInfo(0);
}
Also used : NodeRT(mom.trd.opentheso.bdd.helper.nodes.NodeRT) NodeAlignment(mom.trd.opentheso.bdd.helper.nodes.NodeAlignment) ConceptHelper(mom.trd.opentheso.bdd.helper.ConceptHelper) HierarchicalRelationship(mom.trd.opentheso.bdd.datas.HierarchicalRelationship) AlignmentHelper(mom.trd.opentheso.bdd.helper.AlignmentHelper) FacesMessage(javax.faces.application.FacesMessage) NodeAutoCompletion(mom.trd.opentheso.bdd.helper.nodes.NodeAutoCompletion)

Example 2 with HierarchicalRelationship

use of mom.trd.opentheso.bdd.datas.HierarchicalRelationship in project opentheso by miledrousset.

the class ImportSkosHelper method addConcepts.

/**
 * récupération des concepts
 * @return
 */
public boolean addConcepts() {
    String uri;
    Value value;
    boolean isTopConcept = true;
    Concept concept = new Concept();
    ConceptHelper conceptHelper = new ConceptHelper();
    TermHelper termHelper = new TermHelper();
    NoteHelper noteHelper = new NoteHelper();
    Term term = new Term();
    AlignmentHelper alignmentHelper = new AlignmentHelper();
    // pour intégrer les coordonnées GPS
    NodeGps nodeGps = new NodeGps();
    GpsHelper gpsHelper = new GpsHelper();
    // ajout des termes et traductions
    NodeTerm nodeTerm = new NodeTerm();
    ArrayList<NodeTermTraduction> nodeTermTraductionList = new ArrayList<>();
    // Enregister les synonymes et traductions
    ArrayList<NodeEM> nodeEMList = new ArrayList<>();
    // ajout des notes
    ArrayList<NodeNote> nodeNotes = new ArrayList<>();
    // ajout des alignements
    ArrayList<NodeAlignment> nodeAlignments = new ArrayList<>();
    // ajout des relations
    ArrayList<HierarchicalRelationship> hierarchicalRelationships = new ArrayList<>();
    // ajout des relations Groups
    ArrayList<String> idGrps = new ArrayList<>();
    if (dataSet.getSKOSConcepts().isEmpty())
        return false;
    conceptsCount = dataSet.getSKOSConcepts().size();
    // i can get all the concepts from this scheme
    for (SKOSConcept skosConcept : dataSet.getSKOSConcepts()) {
        // URI du Concept récupération automatique de l'identifiant
        String id = getIdFromUri(skosConcept.getURI().toString());
        if (id == null || id.isEmpty()) {
            message = message + "identifiant null pour l'URI : " + skosConcept.getURI().toString();
            continue;
        } else {
            concept.setIdConcept(id);
        }
        concept.setIdThesaurus(thesaurus.getId_thesaurus());
        // concept.setIdGroup(idGroup.get(0));
        concept.setNotation("");
        // skos:notation
        /* if(anno.getURI().getFragment().equalsIgnoreCase("notation")) {
                            value = getValue(anno);
                            NodeTermTraduction nodeTermTraduction = new NodeTermTraduction();
                            nodeTermTraduction.setLexicalValue(value.getValue());
                            nodeTermTraduction.setLang(value.getLang());
                            nodeTermTraductionList.add(nodeTermTraduction);
                        }*/
        concept.setStatus("");
        concept.setIdArk(skosConcept.getURI().toString());
        for (SKOSAnnotation anno : skosConcept.getSKOSAnnotations(dataSet)) {
            // c'est une valeur
            if (anno.isAnnotationByConstant()) {
                // balises SKOS
                if (anno.getURI().getFragment() != null) {
                    // get notation
                    if (anno.getURI().getFragment().equalsIgnoreCase("notation")) {
                        value = getValue(anno);
                        concept.setNotation(value.getValue());
                    }
                    // get GPS : long and lat
                    if (anno.getURI().getFragment().equalsIgnoreCase("long")) {
                        value = getValue(anno);
                        nodeGps.setLongitude(Double.parseDouble(value.getValue()));
                    }
                    if (anno.getURI().getFragment().equalsIgnoreCase("lat")) {
                        value = getValue(anno);
                        nodeGps.setLatitude(Double.parseDouble(value.getValue()));
                    }
                    // get altLabels
                    if (anno.getURI().getFragment().equalsIgnoreCase("prefLabel")) {
                        value = getValue(anno);
                        NodeTermTraduction nodeTermTraduction = new NodeTermTraduction();
                        nodeTermTraduction.setLexicalValue(value.getValue());
                        nodeTermTraduction.setLang(value.getLang());
                        nodeTermTraductionList.add(nodeTermTraduction);
                    }
                    if (anno.getURI().getFragment().equalsIgnoreCase("altLabel")) {
                        value = getValue(anno);
                        NodeEM nodeEM = new NodeEM();
                        nodeEM.setLexical_value(value.getValue());
                        nodeEM.setLang(value.getLang());
                        nodeEM.setSource("" + idUser);
                        nodeEM.setStatus("USE");
                        nodeEM.setHiden(false);
                        nodeEMList.add(nodeEM);
                    }
                    if (anno.getURI().getFragment().equalsIgnoreCase("hiddenLabel")) {
                        value = getValue(anno);
                        NodeEM nodeEM = new NodeEM();
                        nodeEM.setLexical_value(value.getValue());
                        nodeEM.setLang(value.getLang());
                        nodeEM.setSource("" + idUser);
                        nodeEM.setStatus("Hidden");
                        nodeEM.setHiden(true);
                        nodeEMList.add(nodeEM);
                    }
                    // get notes
                    if (anno.getURI().getFragment().equalsIgnoreCase("definition")) {
                        value = getValue(anno);
                        NodeNote nodeNote = new NodeNote();
                        nodeNote.setLang(value.getLang());
                        nodeNote.setLexicalvalue(value.getValue());
                        nodeNote.setNotetypecode("definition");
                        nodeNotes.add(nodeNote);
                    }
                    if (anno.getURI().getFragment().equalsIgnoreCase("note")) {
                        value = getValue(anno);
                        NodeNote nodeNote = new NodeNote();
                        nodeNote.setLang(value.getLang());
                        nodeNote.setLexicalvalue(value.getValue());
                        nodeNote.setNotetypecode("note");
                        nodeNotes.add(nodeNote);
                    }
                    if (anno.getURI().getFragment().equalsIgnoreCase("scopeNote")) {
                        value = getValue(anno);
                        NodeNote nodeNote = new NodeNote();
                        nodeNote.setLang(value.getLang());
                        nodeNote.setLexicalvalue(value.getValue());
                        nodeNote.setNotetypecode("scopeNote");
                        nodeNotes.add(nodeNote);
                    }
                    if (anno.getURI().getFragment().equalsIgnoreCase("editorialNote")) {
                        value = getValue(anno);
                        NodeNote nodeNote = new NodeNote();
                        nodeNote.setLang(value.getLang());
                        nodeNote.setLexicalvalue(value.getValue());
                        nodeNote.setNotetypecode("editorialNote");
                        nodeNotes.add(nodeNote);
                    }
                    if (anno.getURI().getFragment().equalsIgnoreCase("historyNote")) {
                        value = getValue(anno);
                        NodeNote nodeNote = new NodeNote();
                        nodeNote.setLang(value.getLang());
                        nodeNote.setLexicalvalue(value.getValue());
                        nodeNote.setNotetypecode("historyNote");
                        nodeNotes.add(nodeNote);
                    }
                } else // balises DublinCore dc
                {
                    uri = getIdFromUri(anno.getURI().toString());
                    if (uri.equalsIgnoreCase("created") || uri.equalsIgnoreCase("date")) {
                        concept = addDates(concept, formatDate, getValue(anno).getValue(), "created");
                    }
                    if (uri.equalsIgnoreCase("modified")) {
                        concept = addDates(concept, formatDate, getValue(anno).getValue(), "modified");
                    }
                    // get the identifier from dcterms ceci peut être aussi l'identifiant ark
                    if (uri.equalsIgnoreCase("identifier")) {
                        concept.setIdArk(getValue(anno).getValue());
                    }
                }
            } else // c'est une relation
            {
                // balises SKOS
                if (anno.getURI().getFragment() != null) {
                    // get relations hiérarchiques
                    if (anno.getURI().getFragment().equalsIgnoreCase("narrower")) {
                        uri = getIdFromUri(anno.getAnnotationValue().getURI().toString());
                        HierarchicalRelationship hierarchicalRelationship = new HierarchicalRelationship();
                        hierarchicalRelationship.setIdConcept1(concept.getIdConcept());
                        hierarchicalRelationship.setIdConcept2(uri);
                        hierarchicalRelationship.setIdThesaurus(thesaurus.getId_thesaurus());
                        hierarchicalRelationship.setRole("NT");
                        hierarchicalRelationships.add(hierarchicalRelationship);
                    }
                    if (anno.getURI().getFragment().equalsIgnoreCase("broader")) {
                        uri = getIdFromUri(anno.getAnnotationValue().getURI().toString());
                        HierarchicalRelationship hierarchicalRelationship = new HierarchicalRelationship();
                        hierarchicalRelationship.setIdConcept1(concept.getIdConcept());
                        hierarchicalRelationship.setIdConcept2(uri);
                        hierarchicalRelationship.setIdThesaurus(thesaurus.getId_thesaurus());
                        hierarchicalRelationship.setRole("BT");
                        hierarchicalRelationships.add(hierarchicalRelationship);
                        isTopConcept = false;
                    }
                    if (anno.getURI().getFragment().equalsIgnoreCase("related")) {
                        uri = getIdFromUri(anno.getAnnotationValue().getURI().toString());
                        HierarchicalRelationship hierarchicalRelationship = new HierarchicalRelationship();
                        hierarchicalRelationship.setIdConcept1(concept.getIdConcept());
                        hierarchicalRelationship.setIdConcept2(uri);
                        hierarchicalRelationship.setIdThesaurus(thesaurus.getId_thesaurus());
                        hierarchicalRelationship.setRole("RT");
                        hierarchicalRelationships.add(hierarchicalRelationship);
                    }
                    // get scheme
                    if (anno.getURI().getFragment().equalsIgnoreCase("inScheme")) {
                    // uri = anno.getAnnotationValue().getURI().toString();
                    }
                    // get Groups
                    if (anno.getURI().getFragment().equalsIgnoreCase("memberOf")) {
                        uri = getIdFromUri(anno.getAnnotationValue().getURI().toString());
                        idGrps.add(uri);
                        addIdGroupToVector(uri);
                    }
                    // get Alignements
                    if (anno.getURI().getFragment().equalsIgnoreCase("closeMatch")) {
                        uri = anno.getAnnotationValue().getURI().toString();
                        NodeAlignment nodeAlignment = new NodeAlignment();
                        nodeAlignment.setId_author(idUser);
                        nodeAlignment.setConcept_target("");
                        nodeAlignment.setThesaurus_target("");
                        nodeAlignment.setUri_target(uri);
                        nodeAlignment.setInternal_id_concept(concept.getIdConcept());
                        nodeAlignment.setInternal_id_thesaurus(thesaurus.getId_thesaurus());
                        nodeAlignment.setAlignement_id_type(2);
                        nodeAlignments.add(nodeAlignment);
                    }
                    if (anno.getURI().getFragment().equalsIgnoreCase("exactMatch")) {
                        uri = anno.getAnnotationValue().getURI().toString();
                        NodeAlignment nodeAlignment = new NodeAlignment();
                        nodeAlignment.setId_author(idUser);
                        nodeAlignment.setConcept_target("");
                        nodeAlignment.setThesaurus_target("");
                        nodeAlignment.setUri_target(uri);
                        nodeAlignment.setInternal_id_concept(concept.getIdConcept());
                        nodeAlignment.setInternal_id_thesaurus(thesaurus.getId_thesaurus());
                        nodeAlignment.setAlignement_id_type(1);
                        nodeAlignments.add(nodeAlignment);
                    }
                    if (anno.getURI().getFragment().equalsIgnoreCase("broadMatch")) {
                        uri = anno.getAnnotationValue().getURI().toString();
                        NodeAlignment nodeAlignment = new NodeAlignment();
                        nodeAlignment.setId_author(idUser);
                        nodeAlignment.setConcept_target("");
                        nodeAlignment.setThesaurus_target("");
                        nodeAlignment.setUri_target(uri);
                        nodeAlignment.setInternal_id_concept(concept.getIdConcept());
                        nodeAlignment.setInternal_id_thesaurus(thesaurus.getId_thesaurus());
                        nodeAlignment.setAlignement_id_type(3);
                        nodeAlignments.add(nodeAlignment);
                    }
                    if (anno.getURI().getFragment().equalsIgnoreCase("narrowMatch")) {
                        uri = anno.getAnnotationValue().getURI().toString();
                        NodeAlignment nodeAlignment = new NodeAlignment();
                        nodeAlignment.setId_author(idUser);
                        nodeAlignment.setConcept_target("");
                        nodeAlignment.setThesaurus_target("");
                        nodeAlignment.setUri_target(uri);
                        nodeAlignment.setInternal_id_concept(concept.getIdConcept());
                        nodeAlignment.setInternal_id_thesaurus(thesaurus.getId_thesaurus());
                        nodeAlignment.setAlignement_id_type(5);
                        nodeAlignments.add(nodeAlignment);
                    }
                    if (anno.getURI().getFragment().equalsIgnoreCase("relatedMatch")) {
                        uri = anno.getAnnotationValue().getURI().toString();
                        NodeAlignment nodeAlignment = new NodeAlignment();
                        nodeAlignment.setId_author(idUser);
                        nodeAlignment.setConcept_target("");
                        nodeAlignment.setThesaurus_target("");
                        nodeAlignment.setUri_target(uri);
                        nodeAlignment.setInternal_id_concept(concept.getIdConcept());
                        nodeAlignment.setInternal_id_thesaurus(thesaurus.getId_thesaurus());
                        nodeAlignment.setAlignement_id_type(4);
                        nodeAlignments.add(nodeAlignment);
                    }
                }
            }
        }
        // ajout des termes et traductions
        nodeTerm.setNodeTermTraduction(nodeTermTraductionList);
        nodeTerm.setIdTerm(concept.getIdConcept());
        nodeTerm.setIdConcept(concept.getIdConcept());
        nodeTerm.setIdThesaurus(thesaurus.getId_thesaurus());
        nodeTerm.setSource("");
        nodeTerm.setStatus("");
        nodeTerm.setCreated(concept.getCreated());
        nodeTerm.setModified(concept.getModified());
        // conctrole si le concept est vide aucun prefLable, on l'ignore
        if (!isConceptEmpty(nodeTermTraductionList)) {
            if (idGrps.isEmpty()) {
                concept.setTopConcept(isTopConcept);
                concept.setIdGroup(idGroupDefault);
                conceptHelper.insertConceptInTable(ds, concept, idUser);
            } else {
                for (String idGrp : idGrps) {
                    concept.setTopConcept(isTopConcept);
                    concept.setIdGroup(idGrp);
                    conceptHelper.insertConceptInTable(ds, concept, idUser);
                }
            }
            termHelper.insertTerm(ds, nodeTerm, idUser);
            try {
                Connection conn = ds.getConnection();
                conn.setAutoCommit(false);
                for (HierarchicalRelationship hierarchicalRelationship : hierarchicalRelationships) {
                    conceptHelper.addLinkHierarchicalRelation(conn, hierarchicalRelationship, idUser);
                }
                conn.commit();
                conn.close();
            } catch (SQLException ex) {
            }
            for (NodeNote nodeNoteList1 : nodeNotes) {
                if (nodeNoteList1.getNotetypecode().contains("scopeNote")) {
                    noteHelper.addConceptNote(ds, concept.getIdConcept(), nodeNoteList1.getLang(), thesaurus.getId_thesaurus(), nodeNoteList1.getLexicalvalue(), nodeNoteList1.getNotetypecode(), idUser);
                }
                if (nodeNoteList1.getNotetypecode().contains("historyNote")) {
                    noteHelper.addConceptNote(ds, concept.getIdConcept(), nodeNoteList1.getLang(), thesaurus.getId_thesaurus(), nodeNoteList1.getLexicalvalue(), nodeNoteList1.getNotetypecode(), idUser);
                }
                if (nodeNoteList1.getNotetypecode().contains("definition")) {
                    noteHelper.addTermNote(ds, nodeTerm.getIdTerm(), nodeNoteList1.getLang(), thesaurus.getId_thesaurus(), nodeNoteList1.getLexicalvalue(), nodeNoteList1.getNotetypecode(), idUser);
                }
                if (nodeNoteList1.getNotetypecode().contains("editorialNote")) {
                    noteHelper.addTermNote(ds, nodeTerm.getIdTerm(), nodeNoteList1.getLang(), thesaurus.getId_thesaurus(), nodeNoteList1.getLexicalvalue(), nodeNoteList1.getNotetypecode(), idUser);
                }
                if (nodeNoteList1.getNotetypecode().contains("note")) {
                    noteHelper.addConceptNote(ds, nodeTerm.getIdTerm(), nodeNoteList1.getLang(), thesaurus.getId_thesaurus(), nodeNoteList1.getLexicalvalue(), nodeNoteList1.getNotetypecode(), idUser);
                }
            }
            for (NodeAlignment nodeAlignment : nodeAlignments) {
                alignmentHelper.addNewAlignment(ds, nodeAlignment);
            }
            for (NodeEM nodeEMList1 : nodeEMList) {
                term.setId_concept(concept.getIdConcept());
                term.setId_term(nodeTerm.getIdTerm());
                term.setLexical_value(nodeEMList1.getLexical_value());
                term.setLang(nodeEMList1.getLang());
                term.setId_thesaurus(thesaurus.getId_thesaurus());
                term.setSource(nodeEMList1.getSource());
                term.setStatus(nodeEMList1.getStatus());
                termHelper.addNonPreferredTerm(ds, term, idUser);
            }
            if (nodeGps.getLatitude() != 0.0) {
                if (nodeGps.getLongitude() != 0.0) {
                    // insertion des données GPS
                    gpsHelper.insertCoordonees(ds, concept.getIdConcept(), thesaurus.getId_thesaurus(), nodeGps.getLatitude(), nodeGps.getLongitude());
                }
            }
        }
        // initialisation des variables
        concept = new Concept();
        term = new Term();
        nodeTerm = new NodeTerm();
        nodeTermTraductionList = new ArrayList<>();
        nodeEMList = new ArrayList<>();
        nodeNotes = new ArrayList<>();
        nodeAlignments = new ArrayList<>();
        hierarchicalRelationships = new ArrayList<>();
        idGrps = new ArrayList<>();
        isTopConcept = true;
        nodeGps = new NodeGps();
    }
    for (String idTopConcept1 : idTopConcept) {
        if (!conceptHelper.setTopConcept(ds, idTopConcept1, thesaurus.getId_thesaurus())) {
        // erreur;
        }
    }
    addGroups();
    addLangsToThesaurus(ds, thesaurus.getId_thesaurus());
    message = message + "\n nombre de Concepts importés : " + conceptsCount;
    return true;
}
Also used : SQLException(java.sql.SQLException) ArrayList(java.util.ArrayList) GpsHelper(mom.trd.opentheso.bdd.helper.GpsHelper) TermHelper(mom.trd.opentheso.bdd.helper.TermHelper) SKOSConcept(org.semanticweb.skos.SKOSConcept) Concept(mom.trd.opentheso.bdd.datas.Concept) ConceptHelper(mom.trd.opentheso.bdd.helper.ConceptHelper) NodeTerm(mom.trd.opentheso.bdd.helper.nodes.term.NodeTerm) NodeGps(mom.trd.opentheso.bdd.helper.nodes.NodeGps) Connection(java.sql.Connection) NoteHelper(mom.trd.opentheso.bdd.helper.NoteHelper) AlignmentHelper(mom.trd.opentheso.bdd.helper.AlignmentHelper) Term(mom.trd.opentheso.bdd.datas.Term) NodeTerm(mom.trd.opentheso.bdd.helper.nodes.term.NodeTerm) NodeTermTraduction(mom.trd.opentheso.bdd.helper.nodes.term.NodeTermTraduction) SKOSAnnotation(org.semanticweb.skos.SKOSAnnotation) NodeEM(mom.trd.opentheso.bdd.helper.nodes.NodeEM) NodeAlignment(mom.trd.opentheso.bdd.helper.nodes.NodeAlignment) HierarchicalRelationship(mom.trd.opentheso.bdd.datas.HierarchicalRelationship) NodeNote(mom.trd.opentheso.bdd.helper.nodes.notes.NodeNote) SKOSConcept(org.semanticweb.skos.SKOSConcept)

Example 3 with HierarchicalRelationship

use of mom.trd.opentheso.bdd.datas.HierarchicalRelationship in project opentheso by miledrousset.

the class WriteBranchSkosBDD method writeRelationsListTopConcept.

public void writeRelationsListTopConcept(ArrayList<SKOSRelation> relationsList, String idConcept, String idThesaurus, int idUser) {
    ConceptHelper conceptHelper = new ConceptHelper();
    HierarchicalRelationship hierarchicalRelationship = new HierarchicalRelationship();
    for (int i = 0; i < relationsList.size(); i++) {
        SKOSRelation relation = relationsList.get(i);
        switch(relation.getProperty()) {
            case SKOSProperty.narrower:
                hierarchicalRelationship.setIdConcept1(idConcept);
                hierarchicalRelationship.setIdConcept2(getId(relation.getTargetUri()));
                hierarchicalRelationship.setIdThesaurus(idThesaurus);
                hierarchicalRelationship.setRole("NT");
                try {
                    Connection conn = ds.getConnection();
                    conn.setAutoCommit(false);
                    if (!conceptHelper.addLinkHierarchicalRelation(conn, hierarchicalRelationship, idUser)) {
                        conn.rollback();
                        conn.close();
                    }
                    conn.commit();
                    conn.close();
                } catch (SQLException ex) {
                    Logger.getLogger(WriteBranchSkosBDD.class.getName()).log(Level.SEVERE, null, ex);
                }
                // query.addRelation(id_terme, "NT", getId(relation.getTargetUri()), id_thesaurus);
                break;
            case SKOSProperty.related:
                hierarchicalRelationship.setIdConcept1(idConcept);
                hierarchicalRelationship.setIdConcept2(getId(relation.getTargetUri()));
                hierarchicalRelationship.setIdThesaurus(idThesaurus);
                hierarchicalRelationship.setRole("RT");
                try {
                    try (Connection conn = ds.getConnection()) {
                        conn.setAutoCommit(false);
                        if (!conceptHelper.addLinkHierarchicalRelation(conn, hierarchicalRelationship, idUser)) {
                            conn.rollback();
                            conn.close();
                        }
                        conn.commit();
                        conn.close();
                    }
                } catch (SQLException ex) {
                    Logger.getLogger(WriteBranchSkosBDD.class.getName()).log(Level.SEVERE, null, ex);
                }
                // query.addRelation(id_terme, "RT", getId(relation.getTargetUri()), id_thesaurus);
                break;
            default:
                break;
        }
    }
}
Also used : ConceptHelper(mom.trd.opentheso.bdd.helper.ConceptHelper) HierarchicalRelationship(mom.trd.opentheso.bdd.datas.HierarchicalRelationship) SQLException(java.sql.SQLException) Connection(java.sql.Connection) SKOSRelation(skos.SKOSRelation)

Example 4 with HierarchicalRelationship

use of mom.trd.opentheso.bdd.datas.HierarchicalRelationship in project opentheso by miledrousset.

the class ImportRdf4jHelper method finalizeAddConceptStruct.

private void finalizeAddConceptStruct(AddConceptsStruct acs) throws SQLException {
    acs.termHelper.insertTerm(ds, acs.nodeTerm, idUser);
    RelationsHelper relationsHelper = new RelationsHelper();
    for (HierarchicalRelationship hierarchicalRelationship : acs.hierarchicalRelationships) {
        if (!relationsHelper.insertHierarchicalRelation(ds, hierarchicalRelationship.getIdConcept1(), hierarchicalRelationship.getIdThesaurus(), hierarchicalRelationship.getRole(), hierarchicalRelationship.getIdConcept2())) {
            // System.out.println("Erreur sur la relation = " + acs.concept.getIdConcept() + " ## " + hierarchicalRelationship.getRole());
            message.append(System.getProperty("line.separator"));
            message.append("Erreur sur la relation = ");
            message.append(acs.concept.getIdConcept());
            message.append(" ## ");
            message.append(hierarchicalRelationship.getRole());
        }
    }
    // For Term : definition; editorialNote; historyNote;
    for (NodeNote nodeNoteList1 : acs.nodeNotes) {
        if (nodeNoteList1.getNotetypecode().equals("customnote") || nodeNoteList1.getNotetypecode().equals("scopeNote") || nodeNoteList1.getNotetypecode().equals("historyNote") || nodeNoteList1.getNotetypecode().equals("note")) {
            acs.noteHelper.addConceptNote(ds, acs.concept.getIdConcept(), nodeNoteList1.getLang(), idTheso, nodeNoteList1.getLexicalvalue(), nodeNoteList1.getNotetypecode(), idUser);
        }
        if (nodeNoteList1.getNotetypecode().equals("definition") || nodeNoteList1.getNotetypecode().equals("editorialNote")) {
            acs.noteHelper.addTermNote(ds, acs.nodeTerm.getIdTerm(), nodeNoteList1.getLang(), idTheso, nodeNoteList1.getLexicalvalue(), nodeNoteList1.getNotetypecode(), idUser);
        }
    }
    for (NodeAlignment nodeAlignment : acs.nodeAlignments) {
        acs.alignmentHelper.addNewAlignment(ds, nodeAlignment);
    }
    for (NodeEM nodeEMList1 : acs.nodeEMList) {
        acs.term.setId_concept(acs.concept.getIdConcept());
        acs.term.setId_term(acs.nodeTerm.getIdTerm());
        acs.term.setLexical_value(nodeEMList1.getLexical_value());
        acs.term.setLang(nodeEMList1.getLang());
        acs.term.setId_thesaurus(thesaurus.getId_thesaurus());
        acs.term.setSource(nodeEMList1.getSource());
        acs.term.setStatus(nodeEMList1.getStatus());
        acs.termHelper.addNonPreferredTerm(ds, acs.term, idUser);
    }
    if (acs.nodeGps.getLatitude() != null && acs.nodeGps.getLongitude() != null) {
        // insertion des données GPS
        acs.gpsHelper.insertCoordonees(ds, acs.concept.getIdConcept(), thesaurus.getId_thesaurus(), acs.nodeGps.getLatitude(), acs.nodeGps.getLongitude());
    }
    for (String idTopConcept1 : idTopConcept) {
        if (!acs.conceptHelper.setTopConcept(ds, idTopConcept1, thesaurus.getId_thesaurus())) {
        // erreur;
        }
    }
    // initialisation des variables
    acs.concept = new Concept();
    acs.nodeTerm = new NodeTerm();
    acs.nodeTermTraductionList = new ArrayList<>();
    acs.nodeEMList = new ArrayList<>();
    acs.nodeNotes = new ArrayList<>();
    acs.nodeAlignments = new ArrayList<>();
    acs.hierarchicalRelationships = new ArrayList<>();
    acs.idGrps = new ArrayList<>();
    acs.isTopConcept = false;
    acs.nodeGps = new NodeGps();
}
Also used : Concept(mom.trd.opentheso.bdd.datas.Concept) NodeAlignment(mom.trd.opentheso.bdd.helper.nodes.NodeAlignment) NodeTerm(mom.trd.opentheso.bdd.helper.nodes.term.NodeTerm) HierarchicalRelationship(mom.trd.opentheso.bdd.datas.HierarchicalRelationship) NodeGps(mom.trd.opentheso.bdd.helper.nodes.NodeGps) NodeNote(mom.trd.opentheso.bdd.helper.nodes.notes.NodeNote) RelationsHelper(mom.trd.opentheso.bdd.helper.RelationsHelper) NodeEM(mom.trd.opentheso.bdd.helper.nodes.NodeEM)

Example 5 with HierarchicalRelationship

use of mom.trd.opentheso.bdd.datas.HierarchicalRelationship in project opentheso by miledrousset.

the class ImportRdf4jHelper method addRelation.

private void addRelation(AddConceptsStruct acs) {
    HierarchicalRelationship hierarchicalRelationship;
    int prop;
    String idConcept2;
    for (SKOSRelation relation : acs.conceptResource.getRelationsList()) {
        prop = relation.getProperty();
        hierarchicalRelationship = new HierarchicalRelationship();
        String role;
        switch(prop) {
            case SKOSProperty.narrower:
                role = "NT";
                break;
            case SKOSProperty.narrowerGeneric:
                role = "NTG";
                break;
            case SKOSProperty.narrowerPartitive:
                role = "NTP";
                break;
            case SKOSProperty.narrowerInstantive:
                role = "NTI";
                break;
            case SKOSProperty.broader:
                role = "BT";
                break;
            case SKOSProperty.broaderGeneric:
                role = "BTG";
                break;
            case SKOSProperty.broaderInstantive:
                role = "BTI";
                break;
            case SKOSProperty.broaderPartitive:
                role = "BTP";
                break;
            case SKOSProperty.related:
                role = "RT";
                break;
            case SKOSProperty.relatedHasPart:
                role = "RHP";
                break;
            case SKOSProperty.relatedPartOf:
                role = "RPO";
                break;
            default:
                role = "";
        }
        if (!role.equals("")) {
            hierarchicalRelationship.setIdConcept1(acs.concept.getIdConcept());
            // option cochée
            // if(identifierType.equalsIgnoreCase("sans")){
            // idConcept2 = getIdFromUri(relation.getTargetUri());
            // } else {
            // Récupération des Id Ark ou Handle
            idConcept2 = getOriginalId(relation.getTargetUri());
            // }
            hierarchicalRelationship.setIdConcept2(idConcept2);
            hierarchicalRelationship.setIdThesaurus(idTheso);
            hierarchicalRelationship.setRole(role);
            acs.hierarchicalRelationships.add(hierarchicalRelationship);
        } else if (prop == SKOSProperty.inScheme) {
        // ?
        /*} else if (prop == SKOSProperty.memberOf) {
                acs.idGrps.add(getIdFromUri(relation.getTargetUri()));
                //addIdGroupToVector(uri);    ????
                 */
        } else if (prop == SKOSProperty.topConceptOf) {
            acs.isTopConcept = true;
        }
        if (hasTopConcceptList.contains(acs.conceptResource.getUri())) {
            acs.isTopConcept = true;
        }
        String uri = acs.conceptResource.getUri();
        String idPere = memberHashMap.get(uri);
        if (idPere != null) {
            acs.idGrps.add(idPere);
            memberHashMap.remove(uri);
        }
    }
}
Also used : HierarchicalRelationship(mom.trd.opentheso.bdd.datas.HierarchicalRelationship) SKOSRelation(mom.trd.opentheso.skosapi.SKOSRelation)

Aggregations

HierarchicalRelationship (mom.trd.opentheso.bdd.datas.HierarchicalRelationship)20 ConceptHelper (mom.trd.opentheso.bdd.helper.ConceptHelper)13 Connection (java.sql.Connection)12 SQLException (java.sql.SQLException)12 NodeAlignment (mom.trd.opentheso.bdd.helper.nodes.NodeAlignment)5 SKOSRelation (skos.SKOSRelation)5 ArrayList (java.util.ArrayList)4 Concept (mom.trd.opentheso.bdd.datas.Concept)4 AlignmentHelper (mom.trd.opentheso.bdd.helper.AlignmentHelper)4 NodeEM (mom.trd.opentheso.bdd.helper.nodes.NodeEM)4 NodeNote (mom.trd.opentheso.bdd.helper.nodes.notes.NodeNote)4 NodeTerm (mom.trd.opentheso.bdd.helper.nodes.term.NodeTerm)4 Term (mom.trd.opentheso.bdd.datas.Term)3 NoteHelper (mom.trd.opentheso.bdd.helper.NoteHelper)3 TermHelper (mom.trd.opentheso.bdd.helper.TermHelper)3 NodeTermTraduction (mom.trd.opentheso.bdd.helper.nodes.term.NodeTermTraduction)3 SKOSAnnotation (org.semanticweb.skos.SKOSAnnotation)3 SKOSConcept (org.semanticweb.skos.SKOSConcept)3 GroupHelper (mom.trd.opentheso.bdd.helper.GroupHelper)2 RelationsHelper (mom.trd.opentheso.bdd.helper.RelationsHelper)2