- From: Sihem Amer-Yahia <sihem@research.att.com>
- Date: Thu, 3 Mar 2005 21:49:00 -0500 (EST)
- To: andrew.cao@cisra.canon.com.au
- Cc: public-qt-comments@w3.org
Dear Andrew, > >Dear Sihem, >Thanks for your reply. > >The following expression: >(nodeA ftcontains "some phrase" without content ./nodeB) >says only ignore the children nodeB's of nodeA. In this case, will the >case (iii) still be considered a match? > This is still under discussion. Both semantics are being considered for now. I explained the most general one in my previous email. >The following expression: >(nodeA ftcontains "word" without content .//nodeB) >only searches a single word. In this case, would this be equivalent to: >(nodeA ftcontains "word") >? Or what is the semantics of a single word search with FTIgnoreOption >specified? > The 2 queries are equivalenet since it is a single word search. Ignoring content is a no-op in this context. >Regarding FT specification 3.2.8, should the query be written as: >/book[@number="1"] ftcontains "Testing" without content .//title >Or can it be written as: >/book[@number="1"] ftcontains "Testing" without content >/book[@number="1"]//title >? i.e. Does FTIgnoreOption require to use "." to specify the nodes to be >ignored? > The 2 queries are equivalenet since by definition, FTIgnoreOption ignores anything within the search context (i.e. in this case, /book[@number="1"]//title). Thanks, Sihem >Thanks, >Andrew > >Sihem Amer-Yahia wrote: > >>Dear Andrew, >> >>Thank you for your interest in the full-text draft. >> >> >> >>>Dear editors, >>> >>>Could someone provide further clarification of FTIgnoreOption? The >>>following expression: >>>(nodeA ftcontains "some phrase" without content nodeB) >>>Shall we ignore all the subtree rooted from nodeB or ignore only the >>>children text nodes that immediately contained by nodeB i.e. do we need >>>to promote the children element nodes of nodeB one level up? >>> >>> >> >>The expression above returns all nodeA's that (i) contain "some >>phrase" as a phrase (in a regular sense) or (ii) contains "... some >><nodeB> ... </nodeB> phrase ..." where nodeB could contain any >>subtree after the word "phrase" or (iii) contains <nodeB> "some" >><nodeB> ... </nodeB> "phrase" ... </nodeB> or contains <nodeC> >>"some" <nodeB> ... </nodeB> "phrase" ... </nodeC>. >> >>The last case is the trickiest to explain but the intuition is that if >>"some phrase" appears inside nodeA, even if it is in an ignored node >>nodeB and even if it requires to ignore some other nodeB, it should be >>treated as a match. So, even if the phrase appears inside an ignored >>nodeB, it should be considered as a match. >> >>In simpler words, "some phrase" is considered a match if it appears as >>is (which is the regular, traditional sense) or if it requires to >>ignore a nodeB no matter whether "some phrase" appears inside an >>ignored nodeB or not as long as the phrase is in the scope (subtree) >>of nodeA. So, this is done recursively and not just at the children >>level. >> >> >> >> >>>Can this detail be implementation-dependant? >>> >>> >>> >> >>No, the semantics of FTIgnoreOption should be the same across all >>implementations. >> >> >> >>>Also in FT specification 3.2.8, the example is: >>>/book[@number="1"] ftcontains "Testing" without content .//title >>>What does the context path "." mean? Should it be: >>>/book[@number="1" and . ftcontains "Testing" without content .//title] >>> >>>Or the previous example is correct and there is something special with >>>semantics of "... ftcontains ... without content ..."? >>> >>> >>> >> >>The two queries (ours and yours) are equivalent. Our qexample above is correct and that has to do with the semantics of >>ftcontains and not of FTIgnoreOption. >> >>/book[@number="1"] is an XQuery expression that returns all books that >>satify the predicate @number="1". Those books are then used by the >>subsequent ftcontains expression. >> >> >> >> >>>Thanks, >>> >>> >>> >>> >> >>Thanks, >>Sihem >> >> >> >> >>> >>> >> >> >> >> > >--------------030509040409030909040202 >Content-Type: text/html; charset=us-ascii >Content-Transfer-Encoding: 7bit > ><!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"> ><html> ><head> > <meta http-equiv="Content-Type" content="text/html;charset=ISO-8859-1"> > <title></title> ></head> ><body text="#000000" bgcolor="#ffffff"> >Dear Sihem,<br> >Thanks for your reply.<br> ><br> >The following expression:<br> >(nodeA ftcontains "some phrase" without content ./nodeB)<br> >says only ignore the children nodeB's of nodeA. In this case, will the >case (iii) still be considered a match?<br> ><br> >The following expression:<br> >(nodeA ftcontains "word" without content .//nodeB)<br> >only searches a single word. In this case, would this be equivalent to:<br> >(nodeA ftcontains "word")<br> >? Or what is the semantics of a single word search with FTIgnoreOption >specified?<br> ><br> >Regarding FT specification 3.2.8, should the query be written as:<br> >/book[@number="1"] ftcontains "Testing" without content .//title<br> >Or can it be written as:<br> >/book[@number="1"] ftcontains "Testing" without content >/book[@number="1"]//title<br> >? i.e. Does FTIgnoreOption require to use "." to specify the nodes to >be ignored?<br> ><br> >Thanks,<br> >Andrew<br> ><br> >Sihem Amer-Yahia wrote:<br> ><blockquote type="cite" > cite="mid200503031634.j23GYBAv7220119@chips.research.att.com"> > <pre wrap="">Dear Andrew, > >Thank you for your interest in the full-text draft. > > </pre> > <blockquote type="cite"> > <pre wrap=""> >Dear editors, > >Could someone provide further clarification of FTIgnoreOption? The >following expression: >(nodeA ftcontains "some phrase" without content nodeB) >Shall we ignore all the subtree rooted from nodeB or ignore only the >children text nodes that immediately contained by nodeB i.e. do we need >to promote the children element nodes of nodeB one level up? > </pre> > </blockquote> > <pre wrap=""><!----> >The expression above returns all nodeA's that (i) contain "some >phrase" as a phrase (in a regular sense) or (ii) contains "... some ><nodeB> ... </nodeB> phrase ..." where nodeB could contain any >subtree after the word "phrase" or (iii) contains <nodeB> "some" ><nodeB> ... </nodeB> "phrase" ... </nodeB> or contains <nodeC> >"some" <nodeB> ... </nodeB> "phrase" ... </nodeC>. > >The last case is the trickiest to explain but the intuition is that if >"some phrase" appears inside nodeA, even if it is in an ignored node >nodeB and even if it requires to ignore some other nodeB, it should be >treated as a match. So, even if the phrase appears inside an ignored >nodeB, it should be considered as a match. > >In simpler words, "some phrase" is considered a match if it appears as >is (which is the regular, traditional sense) or if it requires to >ignore a nodeB no matter whether "some phrase" appears inside an >ignored nodeB or not as long as the phrase is in the scope (subtree) >of nodeA. So, this is done recursively and not just at the children >level. > > > </pre> > <blockquote type="cite"> > <pre wrap="">Can this detail be implementation-dependant? > > </pre> > </blockquote> > <pre wrap=""><!----> >No, the semantics of FTIgnoreOption should be the same across all >implementations. > > </pre> > <blockquote type="cite"> > <pre wrap="">Also in FT specification 3.2.8, the example is: >/book[@number="1"] ftcontains "Testing" without content .//title >What does the context path "." mean? Should it be: >/book[@number="1" and . ftcontains "Testing" without content .//title] > >Or the previous example is correct and there is something special with >semantics of "... ftcontains ... without content ..."? > > </pre> > </blockquote> > <pre wrap=""><!----> >The two queries (ours and yours) are equivalent. Our qexample above is correct and that has to do with the semantics of >ftcontains and not of FTIgnoreOption. > >/book[@number="1"] is an XQuery expression that returns all books that >satify the predicate @number="1". Those books are then used by the >subsequent ftcontains expression. > > > </pre> > <blockquote type="cite"> > <pre wrap="">Thanks, > > > </pre> > </blockquote> > <pre wrap=""><!----> >Thanks, >Sihem > > > </pre> > <blockquote type="cite"> > <pre wrap=""> > </pre> > </blockquote> > <pre wrap=""><!----> > > </pre> ></blockquote> ></body> ></html> > >--------------030509040409030909040202-- > >
Received on Friday, 4 March 2005 03:26:58 UTC