Every S1000D data module must refer to a BREX data module. The reference BREX data module defines the business rules that apply to that data module. Because it is a data module it can be rendered and viewed just like any other data module. This means that it not only defines the rules in a computer-readable way but also in a human-readable way as well. It is an excellent example of how S1000D enables you to reuse data modules and have a single source for information.
BREX data modules themselves are layered and each S1000D issue defines its own BREX at the highest level. This means that even if a project-specific BREX has not been defined, data modules will need to reference the S1000D BREX. If a project-specific BREX is defined, and hopefully it is now clear that is strongly recommended, then this BREX will need to refer to the S1000D BREX and will inherit the rules therein. It is possible to layer BREX, perhaps by having a BREX for the organisation and then a BREX for the project which references the organisational BREX and ultimately the S1000D BREX.
The business rules defned in a BREX data module can be divided into three categories: the context rules, the context independent rules and the SNS rules.