Hi Henrik,

> (rel country  (+Ref +Link) NIL (+Country))
> ...
> Now if I want to have all the Germans, how would that generator look?
> Maybe like this?:
> (country +User (db nm +Country @CountryName))

It should be

   (nm +Country @CountryName (country +User))

The semantics are like this:

   (var +Cls @Key)

will generate all objects of '+Cls' that are found using '@Key'. You can
then follow other relations to connected objects, either via '+Link's
and '+Joint's

   (var +Cls @Key link ...)

or via other indexes

   (var +Cls @Key (var2 +Cls2) ..)

Perhaps it is best to take "app/er.l" and "app/gui.l" as examples. To
find an article (+Item) via its supplier, the costruct

   (nm +CuSu @Sup (sup +Item))

is used. This means: Search all '+CuSu' (customers/suppliers) that match
'@Sup', and then follow the 'sup' index of '+Item' to locate all
corresponding items.

Or, to find orders (+Ord) via the supplier

   (nm +CuSu @Sup (sup +Item) (itm +Pos) ord)

This again finds +CuSu by name, follows to the '+Items', then for each
item locates all positions (+Pos), and then the '+Joint' to the order

You see that this can be chained infinitely. The rule is that a symbol
(here 'ord') specifies a direct link (or joint), while (sym +Cls)
specifies an index.

- Alex

Reply via email to