Sorry Rob, if my question bothered.

I thought the problem is in my query and that is why I asked here.,

Regards

On Fri, Sep 1, 2017 at 6:36 PM, Rob Vesse <[email protected]> wrote:

> Sidra
>
> As I have said in the past on this list please do not forget you are using
> a programming language. You are free to implement your application however
> you see fit, this will involve you writing some code and making some design
> decisions. This list does not exist to write code for you. We will do our
> best to answer Jena specific questions and those related to specific
> technologies that Jena supports i.e. RDF, SPARQL etc but we are not a
> programming helpdesk.
>
> String manipulation is a basic task and Java contains substantial built-in
> functionality for this which you can use to achieve what both I and Lorenz
> have described. If you are struggling to do this then you should direct
> your questions to a general programming forum e.g. StackOverflow
>
> Rob
>
> On 01/09/2017 16:22, "Sidra shah" <[email protected]> wrote:
>
>     Hello Rob,
>
>     I have a string variable ss for string John kim, so when user enter
> name,
>     it is saved in ss. how can we then use  FILTER(REGEX(?name,
> “John|kim”, “i”)
>
>     Or, I just use two text boxes for first name and last name and then ?
>
>     FILTER(REGEX(?name, “firstname”, “i”) && REGEX(?name, “lastname”, “i”))
>
>
>     On Fri, Sep 1, 2017 at 6:12 PM, Rob Vesse <[email protected]>
> wrote:
>
>     > Really it depends on exactly what you want to do
>     >
>     > It is entirely possible to create a regular expression that looks
> for only
>     > a partial match, however you will have to implement logic in your
>     > application to convert the user provided search string into an
> appropriate
>     > regular expression for your use case.
>     >
>     > For example if you want any of the search words entered to be
> matched you
>     > might translate into the following:
>     >
>     >   FILTER(REGEX(?name, “John|kim”, “i”)
>     >
>     > Alternatively if you wanted all that search words to be matched you
> might
>     > do the following:
>     >
>     >   FILTER(REGEX(?name, “John”, “i”) && REGEX(?name, “kim”, “i”))
>     >
>     > However you have to do some work to decide how you want to translate
> the
>     > user search words into an appropriate regular expression.
>     >
>     > Rob
>     >
>     > On 01/09/2017 16:01, "Sidra shah" <[email protected]> wrote:
>     >
>     >     I am sorry Lorenz, but I do not understand
>     >
>     >     How to split the string by white space and then combine? I have
> no idea
>     >     about it, currently.
>     >
>     >     Could you please guide?
>     >
>     >     On Fri, Sep 1, 2017 at 5:30 PM, Lorenz Buehmann <
>     >     [email protected]> wrote:
>     >
>     >     > It should be clear that the REGEX "John kim" does not match the
>     > literal
>     >     > "John".
>     >     >
>     >     > Simply split the string by white space and combine this in
> your REGEX
>     >     >
>     >     >
>     >     > On 01.09.2017 15:31, Sidra shah wrote:
>     >     > > Hello Lorenz, thank you
>     >     > >
>     >     > > It matches now matches the name when some one enter opposite
> case
>     > like
>     >     > > john, John etc.
>     >     > >
>     >     > > But in my owl file, only first name is given i.e John and I
> want
>     > if some
>     >     > > one even type John kim, the query matches. The above query
>     > supposed to
>     >     > work
>     >     > > for it but it does not display the record when full name is
> typed.
>     >     > >
>     >     > > + "Filter regex(str(?name),'"+ss+"', 'i') . " // ss is java
>     > variable
>     >     > >
>     >     > > The properties in owl are like:
>     >     > >
>     >     > >  Publication   publishedBy   authors
>     >     > >  authors        authorname               someName  //not
> string
>     > literal,
>     >     > > plain
>     >     > >
>     >     > >
>     >     > >
>     >     > >
>     >     > >
>     >     > > On Fri, Sep 1, 2017 at 9:07 AM, Lorenz Buehmann <
>     >     > > [email protected]> wrote:
>     >     > >
>     >     > >> Jena version please.
>     >     > >>
>     >     > >> Show the other query please.
>     >     > >>
>     >     > >> Share some sample data please.
>     >     > >>
>     >     > >> Note, REGEX is case-sensitive, i.e.
>     >     > >>
>     >     > >> FILTER(regex(?name ,'john')) won't match the literal "John
> kim"
>     >     > >>
>     >     > >>
>     >     > >> As I don't know the data nor your query, I only know that
> the
>     > query
>     >     > >>
>     >     > >> SELECT  *
>     >     > >> WHERE
>     >     > >>   { ?x  mo:publishedBy  ?y ;
>     >     > >>         mo:authorname   ?name ;
>     >     > >>         rdfs:label      ?label
>     >     > >>     FILTER regex(str(?name), "john", "i")
>     >     > >>   }
>     >     > >>
>     >     > >> would match "John kim"
>     >     > >>
>     >     > >> On 31.08.2017 19:42, Sidra shah wrote:
>     >     > >>> Hello
>     >     > >>>
>     >     > >>> I used Filter query in Jena which will filter the query
> using a
>     > name in
>     >     > >>> text area. In my dataset, the name is John Kim but I want
> if a
>     > user
>     >     > enter
>     >     > >>> even John, it display the result. I use this query but it
> does
>     > not
>     >     > >> display.
>     >     > >>> select *  WHERE { ?x mo:publishedBy ?y.?x mo:authorname
> ?name. ?x
>     >     > >>> rdfs:label ?label .Filter regex(?name ,'John kim') . }
>     >     > >>>
>     >     > >>> the ?name is plain literal. The query works when I put the
> exact
>     > name
>     >     > in
>     >     > >>> the text area but not working when I enter first name or
> last
>     > name.
>     >     > >>>
>     >     > >>
>     >     >
>     >     >
>     >
>     >
>     >
>     >
>     >
>     >
>
>
>
>
>
>

Reply via email to