Context: object oriented programming
In order to fully understand acquistion, the difference between "is a" and "has a" relationships must first be understood.
"Is a" vs. "Has a"
Consider the following example:
is a vehicle
has an engine
Notice the difference. An "is a" relationship specifies that the object ("car") is ontologically a special case of a broader class ("vehicle"). "Is a" relationships form the basis of inheritance in object oriented programming.
Contrast the "has a" relationship. Here the relationship specifies that an object ("engine") is componentwise a part of a broader object ("car"). This relationship is the basis of acquisition.
Acqusition and Object Oriented Programming
In inheritance, subclasses automatically defines properties and operations from its superclass. Thus if the class
Vehicle defines a property
colour, then the class
Car would have access to the property
In acquisition, objects (instances of a class) automatically defines properties and operations from its container. Thus if an instance of the class
Car defines a property
colour, and contains an instance of the class
Engine, then the value of the property
Engine would be identical to the value of the property
The most prominent usage of acquisition is in Zope, where one can specify an object within a folder which does not belong to that particular folder. Zope searches the parent folder for the same object, and follows this aquisition tree until the root object.