我发布了有关此问题的其他问题......但我认为我接近解决方案。我有这个代码只适用于加载“dbpedia.owl”。当我添加其他本体“yago.nt”时出现问题...我有“java.lang.OutOfMemoryError:Java堆空间”之类的错误...我试图修改Xmx值(我将其增加到2048m)。但是我没有结果......我不知道我要做什么......请帮帮我..如果你知道如何使用TDB,你可以发布应用于我的代码的代码吗?
OntModel ont=ModelFactory.createOntologyModel();
InputStream in=FileManager.get().open("dbpedia.owl");
InputStream i =FileManager.get().open("yago.nt");
ont.read(in,"");
Model schemaModel = FileManager.get().loadModel("yago.nt");
ont.add(schemaModel); // <---THE ERROR IS HERE
Reasoner r = ReasonerRegistry.getOWLReasoner();
r=r.bindSchema(ont);
OntModelSpec p= OntModelSpec.OWL_DL_MEM;
p.setReasoner(r);
OntModel model=ModelFactory.createOntologyModel(p,ont);
ExtendedIterator s=model.listClasses();
while (s.hasNext())
{
OntClass thisClass = (OntClass) s.next();
System.out.println("Found class: " + thisClass.toString());
}
答案 0 :(得分:0)
您可以使用TD数据集和getNamedModel直接读入数据库。
但正好你正在建立一个持久性数据库,为什么不这样做:
tdbloader --loc=DB dbpedia.owl yago.nt
(如果.owl给你带来问题,首先转换为NT或使用TDB 0.10.X)。