【问题标题】:Ontology OWL import from Excel to XMLOntology OWL 从 Excel 导入 XML
【发布时间】:2018-07-30 16:31:40
【问题描述】:

我有一个关于猫头鹰的研究项目。我需要从 excel 文件中提取数据并将它们写入 xml 文件。我需要使用 owl 本体生成带有传感器和测量值的 xml 文件。我不知道如何使用jena apache来做到这一点。 excel中有一条数据:Data。有人可以帮助我了解如何做到这一点吗?

@edit:可以用csv代替excel。

【问题讨论】:

    标签: xml excel jena owl ontology


    【解决方案1】:

    首先,您应该了解您正在处理的内容:什么是表格(CSV 或 Exel)文件,什么是 RDF,什么是本体以及它是如何通过 OWL 在 RDF 中编码的,这意味着什么将您的表格数据映射到 RDF 并根据一些 OWL 本体,这些本体可能已经可用或由您构建(使用像 Protegé 这样的工具)。然后,您必须了解 Jena 作为库的作用,以通过 Java 以编程方式操作 RDF/OWL 数据。

    然后,大概,您必须编写一个 Java 程序,从 CSV 加载数据(从 Excel 转换为 CSV,然后使用 OpenCSV 库,您可以 load straight from .xlsx files,但可能更难为新手程序员做),然后使用数据创建 RDF 三元组,并最终使用 RDF 的 XML 序列化保存 RDF 数据集。

    顺便说一句,除非你的作业要求你使用 Jena,否则 CSV->RDF 转换可以使用TARQL 之类的工具完成。一旦您对查询 RDF 的 SPARQL 语言有所了解,这种方法在任务中使用起来会简单得多。

    【讨论】:

      【解决方案2】:

      Apache Jena 支持 RDF/XML 和 CSV 格式(但最后一种仅供阅读)。要转换 CSV->XML 需要在主库 org.apache.jena:jena-arq 之外包含到 maven pom.xml org.apache.jena:jena-csv 工件(还包括 jena 本体 api、sparql 等)。

      工作示例:

          Model m = ModelFactory.createDefaultModel();
          // read csv:
          try (InputStream is = Test_CSV.class.getResourceAsStream("/test.csv")) {
              RDFDataMgr.read(m, is, "http://example.org", Lang.CSV);
          }
          // print to console:
          m.write(System.out, "ttl");
          // save as XML:
          Path p = Files.createTempFile("temp-", ".xml");
          System.out.println("Save to " + p);
          try (OutputStream out = Files.newOutputStream(p)) {
              RDFDataMgr.write(out, m, Lang.RDFXML);
          }
          // print file to console:
          Files.lines(p).forEach(System.out::println);
      

      您还可以将刚刚加载的图形包装为org.apache.jena.ontology.OntModel,这允许根据OWL1规范处理本体数据:

      OntModel o = ModelFactory.createOntologyModel(OntModelSpec.OWL_DL_MEM, m);

      【讨论】:

      • 我需要把我的文件放在哪里?因为我到处都试过,但总是 NPE
      • @DuszeQ94 那么您应该阅读 Javadoc 并了解 getResourceAsStream 在做什么。以及 Java 中的类加载器在做什么。
      猜你喜欢
      • 1970-01-01
      • 2023-03-20
      • 1970-01-01
      • 2012-09-20
      • 2023-03-20
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2010-11-03
      相关资源
      最近更新 更多