当前位置: 首页 > 知识库问答 >
问题:

无法用OWL API解析某些turtle格式文件

隗新霁
2023-03-14

我想从BioPortal阅读LNC/LOINC RDF/TURTLE版本的类,可以在http://BioPortal.bioontology.org/ontologies/LOINC/,最新提交。

我的解析代码就像

OWLOntologyManager ontologyManager = OWLManager.createOWLOntologyManager();
ontologyManager.loadOntologyFromOntologyDocument(new File("LOINC.ttl"));
   Exception in thread "main" org.semanticweb.owlapi.io.UnparsableOntologyException: Problem parsing file:/home/faessler/Coding/workspace/bioportal-ontology-tools/LOINC.ttl
Could not parse ontology.  Either a suitable parser could not be found, or parsing failed.  See parser logs below for explanation.
The following parsers were tried:
1) org.semanticweb.owlapi.rdf.rdfxml.parser.RDFXMLParser@3b9d6699
2) org.semanticweb.owlapi.owlxml.parser.OWLXMLParser@2ad3a1bb
3) org.semanticweb.owlapi.functional.parser.OWLFunctionalSyntaxOWLParser@120f38e6
4) org.semanticweb.owlapi.rio.RioParserImpl : org.semanticweb.owlapi.formats.RioTurtleDocumentFormatFactory@95fd655c
5) org.semanticweb.owlapi.manchestersyntax.parser.ManchesterOWLSyntaxOntologyParser@3ad394e6
6) org.semanticweb.owlapi.rio.RioParserImpl : org.semanticweb.owlapi.formats.NQuadsDocumentFormatFactory@6f9c39ad
7) org.semanticweb.owlapi.rio.RioParserImpl : org.semanticweb.owlapi.formats.RDFJsonDocumentFormatFactory@cd748dc3
8) org.semanticweb.owlapi.rio.RioParserImpl : org.semanticweb.owlapi.formats.NTriplesDocumentFormatFactory@937ecd36
9) org.semanticweb.owlapi.rio.RioParserImpl : org.semanticweb.owlapi.formats.TrigDocumentFormatFactory@27e81c
10) org.semanticweb.owlapi.rio.RioParserImpl : org.semanticweb.owlapi.formats.RDFJsonLDDocumentFormatFactory@dcacc47d
11) org.semanticweb.owlapi.rio.RioParserImpl : org.semanticweb.owlapi.formats.N3DocumentFormatFactory@9a5
12) org.semanticweb.owlapi.rio.RioParserImpl : org.semanticweb.owlapi.formats.RioRDFXMLDocumentFormatFactory@69b9a3bc
13) org.semanticweb.owlapi.rdf.turtle.parser.TurtleOntologyParser@5b43e173
14) org.semanticweb.owlapi.rio.RioTrixParserFactory$TrixParserImpl : org.semanticweb.owlapi.formats.TrixDocumentFormatFactory@27e82d
15) org.semanticweb.owlapi.oboformat.OBOFormatOWLAPIParser@13cda7c9
16) org.semanticweb.owlapi.dlsyntax.parser.DLSyntaxOWLParser@1da6ee17
17) org.semanticweb.owlapi.krss2.parser.KRSS2OWLParser@253c1256
18) org.semanticweb.owlapi.rio.RioParserImpl : org.semanticweb.owlapi.formats.BinaryRDFDocumentFormatFactory@3bf24493
19) org.coode.owlapi.obo12.parser.OWLOBO12Parser@c827db
20) org.semanticweb.owlapi.rio.RioParserImpl : org.semanticweb.owlapi.formats.RDFaDocumentFormatFactory@264e8d


Detailed logs:
--------------------------------------------------------------------------------

SNIP

--------------------------------------------------------------------------------
Parser: org.semanticweb.owlapi.rio.RioParserImpl : org.semanticweb.owlapi.formats.RioTurtleDocumentFormatFactory@95fd655c
    Stack trace:
org.openrdf.rio.UnsupportedRDFormatException: Did not recognise RDF format object Turtle (mimeTypes=text/turtle, application/x-turtle; ext=ttl)        org.semanticweb.owlapi.rio.RioParserImpl.parse(RioParserImpl.java:138)
        uk.ac.manchester.cs.owl.owlapi.OWLOntologyFactoryImpl.loadOWLOntology(OWLOntologyFactoryImpl.java:175)
        uk.ac.manchester.cs.owl.owlapi.OWLOntologyManagerImpl.load(OWLOntologyManagerImpl.java:997)
        uk.ac.manchester.cs.owl.owlapi.OWLOntologyManagerImpl.loadOntology(OWLOntologyManagerImpl.java:961)
        uk.ac.manchester.cs.owl.owlapi.OWLOntologyManagerImpl.loadOntologyFromOntologyDocument(OWLOntologyManagerImpl.java:910)
        uk.ac.manchester.cs.owl.owlapi.OWLOntologyManagerImpl.loadOntologyFromOntologyDocument(OWLOntologyManagerImpl.java:922)
        de.julielab.bioportal.ontologies.apps.Test.main(Test.java:43)
Did not recognise RDF format object Turtle (mimeTypes=text/turtle, application/x-turtle; ext=ttl)        org.openrdf.rio.Rio.html" target="_blank">lambda$unsupportedFormat$0(Rio.java:630)
        java.util.Optional.orElseThrow(Optional.java:290)
        org.openrdf.rio.Rio.createParser(Rio.java:119)
        org.semanticweb.owlapi.rio.RioParserImpl.parseDocumentSource(RioParserImpl.java:173)
        org.semanticweb.owlapi.rio.RioParserImpl.parse(RioParserImpl.java:125)
        uk.ac.manchester.cs.owl.owlapi.OWLOntologyFactoryImpl.loadOWLOntology(OWLOntologyFactoryImpl.java:175)
        uk.ac.manchester.cs.owl.owlapi.OWLOntologyManagerImpl.load(OWLOntologyManagerImpl.java:997)
        uk.ac.manchester.cs.owl.owlapi.OWLOntologyManagerImpl.loadOntology(OWLOntologyManagerImpl.java:961)
        uk.ac.manchester.cs.owl.owlapi.OWLOntologyManagerImpl.loadOntologyFromOntologyDocument(OWLOntologyManagerImpl.java:910)
        uk.ac.manchester.cs.owl.owlapi.OWLOntologyManagerImpl.loadOntologyFromOntologyDocument(OWLOntologyManagerImpl.java:922)


--------------------------------------------------------------------------------

Parser: org.semanticweb.owlapi.rdf.turtle.parser.TurtleOntologyParser@5b43e173
    Stack trace:
org.semanticweb.owlapi.rdf.turtle.parser.ParseException: Encountered " <PN_CHARS> "- "" at line 3635316, column 64.
Was expecting:
    "." ...
            org.semanticweb.owlapi.rdf.turtle.parser.TurtleOntologyParser.parse(TurtleOntologyParser.java:60)
        uk.ac.manchester.cs.owl.owlapi.OWLOntologyFactoryImpl.loadOWLOntology(OWLOntologyFactoryImpl.java:175)
        uk.ac.manchester.cs.owl.owlapi.OWLOntologyManagerImpl.load(OWLOntologyManagerImpl.java:997)
        uk.ac.manchester.cs.owl.owlapi.OWLOntologyManagerImpl.loadOntology(OWLOntologyManagerImpl.java:961)
        uk.ac.manchester.cs.owl.owlapi.OWLOntologyManagerImpl.loadOntologyFromOntologyDocument(OWLOntologyManagerImpl.java:910)
        uk.ac.manchester.cs.owl.owlapi.OWLOntologyManagerImpl.loadOntologyFromOntologyDocument(OWLOntologyManagerImpl.java:922)
        de.julielab.bioportal.ontologies.apps.Test.main(Test.java:43)
Encountered " <PN_CHARS> "- "" at line 3635316, column 64.
Was expecting:
    "." ...
            org.semanticweb.owlapi.rdf.turtle.parser.TurtleParser.generateParseException(TurtleParser.java:1960)
        org.semanticweb.owlapi.rdf.turtle.parser.TurtleParser.jj_consume_token(TurtleParser.java:1829)
        org.semanticweb.owlapi.rdf.turtle.parser.TurtleParser.parseDocument(TurtleParser.java:111)
        org.semanticweb.owlapi.rdf.turtle.parser.TurtleOntologyParser.parse(TurtleOntologyParser.java:56)
        uk.ac.manchester.cs.owl.owlapi.OWLOntologyFactoryImpl.loadOWLOntology(OWLOntologyFactoryImpl.java:175)
        uk.ac.manchester.cs.owl.owlapi.OWLOntologyManagerImpl.load(OWLOntologyManagerImpl.java:997)
        uk.ac.manchester.cs.owl.owlapi.OWLOntologyManagerImpl.loadOntology(OWLOntologyManagerImpl.java:961)
        uk.ac.manchester.cs.owl.owlapi.OWLOntologyManagerImpl.loadOntologyFromOntologyDocument(OWLOntologyManagerImpl.java:910)
        uk.ac.manchester.cs.owl.owlapi.OWLOntologyManagerImpl.loadOntologyFromOntologyDocument(OWLOntologyManagerImpl.java:922)
        de.julielab.bioportal.ontologies.apps.Test.main(Test.java:43)



SNIP
    java.net.URL documentUrl = new File("LOINC.ttl").toURI().toURL();
    InputStream inputStream = documentUrl.openStream();
    RDFParser rdfParser = new TurtleParser();
    java.util.ArrayList myList = new ArrayList();
    StatementCollector collector = new StatementCollector(myList);
    rdfParser.setRDFHandler(collector);
    try {
        rdfParser.parse(inputStream, documentUrl.toString());
    } catch (IOException | RDFParseException | RDFHandlerException e) {
        e.printStackTrace();
    }

我不认为有语法错误,因为Protégé可以在没有抱怨的情况下打开文件(在日志中没有什么特别的地方)。我还尝试了缩短版本的文件,因为它是相当大的。使用大约一半的文件是有效的。但是我没有找到关于OWL-API长度限制的任何东西。又一次。门徒可以打开它。

Bioportal上的mesh.ttl和pdq.ttl文件也是如此。但是,ncbitaxon.ttl起作用。

OWL-API版本为5.0.5,使用Protege5.0beta for Mac成功打开该文件。

谢谢!

共有1个答案

马坚
2023-03-14

在owl api中没有明确的限制,除了可用内存和集合的大小--这被限制为整数可以假设的最大值。

这个解析器的详细日志是什么?

13)org.semanticweb.owlapi.rdf.turtle.parser.turtleontologyparser@5b43e173

还有,你使用的是owlapi和Protégé的哪个版本?

编辑:使用解析器的错误消息,我能够找到失败的行:

“”“3”“-乙酸酯;[cut]”“”^^xsd:string;

第二次编辑:这是一个bug;应该已正确分析了文字。请参阅相关的海龟规格。

 类似资料:
  • 我安装了Android Studio并构建了一个新项目,但是自动生成的代码显示了许多“无法解决”的错误,比如“Import Android.support.v7.app.ActionBaractivity;”代码中的“无法解决符号应用程序” 我的Android Studio版本是0.4.2,gradle版本是1.9 我的构建分级是:

  • 我的数据库配置类: 和AppConfig: } 嗨,我上面有个错误,我不知道怎么修复,你能帮我吗?在添加这个bean之前,我的项目运行良好: }

  • 我正在尝试使用owlapi彻底的net beans加载.owl文件,以插入个人及其数据属性(使用owlapi文档中列出的代码),但它无法加载文件,但当我将.owl文件转换为.rdf格式时,它被成功加载,并且能够插入所需的数据。我需要操作.owl文件而不是.rdf格式 下面是我用来加载.owl而没有成功的代码 但是当我使用了如下所示的rdf fromat时,它就成功地加载了 那么我如何克服这个问题并

  • 我有一个问题,即使经过几个小时的搜索,我也没有找到一个合适的解决方案。我想用turtle语法(~8GB)解析一个巨大的RDF文档。这就是为什么我选择了jena riot提供的流方法,即RDFDATAMGR。我正在处理的文件使用了无效的URI,这些URI包含空白空间。这将引发一个致命的异常,解析将停止。我想先识别出那些无效的URI,然后跳过整个语句,因为这是没有用的。我已经尝试了apache电子邮件

  • 因此,我正在使用很棒的MPAndroid图表库来制作一个简单的LineChart。我能够使用GitHub上的示例项目大量定制它。 问题是,当我将它移到我自己的代码中时,某些方法不再能够解决: 特别是mlineChart.setExtraOffsets()和mlineChart.setAutoScaleminMaxEnabled()。可能还有其他的,但这是我注意到的仅有的两个。 不过,其他一切都很好

  • 本文向大家介绍Python3操作YAML文件格式方法解析,包括了Python3操作YAML文件格式方法解析的使用技巧和注意事项,需要的朋友参考一下 数据及配置文件之争 数据及文件通常有三种类型: 配置文件型:如ini,conf,properties文件,适合存储简单变量和配置项,最多支持两层,不适合存储多层嵌套数据 表格矩阵型:如csv,excel等,适合于存储大量同类数据,不适合存储层级结构的数