You are viewing a plain text version of this content. The canonical link for it is here.
Posted to users@jena.apache.org by tina sani <ti...@gmail.com> on 2016/11/01 16:01:42 UTC

Use variable in SPARQL query

Hello.

How can I use a Java variable in the SPARQL query.
?emp rdf:type ?SomeVariable

I want rdf:type of Managers and Technicals while these two values(Managers
and Technicals) are in my Java variable: employee.

So I need something like:

?emp rdf:type "employee"

Regards

Re: Use variable in SPARQL query

Posted by Claude Warren <cl...@xenei.com>.
You can do the substitution quite easily using the querybuilder package.
It will let you build a query like

?emp rdf:type ?empType

and then bind ?empType to your java variable value.

Claude

On Tue, Nov 1, 2016 at 5:21 PM, Andy Seaborne <an...@apache.org> wrote:

> Try and see what happens.
>
> It won't work but you can the see the results SPARQL syntax error.
>
>         Andy
>
>
> On 01/11/16 16:54, tina sani wrote:
>
>> Will simply putting a variable inside a query work?
>>
>> {?emp rdf:type "+employee+"}";
>>
>> On Tue, Nov 1, 2016 at 6:13 PM, lookman sanni <lo...@gmail.com>
>> wrote:
>>
>> Hi Tina,
>>>
>>> You can have your query stored in a composed java string (e.g. String
>>> query
>>> = "Select blablabla where { ?emp rdf:type " + someJavaVariable + "}"
>>>
>>> Hope that helps
>>> Le 1 nov. 2016 17:02, "tina sani" <ti...@gmail.com> a écrit :
>>>
>>> Hello.
>>>>
>>>> How can I use a Java variable in the SPARQL query.
>>>> ?emp rdf:type ?SomeVariable
>>>>
>>>> I want rdf:type of Managers and Technicals while these two
>>>>
>>> values(Managers
>>>
>>>> and Technicals) are in my Java variable: employee.
>>>>
>>>> So I need something like:
>>>>
>>>> ?emp rdf:type "employee"
>>>>
>>>> Regards
>>>>
>>>>
>>>
>>


-- 
I like: Like Like - The likeliest place on the web
<http://like-like.xenei.com>
LinkedIn: http://www.linkedin.com/in/claudewarren

Re: Use variable in SPARQL query

Posted by Andy Seaborne <an...@apache.org>.
Try and see what happens.

It won't work but you can the see the results SPARQL syntax error.

	Andy

On 01/11/16 16:54, tina sani wrote:
> Will simply putting a variable inside a query work?
>
> {?emp rdf:type "+employee+"}";
>
> On Tue, Nov 1, 2016 at 6:13 PM, lookman sanni <lo...@gmail.com> wrote:
>
>> Hi Tina,
>>
>> You can have your query stored in a composed java string (e.g. String query
>> = "Select blablabla where { ?emp rdf:type " + someJavaVariable + "}"
>>
>> Hope that helps
>> Le 1 nov. 2016 17:02, "tina sani" <ti...@gmail.com> a �crit :
>>
>>> Hello.
>>>
>>> How can I use a Java variable in the SPARQL query.
>>> ?emp rdf:type ?SomeVariable
>>>
>>> I want rdf:type of Managers and Technicals while these two
>> values(Managers
>>> and Technicals) are in my Java variable: employee.
>>>
>>> So I need something like:
>>>
>>> ?emp rdf:type "employee"
>>>
>>> Regards
>>>
>>
>

Re: Use variable in SPARQL query

Posted by Lorenz Buehmann <bu...@informatik.uni-leipzig.de>.
On 02.11.2016 15:05, tina sani wrote:
> The value of employee is either Manager or Technical. When user enter
> Manager, I want the query to show instances of Manager class and when
> Technical, it will show instances of Technical class.

That is not a useful answer to my response.Please learn to provide
detailed information. What is the concrete value?

Is it the String "Manager"? Like

String employee = "Manager";

If so, your SPARQL query expects the URI of a class, do you understand
what I mean?

"Manager" is not a URI. And as I said, if you have the URI, you need to
put this in between '<' and '>'

> And yes, I have used all the prefixes with full URI in my query.
I don't understand what you're saying here. Either you use full URIs or
you use prefixed URIs and add the prefixes in the beginning of the
SPARQL query.
>
> On Wed, Nov 2, 2016 at 1:02 PM, Lorenz B. <
> buehmann@informatik.uni-leipzig.de> wrote:
>
>> WHAT is a concrete value of the variable 'employee'?
>>
>> And, full  URIs have to be put between '<' and '>'
>>
>>> Lorenz, this does not work for me:
>>>
>>> Select * where{?emp rdf:type "+employee+"}";
>>>
>>> employee variable is : String employee; have values Manager or Technical
>>> depend on user input.
>>>
>>> On Wed, Nov 2, 2016 at 10:48 AM, Lorenz B. <
>>> buehmann@informatik.uni-leipzig.de> wrote:
>>>
>>>> It should be clear that String concatenation calls the toString() method
>>>> of your object. We don't know how this is implemented in your code
>> though.
>>>>> Will simply putting a variable inside a query work?
>>>>>
>>>>> {?emp rdf:type "+employee+"}";
>>>>>
>>>>> On Tue, Nov 1, 2016 at 6:13 PM, lookman sanni <lo...@gmail.com>
>>>> wrote:
>>>>>> Hi Tina,
>>>>>>
>>>>>> You can have your query stored in a composed java string (e.g. String
>>>> query
>>>>>> = "Select blablabla where { ?emp rdf:type " + someJavaVariable + "}"
>>>>>>
>>>>>> Hope that helps
>>>>>> Le 1 nov. 2016 17:02, "tina sani" <ti...@gmail.com> a �crit :
>>>>>>
>>>>>>> Hello.
>>>>>>>
>>>>>>> How can I use a Java variable in the SPARQL query.
>>>>>>> ?emp rdf:type ?SomeVariable
>>>>>>>
>>>>>>> I want rdf:type of Managers and Technicals while these two
>>>>>> values(Managers
>>>>>>> and Technicals) are in my Java variable: employee.
>>>>>>>
>>>>>>> So I need something like:
>>>>>>>
>>>>>>> ?emp rdf:type "employee"
>>>>>>>
>>>>>>> Regards
>>>>>>>
>>>> --
>>>> Lorenz B�hmann
>>>> AKSW group, University of Leipzig
>>>> Group: http://aksw.org - semantic web research center
>>>>
>>>>
>> --
>> Lorenz B�hmann
>> AKSW group, University of Leipzig
>> Group: http://aksw.org - semantic web research center
>>
>>


Re: Use variable in SPARQL query

Posted by tina sani <ti...@gmail.com>.
The value of employee is either Manager or Technical. When user enter
Manager, I want the query to show instances of Manager class and when
Technical, it will show instances of Technical class.
And yes, I have used all the prefixes with full URI in my query.

On Wed, Nov 2, 2016 at 1:02 PM, Lorenz B. <
buehmann@informatik.uni-leipzig.de> wrote:

> WHAT is a concrete value of the variable 'employee'?
>
> And, full  URIs have to be put between '<' and '>'
>
> > Lorenz, this does not work for me:
> >
> > Select * where{?emp rdf:type "+employee+"}";
> >
> > employee variable is : String employee; have values Manager or Technical
> > depend on user input.
> >
> > On Wed, Nov 2, 2016 at 10:48 AM, Lorenz B. <
> > buehmann@informatik.uni-leipzig.de> wrote:
> >
> >> It should be clear that String concatenation calls the toString() method
> >> of your object. We don't know how this is implemented in your code
> though.
> >>
> >>> Will simply putting a variable inside a query work?
> >>>
> >>> {?emp rdf:type "+employee+"}";
> >>>
> >>> On Tue, Nov 1, 2016 at 6:13 PM, lookman sanni <lo...@gmail.com>
> >> wrote:
> >>>> Hi Tina,
> >>>>
> >>>> You can have your query stored in a composed java string (e.g. String
> >> query
> >>>> = "Select blablabla where { ?emp rdf:type " + someJavaVariable + "}"
> >>>>
> >>>> Hope that helps
> >>>> Le 1 nov. 2016 17:02, "tina sani" <ti...@gmail.com> a écrit :
> >>>>
> >>>>> Hello.
> >>>>>
> >>>>> How can I use a Java variable in the SPARQL query.
> >>>>> ?emp rdf:type ?SomeVariable
> >>>>>
> >>>>> I want rdf:type of Managers and Technicals while these two
> >>>> values(Managers
> >>>>> and Technicals) are in my Java variable: employee.
> >>>>>
> >>>>> So I need something like:
> >>>>>
> >>>>> ?emp rdf:type "employee"
> >>>>>
> >>>>> Regards
> >>>>>
> >> --
> >> Lorenz Bühmann
> >> AKSW group, University of Leipzig
> >> Group: http://aksw.org - semantic web research center
> >>
> >>
> --
> Lorenz Bühmann
> AKSW group, University of Leipzig
> Group: http://aksw.org - semantic web research center
>
>

Re: Use variable in SPARQL query

Posted by "Lorenz B." <bu...@informatik.uni-leipzig.de>.
WHAT is a concrete value of the variable 'employee'?

And, full  URIs have to be put between '<' and '>'

> Lorenz, this does not work for me:
>
> Select * where{?emp rdf:type "+employee+"}";
>
> employee variable is : String employee; have values Manager or Technical
> depend on user input.
>
> On Wed, Nov 2, 2016 at 10:48 AM, Lorenz B. <
> buehmann@informatik.uni-leipzig.de> wrote:
>
>> It should be clear that String concatenation calls the toString() method
>> of your object. We don't know how this is implemented in your code though.
>>
>>> Will simply putting a variable inside a query work?
>>>
>>> {?emp rdf:type "+employee+"}";
>>>
>>> On Tue, Nov 1, 2016 at 6:13 PM, lookman sanni <lo...@gmail.com>
>> wrote:
>>>> Hi Tina,
>>>>
>>>> You can have your query stored in a composed java string (e.g. String
>> query
>>>> = "Select blablabla where { ?emp rdf:type " + someJavaVariable + "}"
>>>>
>>>> Hope that helps
>>>> Le 1 nov. 2016 17:02, "tina sani" <ti...@gmail.com> a �crit :
>>>>
>>>>> Hello.
>>>>>
>>>>> How can I use a Java variable in the SPARQL query.
>>>>> ?emp rdf:type ?SomeVariable
>>>>>
>>>>> I want rdf:type of Managers and Technicals while these two
>>>> values(Managers
>>>>> and Technicals) are in my Java variable: employee.
>>>>>
>>>>> So I need something like:
>>>>>
>>>>> ?emp rdf:type "employee"
>>>>>
>>>>> Regards
>>>>>
>> --
>> Lorenz B�hmann
>> AKSW group, University of Leipzig
>> Group: http://aksw.org - semantic web research center
>>
>>
-- 
Lorenz B�hmann
AKSW group, University of Leipzig
Group: http://aksw.org - semantic web research center


Re: Use variable in SPARQL query

Posted by tina sani <ti...@gmail.com>.
Lorenz, this does not work for me:

Select * where{?emp rdf:type "+employee+"}";

employee variable is : String employee; have values Manager or Technical
depend on user input.

On Wed, Nov 2, 2016 at 10:48 AM, Lorenz B. <
buehmann@informatik.uni-leipzig.de> wrote:

> It should be clear that String concatenation calls the toString() method
> of your object. We don't know how this is implemented in your code though.
>
> > Will simply putting a variable inside a query work?
> >
> > {?emp rdf:type "+employee+"}";
> >
> > On Tue, Nov 1, 2016 at 6:13 PM, lookman sanni <lo...@gmail.com>
> wrote:
> >
> >> Hi Tina,
> >>
> >> You can have your query stored in a composed java string (e.g. String
> query
> >> = "Select blablabla where { ?emp rdf:type " + someJavaVariable + "}"
> >>
> >> Hope that helps
> >> Le 1 nov. 2016 17:02, "tina sani" <ti...@gmail.com> a écrit :
> >>
> >>> Hello.
> >>>
> >>> How can I use a Java variable in the SPARQL query.
> >>> ?emp rdf:type ?SomeVariable
> >>>
> >>> I want rdf:type of Managers and Technicals while these two
> >> values(Managers
> >>> and Technicals) are in my Java variable: employee.
> >>>
> >>> So I need something like:
> >>>
> >>> ?emp rdf:type "employee"
> >>>
> >>> Regards
> >>>
> --
> Lorenz Bühmann
> AKSW group, University of Leipzig
> Group: http://aksw.org - semantic web research center
>
>

Re: Use variable in SPARQL query

Posted by "Lorenz B." <bu...@informatik.uni-leipzig.de>.
It should be clear that String concatenation calls the toString() method
of your object. We don't know how this is implemented in your code though.

> Will simply putting a variable inside a query work?
>
> {?emp rdf:type "+employee+"}";
>
> On Tue, Nov 1, 2016 at 6:13 PM, lookman sanni <lo...@gmail.com> wrote:
>
>> Hi Tina,
>>
>> You can have your query stored in a composed java string (e.g. String query
>> = "Select blablabla where { ?emp rdf:type " + someJavaVariable + "}"
>>
>> Hope that helps
>> Le 1 nov. 2016 17:02, "tina sani" <ti...@gmail.com> a �crit :
>>
>>> Hello.
>>>
>>> How can I use a Java variable in the SPARQL query.
>>> ?emp rdf:type ?SomeVariable
>>>
>>> I want rdf:type of Managers and Technicals while these two
>> values(Managers
>>> and Technicals) are in my Java variable: employee.
>>>
>>> So I need something like:
>>>
>>> ?emp rdf:type "employee"
>>>
>>> Regards
>>>
-- 
Lorenz B�hmann
AKSW group, University of Leipzig
Group: http://aksw.org - semantic web research center


Re: Use variable in SPARQL query

Posted by tina sani <ti...@gmail.com>.
Will simply putting a variable inside a query work?

{?emp rdf:type "+employee+"}";

On Tue, Nov 1, 2016 at 6:13 PM, lookman sanni <lo...@gmail.com> wrote:

> Hi Tina,
>
> You can have your query stored in a composed java string (e.g. String query
> = "Select blablabla where { ?emp rdf:type " + someJavaVariable + "}"
>
> Hope that helps
> Le 1 nov. 2016 17:02, "tina sani" <ti...@gmail.com> a écrit :
>
> > Hello.
> >
> > How can I use a Java variable in the SPARQL query.
> > ?emp rdf:type ?SomeVariable
> >
> > I want rdf:type of Managers and Technicals while these two
> values(Managers
> > and Technicals) are in my Java variable: employee.
> >
> > So I need something like:
> >
> > ?emp rdf:type "employee"
> >
> > Regards
> >
>

Re: Use variable in SPARQL query

Posted by Martynas Jusevičius <ma...@graphity.org>.
A safer way would be to use ParameterizedSparqlString:
https://jena.apache.org/documentation/javadoc/arq/org/apache/jena/query/ParameterizedSparqlString.html

On Tue, Nov 1, 2016 at 5:13 PM, lookman sanni <lo...@gmail.com> wrote:
> Hi Tina,
>
> You can have your query stored in a composed java string (e.g. String query
> = "Select blablabla where { ?emp rdf:type " + someJavaVariable + "}"
>
> Hope that helps
> Le 1 nov. 2016 17:02, "tina sani" <ti...@gmail.com> a écrit :
>
>> Hello.
>>
>> How can I use a Java variable in the SPARQL query.
>> ?emp rdf:type ?SomeVariable
>>
>> I want rdf:type of Managers and Technicals while these two values(Managers
>> and Technicals) are in my Java variable: employee.
>>
>> So I need something like:
>>
>> ?emp rdf:type "employee"
>>
>> Regards
>>

Re: Use variable in SPARQL query

Posted by lookman sanni <lo...@gmail.com>.
Hi Tina,

You can have your query stored in a composed java string (e.g. String query
= "Select blablabla where { ?emp rdf:type " + someJavaVariable + "}"

Hope that helps
Le 1 nov. 2016 17:02, "tina sani" <ti...@gmail.com> a écrit :

> Hello.
>
> How can I use a Java variable in the SPARQL query.
> ?emp rdf:type ?SomeVariable
>
> I want rdf:type of Managers and Technicals while these two values(Managers
> and Technicals) are in my Java variable: employee.
>
> So I need something like:
>
> ?emp rdf:type "employee"
>
> Regards
>