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")
Predicate pred = new Predicate(synType.getType().getUri() + "-synonym" + getNewSynonymIdCount()); pred.getTemplate().addTemplateTermToSet( new StringTemplateTerm(synType.getType().getUri(), true)); poMap.setPredicate(pred);
LOG.error("Unable to generate plan for link " + link.getSourceMap().getId() + " " + link.getPredicateObjectMapLink().getPredicate().getId() + " " + link.getTargetMap().getId(), e); Predicate typePredicate = new Predicate(factory.getNewId("predicate")); TemplateTermSet typeTemplate = new TemplateTermSet(); typeTemplate.addTemplateTermToSet(new StringTemplateTerm(Uris.RDF_TYPE_URI)); typePredicate.setTemplate(typeTemplate); pom.setPredicate(typePredicate); PredicateObjectMappingPlan pomPlan = new ColumnPredicateObjectMappingPlan(subjectMapPlan.getTemplate(), pom, subjectMapPlan.getSubjectTermsToPaths(), kr2rmlMapping,uriFormatter, factory, translator, hNodeToContextUriMap, generateContext, selection); continue; if(pom.getPredicate().toString().contains("classLink"))
while (pomPredItr.hasNext()) { RDFNode pomPredNode = pomPredItr.next(); pred = new Predicate(pomPredNode.toString() + "-" + predicateIdCounter++); pred.getTemplate().addTemplateTermToSet( new StringTemplateTerm(((Resource) pomPredNode).getURI(), true)); } else { pred.setTemplate(TemplateTermSetBuilder. constructTemplateTermSetFromR2rmlTemplateString( pomPredNode.toString(), formatter)); Predicate pred = new Predicate(Uris.CLASS_INSTANCE_LINK_URI + "-" + predicateIdCounter++); pred.getTemplate().addTemplateTermToSet( new StringTemplateTerm(Uris.CLASS_INSTANCE_LINK_URI, true)); pom.setPredicate(pred);
Predicate pred = new Predicate(olink.getId()+"+inverse"); pred.getTemplate().addTemplateTermToSet( new StringTemplateTerm(inversePropLabel.getUri(), true)); invPoMap.setPredicate(pred); Predicate pred = new Predicate(olink.getId()+"+inverseOf"); pred.getTemplate().addTemplateTermToSet( new StringTemplateTerm(inverseOfPropLabel.getUri(), true)); invOfPoMap.setPredicate(pred);
Predicate pred = new Predicate(olink.getId()); ColumnTemplateTerm cnTerm = new ColumnTemplateTerm(columnName); pred.getTemplate().addTemplateTermToSet(cnTerm); pred.getTemplate().addTemplateTermToSet( new StringTemplateTerm(olink.getLabel().getUri(), true)); Predicate pred = new Predicate(olink.getId()); pred.getTemplate().addTemplateTermToSet( new StringTemplateTerm(olink.getLabel().getUri(), true)); Predicate pred = new Predicate(olink.getId()); ColumnTemplateTerm cnsplTerm = new ColumnTemplateTerm(targetColumnName); pred.getTemplate().addTemplateTermToSet(cnsplTerm); pred.getTemplate().addTemplateTermToSet( new StringTemplateTerm(olink.getLabel().getUri(), true));
String previous = var1; while(parentTriple!=null) { String predicate = parentTriple.predicate.getTemplate().toString();
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)) {
if(p_map.getPredicate().getTemplate().toString().equalsIgnoreCase("<http://www.opengis.net/gml/hasValue>")) { queue.add(p_map.getPredicate()); predicateList.put(p_map.getPredicate(), var); String predicate = parentTriple.predicate.getTemplate().toString(); Predicate predicate = (Predicate)currentObj; query.append(" ?" + predicateList.get(predicate) + " " + predicate.getTemplate() + " ?z"+ var_count + " . "); select_params.append(" ?z" + var_count); var_count++;
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();
String k = predicate.getTemplate().toString(); k = k.replace('<', ' ').replace('>', ' ').trim(); if(columns != null && !columns.isEmpty()) { .append(predicate.getTemplate()) .append(" ?") .append(cName + " . "); .append(predicate.getTemplate()) .append(" ?").append(k.substring(index, k.length())) .append(" .");
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; }
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]", "_");