Package edu.isi.karma.kr2rml

Examples of edu.isi.karma.kr2rml.Predicate


            RefObjectMap refObjMap = new RefObjectMap(RefObjectMap.getNewRefObjectMapId(), objTrMap);
            ObjectMap objMap = new ObjectMap(target.getId(), refObjMap);
            poMap.setObject(objMap);
           
            // Create the predicate
            Predicate pred = new Predicate(olink.getId());
           
            // Check if a specialization link exists
            LabeledLink specializedEdge = getSpecializationLinkIfExists(olink, node);
            if (specializedEdge != null) {
              Node specializedEdgeTarget = specializedEdge.getTarget();
              if (specializedEdgeTarget instanceof ColumnNode) {
                String columnName = translator.getColumnNameForHNodeId(((ColumnNode) specializedEdgeTarget).getHNodeId());
                ColumnTemplateTerm cnTerm =
                    new ColumnTemplateTerm(columnName);
                pred.getTemplate().addTemplateTermToSet(cnTerm);
              }
            } else {
              pred.getTemplate().addTemplateTermToSet(
                  new StringTemplateTerm(olink.getLabel().getUri(), true));
            }
            poMap.setPredicate(pred);
            if (generateInverse)
              addInversePropertyIfExists(subjMap, poMap, olink, subjTrMap);
           
            // Add the links in the graph links data structure
            TriplesMapLink link = new TriplesMapLink(subjTrMap, objTrMap, poMap)
            r2rmlMapping.getAuxInfo().getTriplesMapGraph().addLink(link);
          }
         
          else if(target instanceof LiteralNode) {
            LiteralNode lnode = (LiteralNode) target;
           
            //Create the object
            TemplateTermSet termSet = new TemplateTermSet();
            StringTemplateTerm literalTerm = new StringTemplateTerm(lnode.getValue(), lnode.isUri());
            termSet.addTemplateTermToSet(literalTerm);
           
            StringTemplateTerm rdfLiteralTypeTerm = new StringTemplateTerm(lnode.getLabel().getUri(), true);
            TemplateTermSet rdfLiteralTypeTermSet = new TemplateTermSet();
            rdfLiteralTypeTermSet.addTemplateTermToSet(rdfLiteralTypeTerm);
           
            ObjectMap objMap = new ObjectMap(target.getId(), termSet, rdfLiteralTypeTermSet);
            poMap.setObject(objMap);
           
            // Create the predicate
            Predicate pred = new Predicate(olink.getId());
            pred.getTemplate().addTemplateTermToSet(
                  new StringTemplateTerm(olink.getLabel().getUri(), true));
           
            poMap.setPredicate(pred);
            if (generateInverse)
              addInversePropertyIfExists(subjMap, poMap, olink, subjTrMap);
           
          }
         
          // Create a data property map
          else if(target instanceof ColumnNode) {
            // Create the object map
            ColumnNode cnode = (ColumnNode) target;
            String hNodeId = cnode.getHNodeId();
            String columnName = translator.getColumnNameForHNodeId(hNodeId);
            ColumnTemplateTerm cnTerm = new ColumnTemplateTerm(columnName);
            TemplateTermSet termSet = expandColumnTemplateTermForPyTransforms(
                hNodeId, cnTerm);
           
            String rdfLiteralUri =   cnode.getRdfLiteralType() == null? "" : cnode.getRdfLiteralType().getUri();
            StringTemplateTerm rdfLiteralTypeTerm = new StringTemplateTerm(rdfLiteralUri, true);
            TemplateTermSet rdfLiteralTypeTermSet = new TemplateTermSet();
            rdfLiteralTypeTermSet.addTemplateTermToSet(rdfLiteralTypeTerm);

            ObjectMap objMap = new ObjectMap(hNodeId, termSet, rdfLiteralTypeTermSet);
            poMap.setObject(objMap);
           
            // Create the predicate
            Predicate pred = new Predicate(olink.getId());
           
            // Check if a specialization link exists
            LabeledLink specializedEdge = getSpecializationLinkIfExists(olink, node);
            if (specializedEdge != null) {
              Node specializedEdgeTarget = specializedEdge.getTarget();
              if (specializedEdgeTarget instanceof ColumnNode) {
                String targetColumnName = translator.getColumnNameForHNodeId(((ColumnNode) specializedEdgeTarget).getHNodeId());
                ColumnTemplateTerm cnsplTerm =
                    new ColumnTemplateTerm(targetColumnName);
                pred.getTemplate().addTemplateTermToSet(cnsplTerm);
              }
            } else {
              pred.getTemplate().addTemplateTermToSet(
                  new StringTemplateTerm(olink.getLabel().getUri(), true));
            }
            poMap.setPredicate(pred);
           
            // Save link from the columnName to the its PredicateObjectMap in the auxiliary information
View Full Code Here


        termSet.addTemplateTermToSet(cnTerm);
        ObjectMap objMap = new ObjectMap(hNodeId, termSet, null);
        poMap.setObject(objMap);
       
        // Create the predicate
        Predicate pred = new Predicate(synType.getType().getUri() + "-synonym" +
            getNewSynonymIdCount());
        pred.getTemplate().addTemplateTermToSet(
            new StringTemplateTerm(synType.getType().getUri(), true));
        poMap.setPredicate(pred);
       
        // Add the predicate object map to the triples map
        subjTrMap.addPredicateObjectMap(poMap);
View Full Code Here

    if (inversePropLabel != null) {
      TriplesMap inverseTrMap = r2rmlMapping.getTriplesMapIndex().get(poMap.getObject().getId());
      // Create the predicate object map
      PredicateObjectMap invPoMap = new PredicateObjectMap(PredicateObjectMap.getNewId(),inverseTrMap);
      // Create the predicate
      Predicate pred = new Predicate(olink.getId()+"+inverse");
      pred.getTemplate().addTemplateTermToSet(
          new StringTemplateTerm(inversePropLabel.getUri(), true));
      invPoMap.setPredicate(pred);
      // Create the object using RefObjMap
      RefObjectMap refObjMap = new RefObjectMap(RefObjectMap.getNewRefObjectMapId(), subjTrMap);
      ObjectMap invObjMap = new ObjectMap(subjMap.getId(), refObjMap);
      invPoMap.setObject(invObjMap);
     
      boolean alreadyExists = doesPredicateAlreadyExist(inverseTrMap,
          invPoMap, refObjMap);
      if(alreadyExists)
      {
        return;
      }
     
      inverseTrMap.addPredicateObjectMap(invPoMap);
      // Add the link to the link set
      r2rmlMapping.getAuxInfo().getTriplesMapGraph().addLink(new TriplesMapLink(inverseTrMap, subjTrMap, invPoMap));
    }
    if (inverseOfPropLabel != null) {
      // Create the triples map
      // Get the object's triples map
      TriplesMap inverseOfTrMap = r2rmlMapping.getTriplesMapIndex().get(poMap.getObject().getId());
     
      PredicateObjectMap invOfPoMap = new PredicateObjectMap(PredicateObjectMap.getNewId(),inverseOfTrMap);
      // Create the predicate
      Predicate pred = new Predicate(olink.getId()+"+inverseOf");
      pred.getTemplate().addTemplateTermToSet(
          new StringTemplateTerm(inverseOfPropLabel.getUri(), true));
      invOfPoMap.setPredicate(pred);
      // Create the object using RefObjMap
      RefObjectMap refObjMap = new RefObjectMap(RefObjectMap.getNewRefObjectMapId(), subjTrMap);
      ObjectMap invOfObjMap = new ObjectMap(subjMap.getId(), refObjMap);
View Full Code Here

    // Generate triples for specifying the types
    for (TemplateTermSet typeTerm:triplesMap.getSubject().getRdfsType()) {
     
      PredicateObjectMap pom = new PredicateObjectMap(Prefixes.KARMA_DEV + PredicateObjectMap.getNewId(),triplesMap);
      pom.setObject(new ObjectMap(factory.getNewId("objectmap"), typeTerm, null));
      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);
      columnLinksPlans.add(pomPlan);
    }
   
View Full Code Here

      Resource pomBlankNode = predObjItr.next().asResource();
      // Create the PredicateObjectMap object for current POM
      PredicateObjectMap pom = new PredicateObjectMap(pomBlankNode.getURI(), trMap);
     
      // Get the predicate for the POM
      Predicate pred = null;
      NodeIterator pomPredItr = model.listObjectsOfProperty(pomBlankNode, predProp);
      while (pomPredItr.hasNext()) {
        RDFNode pomPredNode = pomPredItr.next();
        pred = new Predicate(pomPredNode.toString() + "-" + predicateIdCounter++);
       
        // Check if the predicate value is a URI or a literal (such as column name)
        if (pomPredNode instanceof Resource) {
          pred.getTemplate().addTemplateTermToSet(
              new StringTemplateTerm(((Resource) pomPredNode).getURI(), true));
        } else {
          pred.setTemplate(TemplateTermSetBuilder.
              constructTemplateTermSetFromR2rmlTemplateString(
                  pomPredNode.toString(), formatter));
        }
      }
      pom.setPredicate(pred);
     
      // Get the object for the POM
      ObjectMap objMap = null;
      NodeIterator pomObjItr = model.listObjectsOfProperty(pomBlankNode, objectMapProp);
     
      while (pomObjItr.hasNext()) {
        Resource objNode = pomObjItr.next().asResource();
       
        /** Check if objBlankNode is a RefObjectMap or a normal object map with column **/
        if (model.contains(objNode, rdfTypeProp, rfObjClassUri)) {
          NodeIterator parentTripleMapItr = model.listObjectsOfProperty(objNode,
              parentTriplesMapProp);
          while (parentTripleMapItr.hasNext()) {
            Resource parentTripleRes = parentTripleMapItr.next().asResource();
            TriplesMap parentTM = kr2rmlMapping.getTriplesMapIndex().get(parentTripleRes.getURI());
           
            // Create a RefObjectMap
            RefObjectMap rfMap = new RefObjectMap(objNode.getURI(), parentTM);
            objMap = new ObjectMap(getNewObjectMapId(objectMapCounter++), rfMap);
           
            // Add the link between triple maps in the auxInfo
            TriplesMapLink link = new TriplesMapLink(trMap, parentTM, pom)
            kr2rmlMapping.getAuxInfo().getTriplesMapGraph().addLink(link);
          }
        } else {
          NodeIterator objMapColStmts = model.listObjectsOfProperty(objNode, columnProp);
          // RDF Literal Type
          Statement objMapRdfLiteralTypeStmt = model.getProperty(objNode, rdfLiteralTypeProp);
          TemplateTermSet rdfLiteralTypeTermSet = null;
          if (objMapRdfLiteralTypeStmt != null && objMapRdfLiteralTypeStmt.getObject().isLiteral()) {
            StringTemplateTerm rdfLiteralTypeTerm =
                new StringTemplateTerm(objMapRdfLiteralTypeStmt.getObject().toString(), true);
            rdfLiteralTypeTermSet = new TemplateTermSet();
            rdfLiteralTypeTermSet.addTemplateTermToSet(rdfLiteralTypeTerm);
          }
          while (objMapColStmts.hasNext()) {
            RDFNode colNode = objMapColStmts.next();
            objMap = new ObjectMap(getNewObjectMapId(objectMapCounter++),
                TemplateTermSetBuilder.constructTemplateTermSetFromR2rmlColumnString(
                    colNode.toString(), formatter), rdfLiteralTypeTermSet);
          }
          if(objMap == null)
          {
            NodeIterator templateItr = model.listObjectsOfProperty(objNode, templateProp);
            //try a literal/constant node
            if(templateItr == null ||  !templateItr.hasNext()){
              templateItr = model.listObjectsOfProperty(objNode, constantProp);
            }
            TemplateTermSet objTemplTermSet = null;
            while (templateItr.hasNext()) {
              RDFNode templNode = templateItr.next();
              String template = templNode.toString();
              boolean isUri = !templNode.isLiteral();
              objTemplTermSet = TemplateTermSetBuilder.constructTemplateTermSetFromR2rmlTemplateString(
                template, isUri, kr2rmlMapping.getColumnNameFormatter());
           
            }
            objMap = new ObjectMap(getNewObjectMapId(objectMapCounter++),
                objTemplTermSet, rdfLiteralTypeTermSet);
          }
          // Check if anything needs to be added to the columnNameToPredicateObjectMap Map
          if(objMap != null)
            addColumnNameToPredObjectMapLink(objMap, pom, kr2rmlMapping);
        }
      }
      pom.setObject(objMap);
      trMap.addPredicateObjectMap(pom);
    }
   
 
    // Try to add template to pom
      TemplateTermSet subjTemplTermSet = trMap.getSubject().getTemplate();
      if(subjTemplTermSet != null)
      {
        List<TemplateTerm> terms = subjTemplTermSet.getAllTerms();
        if(isValidTemplate(terms))
        {
          PredicateObjectMap pom = new PredicateObjectMap(PredicateObjectMap.getNewId(),trMap);
          Predicate pred = new Predicate(Uris.CLASS_INSTANCE_LINK_URI + "-" + predicateIdCounter++);
          pred.getTemplate().addTemplateTermToSet(
              new StringTemplateTerm(Uris.CLASS_INSTANCE_LINK_URI, true));
          pom.setPredicate(pred);
          StringTemplateTerm rdfLiteralTypeTerm = new StringTemplateTerm("", true);
          TemplateTermSet rdfLiteralTypeTermSet = new TemplateTermSet();
          rdfLiteralTypeTermSet.addTemplateTermToSet(rdfLiteralTypeTerm);
View Full Code Here

        }
        var_count++;
      }
      // if it is a predicate Object, create a variable in in the query string
      else if (currentObj instanceof Predicate) {
        Predicate predicate = (Predicate)currentObj;
        String k = predicate.getTemplate().toString();
        k = k.replace('<', ' ').replace('>', ' ').trim();
        if(columns != null && columns.size() > 0) {
//          if(columnList.containsKey(k)) {
          if(columnList.containsValue(k)) {
            Iterator<String> itr = columnList.keySet().iterator();
            while(itr.hasNext()) {
              String cName = itr.next();
              if(columnList.get(cName).equals(k) && !visited_columns.contains(cName)) {
                // get the column name from the end of this url - either the last '/' or the '#'
                query.append(" ?" + predicateList.get(predicate))
                .append(" ")
                .append(predicate.getTemplate())
                .append(" ?")
                .append(cName + " . ");
                //columnList.remove(cName);
                visited_columns.add(cName);
                var_count++;
                break;
              }
            } 
            // get the column name from the end of this url - either the last '/' or the '#'
//            query.append(" ?" + predicateList.get(predicate))
//              .append(" ")
//              .append(predicate.getTemplate())
//              .append(" ?")
//              .append(columnList.get(k) + " . ");
//            var_count++;
          } else {
            logger.info("ColumnList does not contain : " + k + " " + currentObj);
          }
        } else {
          int index = 0;
          if(k.indexOf("#") > 0) {
            index = k.lastIndexOf('#')+1;
          } else if(k.indexOf("/") > 0) {
            index = k.lastIndexOf('/')+1;
          }
          query.append(" ?" + predicateList.get(predicate))
            .append(" ")
            .append(predicate.getTemplate())
            .append(" ?").append(k.substring(index, k.length()))
            .append(" .");
          var_count++;
        }
       
View Full Code Here

        }
        var_count++;
      }
      // if it is a predicate Object, create a variable in in the query string
      else if (currentObj instanceof Predicate) {
        Predicate predicate = (Predicate)currentObj;
        query.append(" ?" + predicateList.get(predicate)
            + " " + predicate.getTemplate() + " ?z"+ var_count + " . ");
        select_params.append(" ?z" + var_count);
        var_count++;
       
      }
      // if this is a RefObject add the Child Triple to the queue
View Full Code Here

TOP

Related Classes of edu.isi.karma.kr2rml.Predicate

Copyright © 2018 www.massapicom. All rights reserved.
All source code are property of their respective owners. Java is a trademark of Sun Microsystems, Inc and owned by ORACLE Inc. Contact coftware#gmail.com.