query bug

Danielle et jean Thierry-Mieg mieg at kaa.crbm.cnrs-mop.fr
Sat Sep 21 06:11:31 EST 1996


The proposed BNF stress that:

1) Find all sequences that are on more than one chromosome map.  

SELECT *
FROM CLASS Sequence
WHERE COUNT(m FROM .Map m WHERE m = "Chr*") > 1

This search can not be done just now.
*********** true, a bug in the code, i try to fix it !

the correct present syntax is
FIND Sequence ; COUNT { FOLLOW Map chr* } > 1

note the {} casting the inside FOLLOW Map chr* to an embedded query

***
this query does NOT work in distributed 4.3
i have not tested deeper recursions with several embeded {{ }}
but the present syntax allows that in principle

finally, there is a parsing problem, semicolumns embeded inside the
{} arere allowed by the syntax but do break the parser

********
what i am aiming at is that one should distinguish 2 concepts
a) the bnf syntax
b) bugs in the implementations

that is, on this particular case, the new query is not better
but an implementation bug was noticed

*******
As long as the expected result of the query is just a set of
objects, it is not clear that the proposed system has real
superiority, i think it is less concise and no more expressive

however, there is a big advantage when we come to tables,
I was never able to write down the BNF for the table maker, 
because i always thought it was too clumsy and I welcome
the notion of a unified query/table definition

my comments on the document by rd and weisman is:
  some little details of style
  an interogation about casting
i think explict casting should be allowed, so checking
of the query against the model would give much better
messages while compiling the query

finally i would prefer the syntax

WHERE
 p = Paper
 a = p->author

to the syntax
WHERE
 Paper p
 p.author a

and also would prefer class casting, possibly to subclasses

WHERE
 p = Paper
 a = (Prolific_author) p->a

******

PS:
 i got an empty result with the query
 FIND Sequence ; COUNT {FOLLOW Map chr*} > 1
but i think this is normal, but i did verify that the query
  FIND Sequence zk* ; COUNT {FOLLOW Subsequence *6} > 0
which has the same grammar, does yield the expected 44 answers in 
the nematode data distrib

Jean




More information about the Acedb mailing list