Alexander Burger <a...@software-lab.de> writes:
>> > But in general, note that
>> > (select a1 +C)
>> > reads "SELECT a1 from C". This means, you specified no search criterion
>> > at all.
>> yes, but my point is I specifiy a class +C and I'm surprised that its
>> superclasses are matched too as well as classes that don't even belong
> Yes, I understood that. Unfortunately, 'select' by itself doesn't filter
> for specific classes (as, for example, the 'db' and 'collect' functions
> It simply gathers objects it can detetct from the '+C' class, by picking
> some index it believes to be representative (iirc it first looks for
> some index of class '+Need', as this promises the most hits, and if that
> doesn't exist it picks the tree with the largest number of entries).
> So one should not expect too much from the 'select' function. It is just
> to allow a quick and convenient ad-hoc view on the database. It is a
> frontend to the 'select' Pilog query, which needs to be programmed
> explicityly and manually (using 'isa' Pilog clauses in such cases) for a
> more precise search.
Ok, thanks, I wasn't aware of this, and it might be good to give a hint
about 'select's limitations in the reference/tutorial, because the way
it is described there one would expect equivalent behaviour to sql
SELECT, only somehow less powerful and efficient than pilog queries.