protected TemplateTermSetPopulator generateTemplateTermSetPopulatorForSubjectMap(SubjectMap subjMap) throws HNodeNotFoundKarmaException { TemplateTermSet subjMapTemplate = null; TemplateTermSetPopulator subjectMapTTSPopulator = null; if (subjMap.isBlankNode()) { List<String> columnsCovered = kr2rmlMapping.getAuxInfo().getBlankNodesColumnCoverage().get(subjMap.getId()); subjMapTemplate = generateSubjectMapTemplateForBlankNode(subjMap, columnsCovered); subjectMapTTSPopulator = new TemplateTermSetPopulator(subjMapTemplate, new StringBuilder(), uriFormatter, true, false); } else { subjMapTemplate = subjMap.getTemplate(); subjectMapTTSPopulator = new TemplateTermSetPopulator(subjMapTemplate, new StringBuilder(), uriFormatter); } return subjectMapTTSPopulator; } protected void populateTermsToPathForSubject(
private String checkParentMarked(TriplesMap triple, HashMap<TriplesMap, String> markedTriples, String var1) { Stack<String> stk = new Stack<>(); ParentMapingInfo parentTriple = this.ParentMapingInfoList.get(triple.getSubject().getId()); boolean markedParent = false; int count = 1; String rdfsTypes = parentTriple.parent.getSubject().getRdfsType().get(0).toString(); this.prefix_list.put("pref"+"Z"+count, rdfsTypes); stk.push(" ?Z"+count + " a pref"+"Z"+count+": ."); parentTriple = this.ParentMapingInfoList.get(parentTriple.parent.getSubject().getId()); if(parentTriple == null) { break;
public String get_query(R2RMLMapping r2rmlMap, String graph) { List<TriplesMap> triples = r2rmlMap.getTriplesMapList(); TriplesMap root_node = null; // get the root node first for (TriplesMap row : triples) { if (row.getSubject().isSteinerTreeRootNode() ) { root_node = row; break; } } return generate_sparql(root_node, "x"+var_count, graph); }
private void identifyBlankNodes() { for (SubjectMap subjMap:r2rmlMapping.getSubjectMapIndex().values()) { if (subjMap.getTemplate().getAllTerms().size() == 1 && (subjMap.getTemplate().getAllTerms().get(0) instanceof StringTemplateTerm)) { String str = subjMap.getTemplate().getAllTerms().get(0).getTemplateTermValue(); if (str.equals(sourceNamespace)) subjMap.setAsBlankNode(true); } } }
for (Node node:nodes) { if (node instanceof InternalNode) { SubjectMap subj = new SubjectMap(node.getId()); subj.setAsSteinerTreeRootNode(true); subj.getTemplate().addTemplateTermToSet(new StringTemplateTerm(sourceNamespace)); StringTemplateTerm typeTerm = new StringTemplateTerm(node.getLabel().getUri(), true); TemplateTermSet typeTermSet = new TemplateTermSet(); typeTermSet.addTemplateTermToSet(typeTerm); subj.addRdfsType(typeTermSet); TemplateTermSet supertypeTermSet = new TemplateTermSet(); supertypeTermSet.addTemplateTermToSet(supertypeTerm); subj.addRdfsType(supertypeTermSet); subj.setTemplate(tts); TemplateTermSet typeTermSet2 = new TemplateTermSet(); typeTermSet2.addTemplateTermToSet(cnTerm); subj.addRdfsType(typeTermSet2); for(TemplateTerm term : subj.getTemplate().getAllColumnNameTermElements()) r2rmlMapping.getAuxInfo().getSubjectMapIdToTemplateAnchor().put(subj.getId(), KR2RMLMappingAuxillaryInformation.findSubjectMapTemplateAnchor(columnsCovered)); } else { logger.error("Target node of Class Instance link should always be a " + SubjectMap subj = new SubjectMap(literalNode.getId());
Value nodeIdVal = f.createLiteral(sjMap.getId()); con.add(sjBlankNode, repoURIs.get(Uris.KM_NODE_ID_URI), nodeIdVal); List<TemplateTermSet> rdfsTypes = sjMap.getRdfsType(); for (TemplateTermSet typeTermSet:rdfsTypes) { if (typeTermSet.isSingleUriString()) { if (sjMap.isBlankNode()) { con.add(sjBlankNode, repoURIs.get(Uris.RR_TERM_TYPE_URI), repoURIs.get(Uris.RR_BLANK_NODE_URI)); String prefix = mapping.getAuxInfo().getBlankNodesUriPrefixMap().get(sjMap.getId()); Value prefixVal = f.createLiteral(prefix); con.add(sjBlankNode, repoURIs.get(Uris.KM_BLANK_NODE_PREFIX_URI), prefixVal); Value templVal = f.createLiteral(sjMap.getTemplate() .getR2rmlTemplateString(factory, columnNameFormatter)); con.add(sjBlankNode, repoURIs.get(Uris.RR_TEMPLATE_URI), templVal); if (sjMap.isSteinerTreeRootNode()) { con.add(sjBlankNode, RDF.TYPE, repoURIs.get(Uris.KM_STEINER_TREE_ROOT_NODE));
@Override public Boolean call() throws HNodeNotFoundKarmaException, ValueNotFoundKarmaException, NoValueFoundInNodeException { try{ latch.await(); } catch (Exception e ) { LOG.error("Error while waiting for dependent triple maps to process", e); notifyDependentTriplesMapWorkers(); return false; } LOG.debug("Processing " + triplesMap.getId() + " " +triplesMap.getSubject().getId()); try { plan.execute(r, outWriters); } catch (Exception e) { e.printStackTrace(); LOG.error("Something went wrong " + e.getMessage() ); } LOG.debug("Processed " + triplesMap.getId() + " " +triplesMap.getSubject().getId()); notifyDependentTriplesMapWorkers(); return true; }
subjMap.setAsBlankNode(true); NodeIterator bnodePrefixItr = model.listObjectsOfProperty(blankNodeSubjRes, kmBnodePrefixProp); while (bnodePrefixItr.hasNext()) { kr2rmlMapping.getAuxInfo().getBlankNodesUriPrefixMap().put(subjMap.getId(), bnodePrefixItr.next().toString()); for(TriplesMap tm : kr2rmlMapping.getTriplesMapList()) if(tm.getSubject().getId().equalsIgnoreCase(subjMap.getId())) logger.debug("Adding columns for blank node" + subjMap.getId() + " List: " + columnsCovered); kr2rmlMapping.getAuxInfo().getBlankNodesColumnCoverage().put(subjMap.getId(), columnsCovered); kr2rmlMapping.getAuxInfo().getSubjectMapIdToTemplateAnchor().put(subjMap.getId(), KR2RMLMappingAuxillaryInformation.findSubjectMapTemplateAnchor(columnsCovered));
@Override public String findRoot(TriplesMapGraph graph) { Set<String> triplesMapIds = graph.getTriplesMapIds(); int minDepth = Integer.MAX_VALUE; String root = null; for(String triplesMapId : triplesMapIds) { TriplesMap map = graph.getTriplesMap(triplesMapId); int depth = ColumnTemplateTerm.calculateMaximumColumnPathLength(map.getSubject().getTemplate().getAllColumnNameTermElements()); if(depth < minDepth) { minDepth = depth; root = triplesMapId; } } if(root == null) { return backupStrategy.findRoot(graph); } return root; }
SubjectMap subjMap = r2rmlMapping.getSubjectMapIndex().get(treeNode.getId()); if (subjMap.isBlankNode()) { List<String> columnsCovered = new ArrayList<>(); Set<LabeledLink> links = dm.getOutgoingEdgesOf(treeNode);
logger.debug("Spilling " + tm.getSubject().getRdfsType() + " " +triplesMapId); modifications = true; List<String> removedTriplesMaps = newGraph.removeTriplesMap(triplesMapId);
public SubjectMap(String id) { super(id); this.template = new TemplateTermSet(); this.rdfsTypes = new ArrayList<>(); this.isBlankNode = false; this.setAsSteinerTreeRootNode(false); }
subjMap = new SubjectMap(subjMapId); kr2rmlMapping.getSubjectMapIndex().put(subjMapId, subjMap); kr2rmlMapping.getAuxInfo().getSubjectMapIdToTemplateAnchor().put(subjMap.getId(), KR2RMLMappingAuxillaryInformation.findSubjectMapTemplateAnchor(columnsCovered)); subjMap.setTemplate(subjTemplTermSet); constructTemplateTermSetFromR2rmlTemplateString( template); subjMap.addRdfsType(typeTermSet); TemplateTermSet typeTermSet = new TemplateTermSet(); typeTermSet.addTemplateTermToSet(uriTerm); subjMap.addRdfsType(typeTermSet); } else { TemplateTermSet typeTermSet = TemplateTermSetBuilder. constructTemplateTermSetFromR2rmlTemplateString( typeNode.toString()); subjMap.addRdfsType(typeTermSet); subjMap.setAsSteinerTreeRootNode(true);
protected TemplateTermSet generateSubjectMapTemplateForBlankNode(SubjectMap subjectMap, List<String> columnsCovered) { TemplateTermSet subjectTerms = new TemplateTermSet(); subjectTerms.addTemplateTermToSet(new StringTemplateTerm(Uris.BLANK_NODE_PREFIX)); subjectTerms.addTemplateTermToSet(new StringTemplateTerm(kr2rmlMapping.getAuxInfo().getBlankNodesUriPrefixMap().get(subjectMap.getId()).replaceAll(":", "_"))); for(String columnCovered : columnsCovered) { ColumnTemplateTerm term = new ColumnTemplateTerm(columnCovered); subjectTerms.addTemplateTermToSet(term); } return subjectTerms; }
LOG.error("Unable to add field: " + predicateShortHand + " for " + pom.getTriplesMap().getSubject().getTemplate().toString(), e);
for (TemplateTermSet typeTerm:triplesMap.getSubject().getRdfsType()) {
queue.add(objMap.getParentTriplesMap()); logger.info(triple.getSubject().getId() + " ---> " + objMap.getParentTriplesMap().getSubject().getId()); ParentMapingInfoList.put(objMap.getParentTriplesMap().getSubject().getId(), new ParentMapingInfo(triple, p_map.getPredicate())); String rdfsTypes = triple.getSubject().getRdfsType().get(0).toString(); this.prefix_list.put(rdfsTypes, "pref"+var_count); query.append(" ?"+var + " a pref"+var_count+": ."); ParentMapingInfo parentTriple = ParentMapingInfoList.get(triple.getSubject().getId()); predicate + " ?"+var + " . "); } else { logger.error("predicate is null from parent : " + triple.getSubject().getRdfsType().toString());
if (row.getSubject().getId().equalsIgnoreCase(rootNodeId) ) { root_node = row; break;
TemplateTermSet subjTemplTermSet = trMap.getSubject().getTemplate(); if(subjTemplTermSet != null)
@Override public String findRoot(TriplesMapGraph graph) { for(String triplesMapId :graph.getTriplesMapIds()) { if(graph.getTriplesMap(triplesMapId).getSubject().isSteinerTreeRootNode()) { return triplesMapId; } } return this.backupStrategy.findRoot(graph); }