2012-05-16 7 views
5

Zasadniczo mam następujące zapytanie i działa bez problemu u wszystkich testerów online SPARQL, ale używając Java i Jeny 2.6.4, nigdy nie otrzymuję żadnych wyników. Napisałem wartości do zapytania w celach demonstracyjnych.Zapytanie SPARQL przy użyciu Jeny nie daje wyników - ale działa online

PREFIX g: <http://www.w3.org/2003/01/geo/wgs84_pos#> 
PREFIX rdfs: <http://www.w3.org/2000/01/rdf-schema#> 
PREFIX onto: <http://dbpedia.org/ontology/> 

SELECT ?subject ?stadium ?lat ?long 
WHERE 
    { ?subject g:lat ?lat . 
    ?subject g:long ?long . 
    ?subject <http://www.w3.org/1999/02/22-rdf-syntax-ns#type> onto:Stadium . 
    ?subject rdfs:label ?stadium 
    FILTER (((((?lat >= 52.4814) && (?lat <= 57.4814)) && (?long >= -1.89358)) && (?long <= 3.10642)) && (lang(?stadium) = "en")) 
    } 
LIMIT 5 

Niektóre Java, trzeba pamiętać Próbowałem dostępu to kilka różnych sposobów, jednak używam sparql całym projekcie i nie ma problemów.

Query query = QueryFactory.create(s2); //s2 = the query above 
QueryExecution qExe = QueryExecutionFactory.create(query, model); 
ResultSet resultsRes = qExe.execSelect(); 

try { 
    while (resultsRes.hasNext()) {     
    QuerySolution soln = resultsRes.nextSolution(); 
    //never any results 
    } 
} catch (Exception ex) { 
    System.out.println(ex); 
} 
+0

prostu starał się sparql przed dbpedia.org poprzez Virtuoso punktu końcowego, ale rezultaty. Jednak z twojego kodu nie wynika, w jaki sposób zapytanie SPARQL jest przypisane do s2 i jak dane dostają się do modelu. – MikeJ

Odpowiedz

9

ile ładujesz całą dbpedia zbiór danych do lokalnego modelu, aby uzyskać ten sam efekt jak uruchomienie kwerendy w dbpedia SPARQL tworzą trzeba będzie wysłać zapytanie do punktu końcowego dbpedia SPARQL. Pobiegłem następującą modyfikację programu:

package example; 

import com.hp.hpl.jena.query.*; 

public class AshTest 
{ 
    public static void main(String[] args) { 
     String s2 = "PREFIX g: <http://www.w3.org/2003/01/geo/wgs84_pos#>\n" + 
       "PREFIX rdfs: <http://www.w3.org/2000/01/rdf-schema#>\n" + 
       "PREFIX onto: <http://dbpedia.org/ontology/>\n" + 
       "\n" + 
       "SELECT ?subject ?stadium ?lat ?long\n" + 
       "WHERE\n" + 
       " { ?subject g:lat ?lat .\n" + 
       " ?subject g:long ?long .\n" + 
       " ?subject <http://www.w3.org/1999/02/22-rdf-syntax-ns#type> onto:Stadium .\n" + 
       " ?subject rdfs:label ?stadium\n" + 
       " FILTER (((((?lat >= 52.4814) && (?lat <= 57.4814)) && (?long >= -1.89358)) && (?long <= 3.10642)) && (lang(?stadium) = \"en\"))\n" + 
       " }\n" + 
       "LIMIT 5\n" + 
       ""; 

     Query query = QueryFactory.create(s2); //s2 = the query above 
     QueryExecution qExe = QueryExecutionFactory.sparqlService("http://dbpedia.org/sparql", query); 
     ResultSet results = qExe.execSelect(); 
     ResultSetFormatter.out(System.out, results, query) ; 
    } 
} 

i mam następujący wynik:

---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- 
| subject              | stadium        | lat             | long             | 
====================================================================================================================================================================================================================== 
| <http://dbpedia.org/resource/Welford_Road_Stadium>   | "Welford Road Stadium"@en   | "52.6242"^^<http://www.w3.org/2001/XMLSchema#float> | "-1.13306"^^<http://www.w3.org/2001/XMLSchema#float> | 
| <http://dbpedia.org/resource/Hillsborough_Stadium>   | "Hillsborough Stadium"@en   | "53.4114"^^<http://www.w3.org/2001/XMLSchema#float> | "-1.50056"^^<http://www.w3.org/2001/XMLSchema#float> | 
| <http://dbpedia.org/resource/Gateshead_International_Stadium> | "Gateshead International Stadium"@en | "54.9611"^^<http://www.w3.org/2001/XMLSchema#float> | "-1.57972"^^<http://www.w3.org/2001/XMLSchema#float> | 
| <http://dbpedia.org/resource/Filbert_Street>     | "Filbert Street"@en     | "52.6236"^^<http://www.w3.org/2001/XMLSchema#float> | "-1.14056"^^<http://www.w3.org/2001/XMLSchema#float> | 
| <http://dbpedia.org/resource/Craven_Park,_Hull>    | "Craven Park, Hull"@en    | "53.7539"^^<http://www.w3.org/2001/XMLSchema#float> | "-0.264722"^^<http://www.w3.org/2001/XMLSchema#float> | 
---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- 
+0

Tak, próbowałem tego podejścia, ale nie działało, po skopiowaniu tego przykładu bez wyników, usunąłem wszystkie instrukcje importowania i to naprawiło problem. Dzięki wielkie :) – Ash

Powiązane problemy