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