On 06/11/14 10:27, 이명진 wrote:
Thank you for your response, Andy Seaborne.

What happened?

I got:

http://ca.dbpedia.org/resource/Acanthogobius_flavimanus
http://ceb.dbpedia.org/resource/Acanthogobius_flavimanus
http://es.dbpedia.org/resource/Acanthogobius_flavimanus
http://ja.dbpedia.org/resource/マハゼ
http://nl.dbpedia.org/resource/Acanthogobius_flavimanus
http://sv.dbpedia.org/resource/Acanthogobius_flavimanus
http://war.dbpedia.org/resource/Acanthogobius_flavimanus
http://zh.dbpedia.org/resource/黃鰭刺鰕虎魚
http://www.wikidata.org/entity/Q1073434

Did my test code work well?

Just fine.

A difference is that the query prints as input, not with %-encoding.

If <http://ko.dbpedia.org/resource/%EB%AC%B8%EC%A0%88%EB%A7%9D%EB%91%91> were used, it would be re-encoded with each % as %25.

http://ko.dbpedia.org seems to have the resources in unencoded form.


But it does not still work in my computer.

Which version of Jena are you using (as far as I can remember, this shouldn't matter).

By the way, my system runs UTF-8 (I use Ubuntu):

LANG=en_GB.utf8




My code was developed in Eclipse.
I checked my Eclipse environment, but my Eclipse project was set UTF-8.

A useful check is display the file with another text editor.


You could try the query in reverse:

PREFIX owl: <http://www.w3.org/2002/07/owl#>
SELECT *
WHERE {
  ?x owl:sameAs <http://sv.dbpedia.org/resource/Acanthogobius_flavimanus> .
}

I get:

http://ko.dbpedia.org/resource/문절망둑

        Andy



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