On Mon, 2005-11-28 at 17:11 +0000, Matthew J. Dovey wrote:
> > > A cleaner version is:
> > >
> > > marc.245$a = "Smith"
> > > prox/unit=element/distance=0
> > > marc.245i1 = "4"
> > >
> I think that probably is the right way of doing it but not the most
> obvious of syntaxes. I wouldn't say "cleaner" as I think the relational
> modifier approach whilst it might be "wrong" in the CQL sense, is
> definitely "cleaner" on the eye (and slightly more intuitive).
First of all, I suggest that if the CQL requires proximity, and 'nobody'
implements proximity, then nobody will implement it as a relation
> The other problem with the above is that someone (e.g. me) is going to
> ask what other values of unit and distance are permisable in the above
> and what they mean
And someone, eg me, will refer you to the CQL documentation :)
> E.g. prox/unit=sentence/distance=0,
Sure. That means: Within the same sentence. I don't follow your
> Do we for instance interpret paragraph to mean within any 400 field if
> 400 is repeatable
No? You interpret paragraph as a paragraph of text? Just like it says
on the tin?
> Indeed is element the right unit here (to me I'd argue that element
> meant subfields whereas sentence meant the whole field?
Sentence is a sentence of text and is orthogonal to Element, as you can
have sentence, super-sentence and sub-sentence level elements. Each of
which you might wish to expose for proximity based searching.
> Would distance in this case mean nearby fields within the record as
> present in the database (in which the fields might not be ordered
> sequentially) or within fields with closeby MARC tag names? Is there a
> case for being able to do either?
No. If you search in marc.500a, then your element level is 500a
If you search in marc.500, then your element level is 500.
If you mix, then it's the more inclusive of the two operands.
marc.500a any bah prox/unit=element/distance=0 marc.500a any baz
Finds bah and baz in the same marc.500a field.
marc.500 any bah prox// marc.500 any baz
Finds bah and baz in the same marc.500 field, as a flat text.
marc.500 any bah prox// marc.500a any baz
Finds bah in 500, and baz in a $a subfield of the 500 that contained
Dr Robert Sanderson
Dept of Computer Science, University of Liverpool