Search in sources :

Example 6 with SKOSLabel

use of mom.trd.opentheso.skosapi.SKOSLabel 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 boolean addThesaurus() throws SQLException {
    thesaurus = new Thesaurus();
    SKOSResource conceptScheme = skosXmlDocument.getConceptScheme();
    if (conceptScheme == null) {
        message.append("Erreur SKOS !!! manque balise conceptSheme");
        return false;
    }
    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, "", false)) == null) {
        conn.rollback();
        conn.close();
        message.append("Erreur lors de la création du thésaurus");
        return false;
    }
    // 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()) {
        thesaurus.setTitle(label.getLabel());
        thesaurus.setLanguage(label.getLanguage());
        if (thesaurus.getLanguage() == null) {
            // cas où la langue n'est pas définie dans le SKOS
            thesaurus.setLanguage("fr");
        }
        if (!thesaurusHelper.addThesaurusTraductionRollBack(conn, thesaurus)) {
            conn.rollback();
            conn.close();
            message.append("Erreur lors de la création des traductions du thésaurus");
            return false;
        }
    }
    // ajouter le thésaurus dans le group de l'utilisateur
    if (idGroupUser != -1) {
        // si le groupeUser = - 1, c'est le cas d'un SuperAdmin, alors on n'intègre pas le thésaurus dans un groupUser
        UserHelper2 userHelper = new UserHelper2();
        if (!userHelper.addThesoToGroup(conn, thesaurus.getId_thesaurus(), idGroupUser)) {
            conn.rollback();
            conn.close();
            message.append("Erreur lors de l'ajout du thésaurus au projet");
            return false;
        }
    }
    conn.commit();
    conn.close();
    // getNewGroupId();
    idGroupDefault = "orphans";
    for (SKOSRelation relation : skosXmlDocument.getConceptScheme().getRelationsList()) {
        hasTopConcceptList.add(relation.getTargetUri());
    }
    PreferencesHelper preferencesHelper = new PreferencesHelper();
    nodePreference.setCheminSite(skosXmlDocument.getTitle());
    nodePreference.setPreferredName(idTheso1);
    preferencesHelper.addPreference(ds, nodePreference, idTheso1);
    return true;
}
Also used : SKOSCreator(mom.trd.opentheso.skosapi.SKOSCreator) SKOSResource(mom.trd.opentheso.skosapi.SKOSResource) Thesaurus(mom.trd.opentheso.bdd.datas.Thesaurus) ThesaurusHelper(mom.trd.opentheso.bdd.helper.ThesaurusHelper) Connection(java.sql.Connection) SKOSRelation(mom.trd.opentheso.skosapi.SKOSRelation) UserHelper2(mom.trd.opentheso.bdd.helper.UserHelper2) SKOSLabel(mom.trd.opentheso.skosapi.SKOSLabel) PreferencesHelper(mom.trd.opentheso.bdd.helper.PreferencesHelper)

Example 7 with SKOSLabel

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

the class ImportRdf4jHelper method addLabel.

private void addLabel(AddConceptsStruct acs) {
    NodeTermTraduction nodeTermTraduction;
    for (SKOSLabel label : acs.conceptResource.getLabelsList()) {
        if (label.getProperty() == SKOSProperty.prefLabel) {
            nodeTermTraduction = new NodeTermTraduction();
            nodeTermTraduction.setLexicalValue(label.getLabel());
            nodeTermTraduction.setLang(label.getLanguage());
            acs.nodeTermTraductionList.add(nodeTermTraduction);
        } else {
            NodeEM nodeEM = new NodeEM();
            String status = "";
            boolean hiden = false;
            if (label.getProperty() == SKOSProperty.altLabel) {
                status = "USE";
            } else if (label.getProperty() == SKOSProperty.hiddenLabel) {
                status = "Hidden";
                hiden = true;
            }
            nodeEM.setLexical_value(label.getLabel());
            nodeEM.setLang(label.getLanguage());
            nodeEM.setSource("" + idUser);
            nodeEM.setStatus(status);
            nodeEM.setHiden(hiden);
            acs.nodeEMList.add(nodeEM);
        }
    }
}
Also used : SKOSLabel(mom.trd.opentheso.skosapi.SKOSLabel) NodeTermTraduction(mom.trd.opentheso.bdd.helper.nodes.term.NodeTermTraduction) NodeEM(mom.trd.opentheso.bdd.helper.nodes.NodeEM)

Example 8 with SKOSLabel

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

the class ImportCandidatsTest method addCandidates.

private boolean addCandidates(SKOSXmlDocument sKOSXmlDocument) {
    ConnexionTest connexionTest = new ConnexionTest();
    HikariDataSource ds = connexionTest.getConnexionPool();
    CandidateHelper candidateHelper = new CandidateHelper();
    String notes;
    int compteur = 0;
    String idTheso = "23";
    String idConcept = null;
    int idUser = 44;
    String idArk;
    String idParentConcept = "";
    for (SKOSResource sKOSResource : sKOSXmlDocument.getConceptList()) {
        for (SKOSLabel sKOSLabel : sKOSResource.getLabelsList()) {
            idParentConcept = "";
            if (sKOSLabel.getProperty() == SKOSProperty.prefLabel) {
                if (sKOSLabel.getLanguage().equalsIgnoreCase("fr")) {
                    notes = getNotes(sKOSResource);
                    idArk = getIdParentConcept(sKOSResource);
                    if (idArk != null)
                        idParentConcept = new ConceptHelper().getIdConceptFromArkId(ds, idArk);
                    try {
                        Connection conn = ds.getConnection();
                        idConcept = candidateHelper.addCandidat_rollBack(conn, sKOSLabel.getLabel(), sKOSLabel.getLanguage(), idTheso, idUser, notes, idParentConcept, "");
                        if (idConcept == null) {
                            conn.rollback();
                            conn.close();
                            continue;
                        }
                        conn.commit();
                        conn.close();
                        compteur = compteur + 1;
                    } catch (SQLException ex) {
                        java.util.logging.Logger.getLogger(ImportCandidatsTest.class.getName()).log(Level.SEVERE, null, ex);
                    }
                } else {
                    if (idConcept != null) {
                        candidateHelper.addTermCandidatTraduction(ds, idConcept, sKOSLabel.getLabel(), sKOSLabel.getLanguage(), idTheso, idUser);
                    }
                }
            }
        }
    }
    System.out.println("Total = " + compteur);
    return true;
}
Also used : HikariDataSource(com.zaxxer.hikari.HikariDataSource) SKOSResource(mom.trd.opentheso.skosapi.SKOSResource) ConnexionTest(connexion.ConnexionTest) ConceptHelper(mom.trd.opentheso.bdd.helper.ConceptHelper) SQLException(java.sql.SQLException) Connection(java.sql.Connection) SKOSLabel(mom.trd.opentheso.skosapi.SKOSLabel) CandidateHelper(mom.trd.opentheso.bdd.helper.CandidateHelper)

Example 9 with SKOSLabel

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

the class OpenthesoHelper method getValues.

private ArrayList<NodeAlignment> getValues(String xmlDatas, String idC, String idLang, String idTheso, String source) {
    ArrayList<NodeAlignment> listAlignValues = new ArrayList<>();
    // StringBuffer sb = new StringBuffer(xmlDatas);
    InputStream inputStream;
    SKOSXmlDocument sxd;
    try {
        inputStream = new ByteArrayInputStream(xmlDatas.getBytes("UTF-8"));
        // / read XML SKOS
        ReadRdf4j readRdf4j = new ReadRdf4j(inputStream, 0);
        sxd = readRdf4j.getsKOSXmlDocument();
        for (SKOSResource resource : sxd.getConceptList()) {
            NodeAlignment na = new NodeAlignment();
            na.setInternal_id_concept(idC);
            na.setInternal_id_thesaurus(idTheso);
            // "Pactols");
            na.setThesaurus_target(source);
            na.setUri_target(resource.getUri());
            for (SKOSLabel label : resource.getLabelsList()) {
                switch(label.getProperty()) {
                    case SKOSProperty.prefLabel:
                        if (label.getLanguage().equals(idLang)) {
                            na.setConcept_target(label.getLabel());
                        }
                        break;
                    case SKOSProperty.altLabel:
                        if (label.getLanguage().equals(idLang)) {
                            if (na.getConcept_target_alt().isEmpty()) {
                                na.setConcept_target_alt(label.getLabel());
                            } else {
                                na.setConcept_target_alt(na.getConcept_target_alt() + ";" + label.getLabel());
                            }
                        }
                        break;
                    default:
                        break;
                }
            }
            for (SKOSDocumentation sd : resource.getDocumentationsList()) {
                if (sd.getProperty() == SKOSProperty.definition && sd.getLanguage().equals(idLang)) {
                    na.setDef_target(sd.getText());
                }
            }
            listAlignValues.add(na);
        }
    } catch (UnsupportedEncodingException ex) {
        Logger.getLogger(DownloadBean.class.getName()).log(Level.SEVERE, null, ex);
    } catch (IOException ex) {
        Logger.getLogger(OpenthesoHelper.class.getName()).log(Level.SEVERE, null, ex);
    }
    return listAlignValues;
}
Also used : ReadRdf4j(mom.trd.opentheso.core.imports.rdf4j.ReadRdf4j) ByteArrayInputStream(java.io.ByteArrayInputStream) InputStream(java.io.InputStream) DownloadBean(mom.trd.opentheso.SelectedBeans.DownloadBean) ArrayList(java.util.ArrayList) UnsupportedEncodingException(java.io.UnsupportedEncodingException) SKOSXmlDocument(mom.trd.opentheso.skosapi.SKOSXmlDocument) SKOSLabel(mom.trd.opentheso.skosapi.SKOSLabel) IOException(java.io.IOException) NodeAlignment(mom.trd.opentheso.bdd.helper.nodes.NodeAlignment) SKOSResource(mom.trd.opentheso.skosapi.SKOSResource) SKOSDocumentation(mom.trd.opentheso.skosapi.SKOSDocumentation) ByteArrayInputStream(java.io.ByteArrayInputStream)

Example 10 with SKOSLabel

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

the class WritePdf method writeConceptSheme.

/**
 * ecri les information du ConceptSheme dans le PDF
 */
private void writeConceptSheme() {
    PdfPTable table = new PdfPTable(2);
    PdfPCell cell1 = new PdfPCell();
    PdfPCell cell2 = new PdfPCell();
    try {
        SKOSResource thesaurus = xmlDocument.getConceptScheme();
        for (SKOSLabel label : thesaurus.getLabelsList()) {
            if (label.getLanguage().equals(codeLang)) {
                String labelValue = label.getLabel();
                if (label.getProperty() == SKOSProperty.prefLabel) {
                    cell1.addElement(new Paragraph(labelValue + " (" + codeLang + ")", titleFont));
                }
            }
        }
        cell1.setBorderWidth(Rectangle.NO_BORDER);
        table.addCell(cell1);
        if (!codeLang2.equals("")) {
            for (SKOSLabel label : thesaurus.getLabelsList()) {
                if (label.getLanguage().equals(codeLang2)) {
                    String labelValue = label.getLabel();
                    if (label.getProperty() == SKOSProperty.prefLabel) {
                        cell2.addElement(new Paragraph(labelValue + " (" + codeLang2 + ")", titleFont));
                    }
                }
            }
        }
        cell2.setBorder(Rectangle.NO_BORDER);
        table.addCell(cell2);
        document.add(new Paragraph(thesaurus.getUri(), subTitleFont));
        document.add(table);
        document.add(new Paragraph(" "));
        document.add(new Paragraph(" "));
    } catch (DocumentException ex) {
        Logger.getLogger(WritePdf.class.getName()).log(Level.SEVERE, null, ex);
    }
}
Also used : PdfPCell(com.itextpdf.text.pdf.PdfPCell) SKOSResource(mom.trd.opentheso.skosapi.SKOSResource) PdfPTable(com.itextpdf.text.pdf.PdfPTable) DocumentException(com.itextpdf.text.DocumentException) SKOSLabel(mom.trd.opentheso.skosapi.SKOSLabel) Paragraph(com.itextpdf.text.Paragraph)

Aggregations

SKOSLabel (mom.trd.opentheso.skosapi.SKOSLabel)11 SKOSResource (mom.trd.opentheso.skosapi.SKOSResource)7 SKOSRelation (mom.trd.opentheso.skosapi.SKOSRelation)4 Connection (java.sql.Connection)3 SKOSDocumentation (mom.trd.opentheso.skosapi.SKOSDocumentation)3 Paragraph (com.itextpdf.text.Paragraph)2 ByteArrayInputStream (java.io.ByteArrayInputStream)2 IOException (java.io.IOException)2 InputStream (java.io.InputStream)2 UnsupportedEncodingException (java.io.UnsupportedEncodingException)2 SQLException (java.sql.SQLException)2 ArrayList (java.util.ArrayList)2 DownloadBean (mom.trd.opentheso.SelectedBeans.DownloadBean)2 ConceptGroupLabel (mom.trd.opentheso.bdd.datas.ConceptGroupLabel)2 CandidateHelper (mom.trd.opentheso.bdd.helper.CandidateHelper)2 ConceptHelper (mom.trd.opentheso.bdd.helper.ConceptHelper)2 GroupHelper (mom.trd.opentheso.bdd.helper.GroupHelper)2 ReadRdf4j (mom.trd.opentheso.core.imports.rdf4j.ReadRdf4j)2 SKOSNotation (mom.trd.opentheso.skosapi.SKOSNotation)2 SKOSXmlDocument (mom.trd.opentheso.skosapi.SKOSXmlDocument)2