OASIS Mailing List ArchivesView the OASIS mailing list archive below
or browse/search using MarkMail.

 


Help: OASIS Mailing Lists Help | MarkMail Help

search-ws message

[Date Prev] | [Thread Prev] | [Thread Next] | [Date Next] -- [Date Index] | [Thread Index] | [List Home]


Subject: Re: [search-ws] proximity exclusion flag


The problem I was raising is strictly a syntax problem.

"fish not/prox chips"  is easy enough:  'fish' not near 'chips'.    But what
if you want "fish not within three words of chips"

"fish not/prox/distance=3 chips"

I'm saying this isn't parsable. You don't know if 'distance=3' modifies prox
or modifies not.   Or to put it more strongly, it probably (syntactically)
modifies not when it should (semantically) modify prox.

--Ray


----- Original Message ----- 
From: "LeVan,Ralph" <levan@oclc.org>
To: "Ray Denenberg, Library of Congress" <rden@loc.gov>;
<search-ws@lists.oasis-open.org>
Sent: Thursday, September 18, 2008 10:33 AM
Subject: 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:rden@loc.gov]
Sent: Monday, September 08, 2008 5:14 PM
To: search-ws@lists.oasis-open.org
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
<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










[Date Prev] | [Thread Prev] | [Thread Next] | [Date Next] -- [Date Index] | [Thread Index] | [List Home]