Hi Martin,

The files you show look like an empty Lucene index. With a grand total of 53+36=90 bytes, there is hardly room for even a single entry. So it seems that your data is not being indexed at all.

-Osma

21.03.2016, 12:44, Martin Vachovski kirjoitti:
Hi Andy,

Sorry for the late reply.

The code has several things that are not from jena.  Where is the data
being loaded into the spatial index?  Check the Lucene directory has
actually grown.

After I execute the code I get three files into the 
'/home/martin/spatial_index' folder:
-rw-r--r--  1 martin martin   53 Mar 21 10:40 segments_1
-rw-r--r--  1 martin martin   36 Mar 21 10:40 segments.gen
-rw-r--r--  1 martin martin    0 Mar 21 10:40 write.lock

The files are small, but the data that I have contains not too many triples- as 
it is set up just for the testing of this feature.

Best Regards
Martin

________________________________________
From: Andy Seaborne <[email protected]>
Sent: Sunday, March 13, 2016 7:37 PM
To: [email protected]
Subject: Re: Geospatial SPARQL queries with Jena

Hi there,

The code has several things that are not from jena.  Where is the data
being loaded into the spatial index?  Check the Lucene directory has
actually grown.


  > Dataset baseDataset = DatasetFactory.create(m);
  > try {
  > Directory dir = FSDirectory.open( new
File("/home/martin/spatial_index"));
  > Dataset spatialDataset =
SpatialDatasetFactory.createLucene(baseDataset, dir, entDef);

just associating the baseDataset with a Directory does not cause
automatic indexing - loading into spatialDataset should cause The lucene
directory to change.

         Andy

On 11/03/16 14:11, Martin Vachovski wrote:
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




--
Osma Suominen
D.Sc. (Tech), Information Systems Specialist
National Library of Finland
P.O. Box 26 (Kaikukatu 4)
00014 HELSINGIN YLIOPISTO
Tel. +358 50 3199529
[email protected]
http://www.nationallibrary.fi

Reply via email to