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 = ""
> 
>                       + "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