Thanks for the Java hints ! The line which goes wrong is :
ns:common.topic.description "\u05e0\u05e2\u05de\u05d9 \u05de\u05dc\u05d0\u05e0\u05d9 \u05d4\u05d0\u05e8\u05d9\u05e1 \u05d4\u05d9\u05d0 \u05e9\u05d7\u05e7\u05e0\u05d9\u05ea \u05e7\u05d5\u05dc\u05e0\u05d5\u05e2 \u05d0\u05e0\u05d2\u05dc\u05d9\u05d4, \u05de\u05d5\u05db\u05e8\u05ea \u05d1\u05d6\u05db\u05d5\u05ea \u05ea\u05e4\u05e7\u05d9\u05d3\u05d4 \u05db\u05d8\u05d9\u05d4 \u05d3\u05d0\u05dc\u05de\u05d4 \u05d1\u05e1\u05d3\u05e8\u05ea \u05e1\u05e8\u05d8\u05d9 "\[[u]]05e9\u05d5\u05d3\u05d3\u05d9 \u05d4\u05e7\u05d0\u05e8\u05d9\u05d1\u05d9\u05d9\u05dd"."@iw; I highlighted in blue surrounded by two brackets the character which throw the exception. Best. Julien. 2014-02-13 10:41 GMT+01:00 Andy Seaborne <a...@apache.org>: > On 13/02/14 09:10, Julien Plu wrote: > >> I changed a bit my code to add your advice but I still have an error : >> >> org.apache.jena.riot.RiotException: [line: 39, col: 467] Unknown char: >> \(92;0x005C) >> > > Problem with the conversion. > > Print out the converted string to see what the problem is. > > > >> Here the new code : >> >> try { >> URL serviceURL = new URL(" >> https://www.googleapis.com/freebase/v1/rdf/m/020c55"); >> URLConnection connection = serviceURL.openConnection(); >> Model model = ModelFactory.createDefaultModel(); >> BufferedReader bf = new BufferedReader(new >> InputStreamReader(connection.getInputStream())); >> String readline; >> StringBuilder sb = new StringBuilder(); >> while ((readline = bf.readLine()) != null) { >> sb.append(readline.replaceAll("\\\\x", "\\\\u00")+"\n"); >> } >> InputStream in = new ByteArrayInputStream(sb. >> toString().getBytes()); >> > > BAD > > Never use getBytes() for web data. > > 1/ Use a StringReader > 2/ If you must convert to bytes, set the charset to be "UTF-8" (or ideally > the charset for the ressponse). > > > model.read(in, null, "TTL"); >> } catch (Exception ex) { >> ex.printStackTrace(); >> } >> >> Best >> >> Julien. >> >> >> 2014-02-12 19:58 GMT+01:00 Andy Seaborne <a...@apache.org>: >> >> On 12/02/14 13:21, Julien Plu wrote: >>> >>> Yes I saw my error to lately sorry for disturbing you for nothing :-( >>>> >>>> By the way I can't pass immediately the URL to the model because the >>>> Turtle >>>> provided by this URI (and all the others from Freebase) have unicode >>>> characters encoded with "\x" so it's not valid Turtle, it's why I try to >>>> translate (or convert) these characher in "\u". >>>> >>>> But my method doesn't works, any idea of how to do this in Java ? >>>> >>>> >>> Best I can see is to get as string, fixup in Java (string replace), then >>> use a StringReader. It's not too big. >>> >>> At a wild untested guess, replace all \x with \u00. >>> >>> You need to tell it the syntax is "TTL" but you'd need to do that anyway >>> because the HTTP response is "Content-Type: text/plain; charset=UTF-8" >>> >>> HTTP/1.1 200 OK >>> Expires: Wed, 12 Feb 2014 18:50:21 GMT >>> Date: Wed, 12 Feb 2014 18:50:21 GMT >>> Cache-Control: private, max-age=0, must-revalidate, no-transform >>> ETag: "1CZZiDfFArqsKpzUgFQB2V9yilI/MW2d6bfo-oO8n5ovC7d5nFY2_AQ" >>> Content-Type: text/plain; charset=UTF-8 >>> X-Content-Type-Options: nosniff >>> X-Frame-Options: SAMEORIGIN >>> X-XSS-Protection: 1; mode=block >>> Content-Length: 32404 >>> Server: GSE >>> Alternate-Protocol: 443:quic >>> >>> Andy >>> >>> >>> >>> Best. >>>> >>>> Julien. >>>> >>>> >>>> 2014-02-12 14:06 GMT+01:00 Rob Vesse <rve...@dotnetrdf.org>: >>>> >>>> You are trying to read from the downloaded contents of the file >>>> directly >>>> >>>>> which is not going to work. The model.read() API takes in a name of a >>>>> file/URI to read or it takes in an InputStream. >>>>> >>>>> Simply pass your input stream directly to the read() call, or even >>>>> simpler >>>>> pass your URI to the read() call and let Jena handle the HTTP request >>>>> for >>>>> you. >>>>> >>>>> Rob >>>>> >>>>> On 12/02/2014 12:28, "Julien Plu" <julien....@redaction-developpez.com >>>>> > >>>>> wrote: >>>>> >>>>> Hi, >>>>> >>>>>> >>>>>> In getting the Turtle RDF from this URI : >>>>>> https://www.googleapis.com/freebase/v1/rdf/m/020c55 >>>>>> >>>>>> A RiotNotFoundException is thrown : >>>>>> >>>>>> org.apache.jena.riot.RiotNotFoundException: Not found: @prefix key: < >>>>>> http://rdf.freebase.com/key/>. >>>>>> @prefix ns: <http://rdf.freebase.com/ns/>. >>>>>> @prefix owl: <http://www.w3.org/2002/07/owl#>. >>>>>> @prefix rdfs: <http://www.w3.org/2000/01/rdf-schema#>. >>>>>> @prefix xsd: <http://www.w3.org/2001/XMLSchema#>. >>>>>> ..... >>>>>> ..... >>>>>> at org.apache.jena.riot.RDFDataMgr.open(RDFDataMgr.java:831) >>>>>> at org.apache.jena.riot.RDFDataMgr.open(RDFDataMgr.java:813) >>>>>> at org.apache.jena.riot.RDFDataMgr.parse(RDFDataMgr. >>>>>> java:684) >>>>>> at org.apache.jena.riot.RDFDataMgr.read(RDFDataMgr.java:208) >>>>>> at org.apache.jena.riot.RDFDataMgr.read(RDFDataMgr.java:181) >>>>>> at org.apache.jena.riot.RDFDataMgr.read(RDFDataMgr.java:119) >>>>>> at org.apache.jena.riot.RDFDataMgr.read(RDFDataMgr.java:110) >>>>>> at >>>>>> org.apache.jena.riot.adapters.RDFReaderRIOT.read( >>>>>> RDFReaderRIOT.java:77) >>>>>> at com.hp.hpl.jena.rdf.model.impl.ModelCom.read(ModelCom. >>>>>> java:259) >>>>>> at freebase.Test.main(Test.java:61) >>>>>> >>>>>> Here my code : >>>>>> >>>>>> try { >>>>>> URL serviceURL = new URL(" >>>>>> https://www.googleapis.com/freebase/v1/rdf/m/020c55"); >>>>>> Model model = ModelFactory.createDefaultModel(); >>>>>> BufferedReader in = new BufferedReader(new >>>>>> InputStreamReader(serviceURL.openStream(), "UTF-8")); >>>>>> String readline; >>>>>> StringBuilder sb = new StringBuilder(); >>>>>> while ((readline = in.readLine()) != null) { >>>>>> sb.append(readline+"\n"); >>>>>> } >>>>>> model.read(sb.toString(), "TTL"); >>>>>> } catch (Exception ex) { >>>>>> ex.printStackTrace(); >>>>>> } >>>>>> >>>>>> Any solution to solve this ? >>>>>> >>>>>> Thanks in advance. >>>>>> >>>>>> Best. >>>>>> >>>>>> Julien. >>>>>> >>>>>> >>>>> >>>>> >>>>> >>>>> >>>>> >>>>> >>>> >>> >> >