我正在使用 Jena 导入 skos 词库,但它不起作用 [重复]

Posted

技术标签:

【中文标题】我正在使用 Jena 导入 skos 词库,但它不起作用 [重复]【英文标题】:I'm using Jena to import a skos thesaurus and it doesn't work [duplicate] 【发布时间】:2012-12-14 08:32:59 【问题描述】:

可能重复:org.xml.sax.SAXParseException: Content is not allowed in prolog

我想在 Jena 模型中导入一个 skos (rdf/xml) 词库。 skos 词库在http://www.culturaitalia.it/pico/thesaurus/4.2/thesaurus_4.2.0.skos.xml 中可用。我将其复制到本地文件(在 picoFileName 中)并使用此代码将其导入模型中:

    ...
    pico = ModelFactory.createDefaultModel();
    InputStream in = FileManager.get().open(picoFileName);
    if (in == null) 
        throw new IllegalArgumentException( "File: " + picoFileName + " not found");
    
    pico.read(new InputStreamReader(in), "");
    ... 

我收到此错误:

Exception in thread "main" com.hp.hpl.jena.shared.JenaException:   org.xml.sax.SAXParseException: Content is not allowed in prolog.
at com.hp.hpl.jena.rdf.model.impl.RDFDefaultErrorHandler.fatalError(RDFDefaultErrorHandler.java:60)
at com.hp.hpl.jena.rdf.arp.impl.ARPSaxErrorHandler.fatalError(ARPSaxErrorHandler.java:51)
at com.hp.hpl.jena.rdf.arp.impl.XMLHandler.warning(XMLHandler.java:211)
at com.hp.hpl.jena.rdf.arp.impl.XMLHandler.fatalError(XMLHandler.java:241)
at org.apache.xerces.util.ErrorHandlerWrapper.fatalError(Unknown Source)
at org.apache.xerces.impl.XMLErrorReporter.reportError(Unknown Source)
at org.apache.xerces.impl.XMLErrorReporter.reportError(Unknown Source)
at org.apache.xerces.impl.XMLErrorReporter.reportError(Unknown Source)
at org.apache.xerces.impl.XMLScanner.reportFatalError(Unknown Source)
at org.apache.xerces.impl.XMLDocumentScannerImpl$PrologDispatcher.dispatch(Unknown Source)
at org.apache.xerces.impl.XMLDocumentFragmentScannerImpl.scanDocument(Unknown Source)
at org.apache.xerces.parsers.DTDConfiguration.parse(Unknown Source)
at org.apache.xerces.parsers.DTDConfiguration.parse(Unknown Source)
at org.apache.xerces.parsers.XMLParser.parse(Unknown Source)
at org.apache.xerces.parsers.AbstractSAXParser.parse(Unknown Source)
at com.hp.hpl.jena.rdf.arp.impl.RDFXMLParser.parse(RDFXMLParser.java:155)
at com.hp.hpl.jena.rdf.arp.JenaReader.read(JenaReader.java:173)
at com.hp.hpl.jena.rdf.arp.JenaReader.read(JenaReader.java:160)
at com.hp.hpl.jena.rdf.arp.JenaReader.read(JenaReader.java:199)
at com.hp.hpl.jena.rdf.model.impl.ModelCom.read(ModelCom.java:229)
at it.etc.rdf.LodWithPico.<init>(LodWithPico.java:24)
at it.etc.rdf.TestLodWithPico.main(TestLodWithPico.java:6)
    Caused by: org.xml.sax.SAXParseException: Content is not allowed in prolog.
at org.apache.xerces.util.ErrorHandlerWrapper.createSAXParseException(Unknown Source)
... 18 more

skos 词库在 w3c rdf/xml 验证器和 skos 验证器中进行验证。怎么了?

【问题讨论】:

对不起,我不明白该怎么做 【参考方案1】:

“picoFileName”到底是什么?如果我对下载的内容调用解析器,对我有用。 这是耶拿的哪个版本?

【讨论】:

在 picoFileName 中有文件完整路径,它之所以有效,是因为它不会抛出 IllegalArgumentException:我在调试之后跟着它,崩溃语句是: pico.read(new InputStreamReader(in), " ");【参考方案2】:

抱歉,输入文件有问题。我将文件内容复制到另一个文件中,它可以工作。

【讨论】:

以上是关于我正在使用 Jena 导入 skos 词库,但它不起作用 [重复]的主要内容,如果未能解决你的问题,请参考以下文章

422 无法处理的实体错误。我尝试上传 Excel 文件以导入数据,但它不工作

导入本体到Jena TDB数据库

Rime中州韵导入极点五笔词库(附:自制词库)

Ubuntu下rime怎么导入词库

怎样导出搜狗词库到文本?

我正在尝试使用 Elementor Typography Control。但它不起作用