The HasProperty ReferenceType is a concrete ReferenceType that can be used directly. It is a subtype of the Aggregates ReferenceType.
The semantic is to identify the Properties of a Node. Properties are described in 4.5.2.
The SourceNode of this ReferenceType can be of any NodeClass. The TargetNode shall be a Variable. By using the HasProperty Reference, the Variable is defined as Property. Since Properties shall not have Properties, a Property shall never be the SourceNode of a HasProperty Reference.