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