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