Examples of HNode


Examples of edu.isi.karma.rep.HNode

  @Override
  public UpdateContainer doIt(Workspace workspace) throws CommandException {
    Worksheet worksheet = workspace.getWorksheet(worksheetId);
    HTable ht = worksheet.getHeaders();   
    if (hNodeId.compareTo("") != 0) {
      HNode hNode = workspace.getFactory().getHNode(hNodeId);
      HTable parentHT = workspace.getFactory().getHTable(hNode.getHTableId());
      if (commandName.compareTo("GroupBy") == 0 || commandName.compareTo("Fold") == 0 || commandName.compareTo("Glue") == 0)
        ht = hNode.getNestedTable();
      else
        ht = parentHT;
    }
    if (ht == null) {
      return new UpdateContainer();
View Full Code Here

Examples of edu.isi.karma.rep.HNode

      c.add(new WorksheetListUpdate());
      c.add(new WorksheetDeleteUpdate(newWorksheetId));
    }
    if (this.newHNodeId != null) {
      Worksheet worksheet = workspace.getWorksheet(worksheetId);
      HNode ndid = workspace.getFactory().getHNode(newHNodeId);
      HTable currentTable = workspace.getFactory().getHTable(ndid.getHTableId());
      ndid.removeNestedTable();
      //remove the new column
      currentTable.removeHNode(newHNodeId, worksheet);
      c.append(WorksheetUpdateFactory.createRegenerateWorksheetUpdates(worksheetId, getSuperSelection(worksheet)));
      c.append(computeAlignmentAndSemanticTypesAndCreateUpdates(workspace));
    }
View Full Code Here

Examples of edu.isi.karma.rep.HNode

      for (Row row : tmp.getRows(0, tmp.getNumRows(), selection)) {
        parentRows.add(row);
      }
    }
    //ArrayList<Row> parentRows = parentTable.getRows(0, parentTable.getNumRows());
    HNode newNode = parentHT.addHNode("Unfold: " + ht.getHNode(keyHNodeid).getColumnName(), HNodeType.Transformation, oldws, factory);
    outputColumns.add(newNode.getId());
    this.newHNodeId = newNode.getId();
    HTable newHT = newNode.addNestedTable("Unfold: " + ht.getHNode(keyHNodeid).getColumnName(), oldws, factory);
    HNode key = ht.getHNode(keyHNodeid);
    HNode value = ht.getHNode(valueHNodeid);
    List<HNode> hnodes = new ArrayList<HNode>();
    List<String> hnodeIds = new ArrayList<String>();
    if (!notOtherColumn) {
      for (HNode h : topHNodes) {
        if (h.getId().compareTo(value.getId()) != 0 && h.getId().compareTo(key.getId()) != 0) {
          hnodes.add(h);
          hnodeIds.add(h.getId());
        }
      }
    }
    for (Entry<String, String> entry : CloneTableUtils.cloneHTable(ht, newHT, oldws, factory, hnodes, selection).entrySet()) {
      outputColumns.add(entry.getValue());
    }
    List<Row> resultRows = new ArrayList<Row>();
    for (Row parentRow: parentRows) {
      Table t = null;
      for (Node node : parentRow.getNodes()) {
        if (node.hasNestedTable() && node.getNestedTable().getHTableId().compareTo(ht.getId()) == 0) {
          t = node.getNestedTable();
          break;
       
      }
      Map<String, String> keyMapping = new HashMap<String, String>();
      Map<String, String> HNodeidMapping = new HashMap<String, String>();
      ArrayList<Row> rows = t.getRows(0, t.getNumRows(), selection);
      for (Row row : rows) {
        Node n = row.getNode(key.getId());
        keyMapping.put(HashValueManager.getHashValue(oldws, n.getId(), factory), n.getValue().asString());
      }
      for (String mapkey : keyMapping.keySet()) {
        HNode hn = newHT.getHNodeFromColumnName(keyMapping.get(mapkey).toLowerCase().replace('/', '_'));
        if (hn == null) {
          HNode n = newHT.addHNode(keyMapping.get(mapkey).toLowerCase().replace('/', '_'), HNodeType.Transformation, oldws, factory);
          outputColumns.add(n.getId());
          HTable htt = n.addNestedTable("values", oldws, factory);
          outputColumns.add(htt.addHNode("Values", HNodeType.Transformation, oldws, factory).getId());
          HNodeidMapping.put(keyMapping.get(mapkey), n.getId());
        }
        else
          HNodeidMapping.put(keyMapping.get(mapkey), hn.getId());
      }
      Map<String, ArrayList<String>> hash = new HashMap<String, ArrayList<String>>();
View Full Code Here

Examples of edu.isi.karma.rep.HNode

    Worksheet newws = factory.createWorksheet("Unfold: " + oldws.getTitle(), workspace, oldws.getEncoding());
    SuperSelection selection = getSuperSelection(oldws);
    newws.getMetadataContainer().getWorksheetProperties().setPropertyValue(Property.sourceType, oldws.getMetadataContainer().getWorksheetProperties().getPropertyValue(Property.sourceType));
    ArrayList<HNode> topHNodes = new ArrayList<HNode>(oldws.getHeaders().getHNodes());
    ArrayList<Row> rows = oldws.getDataTable().getRows(0, oldws.getDataTable().getNumRows(), selection);
    HNode key = oldws.getHeaders().getHNode(keyHNodeid);
    HNode value = oldws.getHeaders().getHNode(valueHNodeid);
    List<HNode> hnodes = new ArrayList<HNode>();
    List<String> hnodeIds = new ArrayList<String>();
    if (!notOtherColumn) {
      for (HNode h : topHNodes) {
        if (h.getId().compareTo(value.getId()) != 0 && h.getId().compareTo(key.getId()) != 0) {
          hnodes.add(h);
          hnodeIds.add(h.getId());
        }
      }
    }
    CloneTableUtils.cloneHTable(oldws.getHeaders(), newws.getHeaders(), newws, factory, hnodes, selection);
    Map<String, String> keyMapping = new HashMap<String, String>();
    Map<String, String> HNodeidMapping = new HashMap<String, String>();
    for (Row row : rows) {
      Node n = row.getNode(key.getId());
      keyMapping.put(HashValueManager.getHashValue(oldws, n.getId(), factory), n.getValue().asString());
    }
    for (String mapkey : keyMapping.keySet()) {
      HNode n = newws.getHeaders().addHNode(keyMapping.get(mapkey), HNodeType.Transformation, newws, factory);
      HTable ht = n.addNestedTable("values", newws, factory);
      ht.addHNode("Values", HNodeType.Transformation, newws, factory);
      HNodeidMapping.put(keyMapping.get(mapkey), n.getId());
    }

    Map<String, ArrayList<String>> hash = new TreeMap<String, ArrayList<String>>();
    for (Row row : rows) {
      String hashValue = HashValueManager.getHashValue(row, hnodeIds);
View Full Code Here

Examples of edu.isi.karma.rep.HNode

    if (hNodeId == null) {
      c.append(WorksheetUpdateFactory.createRegenerateWorksheetUpdates(worksheetId, getSuperSelection(worksheet)));
      c.append(computeAlignmentAndSemanticTypesAndCreateUpdates(workspace));
      return c;
    }
    HNode hnode = factory.getHNode(hNodeId);
    List<String> hNodeIds = new LinkedList<String>();
    hNodeIds.add(hNodeId);
    inputColumns.addAll(hNodeIds);
    List<Table> dataTables = new ArrayList<Table>();
    CloneTableUtils.getDatatable(worksheet.getDataTable(), factory.getHTable(hnode.getHTableId()), dataTables, selection);
    Map<String, String> rowHashToSubjectURI = new HashMap<String, String>();
    Map<String, List<String>> SubjectURIToRowId = new HashMap<String, List<String>>();
    for(Table t : dataTables) {
      for(Row r : t.getRows(0, t.getNumRows(), selection)) {
        Node n = r.getNode(hNodeId);
        if(n != null && n.getValue() != null && !n.getValue().isEmptyValue() && n.getValue().asString() != null && !n.getValue().asString().trim().isEmpty() ) {
          String uri = n.getValue().asString().trim().replace(" ", "");
          String baseURI = worksheet.getMetadataContainer().getWorksheetProperties().getPropertyValue(Property.baseURI);
          try {
            URI t1 = new URI(uri);
            if (!t1.isAbsolute() && baseURI != null) {
              uri = baseURI + uri;
            }
          } catch (URISyntaxException e) {
            // TODO Auto-generated catch block
          }
//          n.setValue(uri, n.getStatus(), factory);
          rowHashToSubjectURI.put(HashValueManager.getHashValue(r, hNodeIds), uri);

          if (SubjectURIToRowId.get(uri) == null)
            SubjectURIToRowId.put(uri, new ArrayList<String>());
          List<String> rowIds = SubjectURIToRowId.get(uri)
          rowIds.add(r.getId());
        }
      }
    }
    TripleStoreUtil util = new TripleStoreUtil();

    //String modelContext = worksheet.getMetadataContainer().getWorksheetProperties().getPropertyValue(Property.modelContext);
    List<String> subjects = new LinkedList<String>();
    subjects.addAll(rowHashToSubjectURI.values());
    List<String> predicates = new LinkedList<String>();
    List<String> otherClasses = new LinkedList<String>();
    Map<String, List<String>> results = new HashMap<String, List<String>>();

    URIFormatter uriFormatter = new URIFormatter(workspace.getOntologyManager(), new ErrorReport());
    if(sameAsPredicate!= null && !sameAsPredicate.trim().isEmpty())
    {
      sameAsPredicate = uriFormatter.getExpandedAndNormalizedUri(sameAsPredicate);
    }

    JSONArray predicatesarray = new JSONArray(predicate);
    JSONArray otherClassarray = new JSONArray(otherClass);

    for(int i = 0; i < predicatesarray.length(); i++) {
      predicates.add(predicatesarray.getJSONObject(i).getString("predicate"));
      otherClasses.add(otherClassarray.getJSONObject(i).getString("otherClass"));
    }

    while (subjects.size() > 0) {
      ListIterator<String> subjectsIterator = subjects.listIterator();
      LinkedList<String> tempSubjects = new LinkedList<String>();
      while(tempSubjects.size() < limit && subjects.size() > 0)
      {
        tempSubjects.add(subjectsIterator.next());
        subjectsIterator.remove();
      }
      try {
        Map<String, List<String>> temp = null;
        if (!incoming)
          temp = util.getObjectsForSubjectsAndPredicates(dataRepoUrl, null, tempSubjects , predicates, otherClasses, sameAsPredicate);
        else
          temp = util.getSubjectsForPredicatesAndObjects(dataRepoUrl, null, tempSubjects , predicates, otherClasses, sameAsPredicate);
        addMappingToResults(results, temp);
        //        predicates.clear();
        //        otherClasses.clear();
      } catch (KarmaException e) {
        LOG.error("Unable to load data to augment: ", e);
        return new UpdateContainer(new ErrorUpdate(e.getMessage()));
      }
    }


    List<String> resultSubjects = results.get("resultSubjects");
    List<String> resultPredicates = results.get("resultPredicates");
    List<String> resultObjects = results.get("resultObjects");
    List<String> resultClass = results.get("resultClasses");
    AddValuesCommandFactory addFactory = new AddValuesCommandFactory();

    for (int i = 0; i < resultPredicates.size(); i++) {
      String subject = incoming ? resultObjects.get(i) : resultSubjects.get(i);
      List<String> rowIds = SubjectURIToRowId.get(subject);
      boolean isNewNode = false;
      for (String RowId : rowIds) {
        String predicate = resultPredicates.get(i);
        String otherClass = resultClass.get(i);
        JSONArray array = new JSONArray();
        JSONObject obj = new JSONObject();
        JSONObject obj2 = new JSONObject();
        if (otherClass != null && !otherClass.trim().isEmpty())
          obj.put("URIs", incoming ? resultSubjects.get(i) : resultObjects.get(i));
        else
          obj.put("values", incoming ? resultSubjects.get(i) : resultObjects.get(i));
        obj2.put("rowId", RowId);
        obj2.put("rowIdHash", "");
        obj2.put("values", obj);
        array.put(obj2);
        JSONArray input = new JSONArray();
        JSONObject obj3 = new JSONObject();
        obj3.put("name", "AddValues");
        obj3.put("value", array.toString());
        obj3.put("type", "other");
        input.put(obj3);
        try {
          OntologyManager ontMgr = workspace.getOntologyManager();
          Label label = ontMgr.getUriLabel(incoming ? otherClass : predicate);
          AddValuesCommand command = (AddValuesCommand) addFactory.createCommand(input, workspace, hNodeId, worksheetId, hnode.getHTableId(), label.getDisplayName(), HNodeType.AugmentData, selection.getName());
          command.doIt(workspace);
          outputColumns.addAll(command.getOutputColumns());
          isNewNode |= command.isNewNode();
          if (command.isNewNode())
            appliedCommands.push(command);
          newhNodeId = command.getNewHNodeId();


        } catch(Exception e) {
          e.printStackTrace();
          return new UpdateContainer(new ErrorUpdate(e.getMessage()));
        }
      }
      if (isNewNode && alignment.GetTreeRoot() != null) {
        HNode tableHNode =workspace.getFactory().getHNode(newhNodeId);
        String nestedHNodeId = tableHNode.getNestedTable().getHNodeIdFromColumnName("values");
        if (nestedHNodeId == null)
          nestedHNodeId = tableHNode.getNestedTable().getHNodeIdFromColumnName("URIs");
        SetSemanticTypeCommandFactory sstFactory = new SetSemanticTypeCommandFactory();
        JSONArray semanticTypesArray = new JSONArray();
        JSONObject semanticType = new JSONObject();
        edu.isi.karma.rep.alignment.Node n = alignment.getNodeById(columnUri);
View Full Code Here

Examples of edu.isi.karma.rep.HNode

  @Override
  public UpdateContainer doIt(Workspace workspace) throws CommandException {
    Worksheet worksheet = workspace.getWorksheet(worksheetId);
    RepFactory f = workspace.getFactory();
    HNode hNode = f.getHNode(hNodeId);
    final JSONArray transformedRows = new JSONArray();
    final JSONArray errorValues = new JSONArray();
    try {
      this.generateTransformedValues(workspace, worksheet, f, hNode, transformedRows, errorValues, 5);
      return new UpdateContainer(new PythonPreviewResultsUpdate(transformedRows, errorValues));
View Full Code Here

Examples of edu.isi.karma.rep.HNode

        worksheetId);
    inputColumns.clear();
    outputColumns.clear();
    Object para = JSONUtil.createJson(this.getInputParameterJson());
    String addValues = null
    HNode ndid = null;
    try{
      if (para instanceof JSONArray) {
        //System.out.println("JSONArray:" + para);
        addValues = CommandInputJSONUtil.getStringValue("AddValues", (JSONArray)para);
        Object t = JSONUtil.createJson(addValues);
        if (t instanceof JSONArray) {
          JSONArray a = (JSONArray) t;
          ndid = addColumn(workspace, worksheet, newColumnName, a);
        }
      }
      WorksheetUpdateFactory.detectSelectionStatusChange(worksheetId, workspace, this);
      UpdateContainer c =  new UpdateContainer(new AddColumnUpdate(newHNodeId, worksheetId));   
      c.append(WorksheetUpdateFactory.createRegenerateWorksheetUpdates(worksheetId, getSuperSelection(worksheet)));
      if (ndid == null) {
        System.err.println("error: ndid");
      }
      c.append(computeAlignmentAndSemanticTypesAndCreateUpdates(workspace, ndid.getHNodePath(workspace.getFactory())));
      return c;
    } catch (Exception e) {
      logger.error("Error in AddColumnCommand" + e.toString());
      Util.logException(logger, e);
      e.printStackTrace();
View Full Code Here

Examples of edu.isi.karma.rep.HNode

  public UpdateContainer undoIt(Workspace workspace) {
    UpdateContainer c = new UpdateContainer();
    Worksheet worksheet = workspace.getWorksheet(worksheetId);

    HTable currentTable = workspace.getFactory().getHTable(hTableId);
    HNode ndid = workspace.getFactory().getHNode(newHNodeId);
    ndid.removeNestedTable();
    //remove the new column
    currentTable.removeHNode(newHNodeId, worksheet);
    c.append(WorksheetUpdateFactory.createRegenerateWorksheetUpdates(worksheetId, getSuperSelection(worksheet)));
    c.append(computeAlignmentAndSemanticTypesAndCreateUpdates(workspace));
    return c;
View Full Code Here

Examples of edu.isi.karma.rep.HNode

      throw new KarmaException("No HTable for id "+ hTableId );
    }

    //add new column to this table
    //add column after the column with hNodeId
    HNode ndid = null;
    if (newColumnName != null && !newColumnName.trim().isEmpty()) {
      if (hTable.getHNodeFromColumnName(newColumnName) != null) {
        ndid = hTable.getHNodeFromColumnName(newColumnName);
        outputColumns.add(ndid.getId());
      }
      else {
        ndid = hTable.addNewHNodeAfter(hNodeId, type, workspace.getFactory(), newColumnName, worksheet,true);
        outputColumns.add(ndid.getId());
        isNewNode = true;
      }
    }
    else {
      ndid = hTable.addNewHNodeAfter(hNodeId, type, workspace.getFactory(), hTable.getNewColumnName("default"), worksheet,true);
      outputColumns.add(ndid.getId());
      isNewNode = true;
    }
    newHNodeId = ndid.getId();
    //add as first column in the table if hNodeId is null
    //HNode ndid = currentTable.addNewHNodeAfter(null, vWorkspace.getRepFactory(), newColumnName, worksheet,true);
    if (array != null) {
      populateRowsWithDefaultValues(worksheet, workspace.getFactory(), array, hTable);
    }
View Full Code Here

Examples of edu.isi.karma.rep.HNode

    List<String> otherClasses = result.get("otherClasses");
    Iterator<String> concatenatedPredicateObjectMapsListItr = concatenatedPredicateObjectMapsList.iterator();
    Iterator<String> predicatesItr = predicates.iterator();
    Iterator<String> otherClassesItr = otherClasses.iterator();
    String hNodeId = FetchHNodeIdFromAlignmentCommand.gethNodeId(AlignmentManager.Instance().constructAlignmentId(workspace.getId(), worksheetId), columnUri);
    HNode hnode = factory.getHNode(hNodeId);
    List<Table> dataTables = new ArrayList<Table>();
    CloneTableUtils.getDatatable(worksheet.getDataTable(), factory.getHTable(hnode.getHTableId()), dataTables, selection);
    KR2RMLBloomFilter uris = new KR2RMLBloomFilter(KR2RMLBloomFilter.defaultVectorSize, KR2RMLBloomFilter.defaultnbHash, Hash.JENKINS_HASH);
    Set<String> uriSet = new HashSet<String>();
    for(Table t : dataTables) {
      for(Row r : t.getRows(0, t.getNumRows(), selection)) {
        Node n = r.getNode(hNodeId);
View Full Code Here
TOP
Copyright © 2018 www.massapi.com. 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.