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;
}
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);
}
}
}
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;
}
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;
}
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);
}
}
Aggregations