public ColumnPredicateObjectMappingPlan(TemplateTermSet subjectMapTemplate, PredicateObjectMap pom, Map<ColumnTemplateTerm, HNodePath> subjectTermsToPaths, KR2RMLMapping kr2rmlMapping, URIFormatter uriFormatter, RepFactory factory, KR2RMLMappingColumnNameHNodeTranslator translator, Map<String, String> hNodeToContextUriMap, boolean generateContext, SuperSelection sel) throws HNodeNotFoundKarmaException { super(kr2rmlMapping, uriFormatter, factory, translator, sel); this.hNodeToContextUriMap = hNodeToContextUriMap; this.generateContext = generateContext; generateLiteral(subjectMapTemplate, pom, subjectTermsToPaths); }
public void generateLiteral(TemplateTermSet subjectMapTemplate, PredicateObjectMap pom, Map<ColumnTemplateTerm, HNodePath> subjectTermsToPaths) throws HNodeNotFoundKarmaException { this.isLiteral = true; TemplateTermSet literalTemplate = pom.getObject().getRdfLiteralType(); literalTemplateValue = null; if(literalTemplate != null) literalTemplateValue = generateStringValueForTemplate(literalTemplate); TemplateTermSet languageTemplate = pom.getObject().getLanguage(); literalLanguage = null; if(languageTemplate != null) literalLanguage = generateStringValueForTemplate(languageTemplate); objectTemplateTermSetPopulator = new TemplateTermSetPopulator(pom.getObject().getTemplate(), new StringBuilder(), uriFormatter, false, true); generateInternal(subjectMapTemplate, pom, subjectTermsToPaths); if(generateContext && objectTemplateTermSetPopulator.getTerms().isSingleColumnTerm()) { getColumnContextUri(translator.getHNodeIdForColumnName(objectTemplateTermSetPopulator.getTerms().getAllTerms().get(0).getTemplateTermValue())); } }
@Override protected void outputTriple(KR2RMLRDFWriter outWriter, PopulatedTemplateTermSet subject, PopulatedTemplateTermSet predicate, PopulatedTemplateTermSet object) { if(objectTemplateTermSetPopulator.getTerms().isSingleUriString() || predicate.getURI().equals("<" + Uris.RDF_TYPE_URI + ">")) { outWriter.outputTripleWithURIObject(pom, subject.getURI(), predicate.getURI(), uriFormatter.getExpandedAndNormalizedUri(object.getURI())); } else if(generateContext && objectTemplateTermSetPopulator.getTerms().isSingleColumnTerm()) { try { outWriter.outputQuadWithLiteralObject(pom, subject.getURI(), predicate.getURI(), object.getURI(), literalTemplateValue, literalLanguage, getColumnContextUri(translator.getHNodeIdForColumnName(objectTemplateTermSetPopulator.getTerms().getAllTerms().get(0).getTemplateTermValue()))); } catch (HNodeNotFoundKarmaException e) { LOG.error("No hnode found for context " +objectTemplateTermSetPopulator.getTerms().getAllTerms().get(0).getTemplateTermValue() + " " + e); } } else { outWriter.outputTripleWithLiteralObject(pom, subject.getURI(), predicate.getURI(), object.getURI(), literalTemplateValue, literalLanguage); } }
typePredicate.setTemplate(typeTemplate); pom.setPredicate(typePredicate); PredicateObjectMappingPlan pomPlan = new ColumnPredicateObjectMappingPlan(subjectMapPlan.getTemplate(), pom, subjectMapPlan.getSubjectTermsToPaths(), kr2rmlMapping,uriFormatter, factory, translator, hNodeToContextUriMap, generateContext, selection); columnLinksPlans.add(pomPlan); pomPlan = new ColumnPredicateObjectMappingPlan(subjectMapPlan.getTemplate(), pom, subjectMapPlan.getSubjectTermsToPaths(), kr2rmlMapping,uriFormatter, factory, translator, hNodeToContextUriMap, generateContext, selection); columnLinksPlans.add(pomPlan);