Thank you Lorenz and sorry for late response, I was away.

I have just restrict the user input to just one name (first name) and for
time being, it works for me.

Regards

On Fri, Sep 1, 2017 at 10:21 PM, Lorenz Buehmann <
[email protected]> wrote:

> The problem is not in your query but in the application logic.
>
> You have to figure out what a user would enter in the text field of the
> UI. Indeed, a user could enter whole sentences, but you have to find a
> trade-off between what your application supports and its implementation
> complexity.
>
> Note, for those textual retrieval, people sometimes prefer to use IR
> engines. Jena of course also supports fulltext search via an extension
> of standard SPARQL [1]. Take this just as a comment, might be out of
> scope for your task. But again, that's your decision – don't make the
> project more complicated than necessary.
>
>
> [1] https://jena.apache.org/documentation/query/text-query.html
>
>
> On 01.09.2017 17:43, Sidra shah wrote:
> > 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