Package org.data2semantics.tools.rdf

Source Code of org.data2semantics.tools.rdf.RDFSparqlDataSet

package org.data2semantics.tools.rdf;

import java.io.File;
import java.io.FileWriter;
import java.util.ArrayList;
import java.util.List;

import org.openrdf.model.Resource;
import org.openrdf.model.Statement;
import org.openrdf.model.URI;
import org.openrdf.model.Value;
import org.openrdf.repository.sparql.SPARQLRepository;

public class RDFSparqlDataSet extends RDFSingleDataSet {
  private List<String> nameSpaces;
  private File logFile;
  private boolean fake;


  public RDFSparqlDataSet(String url) {
    this(url, new ArrayList<String>());
  }

  public RDFSparqlDataSet(String url, List<String> nameSpaces) {
    super(url);   
    this.rdfRep = new SPARQLRepository(url);
    this.nameSpaces = nameSpaces;
    this.fake = false;

    try {
      this.rdfRep.initialize();
    } catch (Exception e) {
      e.printStackTrace();
    }
  }

  @Override
  public List<Statement> getStatements(Resource subject, URI predicate,
      Value object, boolean allowInference) {

    for (String nameSpace : nameSpaces) {
      if ((subject != null && subject.toString().startsWith(nameSpace)) || (object != null && object.toString().startsWith(nameSpace))) {
        if (!fake) {
          List<Statement> res =  super.getStatements(subject, predicate, object, allowInference);
          System.out.println("Querying external dataset " + super.getLabel() + ", got: " + res.size() + " statements.");
          return res;
        } else {
          try {
            FileWriter out = new FileWriter(logFile, true);
            if (subject != null) {
              out.write(subject.toString());
              out.write("\n");
            }
            out.close();
           
          } catch (Exception e) {
            e.printStackTrace();
          }
         
          return new ArrayList<Statement>();
        }
      }
    }
    return new ArrayList<Statement>();
  }

  public void setLogFile(String filename) {
    logFile = new File(filename);
    fake = true;

  }

}
TOP

Related Classes of org.data2semantics.tools.rdf.RDFSparqlDataSet

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.