protected void generatePredicatesForPom(PredicateObjectMap pom) throws HNodeNotFoundKarmaException { this.pom = pom; List<ColumnTemplateTerm> subjectAndObjectTemplateTerms = new LinkedList<>(); subjectAndObjectTemplateTerms.addAll(this.combinedSubjectObjectTermsToPaths.keySet()); LinkedList<ColumnTemplateTerm> predicateColumnTemplateTerms = new LinkedList<>(); predicateColumnTemplateTerms.addAll(pom.getPredicate().getTemplate().getAllColumnNameTermElements()); predicateTemplateTermSetPopulator = new TemplateTermSetPopulator(pom.getPredicate().getTemplate(), new StringBuilder(), uriFormatter, true, true); Map<ColumnTemplateTerm, HNodePath> combinedSubjectObjectPredicateTermsToPaths = new HashMap<>(); combinedSubjectObjectPredicateTermsToPaths.putAll(combinedSubjectObjectTermsToPaths); Map<ColumnTemplateTerm, HNodePath> predicateTermsToPaths = new HashMap<>(); populateTermsToPathForSubject(predicateTermsToPaths, pom.getPredicate().getTemplate()); combinedSubjectObjectTermsToPaths.putAll(predicateTermsToPaths); predicatePlan = new DoublyAnchoredTemplateTermSetPopulator(combinedSubjectObjectTermsToPaths, predicateColumnTemplateTerms, subjectAndObjectTemplateTerms, selection); }
@SuppressWarnings("unchecked") protected void addValueToMap(PredicateObjectMap pom, GenericRecord subject, Object object, String shortHandPredicateURI) { String mapPredicateName = pom.getPredicate().getId().replaceAll("[^\\w]", "_"); if(object instanceof String) { Map<String, String> values; if(subject.get(mapPredicateName)== null) { subject.put(mapPredicateName, new ConcurrentHashMap<String, String>()); } values = (Map<String, String>)subject.get(mapPredicateName); values.put(shortHandPredicateURI, (String)object); } else if(object instanceof GenericRecord) { Map<String, GenericRecord> values; if(subject.get(mapPredicateName)== null) { subject.put(mapPredicateName, new ConcurrentHashMap<String, GenericRecord>()); } values = (Map<String, GenericRecord>)subject.get(mapPredicateName); values.put(shortHandPredicateURI, (GenericRecord)object); } } @SuppressWarnings("unchecked")
Schema schema = subject.getSchema(); Field field = schema.getField(shortHandPredicateURI); Field mapField = schema.getField(pom.getPredicate().getId().replaceAll("[^\\w]", "_")); if (subject.get(shortHandPredicateURI) != null || predicateUri.contains(Uris.RDF_TYPE_URI)) {
new ParentMapingInfo(triple, p_map.getPredicate())); if(p_map.getPredicate().getTemplate().toString().equalsIgnoreCase("<http://www.opengis.net/gml/hasValue>")) { queue.add(p_map.getPredicate()); predicateList.put(p_map.getPredicate(), var); foundHasValue = true;
new ParentMapingInfo(triple, p_map.getPredicate())); queue.add(p_map.getPredicate()); predicateList.put(p_map.getPredicate(), var); foundHasValue = true;
private boolean addPredicate(PredicateObjectMap pom, KR2RMLColumnNameFormatter columnNameFormatter, RepFactory factory, URI pomUri) throws RepositoryException { // Add the predicate TemplateTermSet predTermSet = pom.getPredicate().getTemplate(); if (predTermSet.isSingleUriString()) { URI predValUri = f.createURI(predTermSet .getR2rmlTemplateString(factory, columnNameFormatter)); // Skip the class instance special meta property if (predValUri.stringValue().equals(Uris.CLASS_INSTANCE_LINK_URI)) return false; con.add(pomUri, repoURIs.get(Uris.RR_PREDICATE_URI), predValUri); } else { Value predValLiteratl = f.createLiteral(predTermSet. getR2rmlTemplateString(factory, columnNameFormatter)); con.add(pomUri, repoURIs.get(Uris.RR_PREDICATE_URI), predValLiteratl); } return true; }
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; }
LOG.error("Unable to generate plan for link " + link.getSourceMap().getId() + " " + link.getPredicateObjectMapLink().getPredicate().getId() + " " + link.getTargetMap().getId(), e); continue; if(pom.getPredicate().toString().contains("classLink"))
Schema targetSchema = null; String predicateShortHand = null; if(pom.getPredicate().getTemplate().getAllColumnNameTermElements().isEmpty()) String predicate = pom.getPredicate().getTemplate().getR2rmlTemplateString(rep); predicateShortHand = shortHandURIGenerator.getShortHand(predicate).toString().replaceAll("[^\\w]", "_");
fieldAssembler = fieldAssembler.name(pom.getPredicate().getId().replaceAll("[^\\w]", "_")).type().unionOf().map().values().unionOf().map().values().stringType().and().stringType().and().nullType().endUnion().and().nullType().endUnion().noDefault(); fieldAssembler = fieldAssembler.name(pom.getPredicate().getId().replaceAll("[^\\w]", "_")).type().unionOf().map().values().unionOf().map().values(targetSchema).and().type(targetSchema).and().nullType().endUnion().and().nullType().endUnion().noDefault();
if (poMap.getObject() != null && poMap.getPredicate() != null && !doesPredicateAlreadyExist(subjTrMap, poMap, poMap.getObject().getRefObjectMap())) subjTrMap.addPredicateObjectMap(poMap);