/*******************************************************************************
* Copyright 2012 University of Southern California
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
* You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
*
* This code was developed by the Information Integration Group as part
* of the Karma project at the Information Sciences Institute of the
* University of Southern California. For more information, publications,
* and related projects, please see: http://www.isi.edu/integration
******************************************************************************/
package edu.isi.karma.imp.rdf;
public class RDFQuery {
String Prefix = " PREFIX dc:<http://purl.org/dc/elements/1.1/> "
+ " PREFIX saam:<http://americanart.si.edu/saam/> "
+ " PREFIX owl:<http://www.w3.org/2002/07/owl#> "
+ " PREFIX BuildingOntology:<http://www.semanticweb.org/ontologies/2012/9/BuildingOntology.owl#> "
+ " PREFIX s:<http://localhost:8080/source/wikimapia_building/> ";
/* general Query for extract URI */
public String createGeneralQuery() {
String generalQuery = Prefix + " select distinct ?a " + " where {"
+ " ?a owl:sameAs ?b. " + " ?a a BuildingOntology:Building. "
+ "}";
return generalQuery;
}
/* Longitude */
public String createQueryForLongitudeS1(String subject, String prefix,
String property) {
String query = Prefix + " select ?c where{ <" + subject
+ "> BuildingOntology:hasPoint ?a. "
+ " ?a BuildingOntology:hasGeocoordinates ?b. "
+ " ?b BuildingOntology:xInDecimalLongitude ?c. }";
return query;
}
public String createQueryForLongitudeS2(String subject, String prefix,
String property) {
String query = Prefix + " select ?c where { " + "<" + subject
+ "> owl:sameAs ?x. "
+ " ?x BuildingOntology:hasPoint ?m. "
+ " ?m BuildingOntology:hasGeocoordinates ?n. "
+ " ?n BuildingOntology:xInDecimalLongitude ?c. }";
return query;
}
/* Latitude */
public String createQueryForLatitudeS1(String subject, String prefix,
String property) {
String query = Prefix + " select ?c where{ <" + subject
+ "> BuildingOntology:hasPoint ?a. "
+ " ?a BuildingOntology:hasGeocoordinates ?b. "
+ " ?b BuildingOntology:yInDecimalLatitude ?c. }";
return query;
}
public String createQueryForLatitudeS2(String subject, String prefix,
String property) {
String query = Prefix + " select ?c where { " + "<" + subject
+ "> owl:sameAs ?x. "
+ " ?x BuildingOntology:hasPoint ?m. "
+ " ?m BuildingOntology:hasGeocoordinates ?n. "
+ " ?n BuildingOntology:yInDecimalLatitude ?c. }";
return query;
}
/* srid */
public String createQueryForSridValueS1(String subject, String prefix,
String property) {
String query = Prefix + " select ?c where{ " + "<" + subject
+ "> BuildingOntology:hasSource ?a. "
+ " ?a BuildingOntology:hasSRID ?b. "
+ " ?b BuildingOntology:sridValue ?c. }";
return query;
}
public String createQueryForSridValueS2(String subject, String prefix,
String property) {
String query = Prefix + " select ?c where{ " + "<" + subject
+ "> owl:sameAs ?x. "
+ " ?x BuildingOntology:hasSource ?m. "
+ " ?m BuildingOntology:hasSRID ?n. "
+ " ?n BuildingOntology:sridValue ?c. }";
return query;
}
/* polygon */
public String createQueryForWellKnownTextS1(String subject, String prefix,
String property) {
String query = Prefix + " select ?c where{ " + "<" + subject
+ "> BuildingOntology:hasPolygon ?a. "
+ " ?a BuildingOntology:hasGeocoordinates ?b. "
+ " ?b BuildingOntology:wellKnownText ?c. }";
return query;
}
public String createQueryForWellKnownTextS2(String subject, String prefix,
String property) {
String query = Prefix + " select ?c where{ " + "<" + subject
+ "> owl:sameAs ?x. "
+ " ?x BuildingOntology:hasPolygon ?m. "
+ " ?m BuildingOntology:hasGeocoordinates ?n. "
+ " ?n BuildingOntology:wellKnownText ?c. }";
return query;
}
/* stateName */
public String createQueryForStateNameS1(String subject, String prefix,
String property) {
String query = Prefix + " select ?c ?d where{ " + "<" + subject
+ "> BuildingOntology:hasAddress ?a. "
+ " ?a BuildingOntology:hasState ?b. "
+ " ?b BuildingOntology:stateName ?c.} ";
return query;
}
public String createQueryForStateNameS2(String subject, String prefix,
String property) {
String query = Prefix + " select ?c where{ " + "<" + subject
+ "> owl:sameAs ?x. " + "?x BuildingOntology:hasAddress ?a. "
+ " ?a BuildingOntology:hasState ?b. "
+ " ?b BuildingOntology:stateName ?c.} ";
return query;
}
/* countyName */
public String createQueryForCountyNameS1(String subject, String prefix,
String property) {
String query = Prefix + " select ?c where{ " + "<" + subject
+ "> BuildingOntology:hasAddress ?a. "
+ " ?a BuildingOntology:hasCounty ?b. "
+ " ?b BuildingOntology:countyName ?c.} ";
return query;
}
public String createQueryForCountyNameS2(String subject, String prefix,
String property) {
String query = Prefix + " select ?c ?d where{ " + "<" + subject
+ "> owl:sameAs ?x. " + "?x BuildingOntology:hasAddress ?a. "
+ " ?a BuildingOntology:hasCounty ?b. "
+ " ?b BuildingOntology:countyName ?c.} ";
return query;
}
/* BuildingName */
public String createQueryForBuildingNameS1(String subject, String prefix,
String property) {
String query = Prefix + "select distinct ?c where{ <" + subject
+ "> BuildingOntology:buildingName ?c. }";
return query;
}
public String createQueryForBuildingNameS2(String subject, String prefix,
String property) {
String query = Prefix + "select distinct ?c where{<" + subject
+ "> owl:sameAs ?x. "
+ "?x BuildingOntology:buildingName ?c. }";
return query;
}
public String createQueryForPoint(String subject, String prefix,
String property) {
System.out.println("subject:" + subject);
String query = Prefix + " select distinct ?c where { <" + subject
+ "> owl:sameAs ?x. " + "<" + subject
+ "> BuildingOntology:hasPoint ?a. "
+ " ?a BuildingOntology:hasGeocoordinates ?b. "
+ " ?b BuildingOntology:xInDecimalLongitude ?c. " +
" ?x " + prefix + ":" + "hasPoint ?m. " + " ?m " + prefix + ":"
+ "hasGeocoordinates ?n. " + " ?n " + prefix + ":" + property
+ " ?d. }";
System.out.println(query);
return query;
}
}