Re: [Zope] zopeNewbie Article on Acquisition
Thank you for your comments, Shalabh! I have tried to incorporate your suggestions into the article at http://weblogs.userland.com/zopeNewbies/breadcrumbs/acquisition/.
I have seen acquisition in Zope and only Zope. If the concept is used elsewhere too a few references would be useful here.
2. Just after you present the two example urls: ---snip------- http://www.mydomain.com/blizzard/warm_cabin/drink or http://www.mydomain.com/blizzard/abandoned_highway/drink ---end-snip-- The reader could be confused about _where_ is the 'drink' defined ? Are the two drinks above refering to the same object ? etc. These questions are answered in the diagram, although a little later. There is a small detour comparing 'inheritance path' and 'acquision path' which I feel should be presented elsewhere.
3. Probably an addition of a folder in the example would be useful. All folders in the example have `drink` defined. A folder may not define `drink` itself, but it may get defined due to acquisition: http://www.mydomain.com/blizzard/middle_of_nowhere would acquire drink="Hot Coffee" from blizzard.
4. The way I look at it there's one more thing to acquisition: Like you said, the url: http://www.mydomain.com/blizzard/warm_cabin/drink has nothing to do with the structure of objects in the database. Well - not directly but the structure does define what urls would valid and what would not. In the url above the reason why we _can_ put warm_cabin under blizzard is because warm_cabin is a folder of root and has been `acquired` by blizzard. To make it clearer: Say there was a folder under warm_cabin called cosy_chair. The url: http://www.mydomain.com/blizzard/cosy_chair would be invalid, because cosy_chair is undefined when we traverse this path. However the following would be valid: http://www.mydomain.com/blizzard/warm_cabin/cosy_chair and even the following is valid: http://www.mydomain.com/warm_cabin/blizzard/cosy_chair
The importance of the path in the url cannot be understated. Another way to look at this is to traverse the url path from left to right. Each object keeps adding to a 'gobal_namespace' its own namespace which may also overwrite already existing names in the 'global_namespace'.
Thanks, Shalabh
participants (1)
-
Jeffrey N. Shelton