rdf - Sparql 查询不显示结果

标签 rdf sparql jena owl ontology

我有一个本体(dgo.owl)和一个简单的程序(SparqlQuery.java)来查询相同的本体。在运行查询时我没有得到任何结果。经过长时间的调试,我认为将它放在社区中会很好。

查询脚本如下:

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

获得的输出是:


enter image description here

我知道hasProperty对象关系存在于所述本体中。此外,餐厅的可能属性应返回照度、温度、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.
}

关于rdf - Sparql 查询不显示结果,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30592822/

相关文章:

rdf - 如何为重命名操作生成统一绑定(bind)

Python rdflib 无法正确解析知识共享许可信息

extract - RDFa Reader提取工具

graph - 分析 RDF 图 : average number of certain relation

java - OWLS 使用 Jena 进行文档解析

java - 为什么我得到这个 sparql 查询的单个结果?

java - 在耶拿使用紧凑 URI

xml - OWL、RDF、RDFa、Dublin Core 和 FOAF 之间有什么关系?

csv - 是否存在R2RML的Java开源实现?

java - 如何将 JENA Sparql 查询结果集保存为 JSON?