rdf:type 在 Jena API for SPARQL 不工作?

rdf:type in Jena API for SPARQL not working?

为什么 Jena API (Java) for SPARQL 不为使用 rdf:type 的查询提供任何结果?其他 SPARQL 查询工作得很好。例如,此查询不起作用:

SELECT DISTINCT ?p{
    ?p rdf:type :AAA
}

完整代码:

String queryString=listOfPrefixesOntNormXML+" \n"
                   +"SELECT DISTINCT ?p{ ?p rdf:type :AAA }";
System.out.println(queryString);

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

完整查询字符串:

PREFIX : <http://www.co-ode.org/ontologies/pizza/pizza.owl#> 
PREFIX owl: <http://www.w3.org/2002/07/owl#> 
PREFIX rdf: <http://www.w3.org/1999/02/22-rdf-syntax-ns#> 
PREFIX xml: <http://www.w3.org/XML/1998/namespace> 
PREFIX xsd: <http://www.w3.org/2001/XMLSchema#> 
PREFIX rdfs: <http://www.w3.org/2000/01/rdf-schema#> 
PREFIX owl11: <http://www.w3.org/2006/12/owl11#> 
PREFIX pizza: <http://www.co-ode.org/ontologies/pizza/pizza.owl#> 
PREFIX owl11xml: <http://www.w3.org/2006/12/owl11-xml#> 

SELECT DISTINCT ?p{ ?p rdf:type :AAA }

因为您正在向 DBpedia 端点发起查询,以查找不存在的 :AAA 中的 rdf:type

如果你把它改成dbo:Book,它应该可以工作,因为rdf:type存在于DBpedia!