RE: [search-ws] proximity exclusion flag

From
LeVan,Ralph <>
Date
2008-09-18T14:36:06+00:00
ID
Thread
RE: [search-ws] proximity exclusion flag
Prox has always been a modifier on a Boolean in my
systems.  It is simply AND with extra qualifiers.  So, “fish
adj chips” is a subset of “fish and chips”.  I’d
represent it as something like “fish and/proxUnit=word,distance=1 chips”. 
Your problem case becomes “fish and/proxUnit=word,distance!=1 chip”.

 

It is absolutely NOT the case that “fish not/prox chips”
is a subset of “fish NOT chips”.  So, the not/prox should NOT
be a modifier on the NOT Boolean.

 

Ralph

 

 

From: Ray Denenberg,
Library of Congress [mailto:] 

Sent: Monday, September 08, 2008 5:14 PM

To: 

Subject: [search-ws] proximity exclusion flag

 

I've run
across a problem with our proximity "proposal" in the message I
posted last week, specifically:

----------------------------------------------------------------

-- Adding a boolean modifier 'prox' which acts the same as the current

boolean, however can be attached to either AND (the current style of

proximity) or  NOT for negative proximity.

Example:

* "fish and" not/prox chips

   ("fish and" followed by anything other than chips)

---------------------------------------

The problem
is, I don't see how you can add proximity modifiers: if you put a slash after
prox above, how do you know whether the modifier following the slash is a
boolean modifier (modifying NOT) or a "modifier modifier" (modifying
PROX).  

('m trying
to come up with an example for the PPT I'm preparing, for the OGC meeting,
something along the lines of "find cities with name 'washington' not
within 50 miles of a city with name 'baltimore' ".)

Back up and
recall (nearly 20 years ago) that we had this conversation for Z39.50 as
reflected in:

http://www.loc.gov/z3950/agency/markup/09.html

--------------------------------------------------------

3.7.2.1 The
Proximity Test

The proximity test, ProxTest, includes a Distance, Relation, Unit, and two
boolean flags: Ordered and Exclusion. 

 
Distance:
     Difference between the ordinal positional values of the two operands.
     (e.g., if unit is 'paragraph,' distance of zero means "same
     paragraph".) Distance is never negative.

 
Relation:
     LessThan, LessThanOrEqual, Equal, GreaterThanOrEqual, GreaterThan, or
     NotEqual.

 
Unit:
     Character, Word, Sentence, Paragraph, Section, Chapter, Document, Element,
     Subelement, ElementType, Byte, or a privately defined unit.

 
Ordered
     flag: if set, the test is for "right" proximity only (the left
     ordinal must not exceed the right ordinal and Distance is compared with
     the difference between the right and left ordinals); otherwise, the test
     is for "right" or "left" proximity. (Distance is
     compared with the absolute value of the difference between the left and
     right ordinals.)

 
Exclusion
     flag: if set, "not" is to be applied to the operation (for
     example if the test with Exclusion flag 'off' is "'cat' within 5
     words of 'hat'," then the same test with Exclusion flag 'on' is
     "'cat' not within 5 words of 'hat'").

---------------------------------------

 

In
other words, in Z39.50 we have an exclusion flag for this purpose, which we
don't have in CQL.   (Thanks to Ralph, who first articulated the
distinction. I still remember, after all these years.  Or was it Bob
Waldstein.  Oh well. Many Mark Hinnebusch.)  So I think that
rather than changing proximity from a boolean to a boolean modifier, maybe we
should just add this "exclusion" flag. 

 

Anyone
agree with me on this?

 

--Ray