public void outputTriples(List<KR2RMLRDFWriter> outWriters, Map<PopulatedTemplateTermSet, List<PartiallyPopulatedTermSet>> subjectsToObjects, Row r) { for(Entry<PopulatedTemplateTermSet, List<PartiallyPopulatedTermSet>> subjectToObjects : subjectsToObjects.entrySet()) { PopulatedTemplateTermSet subject = subjectToObjects.getKey(); List<PopulatedTemplateTermSet> objects = objectTemplateTermSetPopulator.generatePopulatedTemplatesFromPartials( subjectToObjects.getValue()); for(PopulatedTemplateTermSet object : objects ) { List<PopulatedTemplateTermSet> predicates = predicateTemplateTermSetPopulator.generatePopulatedTemplatesFromPartials(predicatePlan.execute(r, subject, object)); for(PopulatedTemplateTermSet predicate : predicates) { for(KR2RMLRDFWriter outWriter : outWriters) { outputTriple(outWriter, subject, predicate, object); } } } } }