正在 android 中加载 owl 文件

Loading owl file in android

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

代码在 java 中有效,但在 android 中无用。当我在 android 项目中尝试使用它们时,无法访问该文件。我正在使用 OWLApi 3.4.10。 我正在从我的 mainActivity class 加载 ontology。加载是在 OntologyClass class 中的 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();
        }

ontology类的编码如下:

@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 文件位于资产文件夹中。 在 logcat 我收到类似

的警告

FileNotFountException: /assets/Pizza.owl: open failed:ENOENT (no such file or directory)

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

谢谢

解决构建路径错误: 通常,如果您在 java 中使用 owl api,那么您只需要导入 owl api 库即可。但是在 android 中,如果你只这样做,你仍然会得到错误 "method not found"。所以你需要执行第二步,即右键单击你的 android 项目然后

properties-> Java Build Path -> order and export tab

并勾选 OWLAPI 3.4。10.jar

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

可以通过 InputStream 访问 asserts 文件夹中 owl 文件的 directory/path class 文件 class 不能' 为这个文件夹工作,所以不要使用

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

使用此代码

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

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

pizza = manager.loadOntologyFromOntologyDocument(is);