Sparql 查询不显示结果
Sparql query not showing results
我有一个 ontology (dgo.owl) and a simple program (SparqlQuery.java) 来查询相同的 ontology。在 运行 查询中我没有得到任何结果。调试了半天觉得放到社区里也不错
查询脚本如下:
OntModel ontmodque = ModelFactory.createOntologyModel(OntModelSpec.OWL_DL_MEM);
InputStream in=FileManager.get().open("ontologies/dgo.owl");
if (ontmodque.isEmpty())
{
ontmodque.read(in,"RDF/XML");
}
String qr= "PREFIX ssn: <http://purl.oclc.org/NET/ssnx/ssn#>\n" +
"PREFIX dgo: <http://www.iiitd.edu.in/~haroonr/ontologies/DGO#>\n" +
"SELECT \n"+
"?property \n"+
"WHERE\n"+
"{ \n"+
"dgo:DiningRoom ssn:hasProperty ?property .\n " +
"}";
Query qy = QueryFactory.create(qr);
QueryExecution qe = QueryExecutionFactory.create(qy,ontmodque);
ResultSet rs= qe.execSelect();
ResultSetFormatter.out(System.out, rs, qy) ;
ontmodque.close();
qe.close();
获得的输出是:
我知道 hasProperty 对象关系存在于所述 ontology 中。此外,DiningRoom 的可能属性应该 return 照度、温度、Co2Content、绝对湿度。
我想您忘记了 OWL 中属性是如何定义的。您已定义:
Class: DiningRoom subClassOf: hasProperty some AbsoluteHumidity
因此,您需要编写一个更复杂的查询:
PREFIX ssn: <http://purl.oclc.org/NET/ssnx/ssn#>
PREFIX dgo: <http://www.iiitd.edu.in/~haroonr/ontologies/DGO#>
SELECT distinct *
WHERE {
dgo:DiningRoom rdfs:subClassOf ?property .
?property owl:someValuesFrom ?y.
}
我有一个 ontology (dgo.owl) and a simple program (SparqlQuery.java) 来查询相同的 ontology。在 运行 查询中我没有得到任何结果。调试了半天觉得放到社区里也不错
查询脚本如下:
OntModel ontmodque = ModelFactory.createOntologyModel(OntModelSpec.OWL_DL_MEM);
InputStream in=FileManager.get().open("ontologies/dgo.owl");
if (ontmodque.isEmpty())
{
ontmodque.read(in,"RDF/XML");
}
String qr= "PREFIX ssn: <http://purl.oclc.org/NET/ssnx/ssn#>\n" +
"PREFIX dgo: <http://www.iiitd.edu.in/~haroonr/ontologies/DGO#>\n" +
"SELECT \n"+
"?property \n"+
"WHERE\n"+
"{ \n"+
"dgo:DiningRoom ssn:hasProperty ?property .\n " +
"}";
Query qy = QueryFactory.create(qr);
QueryExecution qe = QueryExecutionFactory.create(qy,ontmodque);
ResultSet rs= qe.execSelect();
ResultSetFormatter.out(System.out, rs, qy) ;
ontmodque.close();
qe.close();
获得的输出是:
我知道 hasProperty 对象关系存在于所述 ontology 中。此外,DiningRoom 的可能属性应该 return 照度、温度、Co2Content、绝对湿度。
我想您忘记了 OWL 中属性是如何定义的。您已定义:
Class: DiningRoom subClassOf: hasProperty some AbsoluteHumidity
因此,您需要编写一个更复杂的查询:
PREFIX ssn: <http://purl.oclc.org/NET/ssnx/ssn#>
PREFIX dgo: <http://www.iiitd.edu.in/~haroonr/ontologies/DGO#>
SELECT distinct *
WHERE {
dgo:DiningRoom rdfs:subClassOf ?property .
?property owl:someValuesFrom ?y.
}