use of mom.trd.opentheso.bdd.datas.Term in project opentheso by miledrousset.
the class WriteBranchSkosBDD method writeFirstConceptAfterGroup.
private boolean writeFirstConceptAfterGroup(SKOSResource resource, String idGroup, String idThesaurus, String id_langueSource, String dateFormat, String adressSite, boolean useArk, int idUser) {
RelationsHelper relationsHelper = new RelationsHelper();
// ajout du concept dans la base
Concept concept = new Concept();
ConceptHelper conceptHelper = new ConceptHelper();
if (idGroup.trim().isEmpty())
return false;
String idC = getId(resource.getUri());
concept.setIdConcept(idC);
// concept.setCreated(null);
concept.setIdThesaurus(idThesaurus);
concept.setNotation("");
concept.setStatus("");
concept.setTopConcept(true);
concept.setIdGroup(idGroup);
concept = addDates(resource.getDateList(), concept, dateFormat);
conceptHelper.insertConceptInTable(ds, concept, idUser);
// ajout des termes et traductions
NodeTerm nodeTerm = new NodeTerm();
nodeTerm.setNodeTermTraduction(getTraductionConcept(resource.getLabelsList()));
nodeTerm.setIdTerm(idC);
nodeTerm.setIdConcept(idC);
nodeTerm.setIdThesaurus(idThesaurus);
nodeTerm.setSource("");
nodeTerm.setStatus("");
nodeTerm = addDatesTerm(resource.getDateList(), nodeTerm, dateFormat);
TermHelper termHelper = new TermHelper();
termHelper.insertTerm(ds, nodeTerm, idUser);
// ajouter les notes
ArrayList<NodeNote> nodeNoteList = addNotes(resource.getDocumentationsList());
NoteHelper noteHelper = new NoteHelper();
for (NodeNote nodeNoteList1 : nodeNoteList) {
if (nodeNoteList1.getNotetypecode().contains("scopeNote")) {
noteHelper.addConceptNote(ds, concept.getIdConcept(), nodeNoteList1.getLang(), idThesaurus, nodeNoteList1.getLexicalvalue(), nodeNoteList1.getNotetypecode(), idUser);
}
if (nodeNoteList1.getNotetypecode().contains("historyNote")) {
noteHelper.addConceptNote(ds, concept.getIdConcept(), nodeNoteList1.getLang(), idThesaurus, nodeNoteList1.getLexicalvalue(), nodeNoteList1.getNotetypecode(), idUser);
}
if (nodeNoteList1.getNotetypecode().contains("definition")) {
noteHelper.addTermNote(ds, nodeTerm.getIdTerm(), nodeNoteList1.getLang(), idThesaurus, nodeNoteList1.getLexicalvalue(), nodeNoteList1.getNotetypecode(), idUser);
}
if (nodeNoteList1.getNotetypecode().contains("editorialNote")) {
noteHelper.addTermNote(ds, nodeTerm.getIdTerm(), nodeNoteList1.getLang(), idThesaurus, nodeNoteList1.getLexicalvalue(), nodeNoteList1.getNotetypecode(), idUser);
}
}
// Enregistrer les relations sans les BT
writeRelationsList(resource.getRelationsList(), concept.getIdConcept(), idThesaurus, idUser);
ArrayList<SKOSMapping> sKOSMappings = resource.getMappings();
// Enregistrer les Mappings (alignements)
AlignmentHelper alignmentHelper = new AlignmentHelper();
for (SKOSMapping sKOSMapping : sKOSMappings) {
if (sKOSMapping.getProperty() == SKOSProperty.exactMatch) {
alignmentHelper.addNewAlignment(ds, // user
1, // concept target
"", // thesaurus target
"", // URI
sKOSMapping.getTargetUri(), 1, concept.getIdConcept(), idThesaurus, 0);
}
if (sKOSMapping.getProperty() == SKOSProperty.closeMatch) {
alignmentHelper.addNewAlignment(ds, // user
1, // concept target
"", // thesaurus target
"", // URI
sKOSMapping.getTargetUri(), 2, concept.getIdConcept(), idThesaurus, 0);
}
}
// Ajouter l'id du concept importé pour l'aligner avec le thésaurus source
alignmentHelper.addNewAlignment(ds, // user
1, // concept target
"", // thesaurus target
"", // URI de la source
resource.getUri(), // sKOSMapping.getTargetUri(), // URI
1, concept.getIdConcept(), idThesaurus, 0);
// Enregister les synonymes et traductions
ArrayList<NodeEM> nodeEMs = writeLabelsList(ds, resource.getLabelsList());
Term term = new Term();
for (int i = 0; i < nodeEMs.size(); i++) {
term.setId_concept(concept.getIdConcept());
term.setId_term(nodeTerm.getIdTerm());
term.setLexical_value(nodeEMs.get(i).getLexical_value());
term.setLang(nodeEMs.get(i).getLang());
term.setId_thesaurus(idThesaurus);
term.setSource(nodeEMs.get(i).getSource());
term.setStatus(nodeEMs.get(i).getStatus());
termHelper.addNonPreferredTerm(ds, term, idUser);
}
return true;
}
use of mom.trd.opentheso.bdd.datas.Term in project opentheso by miledrousset.
the class WriteBranchSkosBDD method writeConcept.
private void writeConcept(SKOSResource resource, String idConcept, String idGroup, String idThesaurus, String id_langueSource, String dateFormat, String adressSite, boolean useArk, int idUser) {
// ajout du concept dans la base
Concept concept = new Concept();
ConceptHelper conceptHelper = new ConceptHelper();
if (idConcept.trim().isEmpty())
return;
String idC = getId(resource.getUri());
concept.setIdConcept(idC);
// concept.setCreated(null);
concept.setIdThesaurus(idThesaurus);
concept.setNotation("");
concept.setStatus("");
concept.setTopConcept(false);
concept.setIdGroup(idGroup);
concept = addDates(resource.getDateList(), concept, dateFormat);
if (idGroup.trim().isEmpty())
return;
conceptHelper.insertConceptInTable(ds, concept, idUser);
// ajout des termes et traductions
NodeTerm nodeTerm = new NodeTerm();
nodeTerm.setNodeTermTraduction(getTraductionConcept(resource.getLabelsList()));
nodeTerm.setIdTerm(idC);
nodeTerm.setIdConcept(idC);
nodeTerm.setIdThesaurus(idThesaurus);
nodeTerm.setSource("");
nodeTerm.setStatus("");
nodeTerm = addDatesTerm(resource.getDateList(), nodeTerm, dateFormat);
TermHelper termHelper = new TermHelper();
termHelper.insertTerm(ds, nodeTerm, idUser);
// ajouter les notes
ArrayList<NodeNote> nodeNoteList = addNotes(resource.getDocumentationsList());
NoteHelper noteHelper = new NoteHelper();
for (NodeNote nodeNoteList1 : nodeNoteList) {
if (nodeNoteList1.getNotetypecode().contains("scopeNote")) {
noteHelper.addConceptNote(ds, concept.getIdConcept(), nodeNoteList1.getLang(), idThesaurus, nodeNoteList1.getLexicalvalue(), nodeNoteList1.getNotetypecode(), idUser);
}
if (nodeNoteList1.getNotetypecode().contains("historyNote")) {
noteHelper.addConceptNote(ds, concept.getIdConcept(), nodeNoteList1.getLang(), idThesaurus, nodeNoteList1.getLexicalvalue(), nodeNoteList1.getNotetypecode(), idUser);
}
if (nodeNoteList1.getNotetypecode().contains("definition")) {
noteHelper.addTermNote(ds, nodeTerm.getIdTerm(), nodeNoteList1.getLang(), idThesaurus, nodeNoteList1.getLexicalvalue(), nodeNoteList1.getNotetypecode(), idUser);
}
if (nodeNoteList1.getNotetypecode().contains("editorialNote")) {
noteHelper.addTermNote(ds, nodeTerm.getIdTerm(), nodeNoteList1.getLang(), idThesaurus, nodeNoteList1.getLexicalvalue(), nodeNoteList1.getNotetypecode(), idUser);
}
}
// Enregistrer les relations
writeRelationsList(resource.getRelationsList(), concept.getIdConcept(), idThesaurus, idUser);
ArrayList<SKOSMapping> sKOSMappings = resource.getMappings();
// Enregistrer les Mappings (alignements)
AlignmentHelper alignmentHelper = new AlignmentHelper();
for (SKOSMapping sKOSMapping : sKOSMappings) {
if (sKOSMapping.getProperty() == SKOSProperty.exactMatch) {
alignmentHelper.addNewAlignment(ds, // user
1, // concept target
"", // thesaurus target
"", // URI
sKOSMapping.getTargetUri(), 1, concept.getIdConcept(), idThesaurus, 0);
}
if (sKOSMapping.getProperty() == SKOSProperty.closeMatch) {
alignmentHelper.addNewAlignment(ds, // user
1, // concept target
"", // thesaurus target
"", // URI
sKOSMapping.getTargetUri(), 2, concept.getIdConcept(), idThesaurus, 0);
}
}
// Ajouter l'id du concept importé pour l'aligner avec le thésaurus source
alignmentHelper.addNewAlignment(ds, // user
1, // concept target
"", // thesaurus target
"", // URI de la source
resource.getUri(), // sKOSMapping.getTargetUri(), // URI
1, concept.getIdConcept(), idThesaurus, 0);
// Enregister les synonymes et traductions
ArrayList<NodeEM> nodeEMs = writeLabelsList(ds, resource.getLabelsList());
Term term = new Term();
for (int i = 0; i < nodeEMs.size(); i++) {
term.setId_concept(concept.getIdConcept());
term.setId_term(nodeTerm.getIdTerm());
term.setLexical_value(nodeEMs.get(i).getLexical_value());
term.setLang(nodeEMs.get(i).getLang());
term.setId_thesaurus(idThesaurus);
term.setSource(nodeEMs.get(i).getSource());
term.setStatus(nodeEMs.get(i).getStatus());
termHelper.addNonPreferredTerm(ds, term, idUser);
}
}
use of mom.trd.opentheso.bdd.datas.Term in project opentheso by miledrousset.
the class GetAltLabelTest method testExportAllDatas.
/**
* Test of Get datas for SiteMap.
*/
@org.junit.Test
public void testExportAllDatas() {
HikariDataSource conn = openConnexionPool();
String idTheso = "TH_1";
String idLang = "fr";
String idGroup = "6";
boolean passed = false;
// ConceptHelper conceptHelper = new ConceptHelper();
TermHelper termHelper = new TermHelper();
NoteHelper noteHelper = new NoteHelper();
// ArrayList<NodeConceptArkId> allIds = conceptHelper.getAllConceptArkIdOfThesaurus(conn, idTheso);
StringBuilder file = new StringBuilder();
ArrayList<NodeEM> nodeEMs;
ArrayList<NodeTab2Levels> nodeConceptTermId = termHelper.getAllIdOfNonPreferredTermsByGroup(conn, idTheso, idGroup);
Term term;
ArrayList<NodeNote> nodeNotes;
file.append("Id_concept");
file.append("\t");
file.append("prefLabel");
file.append("\t");
file.append("altLabel");
file.append("\t");
file.append("définition");
file.append("\n");
for (NodeTab2Levels nodeTab2Levels : nodeConceptTermId) {
nodeEMs = termHelper.getNonPreferredTerms(conn, nodeTab2Levels.getIdTerm(), idTheso, idLang);
if (!nodeEMs.isEmpty()) {
term = termHelper.getThisTerm(conn, nodeTab2Levels.getIdConcept(), idTheso, idLang);
nodeNotes = noteHelper.getListNotesTerm(conn, nodeTab2Levels.getIdTerm(), idTheso, idLang);
// écriture dans le fichier
file.append(nodeTab2Levels.getIdConcept());
file.append("\t");
file.append(term.getLexical_value());
file.append("\t");
for (NodeEM nodeEM : nodeEMs) {
if (passed) {
file.append("##");
}
file.append(nodeEM.getLexical_value());
passed = true;
}
file.append("\t");
for (NodeNote nodeNote : nodeNotes) {
if (nodeNote.getNotetypecode().equalsIgnoreCase("definition")) {
file.append(nodeNote.getLexicalvalue());
}
}
file.append("\n");
}
passed = false;
}
System.out.println(file.toString());
conn.close();
}
use of mom.trd.opentheso.bdd.datas.Term in project opentheso by miledrousset.
the class ImportTabuleIntoBDD method insertConcept.
private boolean insertConcept(HikariDataSource ds, TabulateDocument tabulateDocument, String idThesaurus, boolean istopConcept, int idUser) {
// ajout du concept dans la base
Concept concept = new Concept();
ConceptHelper conceptHelper = new ConceptHelper();
concept.setIdConcept(tabulateDocument.getId());
concept.setIdThesaurus(idThesaurus);
concept.setNotation("");
concept.setStatus("");
concept.setTopConcept(istopConcept);
concept.setCreated(tabulateDocument.getCreated());
concept.setModified(tabulateDocument.getModified());
// cas de plusieurs Domaines (MT)
if (!tabulateDocument.getInScheme().isEmpty()) {
for (String idGroup : tabulateDocument.getInScheme()) {
concept.setIdGroup(idGroup);
conceptHelper.insertConceptInTable(ds, concept, idUser);
}
} else {
return false;
}
// ajout des termes et traductions
NodeTerm nodeTerm = new NodeTerm();
ArrayList<NodeTermTraduction> nodeTermTraductionList = new ArrayList<>();
for (Label prefLabel : tabulateDocument.getPrefLabels()) {
NodeTermTraduction nodeTermTraduction = new NodeTermTraduction();
nodeTermTraduction.setLexicalValue(prefLabel.getLabel());
nodeTermTraduction.setLang(prefLabel.getLang());
nodeTermTraductionList.add(nodeTermTraduction);
}
nodeTerm.setNodeTermTraduction(nodeTermTraductionList);
nodeTerm.setIdTerm(tabulateDocument.getId());
nodeTerm.setIdConcept(tabulateDocument.getId());
nodeTerm.setIdThesaurus(idThesaurus);
nodeTerm.setSource("");
nodeTerm.setStatus("");
nodeTerm.setCreated(tabulateDocument.getCreated());
nodeTerm.setModified(tabulateDocument.getModified());
TermHelper termHelper = new TermHelper();
termHelper.insertTerm(ds, nodeTerm, idUser);
// Enregister les synonymes et traductions (AltLabel)
ArrayList<NodeEM> nodeEMList = new ArrayList<>();
for (Label altLabel : tabulateDocument.getAltLabels()) {
NodeEM nodeEM = new NodeEM();
nodeEM.setLexical_value(altLabel.getLabel());
nodeEM.setLang(altLabel.getLang());
nodeEM.setSource("");
nodeEM.setStatus("USE");
nodeEM.setHiden(false);
nodeEMList.add(nodeEM);
}
Term term = new Term();
for (NodeEM nodeEMList1 : nodeEMList) {
term.setId_concept(tabulateDocument.getId());
term.setId_term(tabulateDocument.getId());
term.setLexical_value(nodeEMList1.getLexical_value());
term.setLang(nodeEMList1.getLang());
term.setId_thesaurus(idThesaurus);
term.setSource(nodeEMList1.getSource());
term.setStatus(nodeEMList1.getStatus());
termHelper.addNonPreferredTerm(ds, term, idUser);
}
// ajouter les notes
NoteHelper noteHelper = new NoteHelper();
for (Note note : tabulateDocument.getDefinition()) {
noteHelper.addTermNote(ds, tabulateDocument.getId(), note.getLang(), idThesaurus, note.getNote(), "definition", idUser);
}
for (Note note : tabulateDocument.getScopeNote()) {
noteHelper.addTermNote(ds, tabulateDocument.getId(), note.getLang(), idThesaurus, note.getNote(), "scopeNote", idUser);
}
for (Note note : tabulateDocument.getHistoryNote()) {
noteHelper.addTermNote(ds, tabulateDocument.getId(), note.getLang(), idThesaurus, note.getNote(), "historyNote", idUser);
}
for (Note note : tabulateDocument.getEditorialNote()) {
noteHelper.addTermNote(ds, tabulateDocument.getId(), note.getLang(), idThesaurus, note.getNote(), "editorialNote", idUser);
}
// Enregistrer les relations
writeRelationsList(ds, tabulateDocument, idThesaurus, idUser);
// Enregistrer les Mappings (alignements)
AlignmentHelper alignmentHelper = new AlignmentHelper();
for (Alignment alignment : tabulateDocument.getAlignments()) {
if (alignment.getType().equalsIgnoreCase("exactMatch")) {
alignmentHelper.addNewAlignment(ds, // user
1, // concept target
"", // thesaurus target
"", // URI
alignment.getUri(), 1, tabulateDocument.getId(), idThesaurus, 0);
}
if (alignment.getType().equalsIgnoreCase("closeMatch")) {
alignmentHelper.addNewAlignment(ds, // user
1, // concept target
"", // thesaurus target
"", // URI
alignment.getUri(), 2, tabulateDocument.getId(), idThesaurus, 0);
}
}
return true;
}
use of mom.trd.opentheso.bdd.datas.Term in project opentheso by miledrousset.
the class TermHelper method getThisTerm.
/**
* Cette fonction permet de récupérer un Term par son id et son thésaurus et
* sa langue sous forme de classe Term (sans les relations)
*
* @param ds
* @param idConcept
* @param idThesaurus
* @param idLang
* @return Objet class Concept
*/
public Term getThisTerm(HikariDataSource ds, String idConcept, String idThesaurus, String idLang) {
Connection conn;
Statement stmt;
ResultSet resultSet;
Term term = null;
if (isTraductionExistOfConcept(ds, idConcept, idThesaurus, idLang)) {
try {
// Get connection from pool
conn = ds.getConnection();
try {
stmt = conn.createStatement();
try {
String query = "SELECT term.* FROM term, preferred_term" + " WHERE preferred_term.id_term = term.id_term" + " and preferred_term.id_thesaurus = term.id_thesaurus" + " and preferred_term.id_concept ='" + idConcept + "'" + " and term.lang = '" + idLang + "'" + " and term.id_thesaurus = '" + idThesaurus + "'" + " order by lexical_value DESC";
/* query = "select * from term where id_concept = '"
+ idConcept + "'"
+ " and id_thesaurus = '" + idThesaurus + "'"
+ " and lang = '" + idLang + "'"
+ " and prefered = true";*/
stmt.executeQuery(query);
resultSet = stmt.getResultSet();
if (resultSet != null) {
resultSet.next();
term = new Term();
term.setId_term(resultSet.getString("id_term"));
term.setLexical_value(resultSet.getString("lexical_value"));
term.setLang(idLang);
term.setId_thesaurus(idThesaurus);
term.setCreated(resultSet.getDate("created"));
term.setModified(resultSet.getDate("modified"));
term.setSource(resultSet.getString("source"));
term.setStatus(resultSet.getString("status"));
term.setContributor(resultSet.getInt("contributor"));
term.setCreator(resultSet.getInt("creator"));
}
} finally {
stmt.close();
}
} finally {
conn.close();
}
} catch (SQLException sqle) {
// Log exception
log.error("Error while getting Concept : " + idConcept, sqle);
}
} else {
try {
// Get connection from pool
conn = ds.getConnection();
try {
stmt = conn.createStatement();
try {
String query = "select * from concept where id_concept = '" + idConcept + "'" + " and id_thesaurus = '" + idThesaurus + "'";
stmt.executeQuery(query);
resultSet = stmt.getResultSet();
if (resultSet.next()) {
term = new Term();
term.setId_term("");
term.setLexical_value("");
term.setLang(idLang);
term.setId_thesaurus(idThesaurus);
term.setCreated(resultSet.getDate("created"));
term.setModified(resultSet.getDate("modified"));
term.setStatus(resultSet.getString("status"));
}
} finally {
stmt.close();
}
} finally {
conn.close();
}
} catch (SQLException sqle) {
// Log exception
log.error("Error while getting Concept : " + idConcept, sqle);
}
}
return term;
}
Aggregations