private static void readLatLong() {

    String buildingCode = "EEB";

    StringBuilder query = new StringBuilder("");
    query.append("PREFIX sgns: <http://www.smartgrid.usc.edu/Ontology/2012.owl#> \n");
    query.append("PREFIX rdf: <http://www.w3.org/1999/02/22-rdf-syntax-ns#> \n");
    query.append("PREFIX gmlns: <http://purl.org/ifgi/gml/0.1/> \n");
    query.append("SELECT ?latitude ?longitude WHERE { \n");
    query.append(
        "			?building  <http://dbpedia.org/ontology/hasBuildingNo> '" + buildingCode + "'  .\n");
    query.append("			?building  gmlns:GeometryProperty ?gml . \n");
    query.append("			?gml  sgns:hasLatitude  ?latitude . \n");
    query.append("			?gml  sgns:hasLongitude  ?longitude . \n");
    query.append("	 } \n");

    String sparql = query.toString();
    System.out.println("\nSelectQuery: " + sparql);

    Store store = null;
    try {

      store = new Store(IIPProperties.getStoreURL());
      String response = store.query(sparql, -1);
      System.out.println("Select response: " + response);
    } catch (MalformedURLException e) {
      e.getMessage();
      e.printStackTrace();
    } catch (ProtocolException e) {
      e.printStackTrace();
    } catch (IOException e) {
      e.printStackTrace();
    }
  }
  private static void readKWH(
      String buildingCode, String startDate, String endDate, String startTime, String endTime) {

    StringBuilder query = new StringBuilder("");
    query.append("PREFIX sgns: <http://www.smartgrid.usc.edu/Ontology/2012.owl#> \n");
    query.append("PREFIX rdf: <http://www.w3.org/1999/02/22-rdf-syntax-ns#> \n");
    query.append("PREFIX xsd: <http://www.w3.org/2001/XMLSchema#> \n");
    // query.append("SELECT (MAX(xsd:double(?kwhReading)) AS ?KWh_MAX)  WHERE { \n");
    query.append("SELECT ?kwhReading  WHERE { \n");
    query.append(
        " ?building  <http://dbpedia.org/ontology/hasBuildingCode> '" + buildingCode + "'  .\n");

    String triple = " ?building  sgns:KiloWattLoadObservable ?kwhURI . \n";
    query.append(triple);

    triple = " ?kwhURI  rdf:type sgns:ElectricalMeasurement . \n";
    query.append(triple);

    triple = " ?kwhURI  sgns:hasMeasurementRecordedDate  ?date . \n"; // ^^xsd:date
    query.append(triple);

    triple = " ?kwhURI  sgns:hasMeasurementRecordedTime  ?time . \n"; // ^^xsd:time
    query.append(triple);

    triple = "  FILTER ( ?date >= '" + startDate + "' && ?date <= '" + endDate + "')  \n";
    query.append(triple);

    //		triple = "  FILTER ( ?time >= '"+ startTime +"' && ?time <= '"+ endTime + "')  \n";
    //		query.append(triple);

    triple = " ?kwhURI  sgns:hasMeasuredValue  ?kwhReading   . \n\n";
    query.append(triple);

    query.append("	 } \n");

    String sparql = query.toString();
    System.out.println("\nSelectQuery: " + sparql);

    Store store = null;
    try {
      store = new Store(IIPProperties.getStoreURL());
      String response = store.query(sparql, -1);
      System.out.println("Select response: " + response);
    } catch (MalformedURLException e) {
      e.getMessage();
      e.printStackTrace();
    } catch (IOException e) {
      e.printStackTrace();
    }
  }
  private static void insertBuildings(int count)
      throws MalformedURLException, ProtocolException, IOException, InterruptedException {

    String sparql1 = getBuildingInsertQuery(count);
    System.out.println(sparql1);

    Store store = null;
    try {
      store = new Store(IIPProperties.getStoreURL());
      //			String response = store.insert(sparql1);
      //			System.out.println("Insert response: "+ response);
    } catch (MalformedURLException e) {
      e.getMessage();
      e.printStackTrace();
    }

    StringBuilder sparql2 = new StringBuilder("");
    sparql2.append("PREFIX Building: <http://dbpedia.org/ontology/> \n");
    sparql2.append("PREFIX rdf:  <http://www.w3.org/1999/02/22-rdf-syntax-ns#> \n");
    sparql2.append("PREFIX xsd: <http://www.w3.org/2001/XMLSchema#> \n");
    sparql2.append("PREFIX sgns: <http://www.smartgrid.usc.edu/Ontology/2012.owl#> \n");
    sparql2.append("PREFIX gmlns: <http://purl.org/ifgi/gml/0.1/> \n");
    sparql2.append(" SELECT ?BuildingCode ?GrossArea ?latitude  ?longitude  \n");
    sparql2.append(" WHERE { \n");
    sparql2.append("     ?contributor rdf:type ?BuildingEntityClass . \n");
    sparql2.append("     ?contributor Building:hasBuildingNo ?BuildingNum . \n"); // \"100000\"
    //	    sparql2.append(" 	 FILTER(xsd:integer(?BuildingNum) > 9999) \n");
    //	    sparql2.append("     ?contributor ?BuildingProperty \"BC1\" . \n");
    sparql2.append("     ?contributor Building:hasBuildingCode ?BuildingCode . \n");
    sparql2.append("     ?contributor Building:address ?Address . \n");
    sparql2.append("     ?contributor Building:elevation ?Elevation . \n");
    sparql2.append("     ?contributor Building:buildingstartdate ?YearBuilt . \n");
    sparql2.append("     ?contributor Building:floorArea ?GrossArea . \n");

    sparql2.append("     ?contributor Building:Architect ?architect . \n");
    sparql2.append("     ?architect rdf:type ?ArchitectEntityClass . \n");
    sparql2.append("     ?architect Building:birthname ?ArchitectName . \n");

    sparql2.append("			?contributor  gmlns:GeometryProperty ?gml . \n");
    sparql2.append("			?gml  sgns:hasLatitude  ?latitude . \n");
    sparql2.append("			?gml  sgns:hasLongitude  ?longitude . \n");

    sparql2.append(" } ");

    System.out.println("SPARQL Query: " + sparql2.toString());
    String response2 = store.query(sparql2.toString(), -1);
    System.out.println("Results: \n" + response2);
  }
  private static void insertKWH(String kwhReadingFile, String buildingCode, int buildingNo)
      throws IOException {

    System.out.println(
        "Starting insertKWH(): BuildingCode = "
            + buildingCode
            + "  Building# = "
            + buildingNo
            + "  file = "
            + kwhReadingFile);

    FileReader reader = new FileReader(kwhReadingFile);
    BufferedReader read = new BufferedReader(reader);

    StringBuilder insertQuery = new StringBuilder("");
    insertQuery.append("PREFIX sgns: <http://www.smartgrid.usc.edu/Ontology/2012.owl#> \n");
    insertQuery.append("PREFIX rdf: <http://www.w3.org/1999/02/22-rdf-syntax-ns#> \n");
    insertQuery.append("PREFIX gmlns: <http://purl.org/ifgi/gml/0.1/> \n");
    insertQuery.append("INSERT DATA { \n");

    String date = null;
    String time = null;
    String kwhReading = null;

    int readingCount = 0;
    String line = read.readLine(); // First line is the column headers
    line = read.readLine();
    while (line != null) {

      // System.out.println(line);

      StringTokenizer tok = new StringTokenizer(line, ", ");

      if (!tok.hasMoreTokens()) {
        line = read.readLine();
        continue;
      }
      if (!(buildingNo + "").equals(tok.nextToken())) {
        line = read.readLine();
        continue;
      }

      if (!tok.hasMoreTokens()) {
        line = read.readLine();
        continue;
      }
      date = tok.nextToken();

      if (!tok.hasMoreTokens()) {
        line = read.readLine();
        continue;
      }
      time = tok.nextToken();

      if (!tok.hasMoreTokens()) {
        line = read.readLine();
        continue;
      }
      kwhReading = tok.nextToken();

      readingCount++;
      System.out.println(date + "   " + time + "   " + kwhReading);

      // buildingCode = "testBuildingCode111";

      String buildingURI = "ran" + System.nanoTime();
      String kwhURI = "ran" + System.nanoTime();

      String triple =
          " 	sgns:" + buildingURI + " rdf:type <http://dbpedia.org/ontology/Building> . \n";
      insertQuery.append(triple);

      triple =
          " 	sgns:"
              + buildingURI
              + " <http://dbpedia.org/ontology/hasBuildingCode> '"
              + buildingCode
              + "' . \n";
      insertQuery.append(triple);

      triple = " 	sgns:" + buildingURI + " sgns:KiloWattLoadObservable sgns:" + kwhURI + " . \n";
      insertQuery.append(triple);

      triple = " 	sgns:" + kwhURI + " rdf:type sgns:ElectricalMeasurement . \n";
      insertQuery.append(triple);

      triple =
          " 	sgns:"
              + kwhURI
              + " sgns:hasMeasurementRecordedDate  '"
              + date
              + "' . \n"; // ^^xsd:date
      insertQuery.append(triple);

      triple =
          " 	sgns:"
              + kwhURI
              + " sgns:hasMeasurementRecordedTime  '"
              + time
              + "' . \n"; // ^^xsd:time
      insertQuery.append(triple);

      triple = " 	sgns:" + kwhURI + " sgns:hasMeasuredValue  '" + kwhReading + "' . \n\n";
      insertQuery.append(triple);

      line = read.readLine();
    }

    insertQuery.append(" 	} \n");
    String sparql = insertQuery.toString();
    System.out.println("InsertQuery: " + sparql);

    System.out.println("# of Readings = " + readingCount);

    Store store = null;
    try {
      store = new Store(IIPProperties.getStoreURL());
      String response = store.insert(sparql);
      System.out.println("Insert response: " + response);
    } catch (MalformedURLException e) {
      e.getMessage();
      e.printStackTrace();
    }
  }
  private static void insertLatLong() throws IOException {

    System.out.println("Starting insertLatLong()");

    FileReader reader = new FileReader("data/latlong.csv");
    BufferedReader read = new BufferedReader(reader);

    StringBuilder insertQuery = new StringBuilder("");
    insertQuery.append("PREFIX sgns: <http://www.smartgrid.usc.edu/Ontology/2012.owl#> \n");
    insertQuery.append("PREFIX rdf: <http://www.w3.org/1999/02/22-rdf-syntax-ns#> \n");
    insertQuery.append("PREFIX gmlns: <http://purl.org/ifgi/gml/0.1/> \n");
    insertQuery.append("INSERT DATA { \n");

    String buildingCode = null;
    String lat = null;
    String longi = null;
    String line = read.readLine(); // First line is the column headers
    line = read.readLine();
    while (line != null) {

      System.out.println(line);
      if (line == null || line.startsWith(",")) continue;

      StringTokenizer tok = new StringTokenizer(line, ",");

      buildingCode = tok.nextToken();
      lat = tok.nextToken();
      longi = tok.nextToken();

      // buildingCode = "testBuildingCode111";

      String buildingURI = "ran" + System.nanoTime();
      String gmlURI = "ran" + System.nanoTime();

      String triple =
          " sgns:" + buildingURI + " rdf:type <http://dbpedia.org/ontology/Building> . \n";
      insertQuery.append(triple);

      triple =
          " sgns:"
              + buildingURI
              + " <http://dbpedia.org/ontology/hasBuildingNo> '"
              + buildingCode
              + "' . \n";
      insertQuery.append(triple);

      triple = " sgns:" + buildingURI + " gmlns:GeometryProperty sgns:" + gmlURI + " . \n";
      insertQuery.append(triple);

      triple = " sgns:" + gmlURI + " sgns:hasLatitude  '" + lat + "' . \n";
      insertQuery.append(triple);

      triple = " sgns:" + gmlURI + " sgns:hasLongitude  '" + longi + "' . \n";
      insertQuery.append(triple);

      line = read.readLine();
    }

    insertQuery.append(" 	} \n");
    String sparql = insertQuery.toString();
    System.out.println("InsertQuery: " + sparql);

    Store store = null;
    try {
      store = new Store(IIPProperties.getStoreURL());
      String response = store.insert(sparql);
      System.out.println("Insert response: " + response);
    } catch (MalformedURLException e) {
      e.getMessage();
      e.printStackTrace();
    }
  }