Package edu.isi.karma.modeling.alignment

Examples of edu.isi.karma.modeling.alignment.SemanticModel


    // mohsen: my code to enable Karma to leran semantic models
    // *****************************************************************************************
    // *****************************************************************************************

    SemanticModel semanticModel = new SemanticModel(workspace, worksheet, worksheetName, alignment.getSteinerTree(), selection);
    semanticModel.setName(worksheetName);
    try {
      semanticModel.writeJson(ServletContextParameterMap.getParameterValue(ContextParameter.JSON_MODELS_DIR) +
          semanticModel.getName() +
          ".model.json");
    } catch (Exception e) {
      logger.error("error in exporting the model to JSON!");
      //      e.printStackTrace();
    }
    try {
      semanticModel.writeGraphviz(ServletContextParameterMap.getParameterValue(ContextParameter.GRAPHVIZ_MODELS_DIR) +
          semanticModel.getName() +
          ".model.dot", false, false);
    } catch (Exception e) {
      logger.error("error in exporting the model to GRAPHVIZ!");
      //      e.printStackTrace();
    }
View Full Code Here


   
    this.graphBuilder = cloneGraphBuilder(this.graphBuilder); // create a copy of the graph builder
    List<SortableSemanticModel> hypothesisList = this.hypothesize(true, NUM_SEMANTIC_TYPES);
    if (hypothesisList != null && !hypothesisList.isEmpty()) {
      SortableSemanticModel m = hypothesisList.get(0);
      this.semanticModel = new SemanticModel(m);
    } else {
      this.semanticModel = null;
    }
  }
View Full Code Here

          new DirectedWeightedMultigraph<Node, LabeledLink>(LabeledLink.class);
     
      for (Node n : steinerNodes)
        tree.addVertex(n);
     
      SemanticModel sm = new SemanticModel(new RandomGUID().toString(), tree);
      SortableSemanticModel sortableSemanticModel = new SortableSemanticModel(sm, null);
      sortableSemanticModels.add(sortableSemanticModel);
      return sortableSemanticModels;
    }
   
    logger.info("graph nodes: " + this.graphBuilder.getGraph().vertexSet().size());
    logger.info("graph links: " + this.graphBuilder.getGraph().edgeSet().size());

    logger.info("number of steiner sets: " + candidateSteinerSets.numberOfCandidateSets());

//    logger.info("updating weights according to training data ...");
//    long start = System.currentTimeMillis();
//    this.updateWeights();
//    long updateWightsElapsedTimeMillis = System.currentTimeMillis() - start;
//    logger.info("time to update weights: " + (updateWightsElapsedTimeMillis/1000F));
   
    logger.info("computing steiner trees ...");
    int number = 1;
    for (SteinerNodes sn : candidateSteinerSets.getSteinerSets()) {
      if (sn == null) continue;
      logger.debug("computing steiner tree for steiner nodes set " + number + " ...");
      logger.debug(sn.getScoreDetailsString());
      number++;
//      logger.info("START ...");
     
      List<DirectedWeightedMultigraph<Node, LabeledLink>> topKSteinerTrees;
      if (this.graphBuilder instanceof GraphBuilderTopK)
        topKSteinerTrees =  ((GraphBuilderTopK)this.graphBuilder).getTopKSteinerTrees(sn.getNodes(), ModelingConfiguration.getMaxCandidateModels());
      else
      {
        topKSteinerTrees = new LinkedList<DirectedWeightedMultigraph<Node, LabeledLink>>();
        SteinerTree steinerTree = new SteinerTree(
            new AsUndirectedGraph<Node, DefaultLink>(this.graphBuilder.getGraph()), Lists.newLinkedList(sn.getNodes()));
        WeightedMultigraph<Node, DefaultLink> t = steinerTree.getDefaultSteinerTree();
        TreePostProcess treePostProcess = new TreePostProcess(this.graphBuilder, t);
        if (treePostProcess.getTree() != null)
          topKSteinerTrees.add(treePostProcess.getTree());
      }
     
//      System.out.println(GraphUtil.labeledGraphToString(treePostProcess.getTree()));
     
//      logger.info("END ...");

      for (DirectedWeightedMultigraph<Node, LabeledLink> tree: topKSteinerTrees) {
        if (tree != null) {
//          System.out.println();
          SemanticModel sm = new SemanticModel(new RandomGUID().toString(),
              tree,
              columnNodes,
              sn.getMappingToSourceColumns()
              );
          SortableSemanticModel sortableSemanticModel =
              new SortableSemanticModel(sm, sn);
          sortableSemanticModels.add(sortableSemanticModel);
         
          System.out.println(GraphUtil.labeledGraphToString(sm.getGraph()));
          System.out.println(sortableSemanticModel.getLinkCoherence().printCoherenceList());
        }
      }
      if (number == ModelingConfiguration.getMaxCandidateModels())
        break;
View Full Code Here

//  }

  @SuppressWarnings("unused")
  private static void getStatistics1(List<SemanticModel> semanticModels) {
    for (int i = 0; i < semanticModels.size(); i++) {
      SemanticModel source = semanticModels.get(i);
      int attributeCount = source.getColumnNodes().size();
      int nodeCount = source.getGraph().vertexSet().size();
      int linkCount = source.getGraph().edgeSet().size();
      int datanodeCount = 0;
      int classNodeCount = 0;
      for (Node n : source.getGraph().vertexSet()) {
        if (n instanceof InternalNode) classNodeCount++;
        if (n instanceof ColumnNode) datanodeCount++;
      }
      System.out.println(attributeCount + "\t" + nodeCount + "\t" + linkCount + "\t" + classNodeCount + "\t" + datanodeCount);
     
      List<ColumnNode> columnNodes = source.getColumnNodes();
      getStatistics2(columnNodes);

    }
  }
View Full Code Here

    for (int i = 0; i < semanticModels.size(); i++) {
//    for (int i = 0; i <= 10; i++) {
//    int i = 0; {

      int newSourceIndex = i;
      SemanticModel newSource = semanticModels.get(newSourceIndex);

      logger.info("======================================================");
      logger.info(newSource.getName() + "(#attributes:" + newSource.getColumnNodes().size() + ")");
      System.out.println(newSource.getName() + "(#attributes:" + newSource.getColumnNodes().size() + ")");
      logger.info("======================================================");


      trainingData.clear();

      for (int j = 0; j < semanticModels.size(); j++) {
        if (j != newSourceIndex) {
          trainingData.add(semanticModels.get(j));
        }
      }

      SemanticModel correctModel = newSource;
      List<ColumnNode> columnNodes = correctModel.getColumnNodes();

      List<Node> steinerNodes = new LinkedList<Node>(columnNodes);
      long start = System.currentTimeMillis();

      String graphName = graphPath + "lod" + Params.GRAPH_FILE_EXT;
View Full Code Here

//      this.coherence = this.computeCoherence();
    }
  }

  public SemanticModel getBaseModel() {
    return new SemanticModel(this);
  }
View Full Code Here

    else
      modelLearner = new ModelLearner(ontologyManager, alignment.getLinksByStatus(LinkStatus.ForcedByUser), steinerNodes);

//    logger.info(GraphUtil.defaultGraphToString(ModelLearningGraph.getInstance(ontologyManager, ModelLearningGraphType.Compact).getGraphBuilder().getGraph()));

    SemanticModel model = modelLearner.getModel();
    if (model == null) {
      logger.error("could not learn any model for this source!");
      return new UpdateContainer(new ErrorUpdate(
          "Error occured while generating a semantic model for the source."));
    }
View Full Code Here

      this.computeCoherence();
    }
  }

  public SemanticModel getBaseModel() {
    return new SemanticModel(this);
  }
View Full Code Here

      File[] files = ff.listFiles();
     
      for (File f : files) {
        if (f.getName().endsWith(".json")) {
          try {
            SemanticModel model = SemanticModel.readJson(f.getAbsolutePath());
            if (model != null) {
              temp = this.addModel(model);
              if (temp != null) addedNodes.addAll(temp);
            }
          } catch (Exception e) {
View Full Code Here

  public void learn() throws Exception {

    List<SortableSemanticModel> hypothesisList = this.hypothesize(true, NUM_SEMANTIC_TYPES);
    if (hypothesisList != null && !hypothesisList.isEmpty()) {
      SortableSemanticModel m = hypothesisList.get(0);
      this.semanticModel = new SemanticModel(m);
    } else {
      this.semanticModel = null;
    }
  }
View Full Code Here

TOP

Related Classes of edu.isi.karma.modeling.alignment.SemanticModel

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.