Hi All,

I am new to this group.

I've being trying to start with geospatial SPARQL queries with Jena, but so far 
no luck.


I have a simple Jena model which among other data contains the following:


<rdf:RDF
    xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#";
    xmlns:geo="http://www.w3.org/2003/01/geo/wgs84_pos#";
    xmlns:ssn="http://purl.oclc.org/NET/ssnx/ssn#";
    xmlns:xsd="http://www.w3.org/2001/XMLSchema#";>


          <ssn:ObservationValue 
rdf:about="http://af3.info/ObservationValues/GasCO/1450439142";>
            <geo:location>
              <geo:Point rdf:about="http://af3.info/locations/GasCO/1450439142";>
                <geo:lat rdf:datatype="http://www.w3.org/2001/XMLSchema#float";
                >35.4</geo:lat>
                <geo:long rdf:datatype="http://www.w3.org/2001/XMLSchema#float";
                >32</geo:long>
              </geo:Point>
            </geo:location>
        <!-- some more data here -->
          </ssn:ObservationValue>


</rdf:RDF>


So I am trying to extract the geo:Point resource using the following Jena code:



private static void geoQuery()
{
InitJenaSpatial jenaSpatial = new InitJenaSpatial();
jenaSpatial.start();
try {
String queryStr =
"PREFIX spatial: <http://jena.apache.org/spatial#> " +
"PREFIX rdfs: <http://www.w3.org/2000/01/rdf-schema#> " +
"PREFIX geo: <http://www.w3.org/2003/01/geo/wgs84_pos#> " +
"PREFIX xsd: <http://www.w3.org/2001/XMLSchema#> " +
"PREFIX ssn: <http://purl.oclc.org/NET/ssnx/ssn#>" +
"SELECT ?loc " +
"WHERE {?loc spatial:nearby(35.4 32  1000 'km' )}";

// the object m contains the Jena model with the data
Model m = SemanticSensorModel.getIntance().getJenaModel();
EntityDefinition entDef = new EntityDefinition("ssn:ObservationValue", 
"geo:location");
// EntityDefinition entDef = new 
EntityDefinition("<http://af3.info/ObservationValues/GasCO/1450439142>",
// "<http://af3.info/locations/GasCO/1450439142>");
// EntityDefinition entDef = new 
EntityDefinition("<http://purl.oclc.org/NET/ssnx/ssn#ObservationValue>",
// "<http://www.w3.org/2003/01/geo/wgs84_pos#location>");
Dataset baseDataset = DatasetFactory.create(m);
try {
Directory dir = FSDirectory.open( new File("/home/martin/spatial_index"));
Dataset spatialDataset = SpatialDatasetFactory.createLucene(baseDataset, dir, 
entDef);
Query query = QueryFactory.create(queryStr) ;
QueryExecution qexec = QueryExecutionFactory.create(query, spatialDataset);
ResultSet results = qexec.execSelect() ;
for ( ; results.hasNext() ; )
{
QuerySolution soln = results.nextSolution() ;
System.out.println(soln.get("loc").toString());
}
} catch (IOException e) { e.printStackTrace();  }
}
catch(Exception e ) { System.out.println(e.getMessage()); }
jenaSpatial.stop();
}
}

The above code doesn't throw any exceptions or errors, but the result object is 
always empty.
I suspect that my problem is with the construction of EntityDefinition entDef 
but I haven't
been able to find anything relevant in the Apache Jena's online documentation- 
it contains plain Javadocs.

Sorry for the long source code- I've tried to keep it as short as possible.
Any help would be much appreciated

Best Regards
Martin

Reply via email to