我正在嘗試使用RDF dump of DBLP,可從DBLP in RDF獲取。我試圖使用Jena的rdfcat將該文件轉換到成Turtle format:分條錯誤在哪裏?
rdfcat -x dblp-2006-02-06.rdf -out t > dblp.ttl
不幸的是,這將中止與以下錯誤消息:
Exception in thread "main" org.apache.jena.riot.RiotException: [line: 378, col:
147] {E202} Expecting XML start or end element(s). String data "
????????????????????????????????????????????????????????????????????????????????
??????????????????????????????????????????????????????????????????" not allowed.
Maybe a striping error.
at org.apache.jena.riot.system.ErrorHandlerFactory$ErrorHandlerStd.error
(ErrorHandlerFactory.java:128)
at org.apache.jena.riot.lang.LangRDFXML$ErrorHandlerBridge.error(LangRDF
XML.java:246)
…
至於我可以從另一個問題學習, What is a striping error?,條帶化錯誤發生在RDF/XML解析中,當分層XML結構不符合RDF/XML的偶數/奇數規則時。現在,尋找到該文件,該文件的相應部分如下:
<rdf:Description rdf:about="http://www.informatik.uni-trier.de/~ley/db/journals/ac/ac40.html#YousifTD95"><dc:identifier>journals/ac/YousifTD95</dc:identifier><dc:date>2002-01-03</dc:date><rdf:type rdf:resource="http://sw.deri.org/~aharth/2004/07/dblp/dblp.owl#Article"/>
<dc:creator><foaf:Person rdf:nodeID="MazinSYousif"><foaf:name>Mazin S. Yousif</foaf:name></foaf:Person></dc:creator>
<dc:creator><foaf:Person rdf:nodeID="MatthewThazhuthaveetil"><foaf:name>Matthew Thazhuthaveetil</foaf:name></foaf:Person></dc:creator>
<dc:creator><foaf:Person rdf:nodeID="ChitaRDas"><foaf:name>Chita R. Das</foaf:name></foaf:Person></dc:creator>
<dc:title rdf:parseType="Literal">Cache Coherence in Multiprocessors: A Survey.</dc:title>
<pages>127-179</pages>
<year>1995</year>
<volume>40</volume>
<journal>Advances in Computers</journal>
</rdf:Description>
線378似乎是一個與馬修Thazhuthaveetil,根據納米。然而,不知何故,我沒有看到那條線可能在結構上存在問題(特別是將該線與其他線相比較時)。那裏是否存在真正的結構性問題(如果是,它是什麼),還是錯誤信息有誤導性?
該行只有135個字符,而不是147個。它可能只是這裏的代碼片段中的格式不同,但您可以看看是否有任何機會在該行上存在一些不可打印的字符(非正常空白) 。 –
@jkbkot:嗯,真的......再看一遍,Nano甚至明確地告訴我,這條線確實只有135個字符。十六進制編輯器在行的末尾不顯示不可見的字符,而不是單行換行,就像在其他行的末尾一樣。 –
您可能還需要向後看。這是否嵌套_其他一些XML內容?如果你處於錯誤的「深度」,那麼應該是資源的元素可能會被視爲屬性,反之亦然。這將是一個問題... –