Thanks, that explains that. I'll try to contact the author of the data to
update his IRI's. - Erich
On Tue, 7 Jun 2016 17:54:44 +0100
Andy Seaborne <[email protected]> wrote:
On 06/06/16 18:46, Erich Bremer wrote:
Hi,
I used Jena (3.0) to read a RDF/XML file and then write
that RDF back
out to a ttl file. When I try to read that ttl file
back into a Jena
Model using RDFDataMgr, the following error is thrown:
Exception in thread "main"
org.apache.jena.riot.RiotException: [line:
9873, col: 68] Illegal character in IRI (codepoint 0x5E,
'^'):
<http://rdf.wwpdb.org/pdb/11BA/pdbx_struct_assembly_prop/1,ABSA_(A[^]...>
Turtle is defined to work with IRIs and the grammar
says:
[18] IRIREF ::= '<' ([^#x00-#x20<>"{}|^`\] | UCHAR)*
'>'
so it is illegal as an IRI.
RDF/XML, an older standard written before IRI's were
finalized, works with "RDF URI References". They are
were designed in anticipation of where the IRI specs were
going but the IRI drafts did change before becoming
final.
Jena tends to favour compatibility - what could be read,
remains readable; the alternative would be at some
version stopped accepting certain RDF/XML that is
nowadays not considered "good".
Writing is an attempt to get assumed correct data out.
There are various ways to get junk data in, includes the
API which for efficiency does not check IRIs.
Andy
at
org.apache.jena.riot.system.ErrorHandlerFactory$ErrorHandlerStd.fatal(ErrorHandlerFactory.java:136)
at
org.apache.jena.riot.lang.LangEngine.raiseException(LangEngine.java:165)
at
org.apache.jena.riot.lang.LangEngine.nextToken(LangEngine.java:108)
at
org.apache.jena.riot.lang.LangEngine.expect(LangEngine.java:145)
at
org.apache.jena.riot.lang.LangEngine.expectOrEOF(LangEngine.java:130)
at
org.apache.jena.riot.lang.LangTurtleBase.expectEndOfTriplesTurtle(LangTurtleBase.java:264)
at
org.apache.jena.riot.lang.LangTurtle.expectEndOfTriples(LangTurtle.java:51)
at
org.apache.jena.riot.lang.LangTurtleBase.triples(LangTurtleBase.java:250)
at
org.apache.jena.riot.lang.LangTurtleBase.triplesSameSubject(LangTurtleBase.java:190)
at
org.apache.jena.riot.lang.LangTurtle.oneTopLevelElement(LangTurtle.java:46)
at
org.apache.jena.riot.lang.LangTurtleBase.runParser(LangTurtleBase.java:89)
at
org.apache.jena.riot.lang.LangBase.parse(LangBase.java:42)
at
org.apache.jena.riot.RDFParserRegistry$ReaderRIOTLang.read(RDFParserRegistry.java:176)
at
org.apache.jena.riot.RDFDataMgr.process(RDFDataMgr.java:861)
at
org.apache.jena.riot.RDFDataMgr.read(RDFDataMgr.java:259)
at
org.apache.jena.riot.RDFDataMgr.read(RDFDataMgr.java:233)
at
org.apache.jena.riot.RDFDataMgr.read(RDFDataMgr.java:223)
at
io.haylyn.atoz.TripleCount.main(TripleCount.java:31)
Lines 9873 of the ttl file plus a few more lines are
listed here:
<http://rdf.wwpdb.org/pdb/11BA/pdbx_struct_assembly_prop/1,ABSA_(A^2)>
a
PDBo:pdbx_struct_assembly_prop ;
PDBo:of_datablock
<http://rdf.wwpdb.org/pdb/11BA> ;
PDBo:pdbx_struct_assembly_prop.biol_id
"1" ;
PDBo:pdbx_struct_assembly_prop.type
"ABSA (A^2)" ;
PDBo:pdbx_struct_assembly_prop.value
"6120" .
Shouldn't I be able to read an RDF file that Jena itself
wrote? - Erich