Hook is a type of Implement. Implementation is derived from Implement. Implementation is a type of Act. 
Tap is part of Barrel. 
Hook --IsA--> Implement <--DerivedFrom-- Implementation --IsA--> Act 
Barrel <--PartOf-- Tap 