public SubjectMapPlan(TriplesMap triplesMap, KR2RMLMapping kr2rmlMapping, URIFormatter uriFormatter, RepFactory factory, KR2RMLMappingColumnNameHNodeTranslator translator, SuperSelection sel) throws HNodeNotFoundKarmaException { super(kr2rmlMapping, uriFormatter, factory, translator, sel); configureSubjectMapPlan(triplesMap); } public SubjectMap configureSubjectMapPlan(TriplesMap triplesMap)
public SubjectMap configureSubjectMapPlan(TriplesMap triplesMap) throws HNodeNotFoundKarmaException { subjectTermsToPaths = new HashMap<>(); SubjectMap subjMap = triplesMap.getSubject(); subjectMapTTSPopulator = generateTemplateTermSetPopulatorForSubjectMap(subjMap); populateTermsToPathForSubject(subjectTermsToPaths, subjectMapTTSPopulator.getTerms()); subjectPlan = new TemplateTermSetPopulatorPlan(subjectTermsToPaths, subjectTermsToPaths.keySet(), selection); return subjMap; }
public void generate() throws HNodeNotFoundKarmaException subjectMapPlan = new SubjectMapPlan(triplesMap, kr2rmlMapping,uriFormatter, factory, translator, selection); PredicateObjectMappingPlan pomPlan = new InternalPredicateObjectMappingPlan(subjectMapPlan.getTemplate(), pom, objectTriplesMap, subjectMapPlan.getSubjectTermsToPaths(),link.isFlipped(), kr2rmlMapping,uriFormatter, factory, translator, selection); if(link.isFlipped()) 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); if(pom.getObject().getTemplate().getAllColumnNameTermElements().isEmpty()) pomPlan = new ConstantPredicateObjectMappingPlan(subjectMapPlan.getTemplate(), pom, kr2rmlMapping,subjectMapPlan.getSubjectTermsToPaths(), uriFormatter, factory, translator, selection); constantLinksPlans.add(pomPlan); pomPlan = new ColumnPredicateObjectMappingPlan(subjectMapPlan.getTemplate(), pom, subjectMapPlan.getSubjectTermsToPaths(), kr2rmlMapping,uriFormatter, factory, translator, hNodeToContextUriMap, generateContext, selection); columnLinksPlans.add(pomPlan);
public void execute(Row r, List<KR2RMLRDFWriter> outWriters) { List<PopulatedTemplateTermSet> subjects = subjectMapPlan.execute(r); for(PredicateObjectMappingPlan internalLinkPlan : internalLinksPlans) { internalLinkPlan.outputTriples(outWriters, internalLinkPlan.execute(r, subjects), r); } for(PredicateObjectMappingPlan columnLinkPlan : columnLinksPlans) { columnLinkPlan.outputTriples(outWriters, columnLinkPlan.execute(r, subjects), r); } for(PredicateObjectMappingPlan constantLinkPlan : constantLinksPlans) { constantLinkPlan.outputTriples(outWriters, constantLinkPlan.execute(r, subjects), r); } } }