防止动态猫头鹰:在Jena OntModel中导入

问题描述

我正在尝试读取耶拿的猫头鹰文件。 我希望不会自动导入属性owl:import指定的相关猫头鹰文件。 有可能吗?

我正在阅读这样的模型:

OntModel onto = ModelFactory.createOntologyModel();
onto.read(rdfURL);

rdfURL为"https://<mymodel>.owl"

此处将导入其他猫头鹰文件的三元组

<rdf:RDF xml:base="http://www.ontologydesignpatterns.org/cp/owl/agentrole.owl">
  <owl:Ontology rdf:about="http://www.ontologydesignpatterns.org/cp/owl/agentrole.owl">
    <owl:imports rdf:resource="http://www.ontologydesignpatterns.org/cp/owl/objectrole.owl"/>
    <owl:imports rdf:resource="http://www.ontologydesignpatterns.org/schemas/cpannotationschema.owl"/>
  </owl:Ontology>
</rdf:RDF>

这样做的原因是,我不希望在导入的模型中定义的类和属性成为针对已读模型的查询的结果。

解决方法

在这里可能有不同的工作方式:

1-通过OntModel文档管理器导入控件:

onto.getDocumentManager().setProcessImports(false);

在阅读模型之前。

2-根据要显示的信息,修改数据可能更有用:读入普通的RDF模型,删除import语句,然后放入OntModel。