Details
-
Bug
-
Status: Closed
-
Major
-
Resolution: Fixed
-
Jena 4.0.0
-
None
Description
Hi there,
I found out that the new jena 4.0.0 tdbloader(2) will throw an error and aborts if a URI uses an @ symbol is used, like <http://abc@def> which is valid afaik.
Jena 3.17.0 however doesn't throw the error.
Minimal Example:
<http://example.com/a> <http://example.com/p> <http://abc@def> .
Log 4.0.0
apache-jena-4.0.0/bin/tdbloader2 --loc TESTI example.nt 17:28:23 INFO -- TDB Bulk Loader Start 17:28:23 INFO Data Load Phase 17:28:23 INFO Got 1 data files to load 17:28:23 INFO Data file 1: .../example.nt 17:28:24 INFO loader :: Load: .../example.nt -- 2021/04/19 17:28:24 CEST 17:28:24 ERROR riot :: [line: 1, col: 47] Bad IRI: <http://abc@def> Code: 58/PROHIBITED_COMPONENT_PRESENT in USER: A component that is prohibited by the scheme is present. org.apache.jena.riot.RiotException: [line: 1, col: 47] Bad IRI: <http://abc@def> Code: 58/PROHIBITED_COMPONENT_PRESENT in USER: A component that is prohibited by the scheme is present. at org.apache.jena.riot.system.ErrorHandlerFactory$ErrorHandlerStd.error(ErrorHandlerFactory.java:146) at org.apache.jena.riot.system.ParserProfileStd.internalMakeIRI(ParserProfileStd.java:112) at org.apache.jena.riot.system.ParserProfileStd.resolveIRI(ParserProfileStd.java:85) at org.apache.jena.riot.system.ParserProfileStd.createURI(ParserProfileStd.java:187) at org.apache.jena.riot.system.ParserProfileStd.create(ParserProfileStd.java:259) at org.apache.jena.riot.lang.LangNTriples.tokenAsNode(LangNTriples.java:70) at org.apache.jena.riot.lang.LangNTuple.parseTriple(LangNTuple.java:109) at org.apache.jena.riot.lang.LangNTriples.parseOne(LangNTriples.java:61) at org.apache.jena.riot.lang.LangNTriples.runParser(LangNTriples.java:53) at org.apache.jena.riot.lang.LangBase.parse(LangBase.java:43) at org.apache.jena.riot.RDFParserRegistry$ReaderRIOTLang.read(RDFParserRegistry.java:184) at org.apache.jena.riot.RDFParser.read(RDFParser.java:357) at org.apache.jena.riot.RDFParser.parseURI(RDFParser.java:323) at org.apache.jena.riot.RDFParser.parse(RDFParser.java:298) at org.apache.jena.riot.RDFParserBuilder.parse(RDFParserBuilder.java:550) at org.apache.jena.tdb.store.bulkloader2.ProcNodeTableBuilder.exec(ProcNodeTableBuilder.java:78) at tdb.bulkloader2.CmdNodeTableBuilder.exec(CmdNodeTableBuilder.java:113) at org.apache.jena.cmd.CmdMain.mainMethod(CmdMain.java:92) at org.apache.jena.cmd.CmdMain.mainRun(CmdMain.java:58) at org.apache.jena.cmd.CmdMain.mainRun(CmdMain.java:45) at tdb.bulkloader2.CmdNodeTableBuilder.main(CmdNodeTableBuilder.java:61) 17:28:24 ERROR Failed during data phase
log 3.17.0
apache-jena-3.17.0/bin/tdbloader --loc TEST2 example.nt 17:26:29 INFO loader :: -- Start triples data phase 17:26:29 INFO loader :: ** Load empty triples table 17:26:29 INFO loader :: -- Start quads data phase 17:26:29 INFO loader :: ** Load empty quads table 17:26:29 INFO loader :: Load: example.nt -- 2021/04/19 17:26:29 CEST 17:26:29 INFO loader :: -- Finish triples data phase 17:26:29 INFO loader :: ** Data: 1 triples loaded in 0.04 seconds [Rate: 25.00 per second] 17:26:29 INFO loader :: -- Finish quads data phase 17:26:29 INFO loader :: -- Start triples index phase 17:26:29 INFO loader :: ** Index SPO->POS: 1 slots indexed 17:26:29 INFO loader :: ** Index SPO->OSP: 1 slots indexed in 0.00 seconds [Rate: 1,000.00 per second] 17:26:29 INFO loader :: -- Finish triples index phase 17:26:29 INFO loader :: ** 1 triples indexed in 0.00 seconds [Rate: 333.33 per second] 17:26:29 INFO loader :: -- Finish triples load 17:26:29 INFO loader :: ** Completed: 1 triples loaded in 0.05 seconds [Rate: 20.83 per second] 17:26:29 INFO loader :: -- Finish quads load