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
>>>
>>
>>
>


Reply via email to