在 Java 中查询 SPARQL (Jena)

Query SPARQL in Java (Jena)

我开始使用 SPARQL 编程并且了解 rdf 世界。 我想进行一个显示所有 idSensor 和值的查询。 代码如下:

public class HelloRDF {

    public static void main(String[] args) {
//
//  //CONNESSIONE RDF METEO
//      final String uri = "http://www.dati.lombardia.it/resource/647i-nhxk/";
//      final Model model = ModelFactory.createDefaultModel();
//      model.read(uri);
//      model.write(System.out);


        String s2 = "PREFIX  rdf: <http://www.w3.org/1999/02/22-rdf-syntax-ns#>\n" +
                "PREFIX  rdfs: <http://www.w3.org/2000/01/rdf-schema#>\n" +
                "PREFIX  socrata: <http://www.socrata.com/rdf/terms#>\n" +
                "PREFIX  dcat: <http://www.w3.org/ns/dcat#>\n" +
                "PREFIX  ods: <http://open-data-standards.github.com/2012/01/open-data-standards#>\n" +
                "PREFIX  dcterm: <http://purl.org/dc/terms/>\n" +
                "PREFIX  geo: <http://www.w3.org/2003/01/geo/wgs84_pos#>\n" +
                "PREFIX  skos: <http://www.w3.org/2004/02/skos/core#>\n" +
                "PREFIX  foaf: <http://xmlns.com/foaf/0.1/>\n" +
                "PREFIX  dsbase: <http://www.dati.lombardia.it/resource/>\n" +
                "PREFIX  ds: <http://www.dati.lombardia.it/resource/647i-nhxk/>\n" +
                "\n" +
                "SELECT  ?idsensore ?valore \n" +
                "WHERE\n" +
                "  { ?x ds:idsensore ?idsensore .\n" +
                "?x ds:valore ?valore .\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) ;


    }

}

returns查询为空的table 我哪里做错了? 请帮助我。

DBpedia 不包含您要查找的数据。也许其他一些端点可以,但您需要 运行 对具有该数据的端点进行查询。

您所做的基本上与为一家公司的数据库编写查询并期望在另一家公司的数据库上运行时得到相同结果return相同。

QueryExecutionFactory 采用 SPARQL 端点的 URL。如果您没有,则无法使用这种方法查询您的数据:

https://jena.apache.org/documentation/javadoc/arq/org/apache/jena/query/QueryExecutionFactory.html#sparqlService-java.lang.String-java.lang.String-