无法解析某些本体

Failed to parse some ontologies

解析一组本体时,一些文件给我以下错误,而其他文件运行良好(注意我使用的是 OWL API 5.1.6):

uk.ac.manchester.cs.owl.owlapi.OWLOntologyManagerImpl.loadOntology(OWLOntologyManagerImpl.java:1033)
    uk.ac.manchester.cs.owl.owlapi.OWLOntologyManagerImpl.loadOntology(OWLOntologyManagerImpl.java:933)
    uk.ac.manchester.cs.owl.owlapi.OWLOntologyManagerImpl.loadImports(OWLOntologyManagerImpl.java:1630)

....

Could not parse JSONLD        org.eclipse.rdf4j.rio.jsonld.JSONLDParser.parse(JSONLDParser.java:110)
    org.semanticweb.owlapi.rio.RioParserImpl.parseDocumentSource(RioParserImpl.java:172)
    org.semanticweb.owlapi.rio.RioParserImpl.parse(RioParserImpl.java:125)

....

Stack trace:
org.eclipse.rdf4j.rio.RDFParseException: unqualified attribute 'class' not allowed [line 3, column 65]        
org.semanticweb.owlapi.rio.RioParserImpl.parse(RioParserImpl.java:138)
    uk.ac.manchester.cs.owl.owlapi.OWLOntologyFactoryImpl.loadOWLOntology(OWLOntologyFactoryImpl.java:193)
    uk.ac.manchester.cs.owl.owlapi.OWLOntologyManagerImpl.load(OWLOntologyManagerImpl.java:1071)
    uk.ac.manchester.cs.owl.owlapi.OWLOntologyManagerImpl.loadOntology(OWLOntologyManagerImpl.java:1033)
    uk.ac.manchester.cs.owl.owlapi.OWLOntologyManagerImpl.loadOntology(OWLOntologyManagerImpl.java:933)
    uk.ac.manchester.cs.owl.owlapi.OWLOntologyManagerImpl.loadImports(OWLOntologyManagerImpl.java:1630)

....

还有很多类似的错误。 知道如何解决这个问题吗?


更新:

加载 ontology 的代码段是:

File file = new File("C:\vocabs\" + Ontofile.getName());

OWLOntologyManager m = OWLManager.createOWLOntologyManager();
OWLOntology o;
o = m.loadOntologyFromOntologyDocument(file);
OWLDocumentFormat format = m.getOntologyFormat(o);

OWLOntologyXMLNamespaceManager nsManager = new 
OWLOntologyXMLNamespaceManager(o, format);

此错误表明您正在解析的本体之一是无效的 JSON/LD 格式。

要解决此问题,您必须做两件事:

  • 确保正在使用的格式是您期望的格式:OWLAPI,如果未指定格式,将尝试使用所有可用的解析器,直到其中一个解析器成功解析 ontology

  • 修正输入数据格式是否正确:本例中,对于JSON/LD,错误在第3行

如果使用的格式不是应有的格式,您需要在代码中指定格式 - 为此,您必须添加用于解析文件的代码片段。