Associations are used to define relatinships between classifiers (classes, actors, usecases). The most common usage is in Class and UseCase diagrams.
An association is created by one Association instance and two or more Property's (in case of Gaphor: two, Gaphor can't handle N-ary association at this moment).
An association end can be navigable or not. If an association end is navigable, the class can traverse to the class at the other end. If an end is navigable, the property at that end is owned by the class (Property.class_ refers to the class and the property is in Class.ownedAttribute). If the end is not navigable, the property is owned by the association (Property.owningAssociation/Association.ownedMember).
Figure 4.1 shows how an association as shown in a diagram (a) is implemented in the data model (b). The Association has two properties: one with name myWheel and one with theBike. In (a) an arrow is drawn from Bike to Wheel, meaning that instances of Bike can traverse to instances of Wheel, but not visa versa. In the data model (b) this is represented as property myWheel being an attribute of Bike. Property theBike can not be used to go from Wheel to Bike, therefore it's owned by the Association.
Association is subclass of Namespace. When a new Association is created in a diagram, the namespace is set to the namespace of the diagram.