/** * Exports complex concept * * @param thesaurus * @param model * @return */ public Model exportComplexConcept(Thesaurus thesaurus, Model model) { List<SplitNonPreferredTerm> complexConcepts = splitNonPreferredTermService.getSplitNonPreferredTermList( 0, -1, thesaurus.getThesaurusId()); if (!complexConcepts.isEmpty()) { for (SplitNonPreferredTerm complexConcept : complexConcepts) { Resource inScheme = model.createResource(complexConcept.getThesaurus().getIdentifier()); // Add splitNonPreferredTerm resource Resource complexConceptRes = model.createResource(complexConcept.getIdentifier(), ISOTHES.SPLIT_NON_PREFERRED_TERM); model.add(complexConceptRes, SKOS.IN_SCHEME, inScheme); model.add( complexConceptRes, SKOSXL.LITERAL_FORM, StringEscapeUtils.unescapeXml(complexConcept.getLexicalValue()), complexConcept.getLanguage().getId()); model.add( complexConceptRes, DCTerms.created, DateUtil.toISO8601String(complexConcept.getCreated())); model.add( complexConceptRes, DCTerms.modified, DateUtil.toISO8601String(complexConcept.getModified())); model.add(complexConceptRes, ISOTHES.STATUS, complexConcept.getStatus().toString()); if (StringUtils.isNotEmpty(complexConcept.getSource())) { model.add(complexConceptRes, DC.source, complexConcept.getSource()); } // Add compoundEquivalence resource Resource compoundEquivalenceRes = model.createResource(ISOTHES.COMPOUND_EQUIVALENCE); model.add(compoundEquivalenceRes, SKOS.IN_SCHEME, inScheme); model.add(compoundEquivalenceRes, ISOTHES.PLUS_UF, complexConcept.getIdentifier()); for (ThesaurusTerm term : complexConcept.getPreferredTerms()) { model.add(compoundEquivalenceRes, ISOTHES.PLUS_USE, term.getIdentifier()); } } } return model; }