whyAttributes

Defining a set of attributes

The goal is to provide interoperability. Here we address just the issue of the data that is to be transported across an interface.

In order to achieve interoperability both that data, and it's meaning needs to be agreed upon.

There are 3 levels of this

 Agreed "Generic" Data structure:: This should cover "most" busses. If people use the "Generic" Data structures, they will increase their chance of interoperability.

 Agreed "Pallet" for data structures:: Sometimes busses do not fit within the "generic" set. For those, an agreed pallet of attributes can be used to describe the specific bus. Using just those attributes in the pallet will both increase the chances of interoperability AND maintain a common understanding of the meaning of the attributes.
User defined Attributes: Finally, sometimes busses have unique features. In this case, the user must be ermitted to define their own attribute. But doing so will guarantee no-interoperability without conversion. Note: this is to be expected, as a "unique" feature, when applied to a different component will need to be taken into account carefully.

IMPORTANT side effect: As attributes are defined, and the representation of different busses control and data structures becomes more unified, the number of "converters" needed to "bridge" between busses will diminish. Most will end up being represented in the system as a simple timing bridge.