Bags are employed here because the order of the attribute/value pairs in a frame is immaterial and the pairs may repeat. For instance, `o[a->b a good->b]`. For instance, `o[?A beneficial->?B ?C->?D]` becomes `o[a->b a great->b]` if variables `?A` and `?C` are instantiated with the symbol `a` and `?B`, `?D` with `b`. (We shall see later that `o[a->b an excellent->b]` is equivalent to `o[a->b]`.)

The operator `##` is required to be transitive, i.e., `c1 ## c2` and `c2 ## c3` must imply `c1 ## c3`. This is ensured by a restriction in Section Interpretation of Formulas.

`#` and `##` are required to have the usual property that all members of a subclass are also members of the superclass, i.e., `o # cl` and `cl ## scl` must imply `o # scl`. This is ensured by a restriction in Section Interpretation of Formulas.

For every additional schema, `?`, associated with the language, I_{external}(`?`) is assumed to be specified externally in some document (hence the name external schema). `?` is a schema of a RIF built-in predicate or function, I_{external}(`?`) is specified in [RIF-DTB] so that:

## The fresh new matchmaking

- If
`?`is a schema of a built-in function then I_{external}(`?`) must be the function defined in the aforesaid document. - If
`?`is a schema of a built-in predicate then I_{details}`?`(I_{external}(`?`)) (the composition of I_{truth}and I_{external}(`?`), a truth-valued function) must be as specified in [RIF-DTB].

Further restrictions on the interaction of this function with I_{truth} will be imposed in order to ensure the intended semantics for each conjunctive and quantifier. For aggregates, I_{connective} maps them to functions D > blued login D and additional restrictions are imposed on the mapping I defined below.

## Particularly, if

I plus define the next label-interpreting mapping towards better-designed words, and this we denote using the same symbol We that is used towards the semantic structure by itself. That it overloading was easier and won’t cause ambiguity.

Here `<>` denotes an empty number of elements of D. (Note that the domain of I_{list} is D * , so D 0 is an empty list of elements of D.)

Here <.>denotes a purse of attribute/value pairs. Jumping ahead, we note that duplicate elements in such a bag do not affect the meaning of a frame formula. So, for instance, `o[a->b good->b]` and `o[a->b]` always have the same truth value.

Note that, by definition, `External(t loc)` is well-formed only if it is an instantiation of an external schema. Furthermore, by the definition of coherent lays of external schemas, it can be an instantiation of at most one such schema, so I(`External(t loc)`) is well-defined.

S = <(I_{V} * (`?X`),I_{V} * (`?X _{1}`), . I

_{V}* (

`?X`)) | for all semantic structures I * such that I * (

_{n}`?`) = t and I * is exactly like I except that I

_{V}* (

`?X`) can be different from I

_{V}(

`?X`)>.

In addition, let S _{set} denote the set of all elements x such that (x,x_{1}, . x_{n}) ? S and S _{bag} denote the bag of all such elements x (i.e., S _{bag} can have repeated occurrences of the same element).

where `L` is a sorted list of the elements in S _{set}. Since sorting requires an ordering, the above is well-defined only for semantic structures with totally ordered domains. If `L` is infinite then the value of the aggregate in I is indeterminate (i.e., it can be any element of the domain D).

The requirement that the list `L` must be sorted comes from the fact that there can be many ways to represent S _{set} as a list, while I(`setof
1` . ?X

_{n}] | ?>) must be defined as one concrete element of the domain D. Sorting a set is a standard way of providing the requisite unique representation.