There is, however, a possible improvement in Jena parser.
It could skip over the faulty triple, and output a non empty graph with the
correct one.

Since it should also report the faulty input, I guess this would be in
another new method.

I guess also that writing a fault tolerant parser is not easy ...


2017-01-19 11:23 GMT+01:00 Jean-Marc Vanel <[email protected]>:

> Vielen Dank Lorenz
>
> Thanks for the accurate diagnosis and the bug report to Virtuoso.
>
> I was aware of the issue;
> I was testing from my semantic_forms application,
> were the exception catching has gone wrong recently (and Scala language
> does not require to catch exceptions).
>
>
>
> 2017-01-19 10:05 GMT+01:00 Lorenz B. <[email protected]>:
>
>> Hi,
>>
>> can you clarify what doesn't work?
>>
>> I tried your example and it would work, but I'm getting a parse
>> exception because DBpedia (resp. Virtuoso) still returns illegal data:
>>
>>    Graph g = RDFDataMgr.loadGraph("http://dbpedia.org/resource/Rome";);
>>    System.out.println(g.size());
>>
>>
>> [line: 1863, col: 13] Failed to find a prefix name or keyword:
>> –(8211;0x2013)
>> Exception in thread "main" org.apache.jena.riot.RiotException: [line:
>> 1863, col: 13] Failed to find a prefix name or keyword: –(8211;0x2013)
>>     at
>> org.apache.jena.riot.system.ErrorHandlerFactory$ErrorHandler
>> Std.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.LangTurtleBase.triples(LangTurtleBase.java:248)
>>     at
>> org.apache.jena.riot.lang.LangTurtleBase.triplesSameSubject(
>> LangTurtleBase.java:190)
>>     at
>> org.apache.jena.riot.lang.LangTurtle.oneTopLevelElement(Lang
>> Turtle.java:46)
>>     at
>> org.apache.jena.riot.lang.LangTurtleBase.runParser(LangTurtl
>> eBase.java:89)
>>     at org.apache.jena.riot.lang.LangBase.parse(LangBase.java:42)
>>     at
>> org.apache.jena.riot.RDFParserRegistry$ReaderRIOTLang.read(R
>> DFParserRegistry.java:179)
>>     at org.apache.jena.riot.RDFDataMgr.process(RDFDataMgr.java:861)
>>     at org.apache.jena.riot.RDFDataMgr.parse(RDFDataMgr.java:667)
>>     at org.apache.jena.riot.RDFDataMgr.read(RDFDataMgr.java:212)
>>     at org.apache.jena.riot.RDFDataMgr.read(RDFDataMgr.java:105)
>>     at org.apache.jena.riot.RDFDataMgr.loadGraph(RDFDataMgr.java:346)
>>
>>
>>
>>
>> If there is no parsing error (e.g.http://dbpedia.org/resource/Mars works
>> for me)  the result is as expected:
>>
>>
>>    Graph g = RDFDataMgr.loadGraph("http://dbpedia.org/resource/Mars";);
>>    System.out.println(g.size());
>>
>>    Output: 347
>>
>>
>> The issue was already reported by me, see [1], and [2]
>>
>> [1] https://github.com/openlink/virtuoso-opensource/issues/567
>> [2] https://github.com/openlink/virtuoso-opensource/issues/569
>>
>>
>>
>> Kind regards,
>> Lorenz
>>
>> > Reading a dbPedia resource with e.g. RDFDataMgr.loadGraph() does not
>> > currently work (it used to work with Jena 3.1.1 ).
>> > Apparently this is because of the 303 redirection.
>> > Is there another call in Jena API to handle redirections and accepting
>> RDF
>> > MIME types ?
>> >
>> > wget --save-headers --header='Accept: application/rdf+xml'
>> > http://dbpedia.org/resource/Rome
>> > --2017-01-19 09:30:08--  http://dbpedia.org/resource/Rome
>> > Résolution de dbpedia.org (dbpedia.org)… 194.109.129.58
>> > Connexion à dbpedia.org (dbpedia.org)|194.109.129.58|:80… connecté.
>> > requête HTTP transmise, en attente de la réponse… *303 See Other*
>> > Emplacement : http://dbpedia.org/data/Rome.xml [suivant]
>> > --2017-01-19 09:30:08--  http://dbpedia.org/data/Rome.xml
>> > Réutilisation de la connexion existante à dbpedia.org:80.
>> > requête HTTP transmise, en attente de la réponse… 200 OK
>> > Taille : 1003627 (980K) [application/rdf+xml]
>> > Enregistre : «Rome.2»
>> >
>> > less Rome.2
>> > HTTP/1.1 200 OK
>> > Date: Thu, 19 Jan 2017 08:30:08 GMT
>> > Content-Type: application/rdf+xml; charset=UTF-8
>> > Content-Length: 1003627
>> > Connection: keep-alive
>> > Vary: Accept-Encoding
>> > Server: Virtuoso/07.20.3217 (Linux) i686-generic-linux-glibc212-64  VDB
>> > Expires: Thu, 26 Jan 2017 08:30:08 GMT
>> > Link: <http://creativecommons.org/licenses/by-sa/3.0/>;rel="license",<
>> > http://dbpedia.org/data/Rome.n3>; rel="alternate"; type="text/n3";
>> > title="Structured Descriptor Document (N3/Turtle format)", <
>> > http://dbpedia.org/data/Rome.json>; rel="alternate";
>> > type="application/json"; title="Structured Descriptor Document (RDF/JSON
>> > format)", <http://dbpedia.org/data/Rome.atom>; rel="alternate";
>> > type="application/atom+xml"; title="OData (Atom+Feed format)", <
>> > http://dbpedia.org/data/Rome.jsod>; rel="alternate";
>> > type="application/odata+json"; title="OData (JSON format)", <
>> > http://dbpedia.org/page/Rome>; rel="alternate"; type="text/html";
>> > title="XHTML+RDFa", <http://dbpedia.org/resource/Rome>; rel="
>> > http://xmlns.com/foaf/0.1/primaryTopic";, <http://dbpedia.org/resource/R
>> ome>;
>> > rev="describedby", <
>> > http://mementoarchive.lanl.gov/dbpedia/timegate/http://dbped
>> ia.org/data/Rome.xml>;
>> > rel="timegate"
>> > X-SPARQL-default-graph: http://dbpedia.org
>> > Cache-Control: max-age=604800
>> > Access-Control-Allow-Origin: *
>> > Access-Control-Allow-Credentials: true
>> > Access-Control-Allow-Methods: GET, POST, OPTIONS
>> > Access-Control-Allow-Headers:
>> > DNT,X-CustomHeader,Keep-Alive,User-Agent,X-Requested-With,If
>> -Modified-Since,Cache-Control,Content-Type,Accept-Encoding
>> > Accept-Ranges: bytes
>> >
>> > <?xml version="1.0" encoding="utf-8" ?>
>> > <rdf:RDF
>> >         xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#";
>> > ...
>> >
>> --
>> Lorenz Bühmann
>> AKSW group, University of Leipzig
>> Group: http://aksw.org - semantic web research center
>>
>>
>
>
> --
> Jean-Marc Vanel
> Profil: http://163.172.179.125:9111/display?displayuri=http%3A%2F%
> 2Fjmvanel.free.fr%2Fjmv.rdf%23me
> Déductions SARL - Consulting, services, training,
> Rule-based programming, Semantic Web
> +33 (0)6 89 16 29 52 <+33%206%2089%2016%2029%2052>
> Twitter: @jmvanel , @jmvanel_fr ; chat: irc://irc.freenode.net#eulergui
>



-- 
Jean-Marc Vanel
Profil:
http://163.172.179.125:9111/display?displayuri=http%3A%2F%2Fjmvanel.free.fr%2Fjmv.rdf%23me
Déductions SARL - Consulting, services, training,
Rule-based programming, Semantic Web
+33 (0)6 89 16 29 52
Twitter: @jmvanel , @jmvanel_fr ; chat: irc://irc.freenode.net#eulergui

Reply via email to