Package edu.isi.karma.rep

Examples of edu.isi.karma.rep.Worksheet


    return CommandType.notInHistory;
  }

  @Override
  public UpdateContainer doIt(Workspace workspace) throws CommandException {
    Worksheet wk = workspace.getWorksheet(worksheetId);
    SuperSelection selection = getSuperSelection(wk);
    String msg = String.format("Gen rule start,Time,%d, Worksheet,%s",System.currentTimeMillis(),worksheetId);
    logger.info(msg);
    // Get the HNode
    HashMap<String, String> rows = new HashMap<String, String>();
    HashMap<String, Integer> amb = new HashMap<String, Integer>();
    HNodePath selectedPath = null;
    List<HNodePath> columnPaths = wk.getHeaders().getAllPaths();
    for (HNodePath path : columnPaths) {
      if (path.getLeaf().getId().equals(hNodeId)) {
        selectedPath = path;
      }
    }
   
    Collection<Node> nodes = new ArrayList<Node>();
    wk.getDataTable().collectNodes(selectedPath, nodes, selection);
    for (Node node : nodes) {
      String id = node.getId();
      if (!this.nodeIds.contains(id))
        continue;
      String originalVal = node.getValue().asString();
      rows.put(id, originalVal);
      this.compResultString += originalVal + "\n";
      calAmbScore(id, originalVal, amb);
    }
    RamblerValueCollection vc = new RamblerValueCollection(rows);
    HashMap<String, Vector<String[]>> expFeData = new HashMap<String, Vector<String[]>>();
    Messager mg = null;
    if(wk.getMsg()!= null)
    {
      mg = (Messager) wk.getMsg();
    }
    else
    {
      mg = new Messager();
      wk.setMsg(mg);
    }
    DataPreProcessor dp = null;
    if(wk.getDpp()!= null)
    {
      dp = (DataPreProcessor) wk.getDpp();
    }
    else
    {
      dp = new DataPreProcessor(rows.values());
      dp.run();
      wk.setDpp(dp);
    }
    inputs = new RamblerTransformationInputs(examples, vc,dp,mg);
    // generate the program
    boolean results = false;
    int iterNum = 0;
View Full Code Here


  @Override
  public UpdateContainer doIt(Workspace workspace) throws CommandException {
   
    UpdateContainer c = new UpdateContainer();
    Worksheet wk = workspace.getWorksheet(worksheetId);
    SuperSelection selection = getSuperSelection(wk);
    // Clone the worksheet just before the invocation
    Cloner cloner = new Cloner();
    this.worksheetBeforeInvocation = cloner.deepClone(wk);

    AlignmentManager mgr = AlignmentManager.Instance();
    String alignmentId = mgr.constructAlignmentId(workspace.getId(), worksheetId);
    Alignment al = mgr.getAlignment(alignmentId);
   
//    /**
//     *
//     */
//    // FIXME
//    String exportDir = "/Users/mohsen/Dropbox/Service Modeling/iswc2013-exp2/jgraph/";
//    try {
//      GraphUtil.serialize(al.getSteinerTree(), exportDir + wk.getTitle() + ".karma.final.jgraph");
//    } catch (Exception e1) {
//      // TODO Auto-generated catch block
//      e1.printStackTrace();
//    }
//    if (true) return null;
   
    if (al == null) {
      logger.error("The alignment model is null.");
      return new UpdateContainer(new ErrorUpdate(
        "Error occured while populating the source. The alignment model is null."));
    }
   
    DirectedWeightedMultigraph<Node, LabeledLink> tree = al.getSteinerTree();
     
    if (tree == null) {
      logger.error("The alignment tree is null.");
      return new UpdateContainer(new ErrorUpdate(
        "Error occured while populating the source. The alignment model is null."));
    }

    DataSource source = new DataSource(wk.getTitle(), tree);
   
    Map<WebService, Map<String, String>> servicesAndMappings =
      WebServiceLoader.getInstance().getServicesWithInputContainedInModel(source.getModel(), null);
   
    if (servicesAndMappings == null) {
      logger.error("Cannot find any services to be invoked according to this source model.");
      return new UpdateContainer(new ErrorUpdate(
        "Error occured while populating the source. Cannot find any services to be invoked according to this source model."));
    }
   
    // For now, we just use the first service,
    // later we can suggest the user a list of available services and user select among them
    WebService service = null;
    Iterator<WebService> itr = servicesAndMappings.keySet().iterator();
    if (itr != null && itr.hasNext()) {
      service = itr.next();
    }
   
    if (service == null) {
      logger.error("Cannot find any services to be invoked according to this source model.");
      return new UpdateContainer(new ErrorUpdate(
        "Error occured while populating the source. Cannot find any services to be invoked according to this source model."));
    }
   
    List<String> requestIds = new ArrayList<String>();
    Map<String, String> serviceToSourceAttMapping =  servicesAndMappings.get(service);
    List<String> requestURLStrings = getUrlStrings(service, source, wk, serviceToSourceAttMapping, requestIds);
    if (requestURLStrings == null || requestURLStrings.size() == 0) {
      logger.error("Data table does not have any row.");
      return new UpdateContainer(new ErrorUpdate("Data table does not have any row."))
    }
   
   
    InvocationManager invocatioManager;
    try {
      String encoding = wk.getEncoding();
      invocatioManager = new InvocationManager(getUrlColumnName(wk), requestIds, requestURLStrings, encoding);
      logger.info("Requesting data with includeURL=" + true + ",includeInput=" + true + ",includeOutput=" + true);
      Table serviceTable = invocatioManager.getServiceData(false, false, true);
//      logger.debug(serviceTable.getPrintInfo());
      ServiceTableUtil.populateWorksheet(serviceTable, wk, workspace.getFactory(), selection);
      logger.info("The service " + service.getUri() + " has been invoked successfully.");


    } catch (MalformedURLException e) {
      logger.error("Malformed service request URL.");
      return new UpdateContainer(new ErrorUpdate("Malformed service request URL."));
    } catch (KarmaException e) {
      logger.error(e.getMessage());
      return new UpdateContainer(new ErrorUpdate(e.getMessage()));
    }
   
    // Create new vWorksheet using the new header order
    List<HNodePath> columnPaths = new ArrayList<HNodePath>();
    for (HNode node : wk.getHeaders().getSortedHNodes()) {
      HNodePath path = new HNodePath(node);
      columnPaths.add(path);
    }
   
    c.append(WorksheetUpdateFactory.createRegenerateWorksheetUpdates(worksheetId, getSuperSelection(workspace)));
View Full Code Here

  @Override
  public UpdateContainer doIt(Workspace workspace) throws CommandException {
    RepFactory factory = workspace.getFactory();
    inputColumns.clear();
    outputColumns.clear();
    Worksheet oldws = workspace.getWorksheet(
        worksheetId);
    Worksheet newws = null;
    HTable ht = factory.getHTable(factory.getHNode(keyhNodeId).getHTableId());
    if (ht == oldws.getHeaders()) {
      newws = unfoldTopLevel(oldws, keyhNodeId, valuehNodeId, workspace, factory);
      this.newWorksheetId = newws.getId();
    }
    else {
      try {
        inputColumns.add(keyhNodeId);
        inputColumns.add(valuehNodeId);
        unfoldNestedLevel(oldws, ht, keyhNodeId, valuehNodeId, factory);
      }catch(Exception e) {
        e.printStackTrace();
      }
    }
    try{
      UpdateContainer c =  new UpdateContainer();
      c.add(new WorksheetListUpdate());
      if (newws == null)
        c.append(WorksheetUpdateFactory.createRegenerateWorksheetUpdates(oldws.getId(), getSuperSelection(oldws)));
      if (newws != null) {
        c.append(WorksheetUpdateFactory.createRegenerateWorksheetUpdates(newws.getId(), SuperSelectionManager.DEFAULT_SELECTION));
        Alignment alignment = AlignmentManager.Instance().getAlignmentOrCreateIt(workspace.getId(), newws.getId(), workspace.getOntologyManager());
        c.append(WorksheetUpdateFactory.createSemanticTypesAndSVGAlignmentUpdates(newws.getId(), workspace, alignment));
      }
      c.append(computeAlignmentAndSemanticTypesAndCreateUpdates(workspace));
      return c;
    } catch (Exception e) {
      WorksheetUpdateFactory.detectSelectionStatusChange(worksheetId, workspace, this);
View Full Code Here

      workspace.getFactory().removeWorksheet(newWorksheetId, workspace.getCommandHistory());
      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);
View Full Code Here

      }
    }

  }
  private Worksheet unfoldTopLevel(Worksheet oldws, String keyHNodeid, String valueHNodeid, Workspace workspace, RepFactory factory) {
    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);
      ArrayList<String> ids = hash.get(hashValue);
      if (ids == null)
        ids = new ArrayList<String>();
      ids.add(row.getId());
      hash.put(hashValue, ids);
    }
    List<Row> resultRows = new ArrayList<Row>();
    for (String hashKey : hash.keySet()) {
      ArrayList<String> r = hash.get(hashKey);
      Row lastRow = CloneTableUtils.cloneDataTable(factory.getRow(r.get(0)), newws.getDataTable(),
          oldws.getHeaders(), newws.getHeaders(), hnodes, factory, selection);
      for (String rowid : r) {
        Row cur = factory.getRow(rowid);
        String newId = HNodeidMapping.get(cur.getNode(key.getId()).getValue().asString());
        Node newnode = lastRow.getNode(newId);
        Node oldnode = cur.getNode(value.getId());
View Full Code Here

    outputColumns.clear();
    UpdateContainer c =  new UpdateContainer();
    alignmentId = AlignmentManager.Instance().constructAlignmentId(workspace.getId(), worksheetId);
    Alignment alignment = AlignmentManager.Instance().getAlignment(alignmentId);
    RepFactory factory = workspace.getFactory();
    Worksheet worksheet = factory.getWorksheet(worksheetId);
    SuperSelection selection = getSuperSelection(worksheet);
    if (alignment.GetTreeRoot() != null)
      hNodeId = FetchHNodeIdFromAlignmentCommand.gethNodeId(alignmentId, columnUri);
    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;
            }
View Full Code Here

    return CommandType.notInHistory;
  }

  @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 {
View Full Code Here

  }

  @Override
  public UpdateContainer doIt(Workspace workspace) throws CommandException {
    // TODO Auto-generated method stub
    Worksheet worksheet = workspace.getWorksheet(worksheetId);
    SuperSelection selection = getSuperSelection(worksheet);
    HNodePath selectedPath = null;
    List<HNodePath> columnPaths = worksheet.getHeaders().getAllPaths();
    for (HNodePath path : columnPaths) {
      if (path.getLeaf().getId().equals(hNodeId)) {
        selectedPath = path;
      }
    }
    Collection<Node> nodes = new ArrayList<Node>();
    workspace.getFactory().getWorksheet(worksheetId).getDataTable()
        .collectNodes(selectedPath, nodes, selection);

   
    try {
      JSONArray requestJsonArray = new JSONArray()
      for (Node node : nodes) {
       
        String originalVal = node.getValue().asString();
        originalVal = originalVal == null ? "" : originalVal;
         requestJsonArray.put(originalVal);
      }
     
      JSONObject json =  new JSONObject(worksheet.getJsonAnnotation().toString());

      String mainId = json.getString("id");
      String mainWorksheetId = json.getString("worksheetId");
      String mainHNodeId = json.getString("hNodeId");
     
     
      Worksheet mainWorksheet = workspace.getWorksheet(mainWorksheetId);

      HNodePath mainSelectedPath = null;
      List<HNodePath> mainColumnPaths = mainWorksheet.getHeaders().getAllPaths();
      for (HNodePath path : mainColumnPaths) {
        if (path.getLeaf().getId().equals(mainHNodeId)) {
          mainSelectedPath = path;
        }
      }
View Full Code Here

      @Override
      public void generateJson(String prefix, PrintWriter pw,
          VWorkspace vWorkspace) {
        HNodePath currentColumnPath = null;
        Worksheet worksheet = workspace.getWorksheet(worksheetId);
        List<HNodePath> paths = worksheet.getHeaders().getAllPaths();
        for (HNodePath path : paths) {
          if (path.getLeaf().getId().equals(hNodeId)) {
            currentColumnPath = path;
            break;
          }
View Full Code Here

    Workspace workspace = initializeWorkspace();
    try
    {
   
   
        Worksheet worksheet = generateWorksheet(sourceName, new BufferedInputStream(data), dataType,
          workspace, maxNumLines);
     
     
      //Generate mappping data for the worksheet using the model parser
      KR2RMLMapping mapping = modelParser.parse();
     
      applyHistoryToWorksheet(workspace, worksheet, mapping);
      SuperSelection selection = SuperSelectionManager.DEFAULT_SELECTION;
      if (selectionName != null && !selectionName.trim().isEmpty())
        selection = worksheet.getSuperSelectionManager().getSuperSelection(selectionName);
      if (selection == null)
        return;
      //Generate RDF using the mapping data
      ErrorReport errorReport = new ErrorReport();
      if(rootStrategy == null)
View Full Code Here

TOP

Related Classes of edu.isi.karma.rep.Worksheet

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.