尝试使用Jena';s java api

尝试使用Jena';s java api,java,sparql,jena,Java,Sparql,Jena,我使用ApacheJena库在Java中创建了一个本体模型,并输入了pizza本体。 我正在尝试进行sparql查询,但是表打印是空白的,尽管我的查询通常有答案。 我做错什么了吗。。。? 代码如下: OntModel model = ModelFactory.createOntologyModel( OntModelSpec.OWL_MEM_MICRO_RULE_INF); String inputFileName="pizza.owl"; InputStream in = FileManage

我使用ApacheJena库在Java中创建了一个本体模型,并输入了pizza本体。 我正在尝试进行sparql查询,但是表打印是空白的,尽管我的查询通常有答案。 我做错什么了吗。。。? 代码如下:

OntModel model = ModelFactory.createOntologyModel( OntModelSpec.OWL_MEM_MICRO_RULE_INF);
String inputFileName="pizza.owl";
InputStream in = FileManager.get().open( inputFileName );
if (in == null) {
    throw new IllegalArgumentException(
         "File: " + inputFileName + " not found");
}
model.read(in, null);

String queryString =
        "prefix pizza: <www.co-ode.org/ontologies/pizza/pizza.owl#Pizza> "+        
        "prefix rdfs: <" + RDFS.getURI() + "> "           +
        "prefix owl: <" + OWL.getURI() + "> "             +
        "select ?pizza where {?pizza a owl:Class ; "      +
        "rdfs:subClassOf ?restriction. "                  +
        "?restriction owl:onProperty pizza:hasTopping ;"  +
        "owl:someValuesFrom pizza:PeperoniSausageTopping" +
        "}";
Query query = QueryFactory.create(queryString);
QueryExecution qe = QueryExecutionFactory.create(query, model);
com.hp.hpl.jena.query.ResultSet results =  qe.execSelect();

ResultSetFormatter.out(System.out, results, query);
qe.close();
OntModel model=ModelFactory.createOntologyModel(OntModelSpec.OWL\u MEM\u MICRO\u RULE\u INF);
字符串inputFileName=“pizza.owl”;
InputStream in=FileManager.get().open(inputFileName);
if(in==null){
抛出新的IllegalArgumentException(
“文件:”+inputFileName+“未找到”);
}
model.read(in,null);
字符串查询字符串=
“前缀比萨饼:”+
“前缀rdfs:”+
“前缀owl:”+
“选择?pizza where{?pizza猫头鹰:类;”+
“rdfs:子类?限制。”+
“?限制猫头鹰:onProperty比萨饼:hasTopping;”+
“猫头鹰:比萨饼的一些价值:Peperonisausaetting”+
"}";
Query=QueryFactory.create(queryString);
QueryExecution qe=QueryExecutionFactory.create(查询,模型);
com.hp.hpl.jena.query.ResultSet results=qe.execSelect();
ResultSetFormatter.out(System.out、结果、查询);
qe.close();

您的前缀声明错误。您意外地包含了
Pizza
类的名称,并且省略了
http
协议前缀。更正后,应为:

"prefix pizza: <http://www.co-ode.org/ontologies/pizza/pizza.owl#> "+
OntModel model = ModelFactory.createOntologyModel( 
                                  OntModelSpec.OWL_MEM_MICRO_RULE_INF);
FileManager.get().readModel( model, "pizza.owl" );