Hi Osma,

Many thanks for the quick reply.
Seems that you're right- no matter how I construct the EntityDefinition object,
I always get the same files in the index directory (binary equivalent).
So either I don't provide a valid EntityDefinition or I am missing something 
else.
Do you know if I need to explicitly create a Lucene index?

Best Regards
Martin
________________________________________
From: Osma Suominen <[email protected]>
Sent: Monday, March 21, 2016 11:12 AM
To: [email protected]
Subject: Re: Geospatial SPARQL queries with Jena

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