public ConstantPredicateObjectMappingPlan(TemplateTermSet subjectMapTemplate,PredicateObjectMap pom, KR2RMLMapping kr2rmlMapping,Map<ColumnTemplateTerm, HNodePath> subjectTermsToPaths, URIFormatter uriFormatter, RepFactory factory, KR2RMLMappingColumnNameHNodeTranslator translator, SuperSelection sel) { super(kr2rmlMapping, uriFormatter, factory, translator, sel); this.pom = pom; objectTemplateTermSetPopulator = new TemplateTermSetPopulator(pom.getObject().getTemplate(), new StringBuilder(), uriFormatter, false, true); try { generateInternal(subjectMapTemplate, pom, subjectTermsToPaths); } catch (HNodeNotFoundKarmaException e) { LOG.error("Unable to generate plan!", e); } }
protected void generateInternal(TemplateTermSet subjectMapTemplate, PredicateObjectMap pom, Map<ColumnTemplateTerm, HNodePath> subjectTermsToPaths) throws HNodeNotFoundKarmaException { this.pom = pom; combinedSubjectObjectTermsToPaths = new HashMap<>(); combinedSubjectObjectTermsToPaths.putAll(subjectTermsToPaths); 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); generatePredicatesForPom(pom); }
@Override public void outputTripleWithURIObject(PredicateObjectMap predicateObjectMap, String subjUri, String predicateUri, String objectUri) { if (subjUri.indexOf("<") != -1 && subjUri.indexOf(">") != -1) { String tmp = subjUri.substring(1, subjUri.length() - 1); subjUri = "<" + normalizeURI(tmp) + ">"; } if (objectUri.indexOf("<") != -1 && objectUri.indexOf(">") != -1) { String tmp = objectUri.substring(1, objectUri.length() - 1); objectUri = "<" + normalizeURI(tmp) + ">"; } TriplesMap subjTriplesMap = predicateObjectMap.getTriplesMap(); bloomFilterManager.addUriToBloomFilter(subjTriplesMap.getId(), subjUri); if(predicateUri.equalsIgnoreCase(formattedTypeURI)) { return; } bloomFilterManager.addUriToBloomFilter(predicateObjectMap.getId(), subjUri); if(predicateObjectMap.getObject().hasRefObjectMap()) { bloomFilterManager.addUriToBloomFilter(predicateObjectMap.getObject().getRefObjectMap().getId(), objectUri); } }
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())); } }
private void addURIObject(PredicateObjectMap pom, String subjUri, String predicateUri, String objectUri) { E subject = checkAndAddSubjUri(pom.getTriplesMap().getId(), subjUri); if(pom.getObject().getRefObjectMap() == null) { addValue(pom, subject, predicateUri, objectUri); return; } String parentTriplesMapId = pom.getObject().getRefObjectMap().getParentTriplesMap().getId(); E object = getGeneratedObject(parentTriplesMapId, objectUri); String refParentObjectTriplesMapId = pom.getObject().getRefObjectMap().getParentTriplesMap().getId(); if(object == null || rootTriplesMapIds.isEmpty() || rootTriplesMapIds.contains(refParentObjectTriplesMapId)) { addValue(pom, subject, predicateUri, objectUri); return; } addValue(pom, subject, predicateUri, object); }
private boolean doesPredicateAlreadyExist(TriplesMap triplesMap, PredicateObjectMap poMap, RefObjectMap refObjMap) { boolean alreadyExists = false; for(PredicateObjectMap pom : triplesMap.getPredicateObjectMaps()) { if(pom.getPredicate().getTemplate().isSingleUriString() && poMap.getPredicate().getTemplate().isSingleUriString()) { if(pom.getPredicate().getTemplate().toString().equalsIgnoreCase(poMap.getPredicate().getTemplate().toString())) { if(pom.getObject().hasRefObjectMap() && pom.getObject().getRefObjectMap().getParentTriplesMap().getId().equalsIgnoreCase(refObjMap.getParentTriplesMap().getId())) { alreadyExists = true; } else if(!pom.getObject().hasRefObjectMap() && !poMap.getObject().hasRefObjectMap() && pom.getObject().getTemplate().toString().compareTo(poMap.getObject().getTemplate().toString())== 0) { alreadyExists = true; } } } } return alreadyExists; }
URI pomUri, Worksheet worksheet) throws RepositoryException { if (pom.getObject().hasRefObjectMap()) { RefObjectMap rfMap = pom.getObject().getRefObjectMap(); URI rfUri = f.createURI(Namespaces.KARMA_DEV + rfMap.getId()); con.add(rfUri, RDF.TYPE, repoURIs.get(Uris.RR_REF_OBJECT_MAP_CLASS_URI)); TemplateTermSet objTermSet = pom.getObject().getTemplate(); TemplateTermSet rdfLiteralTypeTermSet = pom.getObject().getRdfLiteralType(); TemplateTermSet languageTermSet = pom.getObject().getLanguage();