我在Eclipse上有一个读取R2RML (.ttl)文件的java项目。我使用的是来自R2RMLReader的it.unibz.inf.ontop.r2rml.R2RMLReader,它使用Open org.openrdf.rio.Rio,下面是方法代码:
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抛出此错误:
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 format和RDF4J 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文档?
发布于 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而不是芝麻。您可能希望尝试升级到更新的版本。
https://stackoverflow.com/questions/74467912
复制相似问题