-2

我知道之前有人问过这个问题,但现在任何地方都没有合适的解决方案,所以我要再问一次。如何在我的 android 项目中加载 owl 文件?

该代码在 java 中有效,但在 android 中无用。当我在 android 项目中尝试它们时,无法访问该文件。我正在使用 OWLApi 3.4.10。我正在从我的 mainActivity 类加载本体。加载是在 OntologyClass 类的 loadOntology 方法中执行的。在主要方法中,编码如下

@Override
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_main);
        ontologyClass ontology;

            ontology = new ontologyClass();

        try {
            ontology.ontologyLoad();

        } catch (Exception e) {
            // TODO Auto-generated catch block
            e.printStackTrace();
        }

ontologyClass 的编码如下:

@Ignore
@SuppressWarnings("javadoc")
public class ontologyClass {
OWLOntology pizza;
OWLOntologyManager manager;

public ontologyClass  ontologyLoad() throws  OWLOntologyCreationException {

     manager= OWLManager.createOWLOntologyManager();
    File file= new File("assets/Pizza.owl");
    pizza = manager.loadOntologyFromOntologyDocument(file);
     return this;
}

Pizza.owl 文件位于 assets 文件夹中。在 logcat 我收到警告,如

FileNotFountException:/assets/Pizza.owl:打开失败:ENOENT(没有这样的文件或目录)

谁能解决这个文件加载问题?

谢谢

4

1 回答 1

0

解决构建路径错误: 通常如果您在 java 中使用 owl api,那么您只需要导入 owl api 库。但是在 android 中,如果你只这样做,你仍然会收到错误提示“找不到方法”。因此,您需要执行第二步,即右键单击您的 android 项目,然后

属性-> Java 构建路径-> 订单和导出选项卡

并勾选 OWLAPi 3.4.10.jar

assets文件夹中文件路径的答案如下:

可以通过InputStream 类访问 asserts 文件夹中 theowl 文件的目录/路径 File 类不适用于该文件夹,因此不要使用

File file= new File("assets/Pizza.owl");

使用此代码

InputStream is= myContext.getAssets().open("Pizza.owl");

最后使用 InputStream 实例这表示资产文件夹中文件的正确路径,即

pizza = manager.loadOntologyFromOntologyDocument(is);
于 2015-01-18T10:52:22.033 回答