---
config:
layout: elk
---
graph TD
classDef linkNode fill:#808080
agree_contract["agree_contract"]
offer_and_acceptance_for_goods(["42,2 offer_and_acceptance_for_goods"])
contract_process["contract_process"]
sale_of_goods(["42,1 sale_of_goods"])
contract_execution["contract_execution"]
exchange_of_goods_and_money(["42,4 exchange_of_goods_and_money"])
class_of_agree_contract["class_of_agree_contract"]
class_of_contract_process["class_of_contract_process"]
class_of_contract_execution["class_of_contract_execution"]
offer(["41,1 offer"])
acceptance_of_offer(["41,2 acceptance_of_offer"])
link40_1(["40,1 (39)"]):::linkNode
link40_2(["40,2 (39)"]):::linkNode
link40_3(["40,3 (39)"]):::linkNode
link40_4(["40,4 (39)"]):::linkNode
link40_5(["40,5 (39,41)"]):::linkNode
link40_6(["40,6 (39)"]):::linkNode
agree_contract ==>|supertype_of| offer_and_acceptance_for_goods
contract_process ==>|supertype_of| sale_of_goods
contract_execution ==>|supertype_of| exchange_of_goods_and_money
agree_contract -.->|"(RT) member_of S[1:?]"| class_of_agree_contract
agree_contract -->|"(offer.part_of) (INV) consists_of_ S[1:1]"| offer
agree_contract -->|"(acceptance_of_offer.part_of) (RT) (INV) consists_of S[1:1]"| acceptance_of_offer
agree_contract -.->|"(RT) part_of S[1:1] (RT) (INV) consists_of S[1:1]"| contract_process
contract_process -.->|"(RT) member_of S[1:?]"| class_of_contract_process
contract_execution -.->|"(RT) member_of S[1:?]"| class_of_contract_execution
contract_execution -->|"(RT) part_of S[1:1] (RT) (INV) consists_of_ S[1:1]"| contract_process
class_of_agree_contract -.->|"(RT) part_of_by_class S[1:?]"| class_of_contract_process
class_of_contract_execution -.->|"(RT) part_of_by_class S[1:?]"| class_of_contract_process
link40_1 --> class_of_contract_process
link40_2 --> class_of_agree_contract
link40_3 --> class_of_contract_execution
link40_4 --> contract_process
link40_5 --> agree_contract
link40_6 --> contract_execution