【问题标题】:How Can I Load two ontologies in one model如何在一个模型中加载两个本体
【发布时间】:2013-10-05 11:48:13
【问题描述】:

我发布了有关此问题的其他问题...但我认为我已接近解决方案。我有这个代码只适用于“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());
    }

【问题讨论】:

    标签: java jena ontology dbpedia tdb


    【解决方案1】:

    您可以使用 TD 数据集和 getNamedModel 直接读取数据库。

    但是既然你正在建立一个持久性数据库,为什么不这样做:

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

    (如果 .owl 给您带来问题,请先转换为 NT 或使用 TDB 0.10.X)。

    【讨论】:

    • 我会在哪里写那行?
    猜你喜欢
    • 2023-03-30
    • 1970-01-01
    • 1970-01-01
    • 2021-02-26
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多