【问题标题】:Loading owl file in android在android中加载owl文件
【发布时间】:2015-01-15 09:24:27
【问题描述】:

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

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

@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(没有这样的文件或目录)

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

谢谢

【问题讨论】:

  • “我知道这个问题之前被问过,但现在没有合适的解决方案,所以我要再问一次。”在这种情况下,正确的做法是为现有问题提供奖励,用更多信息更新它,等等。
  • 我确信 OWL API 可以在 Android 应用程序中使用,因为我和其他人已经使用它在 JFact 中加载本体。我不记得这是否适用于版本 3.4.10。等我有时间重新创建时,我会详细回答。
  • @JoshuaTaylor 抱歉,如果我知道我可能会这样做。感谢您的信息
  • @Ignazio 你在哪个 android 版本上测试过?是的,如果你能管理好时间并用一些细节回答这个问题,那将会很有帮助。
  • 我在 4.1.2 上运行过

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


【解决方案1】:

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

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

然后勾选 OWLAPi 3.4.10.jar

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

asserts文件夹中的owl文件的目录/路径可以通过InputStream类访问,File类不适用于这个文件夹,所以不要使用

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

使用此代码

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

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

pizza = manager.loadOntologyFromOntologyDocument(is);

【讨论】:

  • 目前形式的问题仅适用于寻找打开作为 apk 资产一部分的文件的方法的人。您能否添加先前构建错误的详细信息以及如何修复它?这些可能与其他遇到 OWL API 问题的用户有关。
  • @Ignazio 抱歉,我没有收到“以前的构建错误”一词。
  • 你说构建路径有错误,当你有方法未找到错误时。
猜你喜欢
  • 2015-02-01
  • 1970-01-01
  • 1970-01-01
  • 2011-10-21
  • 1970-01-01
  • 2020-01-01
  • 1970-01-01
  • 2018-06-25
  • 2016-06-16
相关资源
最近更新 更多