What is an attribute?

An attribute is a unit of information that a semel knows about itself.

Each attribute has a name.

Each attribute has a type.
The type of an attribute is one of the following:

Each attribute optionally has a default value.
Attributes are initialized with their default value when a new semel is created.

You can change the value of an attribute.

Each semel has 0 or more attributes.

A semel inherits all of the attributes of all of its base semels (just as a class inherits all of the attributes of all of its base classes).