Thank you for your response, Andy Seaborne. What happened? Did my test code work well? But it does not still work in my computer.
My code was developed in Eclipse. I checked my Eclipse environment, but my Eclipse project was set UTF-8. -----Original Message----- From: Andy Seaborne [mailto:[email protected]] Sent: Thursday, November 06, 2014 7:16 PM To: [email protected] Subject: Re: Problem SPARQL query encoding Hi there, I tried you test code from your second message here and it worked for me, getting 9 results. Your first email was in Content-Type: text/plain; charset="ks_c_5601-1987" and displayed correctly so it is wrong for unicode. I switched to unicode display and it was wrong. Your second email was Content-Type: text/plain; charset="UTF-8" SPARQL is unicode (UTF-8 specifically). Miguel's email was UTF-8. Just to confuse things, when I cut&paste into Eclipse from your charset="ks_c_5601-1987" email, it does get converted to unicode. My guess is that the environment you wrote the example in is set to be a charset other than unicode. What environment are you writing your code in? Andy On 06/11/14 09:40, Miguel Bento Alves wrote: > Hi, > > you only can get the variables that are in Select clause. Try this and will > work: > > …. > String allSameAsQuery = "" > + "PREFIX owl: <http://www.w3.org/2002/07/owl#>\n" > + "SELECT ?x\n" + "WHERE {\n" > + " <http://ko.dbpedia.org/resource/문절망둑> owl:sameAs > ?x .\n" + > "}"; …. > > "SELECT ?x” instead of "SELECT *” > > Miguel > > >> On 06 Nov 2014, at 09:29, 이명진 <[email protected]> wrote: >> >> Thank you for your response. >> >> My question is that my test code does not work if SPARQL query has Korean >> characters because query string is encoded. >> My test code is: >> >> String dbpediKoEndpoint = "http://ko.dbpedia.org/sparql"; >> String allSameAsQuery = "" >> + "PREFIX owl: <http://www.w3.org/2002/07/owl#>\n" >> + "SELECT *\n" + "WHERE {\n" >> + " <http://ko.dbpedia.org/resource/문절망둑> owl:sameAs >> ?x .\n" + "}"; >> Query query = QueryFactory.create(allSameAsQuery); >> QueryEngineHTTP httpQuery = new >> QueryEngineHTTP(dbpediKoEndpoint, query); >> ResultSet results = httpQuery.execSelect(); >> while (results.hasNext()) { >> QuerySolution solution = results.next(); >> String species = solution.getResource("?x").getURI(); >> System.out.println(species); >> } >> >> If you input SPARQL query like below on http://ko.dbpedia.org/sparql, you >> can get 9 resources. >> >> PREFIX owl: <http://www.w3.org/2002/07/owl#> >> >> SELECT * >> WHERE >> { <http://ko.dbpedia.org/resource/문절망둑> owl:sameAs ?x } >> >> This query is the same as SPARQL query in my test code. >> Thank you. >> >> Sincerely yours, >> Dr. Myungjin Lee >> >> >> -----Original Message----- >> From: Miguel Bento Alves [mailto:[email protected]] >> Sent: Thursday, November 06, 2014 5:24 PM >> To: [email protected] >> Subject: Re: Problem SPARQL query encoding >> >> Hi Myunjin, >> >> what you did is not enough. You need to create a QueryExecution and create a >> ResultSet to have a cursor pointing to the results. >> See the example below. >> >> Miguel >> >> >> String service = "http://dbpedia.org/sparql"; >> String query = "select distinct ?Concept where {[] a ?Concept} LIMIT >> 100"; >> QueryExecution qe >> = QueryExecutionFactory.sparqlService(service, >> query); >> >> ResultSet rs = qe.execSelect(); >> >> while(rs.hasNext()) { >> QuerySolution qs = rs.next(); >> System.out.println("Concept -> "+qs.get("Concept").toString()); >> } >> >>> On 06 Nov 2014, at 07:13, 이명진 <[email protected]> wrote: >>> >>> Hello. My name is Myunjin Lee. >>> >>> I am testing simple SPARQL query from Korean DBpedia SPARQL >>> endpoint(http://ko.dbpedia.org/sparql) using Jena. >>> >>> For that, I implemented simple test code, but I had URI encoding >>> problem of SPARQL query that has Korean character. >>> >>> >>> >>> My simple query is: >>> >>> >>> >>> String allSameAsQuery = ""Myunjin >>> >>> + "PREFIX owl: <http://www.w3.org/2002/07/owl#>\n" >>> >>> + "SELECT *\n" + "WHERE {\n" >>> >>> + " <http://ko.dbpedia.org/resource/문절망둑> >>> owl:sameAs ?x .\n" + "}"; >>> >>> >>> >>> And then, to process query, I construct Query object. >>> >>> >>> >>> Query query = QueryFactory.create(allSameAsQuery); >>> >>> System.out.println(query.toString()); >>> >>> >>> >>> Problem is that the query string is encoded when I make a Query object. >>> Print out result is: >>> >>> >>> >>> PREFIX owl: <http://www.w3.org/2002/07/owl#> >>> >>> >>> >>> SELECT * >>> >>> WHERE >>> >>> { >>> <http://ko.dbpedia.org/resource/%EB%AC%B8%EC%A0%88%EB%A7%9D%EB%91%91 >>> > >>> owl:sameAs ?x } >>> >>> >>> >>> So that, I cannot get any owl:sameAs resource. >>> >>> >>> >>> How can I figure out the encoding problem? Or is there any method >>> for my problem? >>> >>> Thank for your help. >>> >>> >>> >>> Sincerely yours, >>> >>> Dr. Myungjin Lee >>> >> >> >
