-- 作者:oynwj
-- 发布时间:11/21/2007 9:06:00 PM
-- 求助:这段程序错哪了?
请教各位高手,我在Eclipse里运行下面这段程序,为什么总是“无法打开本体文件,程序将终止”,怎么错了呢? import java.io.FileInputStream; import java.io.FileNotFoundException; import java.io.IOException; import java.io.InputStreamReader; import com.hp.hpl.jena.query.Query; import com.hp.hpl.jena.query.QueryExecution; import com.hp.hpl.jena.query.QueryExecutionFactory; import com.hp.hpl.jena.query.QueryFactory; import com.hp.hpl.jena.query.QuerySolution; import com.hp.hpl.jena.query.ResultSet; import com.hp.hpl.jena.rdf.model.Model; import com.hp.hpl.jena.rdf.model.ModelFactory; import com.hp.hpl.jena.reasoner.Reasoner; import com.hp.hpl.jena.reasoner.rulesys.GenericRuleReasoner; import com.hp.hpl.jena.reasoner.rulesys.Rule; public class Jena { /** * @param args */ public String filepath="d\\ktbg\\R9.rdf-xml.owl"; Model model; public Jena(){ model=ModelFactory.createDefaultModel(); loadmodel(); } public boolean runQuery(String queryStr){ Query query=QueryFactory.create(queryStr); QueryExecution qe=QueryExecutionFactory.create(query,model); ResultSet results=qe.execSelect(); while (results.hasNext()){ QuerySolution soln=results.nextSolution(); System.out.print(soln.get("s").toString()); System.out.print("\t"); System.out.print(soln.get("p").toString()); System.out.print("\t"); System.out.print(soln.get("o").toString()); System.out.println("\n"); } results =null; qe.close(); return true; } private void loadmodel(){ InputStreamReader in; try{ FileInputStream file = new FileInputStream(filepath); in=new InputStreamReader(file,"UTF-8"); model.read(in,null); String rule = "[owl:inverseOf: (?pa owl:inverseOf ?pb) (?a ?pa ?b)->(?b ?pb ?a)]"; Reasoner reasoner = new GenericRuleReasoner(Rule.parseRules(rule)); model = ModelFactory.createInfModel(reasoner, model); in.close(); }catch (FileNotFoundException e){ System.out.println("无法打开本体文件,程序将终止"); System.exit(0); }catch (IOException e){ e.printStackTrace(); System.exit(0); } } public static void main(String[] args){ Jena myLearn = new Jena(); String queryStr = "Select ?s ?p ?o where{?s ?p ?o.}"; myLearn.runQuery(queryStr ); } } 谢谢指教!
|