description: |
When a user selects the category, the address is evaluated. The category the
address points to is loaded. All the '@'-flagged subcategories at any depth,
yet in the same file of this category are put in a list. The categories
pointed to by all the ‘$'-flagged subcategories at any depth, yet in the same
file are evaluated and the process is repeated. The result is a single list
of categories.
When the optional query parts are not used, after having selected the category the user sees this list as if the categories in the list were just subcategories of the selected category. When the first optional part, consisting of a ‘#' character and one or more comma-separated expressions, is used only those categories in the list that agree with these expressions (see section 2.4.2) are shown. When the second optional part is used, the categories in the list are first sorted by the first binary property name. For instance, when the first binary property name is 'year,' the categories are sorted by their 'year = ...' binary property. Now for each year for which there is a category in the list a separate list is created. The user may now choose from a list of years to find a list of categories with the same value for the 'year = ...' property as the selected year. The same process is repeated for every sublist with the remaining binary property names. A whole tree of categories may be created this way. |
format: | <category name> "+>" <address> [ "#" <expression> ( "," <expression> )* ] [ ";" <binary property name> ( "," <binary property name> )* ] |
remark: |
As explained in section
2.2.1.2, each part of
an address is fully evaluated in turn. This means that you can use addresses
that point into queries.
|
example: | games/ t: great games /fighting /@street fighter/ p: rating = 10, superb p: producer = capcom /@tekken/ p: rating = 9 p: producer = namco /shooting /@terra cresta/ p: rating = 8 p: producer = nichibutsu query games /great games +> /games # rating >= 8 | superb /by rating +> /games ; rating /now both +> /games # rating >=8 ; rating /big query +> /games # rating > 5, rating != 5 ; rating, producer % |