0

この問題について他の質問を投稿しました...しかし、私は解決策に近づいていると思います。「dbpedia.owl」のロードでのみ機能するこのコードがあります。他のオントロジー「yago.nt」を追加すると問題が発生します...「java.lang.OutOfMemoryError: Java heap space」のようなエラーが発生します...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());
    }
4

1 に答える 1

0

TD データセットと getNamedModel を使用して、データベースに直接読み込むことができます。

しかし、永続的なデータベースを設定しているので、次のようにしてはいけません:

tdbloader --loc=DB dbpedia.owl yago.nt

(.owl で問題が発生する場合は、最初に NT に変換するか、TDB 0.10.X を使用してください)。

于 2013-10-05T12:53:03.183 に答える