在android中加载owl文件

时间:2015-01-15 09:24:28

标签: java android semantic-web owl owl-api

我知道这个问题早先被问过,但现在没有任何适当的解决方案,所以我会再问一遍。 如何在我的android项目中加载猫头鹰文件?

代码在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:open failed:ENOENT(没有这样的文件或目录)

任何人都可以修复此文件加载问题吗?

谢谢

1 个答案:

答案 0 :(得分:0)

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

  

属性 - > Java构建路径 - >订单和导出标签

并勾选OWLAPi 3.4.10.jar

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

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

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

使用此代码

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

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

pizza = manager.loadOntologyFromOntologyDocument(is);