2014-02-06 5 views
2

RDF dump of DBLP (DBLP in RDF)에서 작업하려고합니다. 나는 Turtle format로 해당 파일을 변환 할 수 Jenardfcat를 사용하려고 :스트라이핑 오류는 어디에 있습니까?

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?의 경우 스트라이핑 오류은 계층 적 XML 구조가 RDF/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과 하나가 될 것으로 보인다. 그러나 어쨌든, 나는 그 라인이 구조적으로 문제가 될 수있는 곳을 보지 못한다. (특히 그 라인을 다른 라인과 비교할 때). 실제로 거기에 구조적 문제가 있습니까? (그렇다면 무엇입니까?) 또는 오류 메시지가 오도 된가요?

+1

줄의 길이는 135 글자가 아니라 147 줄입니다. 여기에 내용의 서식이 다르기는하지만 그 줄에 인쇄 할 수없는 문자 (일반 여백이 아닌)가 있는지 여부를 확인할 수 있습니다. . –

+0

@jkbkot : 흠, 사실 ... 다시 한번 살펴보면, 나노는 실제로 그 줄이 실제로 135 자 밖에 없다고 분명히 말합니다. 16 진수 편집기는 다른 줄의 끝과 같이 한 줄 넘기기 이외의 줄 끝 부분에 보이지 않는 문자를 표시하지 않습니다. –

+1

뒤쪽을 더 멀리보아야 할 수도 있습니다. 이 모든 것이 다른 XML 컨텐츠와 함께 중첩되어 있습니까? 잘못된 "깊이"에 있다면 자원이되어야하는 요소가 속성으로 처리 될 수 있으며 그 반대의 경우도 마찬가지입니다. 이것은 문제가 될 것입니다 ... –

답변

0

그냥 아파치 jena 2.11.1로 시도해 봤는데 괜찮 았어. `riot --validate '시도해 봤어?

오류는 호기심 : 신비 인 인쇄 가능한 문자가 표시되지 않는 것

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. 

.

오류는 단순히 rdf에 속성 태그 외부에 공백이 아닌 문자가 포함되어 있음을 의미합니다. 이는 </dc:creator> 다음에 아마도 보이지 않는 쓰레기가있을 수 있음을 암시합니다.

나는 그런 식으로 보이지 않으므로 어딘가에 IO 오류가 발생합니다.

+0

'riot --validate'는 그런 에러를 보여주지 않으며,'rdfcat'을 다시 질문 할 때'OutOfMemoryException'으로 인해 결국 실패하기 전에 더 오래 실행됩니다. 그래서 실제로, 일종의 입출력 오류 일 것임에 틀림 없습니다. –

+0

'riot' 명령 (검증 옵션 없음)을 사용하면 메모리를 사용하지 않고 n-triples을 출력합니다. 거북이가 정말로 필요한 경우 tdb에로드 한 다음 거북이를 출력하십시오 (n-triples는 거북이의 일부 임에도 불구하고). – user205512

+0

글쎄, 나는 파일 크기를 작게 유지하려고하고, 동등한 거북이 파일의 크기가 약 580MB이지만 각각의 N-Triples 파일의 크기는 1.5GB를 넘는다. –

관련 문제