Package edu.isi.karma.rdf

Source Code of edu.isi.karma.rdf.TestRdfGenerator

package edu.isi.karma.rdf;

import java.io.BufferedReader;
import java.io.File;
import java.io.FileInputStream;
import java.io.IOException;
import java.io.InputStreamReader;
import java.io.PrintWriter;
import java.util.HashSet;
import java.util.LinkedList;
import java.util.List;

import org.junit.BeforeClass;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;

import edu.isi.karma.controller.update.UpdateContainer;
import edu.isi.karma.er.helper.PythonRepository;
import edu.isi.karma.kr2rml.URIFormatter;
import edu.isi.karma.kr2rml.mapping.R2RMLMappingIdentifier;
import edu.isi.karma.kr2rml.writer.KR2RMLRDFWriter;
import edu.isi.karma.kr2rml.writer.N3KR2RMLRDFWriter;
import edu.isi.karma.metadata.KarmaMetadataManager;
import edu.isi.karma.metadata.PythonTransformationMetadata;
import edu.isi.karma.metadata.UserConfigMetadata;
import edu.isi.karma.metadata.UserPreferencesMetadata;
import edu.isi.karma.rdf.GenericRDFGenerator.InputType;
import edu.isi.karma.util.EncodingDetector;

public abstract class TestRdfGenerator {
  private static final Logger logger = LoggerFactory.getLogger(TestRdfGenerator.class);
  /**
   * @throws java.lang.Exception
   */
  @BeforeClass
  public static void setUpBeforeClass() throws Exception {

        KarmaMetadataManager userMetadataManager = new KarmaMetadataManager();
        UpdateContainer uc = new UpdateContainer();
        userMetadataManager.register(new UserPreferencesMetadata(), uc);
        userMetadataManager.register(new UserConfigMetadata(), uc);
        userMetadataManager.register(new PythonTransformationMetadata(), uc);
        PythonRepository.disableReloadingLibrary();
  }


  /**
   * @param csvFile
   * @param modelFile
   * @param pw
   *            stores generated RDF triples
   * @throws Exception
   */
  protected void generateRdfFile(File inputFile, InputType inputType, String modelName, File modelFile, PrintWriter pw)
      throws Exception {
    GenericRDFGenerator rdfGen = new GenericRDFGenerator(null);
    R2RMLMappingIdentifier modelIdentifier = new R2RMLMappingIdentifier(
        modelName, modelFile.toURI().toURL());
    rdfGen.addModel(modelIdentifier);
    List<KR2RMLRDFWriter> writers = createBasicWriter(pw);
    RDFGeneratorRequest request = new RDFGeneratorRequest(modelName, inputFile.getName());
    request.setAddProvenance(false);
    request.setInputFile(inputFile);
    request.setDataType(inputType);
    request.addWriters(writers);
    rdfGen.generateRDF(request);
  }

  protected List<KR2RMLRDFWriter> createBasicWriter(PrintWriter pw) {
    N3KR2RMLRDFWriter writer = new N3KR2RMLRDFWriter(new URIFormatter(), pw);
    List<KR2RMLRDFWriter> writers = new LinkedList<KR2RMLRDFWriter>();
    writers.add(writer);
    return writers;
  }
 
  protected HashSet<String> getFileContent(File file) {
    HashSet<String> hashSet = new HashSet<String>();
   
    try {
      String encoding = EncodingDetector.detect(file);
      BufferedReader in = new BufferedReader(new InputStreamReader(
          new FileInputStream(file), encoding));

      String line = in.readLine();
      while (line != null) {
        line = line.trim();
        if (line.length() > 0)
          hashSet.add(line);

        line = in.readLine();
      }
      in.close();
    } catch (IOException e) {
      e.printStackTrace();
      logger.error("Error getting file contents: " + file.getAbsolutePath());
    }
    return hashSet;
     }
 

  protected HashSet<String> getHashSet(String[] array) {
    HashSet<String> hashSet = new HashSet<String>();
    for (int i = 0; i < array.length; i++) {
      String line = array[i].trim();
      if (line.length() > 0)
        hashSet.add(line);
    }
    return hashSet;
  }
 
}
TOP

Related Classes of edu.isi.karma.rdf.TestRdfGenerator

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.