Re: [FT] FTIgnoreOption

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
>&lt;nodeB&gt; ...  &lt;/nodeB&gt; phrase ..." where nodeB could contain any
>subtree after the word "phrase" or (iii) contains &lt;nodeB&gt; "some"
>&lt;nodeB&gt; ...  &lt;/nodeB&gt; "phrase" ...  &lt;/nodeB&gt; or contains &lt;nodeC&gt;
>"some" &lt;nodeB&gt; ...  &lt;/nodeB&gt; "phrase" ...  &lt;/nodeC&gt;.
>
>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