Package edu.isi.karma.kr2rml

Examples of edu.isi.karma.kr2rml.ObjectMap


          // Create an object property map
          if (target instanceof InternalNode) {
            // Get the RefObjMap object for the objectmap
            TriplesMap objTrMap = r2rmlMapping.getTriplesMapIndex().get(target.getId());
            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());
           
View Full Code Here


        // Create the object map
        String columnName = translator.getColumnNameForHNodeId(hNodeId);
        ColumnTemplateTerm cnTerm = new ColumnTemplateTerm(columnName);
        TemplateTermSet termSet = new TemplateTermSet();
        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());
View Full Code Here

      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);
      invOfPoMap.setObject(invOfObjMap);
     
      boolean alreadyExists = doesPredicateAlreadyExist(inverseOfTrMap,
          invOfPoMap, refObjMap);
      if(alreadyExists)
View Full Code Here

    // Subject
    // 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);
View Full Code Here

        }
      }
      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);
          ObjectMap objMap = new ObjectMap(getNewObjectMapId(objectMapCounter++),
              subjTemplTermSet, rdfLiteralTypeTermSet);
          pom.setObject(objMap);
          trMap.addPredicateObjectMap(pom);
          addColumnNameToPredObjectMapLink(objMap, pom, kr2rmlMapping);
         
View Full Code Here

            mytm = tm;
           
            List<PredicateObjectMap> poms = mytm.getPredicateObjectMaps();
            for(PredicateObjectMap pom : poms )
            {
              ObjectMap objMap = pom.getObject();
              if(objMap == null)
              {
                logger.error("Unable to find object map for pom :" + pom.toString());
              }
               
View Full Code Here

TOP

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

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.