Hi, Sorry but in my last mail I gave a wrong information. The command works well. BTW, I also cut-paste the code and worked fine (NetBeans IDE) and I didn’t realize that the problem could be about charset.
Miguel > On 06 Nov 2014, at 10:15, Andy Seaborne <[email protected]> wrote: > > 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# >>>> <http://www.w3.org/2002/07/owl#>>\n" >>>> >>>> + "SELECT *\n" + "WHERE {\n" >>>> >>>> + " <http://ko.dbpedia.org/resource/문절망둑 >>>> <http://ko.dbpedia.org/resource/%EB%AC%B8%EC%A0%88%EB%A7%9D%EB%91%91>> >>>> 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# >>>> <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 >>>> <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
