Ser*_*lin 1 ontology protege graphdb
我用 Protege 创建了一个本体,并将其保存为.owl文件。
当我尝试通过 Workbench Import -> RDF -> Upload RDF files将其加载到 GraphDB (8.9.0) 时(支持的 RDF 格式为 .ttl .rdf .rj .n3 .nt .nq .trig .trix .brf .owl .jsonld,以及它们的 .gz 版本和 .zip 档案)我收到错误:
RDF Parse Error: Content is not allowed in prolog. [line 1, column 1]。
完整日志:
01:00:37.877 [import-task-Accounting-1] ERROR o.e.r.rio.helpers.ParseErrorLogger - [Rio fatal] Content is not allowed in prolog. (1, 1)
01:00:37.879 [import-task-Accounting-1] ERROR c.o.f.impex.FileImportRunnableTask - RDF Parse Error
org.eclipse.rdf4j.rio.RDFParseException: Content is not allowed in prolog. [line 1, column 1]
at org.eclipse.rdf4j.rio.helpers.RDFParserHelper.reportFatalError(RDFParserHelper.java:442)
at org.eclipse.rdf4j.rio.helpers.AbstractRDFParser.reportFatalError(AbstractRDFParser.java:783)
at org.eclipse.rdf4j.rio.rdfxml.RDFXMLParser.reportFatalError(RDFXMLParser.java:1176)
at org.eclipse.rdf4j.rio.rdfxml.RDFXMLParser.fatalError(RDFXMLParser.java:1315)
at com.sun.org.apache.xerces.internal.util.ErrorHandlerWrapper.fatalError(ErrorHandlerWrapper.java:180)
at com.sun.org.apache.xerces.internal.impl.XMLErrorReporter.reportError(XMLErrorReporter.java:400)
at com.sun.org.apache.xerces.internal.impl.XMLErrorReporter.reportError(XMLErrorReporter.java:327)
at com.sun.org.apache.xerces.internal.impl.XMLScanner.reportFatalError(XMLScanner.java:1472)
at com.sun.org.apache.xerces.internal.impl.XMLDocumentScannerImpl$PrologDriver.next(XMLDocumentScannerImpl.java:994)
at com.sun.org.apache.xerces.internal.impl.XMLDocumentScannerImpl.next(XMLDocumentScannerImpl.java:602)
at com.sun.org.apache.xerces.internal.impl.XMLNSDocumentScannerImpl.next(XMLNSDocumentScannerImpl.java:112)
at com.sun.org.apache.xerces.internal.impl.XMLDocumentFragmentScannerImpl.scanDocument(XMLDocumentFragmentScannerImpl.java:505)
at com.sun.org.apache.xerces.internal.parsers.XML11Configuration.parse(XML11Configuration.java:841)
at com.sun.org.apache.xerces.internal.parsers.XML11Configuration.parse(XML11Configuration.java:770)
at com.sun.org.apache.xerces.internal.parsers.XMLParser.parse(XMLParser.java:141)
at com.sun.org.apache.xerces.internal.parsers.AbstractSAXParser.parse(AbstractSAXParser.java:1213)
at org.eclipse.rdf4j.rio.rdfxml.RDFXMLParser.parse(RDFXMLParser.java:265)
at org.eclipse.rdf4j.rio.rdfxml.RDFXMLParser.parse(RDFXMLParser.java:207)
at org.eclipse.rdf4j.repository.util.RDFLoader.loadInputStreamOrReader(RDFLoader.java:286)
at org.eclipse.rdf4j.repository.util.RDFLoader.load(RDFLoader.java:197)
at org.eclipse.rdf4j.repository.base.AbstractRepositoryConnection.add(AbstractRepositoryConnection.java:329)
at com.ontotext.trree.monitorRepository.MonitorRepositoryConnection.add(MonitorRepositoryConnection.java:177)
at com.ontotext.trree.parallel.ParallelRDFLoader.add(ParallelRDFLoader.java:125)
at com.ontotext.trree.parallel.ParallelRDFLoader.add(ParallelRDFLoader.java:54)
at com.ontotext.forest.impex.ParallelAwareImporter.lambda$add$5(ParallelAwareImporter.java:107)
at com.ontotext.forest.impex.ParallelAwareImporter.wrapInBeginCommit(ParallelAwareImporter.java:128)
at com.ontotext.forest.impex.ParallelAwareImporter.add(ParallelAwareImporter.java:89)
at com.ontotext.forest.impex.FileImportRunnableTask.load(FileImportRunnableTask.java:36)
at com.ontotext.forest.impex.ImportRunnableTask.run(ImportRunnableTask.java:82)
at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
at java.util.concurrent.FutureTask.run(FutureTask.java:266)
at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
at java.lang.Thread.run(Thread.java:745)
Caused by: org.xml.sax.SAXParseException: Content is not allowed in prolog.
at com.sun.org.apache.xerces.internal.util.ErrorHandlerWrapper.createSAXParseException(ErrorHandlerWrapper.java:203)
at com.sun.org.apache.xerces.internal.util.ErrorHandlerWrapper.fatalError(ErrorHandlerWrapper.java:177)
... 29 common frames omitted
Run Code Online (Sandbox Code Playgroud)
任何帮助/建议/提示将不胜感激。
问题是 GraphDB 假设.owl文件是用 XML 编写的,因此尝试这样解析它们。然而,正如OWL 一致性(2.2 工具一致性)中提到的:
\n\n\n符合 OWL 2 的工具还可以接受使用其他序列化的本体文档,例如 Turtle ...
\n
事实上,OWL 本体定义可以有 5 种不同的有效格式:函数式、RDF/XML、OWL/XML、Turtle 和 Manchester 语法。Prot\xc3\xa9g\xc3\xa9 决定对其.owl文件使用 Turtle 语法,因此 GraphDB 在尝试将它们解析为 XML 时会出错。
解决方法:只需将文件扩展名从.owl更改为.ttl,GraphDB 就会愉快地加载它。
| 归档时间: |
|
| 查看次数: |
1301 次 |
| 最近记录: |