LISTSERV mailing list manager LISTSERV 16.0

Help for ZNG Archives


ZNG Archives

ZNG Archives


[email protected]


View:

Message:

[

First

|

Previous

|

Next

|

Last

]

By Topic:

[

First

|

Previous

|

Next

|

Last

]

By Author:

[

First

|

Previous

|

Next

|

Last

]

Font:

Proportional Font

LISTSERV Archives

LISTSERV Archives

ZNG Home

ZNG Home

ZNG  December 2003

ZNG December 2003

Subject:

Re: New proposed grammar for CQL (revised from Yacc grammar)

From:

Adam Dickmeiss <[log in to unmask]>

Reply-To:

Z39.50 Next-Generation Initiative

Date:

Mon, 1 Dec 2003 15:15:10 +0100

Content-Type:

text/plain

Parts/Attachments:

Parts/Attachments

text/plain (250 lines)

Robert Sanderson wrote:

>>>>What are people afraid of? Is it difficult to implement? Difficult to
>>>>understand? Difficult to describe?
>>>>
>>>>
>>>Yes to all of the above.
>>>
>>>
>
>
>
>>>dc.title = ( dc.author = fish )
>>>I see no reason to make that legal as dc.title is just a waste of time,
>>>making the query less readable for no gain.
>>>
>>>
>
>
>
>>You don't like the notion of default index. I see.
>>
>>
>
>If it's a protocol language:  The few bytes saved are not worth the
>   expense.
>
>
Agreed, except that wasn't the argument. The argument for having it is
to be able to offer a _subset_ of a CQL query to a mere user. The user
is able to enter his/her own query in a text field, but if he/she
doesn't explicitly enter a field themselves there is no way to direct
them to a _default_ index.

Without a default index you'll have to go through each term in the query
and add index/relation where omitted, skip booleans, other reserved
words.. It is extra work for the implementor that CQL could solve so
elegantly.

>If it's not a protocol language:  The human readablity/understandability
>   expense is not worth it either.
>
>
>
>
>>>dc.title = (fish or cat)
>>>
>>>
>
>
>
>>>I see no reason to make that legal either, as we can do:
>>>   dc.title any "fish cat"
>>>and have the same result for no gain.
>>>
>>>
>
>
>
>>   dc.title = title no cat
>>then..
>>
>>
>
>'not' can't be expressed in a single relation, correct, but the other
>three booleans can. Gain is very very small.  The same style of argument
>applies to a unary not operator, which we also don't have.
>(not title = cat)
>
>
Well well you can't express
   dc.title = (a and b) or c
either.

>To express (not title = cat), we need to fall back to ridiculous
>expressions like:
>  myset.matchesEverything=1 not title = cat
>
>Unary not: a) is understandable b) is simple and intuitive c) adds to the
>expressive power of the language as a whole.
>
>
I didn't mean to start a discussion of unary not, really.

>But we don't have it.  I put forwards that Unary not is a better candidate
>for inclusion than CQL structured search terms.  I'm not saying we should
>have it, I'm saying that we've rejected it /and/ it's a better candidate
>for inclusion.
>
>
>
>>>dc.title = (dc.author any fish or cat)
>>>Is just ugly.  Is cat searched in author or title?  Yes, I'm sure there's
>>>
>>>
>
>
>
>>I can't believe you don't know the scope of dc.author in the query
>>above. Does that mean you wouldn't whether 'cat' is author search below?
>>   dc.author any fish or cat
>>If yes (you're in doubt), then words fail me.
>>
>>
>
>author scopes only its own searchClause, title scopes cat.
>
>
Thank you.

>My point was that just quickly looking at it, it's hard to see the right
>answer and would be much worse in a long query.  For someone new, it's
>not obvious, especially as prefixes bind more tightly:
>
>  >foo=baz foo.title = (>foo=bar foo.title = bar or foo.title = bar)
>
>Yes it's understandable, but complex for no real gain.
>
>
>
>>>readily apparent.  To my partner (who's not technical at all, but
>>>understood Mike's CQL tutorial in one reading) it would be totally opaque.
>>>
>>>
>
>
>
>>I take it you partner didn't understand Mike's example
>>title = ((dinosaur and bird) or dinobird)
>>as well, then..
>>
>>
>
>I told her to ignore it as it's not official CQL, but she probably
>understood it. With no other indexes then it's understandable, it's when
>you add the new indexes, relation modifiers and such like that it becomes
>complicated.
>
>
The end-user doesn't have to understand the whole thing, but a user _may
enter Q in
p.freetext = Q

where Q is, say,
       keyword and author=jensen
or
       author=jensen and keyword


>
>
>
>>>It's harder to implement ...
>>>(you need to constantly check the type of 'term' when processing and
>>>resolve clauses/booleans/strings, rather than knowing they'll be strings.
>>>And then we need to decide the scope of term describing relation modifiers:
>>>
>>>
>
>
>
>>>dc.date any/iso.YYYYMMDD ( dc.author = "fish" and "20030224" )
>>>geo.location within/geo.box/geo.pointFormat  ( ... )
>>>
>>>
>
>You agree, I take it?
>
>
Having indexes that could be overriden in a different scope didn't pose
a problem in our parser implementation.

>
>
>
>>>... harder to understand ...
>>>(try describing dc.title = dc.author = fish to someone who's not
>>>technically inclined, rather than dc.author = fish and seeing which they
>>>grasp)
>>>... and harder to describe ...
>>>
>>>
>
>
>
>>I'm sure Mike will give it a try! Again, the fact that some queries are
>>difficult to read is not an excuse for limiting the ease of use for
>>building end-user interfaces (which will collect information from
>>various entries and build resulting CQL queries).
>>
>>
>
>
>I don't buy it.  Most interfaces will need some term processing or user
>education.  Apart from index = (a not b), everything else can be expressed
>in a single searchClause anyway.  Constructing queries is easier than
>understanding the rules, IMO!  One right way to do things, not many.
>
>
searchClause? Typo. If you accept that a searchClause may follow an
index that's OK. In particular a searchClause may be a '(' cqlQuery ')'
so recursive - and powerful again.

I guess you mean term or searchTerm. That's not flexible.

>
>
>
>>>I don't mind if Indexdata's parsers implement it, but I am not going to
>>>try and describe why such queries should be legal to end users of CQL,
>>>who are supposed to be not technical people.
>>>
>>>
>
>
>
>>Which (again) puts us to the issue for CQL. I thought it was a protocol
>>language rather than an end-user language. It is a language that aim for
>>easy_implementation_ of end-user interfaces...
>>
>>
>
>I thought it was a protocol /and/ end user language:
>
>"CQL's goal is to combine the simplicity and intuitiveness of google
>searching with the expressive power of the Z39.50 Type-1 query."
>
>This is not simple, nor intuitive, nor does it add any expression
>which couldn't previously have been described. Unary Not would better fill
>all of these goals, but has been rejected in the past.
>
>
So, since "not" operator is not there, you think indexes shouldn't be
powerful and flexible. You can do better than that:)

-- Adam

>Rob
>
>--
>      ,'/:.          Dr Robert Sanderson ([log in to unmask])
>    ,'-/::::.        http://www.o-r-g.org/~azaroth/
>  ,'--/::(@)::.      Special Collections and Archives, extension 3142
>,'---/::::::::::.    Nebmedes:  http://nebmedes.o-r-g.org:8000/
>____/:::::::::::::.
>I L L U M I N A T I
>
>
>

Top of Message | Previous Page | Permalink

Advanced Options


Options

Log In

Log In

Get Password

Get Password


Search Archives

Search Archives


Subscribe or Unsubscribe

Subscribe or Unsubscribe


Archives

July 2017
October 2016
July 2016
August 2014
February 2014
December 2013
November 2013
October 2013
February 2013
January 2013
October 2012
August 2012
April 2012
January 2012
October 2011
May 2011
April 2011
November 2010
October 2010
September 2010
July 2010
June 2010
May 2010
April 2010
March 2010
February 2010
January 2010
December 2009
October 2009
September 2009
August 2009
July 2009
May 2009
April 2009
March 2009
February 2009
December 2008
November 2008
October 2008
September 2008
August 2008
July 2008
June 2008
May 2008
April 2008
March 2008
February 2008
January 2008
December 2007
November 2007
October 2007
September 2007
August 2007
July 2007
June 2007
May 2007
April 2007
March 2007
January 2007
December 2006
November 2006
October 2006
September 2006
August 2006
July 2006
June 2006
May 2006
April 2006
March 2006
February 2006
January 2006
December 2005
November 2005
October 2005
September 2005
August 2005
July 2005
June 2005
May 2005
April 2005
March 2005
February 2005
January 2005
December 2004
November 2004
October 2004
September 2004
August 2004
July 2004
June 2004
May 2004
April 2004
March 2004
February 2004
January 2004
December 2003
November 2003
October 2003
September 2003
August 2003
July 2003
June 2003
May 2003
April 2003
March 2003
February 2003
January 2003
December 2002
November 2002
October 2002
September 2002
August 2002
July 2002
June 2002
May 2002
April 2002
March 2002
February 2002
January 2002
December 2001
November 2001
October 2001
September 2001
August 2001
July 2001

ATOM RSS1 RSS2



LISTSERV.LOC.GOV

CataList Email List Search Powered by the LISTSERV Email List Manager