On Mon, 2005-11-28 at 18:12 +0000, Matthew J. Dovey wrote:
> > >
> > And someone, eg me, will refer you to the CQL documentation :)
> It doesn't actually say what "paragraph", "sentence", "word" *mean* -
> however, I take it that these can only be used in a textual sense. So
> sentence and word have some meaning within a MARC context set, but
> paragraph doesn't really.
Sure it does.
500$a This is a paragraph note with two and three sentences. This is the
second sentence of the first paragraph\n\nThis is the second paragraph
and third sentence.
> > Sure. That means: Within the same sentence. I don't follow your
> > objection?
> Mainly you don't normally associate sentences with MARC records
> (especially if searching in indicators!)
Sure. I wouldn't normally do it either, but someone asked what it
> Well then we have a problem - your last example works because 500$a is
> included within 500.
> However, in the case of
> marc.500:1 any 1 prox// marc.500a any baz
Correct. That's not a 'problem', it's an empty result set.
They are both within the same parent element (500) but not the same
We don't have parentElement or childElement as proximity levels because
primarily the record model is for flat records with elements. If a
profile were to add, say: marc.parentField as a prox unit, then you
could express it. Which is, of course, how CQL is supposed to work, so
it's good that it does.
> However, you've still not answered my original question which is what do
> non-zero values of distance mean in this case - i.e. what does
> marc.500:1 any 1 prox/unit=element/distance=2 marc.500a any baz
Exactly equal to two elements apart. The above query is not meaningful,
however given a different pre-supposed structure it could be.
For example, this XML:
<td> ... a ... </td>
<td>... b ...</td>
<td>... c ... </td>
would be matched by this query:
table.cell any a prox/unit=element/distance=2 table.cell c
Dr Robert Sanderson
Dept of Computer Science, University of Liverpool