dad40397fd7ca8e2c00b58d19e506326a6570669Francisc Nicolae Bungiuimport java.io.*;
dad40397fd7ca8e2c00b58d19e506326a6570669Francisc Nicolae Bungiuimport com.hp.hpl.jena.rdf.model.*;
c756abd5f6eb3e73e300c4fe8efcb080b613fbacFrancisc Nicolae Bungiuimport com.hp.hpl.jena.query.*;
c756abd5f6eb3e73e300c4fe8efcb080b613fbacFrancisc Nicolae Bungiuimport com.hp.hpl.jena.sparql.*;
c756abd5f6eb3e73e300c4fe8efcb080b613fbacFrancisc Nicolae Bungiuimport com.hp.hpl.jena.update.*;
dad40397fd7ca8e2c00b58d19e506326a6570669Francisc Nicolae Bungiuimport java.io.File;
c756abd5f6eb3e73e300c4fe8efcb080b613fbacFrancisc Nicolae Bungiuimport java.io.BufferedReader;
dad40397fd7ca8e2c00b58d19e506326a6570669Francisc Nicolae Bungiuimport java.io.IOException;
dad40397fd7ca8e2c00b58d19e506326a6570669Francisc Nicolae Bungiu
4b0c94a11262fd5b208008bb4e14cfd06351734fFelix Gabriel Mancepublic class RDFReasoner {
4b0c94a11262fd5b208008bb4e14cfd06351734fFelix Gabriel Mance public static void main (String args[]) throws Exception {
4b0c94a11262fd5b208008bb4e14cfd06351734fFelix Gabriel Mance String current = null;
dad40397fd7ca8e2c00b58d19e506326a6570669Francisc Nicolae Bungiu
4b0c94a11262fd5b208008bb4e14cfd06351734fFelix Gabriel Mance if (args.length == 0) {
4b0c94a11262fd5b208008bb4e14cfd06351734fFelix Gabriel Mance System.out.println("<rdf_filename> <query_filename>");
4b0c94a11262fd5b208008bb4e14cfd06351734fFelix Gabriel Mance System.exit(1);
4b0c94a11262fd5b208008bb4e14cfd06351734fFelix Gabriel Mance } else {
4b0c94a11262fd5b208008bb4e14cfd06351734fFelix Gabriel Mance String inputFile = args[0];
4b0c94a11262fd5b208008bb4e14cfd06351734fFelix Gabriel Mance InputStream in = new FileInputStream(inputFile);
4b0c94a11262fd5b208008bb4e14cfd06351734fFelix Gabriel Mance Model model = ModelFactory.createDefaultModel();
c756abd5f6eb3e73e300c4fe8efcb080b613fbacFrancisc Nicolae Bungiu
4b0c94a11262fd5b208008bb4e14cfd06351734fFelix Gabriel Mance if (in == null) {
4b0c94a11262fd5b208008bb4e14cfd06351734fFelix Gabriel Mance System.out.println("File" + inputFile + "not found");
dad40397fd7ca8e2c00b58d19e506326a6570669Francisc Nicolae Bungiu System.exit(1);
4b0c94a11262fd5b208008bb4e14cfd06351734fFelix Gabriel Mance } else
4b0c94a11262fd5b208008bb4e14cfd06351734fFelix Gabriel Mance current = "file://" + new File(inputFile).getAbsolutePath();
c756abd5f6eb3e73e300c4fe8efcb080b613fbacFrancisc Nicolae Bungiu
4b0c94a11262fd5b208008bb4e14cfd06351734fFelix Gabriel Mance if (args.length == 1) {
4b0c94a11262fd5b208008bb4e14cfd06351734fFelix Gabriel Mance try {
4b0c94a11262fd5b208008bb4e14cfd06351734fFelix Gabriel Mance model.read(current);
4b0c94a11262fd5b208008bb4e14cfd06351734fFelix Gabriel Mance model.write(System.out);
4b0c94a11262fd5b208008bb4e14cfd06351734fFelix Gabriel Mance } catch(Exception e) {
4b0c94a11262fd5b208008bb4e14cfd06351734fFelix Gabriel Mance System.out.println(e.getMessage());
4b0c94a11262fd5b208008bb4e14cfd06351734fFelix Gabriel Mance System.exit(1);
4b0c94a11262fd5b208008bb4e14cfd06351734fFelix Gabriel Mance }
4b0c94a11262fd5b208008bb4e14cfd06351734fFelix Gabriel Mance } else {
4b0c94a11262fd5b208008bb4e14cfd06351734fFelix Gabriel Mance String inputQuery = null;
4b0c94a11262fd5b208008bb4e14cfd06351734fFelix Gabriel Mance String queryString = "";
4b0c94a11262fd5b208008bb4e14cfd06351734fFelix Gabriel Mance try {
4b0c94a11262fd5b208008bb4e14cfd06351734fFelix Gabriel Mance inputQuery = args[1];
4b0c94a11262fd5b208008bb4e14cfd06351734fFelix Gabriel Mance BufferedReader query_in = new BufferedReader(new FileReader(inputQuery));
4b0c94a11262fd5b208008bb4e14cfd06351734fFelix Gabriel Mance String line;
c756abd5f6eb3e73e300c4fe8efcb080b613fbacFrancisc Nicolae Bungiu
4b0c94a11262fd5b208008bb4e14cfd06351734fFelix Gabriel Mance while ((line = query_in.readLine()) != null)
4b0c94a11262fd5b208008bb4e14cfd06351734fFelix Gabriel Mance queryString += line + "\n";
4b0c94a11262fd5b208008bb4e14cfd06351734fFelix Gabriel Mance
4b0c94a11262fd5b208008bb4e14cfd06351734fFelix Gabriel Mance model.read(current);
4b0c94a11262fd5b208008bb4e14cfd06351734fFelix Gabriel Mance Query query = QueryFactory.create(queryString);
4b0c94a11262fd5b208008bb4e14cfd06351734fFelix Gabriel Mance
4b0c94a11262fd5b208008bb4e14cfd06351734fFelix Gabriel Mance //Execute query and obtain results
4b0c94a11262fd5b208008bb4e14cfd06351734fFelix Gabriel Mance QueryExecution qe = QueryExecutionFactory.create(query, model);
4b0c94a11262fd5b208008bb4e14cfd06351734fFelix Gabriel Mance ResultSet results = qe.execSelect();
4b0c94a11262fd5b208008bb4e14cfd06351734fFelix Gabriel Mance
4b0c94a11262fd5b208008bb4e14cfd06351734fFelix Gabriel Mance // Output query results
4b0c94a11262fd5b208008bb4e14cfd06351734fFelix Gabriel Mance ResultSetFormatter.out(System.out, results, query);
4b0c94a11262fd5b208008bb4e14cfd06351734fFelix Gabriel Mance
4b0c94a11262fd5b208008bb4e14cfd06351734fFelix Gabriel Mance // Important - free up resources used running the query
4b0c94a11262fd5b208008bb4e14cfd06351734fFelix Gabriel Mance qe.close();
4b0c94a11262fd5b208008bb4e14cfd06351734fFelix Gabriel Mance
4b0c94a11262fd5b208008bb4e14cfd06351734fFelix Gabriel Mance //model.write(System.out);
4b0c94a11262fd5b208008bb4e14cfd06351734fFelix Gabriel Mance } catch(Exception e) {
4b0c94a11262fd5b208008bb4e14cfd06351734fFelix Gabriel Mance System.out.println(e.getMessage());
4b0c94a11262fd5b208008bb4e14cfd06351734fFelix Gabriel Mance System.exit(1);
4b0c94a11262fd5b208008bb4e14cfd06351734fFelix Gabriel Mance }
4b0c94a11262fd5b208008bb4e14cfd06351734fFelix Gabriel Mance }
dad40397fd7ca8e2c00b58d19e506326a6570669Francisc Nicolae Bungiu }
dad40397fd7ca8e2c00b58d19e506326a6570669Francisc Nicolae Bungiu }
dad40397fd7ca8e2c00b58d19e506326a6570669Francisc Nicolae Bungiu}