2012-05-16 35 views
5

Về cơ bản tôi có truy vấn sau và nó hoạt động trong tất cả các trình kiểm tra SPARQL trực tuyến mà không gặp vấn đề gì, nhưng khi sử dụng Java và Jena 2.6.4, tôi không bao giờ nhận được bất kỳ kết quả nào. Tôi đã viết các giá trị vào truy vấn cho mục đích trình diễn.Truy vấn SPARQL sử dụng Jena không có kết quả - nhưng hoạt động trực tuyến

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 

Một số Java, lưu ý Tôi đã sử dụng SPARQL trong suốt dự án và không gặp vấn đề gì.

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

Chỉ cần thử SPARQL chống dbpedia.org qua Virtuoso endpoint và nhận được kết quả. Tuy nhiên, những gì không rõ ràng từ mã của bạn là cách truy vấn SPARQL được gán cho s2 và cách dữ liệu được đưa vào mô hình. – MikeJ

Trả lời

9

Trừ khi bạn đang tải toàn bộ dữ liệu dbpedia vào một mô hình địa phương, để có được những tác dụng tương tự như chạy các truy vấn trong dbpedia SPARQL hình thức bạn sẽ phải gửi truy vấn của bạn đến điểm cuối dbpedia SPARQL. Tôi chạy việc sửa đổi sau đây của chương trình của bạn:

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) ; 
    } 
} 

và nhận được kết quả sau:

---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- 
| 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

Vâng tôi đã thử cách tiếp cận đó nhưng nó không hoạt động, sau khi sao chép dán ví dụ đó mà không có kết quả, tôi đã xóa tất cả các câu lệnh nhập và đã khắc phục vấn đề. Cám ơn rất nhiều :) – Ash

Các vấn đề liên quan