首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何使org.openrdf.rio解析器支持Turtle文档?

如何使org.openrdf.rio解析器支持Turtle文档?
EN

Stack Overflow用户
提问于 2022-11-16 22:15:21
回答 1查看 28关注 0票数 0

我在Eclipse上有一个读取R2RML (.ttl)文件的java项目。我使用的是来自R2RMLReaderit.unibz.inf.ontop.r2rml.R2RMLReader,它使用Open org.openrdf.rio.Rio,下面是方法代码:

代码语言:javascript
复制
public static ArrayList<TripleMaps> readR2RMLFile() {
        String mappingFile= "/path/to/Desktop/r2rmlFile.ttl";

         R2RMLReader reader = null;
          try {
            reader = new R2RMLReader(mappingFile);
          } catch (Exception e) {
            e.printStackTrace();
          }
          ArrayList<OBDAMappingAxiom> axioms = reader.readMappings();
          for (OBDAMappingAxiom ax : axioms)
            System.out.println(ax);
        return null; 
    }

但是,R2RMLReader抛出此错误:

代码语言:javascript
复制
org.openrdf.rio.UnsupportedRDFormatException: No parser factory available for RDF format Turtle (mimeTypes=text/turtle, application/x-turtle; ext=ttl)
    at org.openrdf.rio.Rio.createParser(Rio.java:198)
    at it.unibz.inf.ontop.r2rml.R2RMLManager.<init>(R2RMLManager.java:71)
    at it.unibz.inf.ontop.r2rml.R2RMLReader.<init>(R2RMLReader.java:63)
    at it.unibz.inf.ontop.r2rml.R2RMLReader.<init>(R2RMLReader.java:54)
    at TripleMaps.readR2RMLFile(TripleMaps.java:170)

我遗漏了什么?是否有任何jar文件应该添加到项目中?

我在许多教程中看到了这种实现,它们使用.ttl文件格式。然而,在我的项目中,它不起作用。

我研究了不同的解决方案-- org.eclipse.rdf4j.rio.UnsupportedRDFormatException for Turtle formatRDF4J RIO UnsupportedRDFormatException when adding data to an HTTPRepository using a stand-alone application

但是,我没有使用maven --我下载了所有jar文件并将其添加到项目中。

我在http://archive.rdf4j.org/javadoc/sesame-2.8.9/org/openrdf/rio/RDFFormat.html上看过,openrdf/rio/RDFFormat应该支持甲鱼。

“海龟文档推荐的文件扩展名.ttl”

如何使org.openrdf.rio解析器支持Turtle文档?

EN

回答 1

Stack Overflow用户

发布于 2022-11-19 03:11:00

您缺少了实际的Turtle解析器实现,它包含在Sesame解析器API中的一个单独的jar文件中(参见https://search.maven.org/artifact/org.openrdf.sesame/sesame-rio-turtle )。

正如评论中所建议的那样,我建议您为自己节省一个痛苦的世界:使用maven来解决这类依赖问题。

另外:当然,我不确定您到底想要实现什么,我也不知道您使用的是哪个版本的Ontop平台,但是提到org.openrdf包表明它是一个旧版本。这个包名来自旧的Sesame项目,6年多前被Eclipse所取代。我也非常肯定Ontop本身已经更新了它的依赖项以使用RDF4J而不是芝麻。您可能希望尝试升级到更新的版本。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/74467912

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档