As a relative newcomer to Python web development (although I'm an experienced developer in other respects) I don't find the word 'model' confusing so long as it is qualified with the word 'traversal' as in 'traversal model'. Almost any non-trival application uses the word model contextually, with one or more of the following present (domain model, data model, application model, execution model, numerical model, concurrency model, proxy models, meta models ... ad infinitum). Humans are good at context, so we get by just fine and this is rarely a problem in practice. Talking about 'Pyramid models' could be confusing; talking about 'Pyramid traversal models' is not. I found the description of 'models' in the Pyramid documentation cogent and unambiguous. Using 'traversal model' would improve it further.
For what it's worth, in my first adventures with Pyramid where I want to use a preexisting Python domain model (coincidentally ZODB based - but that's strictly an implementation detail) I'm inserting a traversal model consisting of what I'm calling 'Nodes' between Pyramid and my domain model. I used 'Node' because of the fact that traversal is clearly traversing a graph, graphs consist of nodes and because 'vertex' (the other word for graph nodes) seems inappropriate in this context - possibly because the graph edges aren't modelled explicitly. I took this approach because the __getitem__ API expected by traversal doesn't fit well with my existing domain model, so my traversal model serves as a kind of adapter. I suspect many people with existing domain models wanting to use traversal will find themselves in the same boat. As has already been pointed out most of the other candidate words are also heavily overloaded in this domain so maybe trying to find *one *word which captures the essence of traversal is a fools errand, and we should settle for the *two* words in 'traversal model'. Rob Smallshire On 17 December 2010 18:22, Chris Withers <ch...@simplistix.co.uk> wrote: > On 17/12/2010 12:37, Marius Gedminas wrote: > >> On Thu, Dec 16, 2010 at 11:57:42PM -0500, Mark Ramm wrote: >> >>> The main reason behind me asking Chris about this is that I can >>> imagine writing a simple explanation of the "traversal" model which >>> makes sense to a variety of TG, Zope, and even Django users. >>> >>> It would go something like this: >>> >>> Pyramid dispatch is based on a two phase system. >>> >>> The first phase is called Resource Location, and in it we use the URL >>> (Universal Resource Locator) to find a resource. This is done by >>> taking items from the path, and looking them up in a set of nested >>> dictionaries called the ResourceTree. You can think of this as >>> looking up files and directories in a file system. You just walk >>> down the path elements until you get a file. That becomes the >>> "resource" that we then publish. >>> >>> Which, naturally brings us to the second phase which we call "Resource >>> Publication" uses additional information about the request (request >>> method, etc) and the resource to lookup a view callable, and call it, >>> passing in the resource we just found. >>> >> >> This is a nice explanation. >> > > I was just catching up on this thread and about to +1 Resource, now I get > to +1 both Resource and this explanation :-) > > cheers, > > Chris > > -- > Simplistix - Content Management, Batch Processing & Python Consulting > - http://www.simplistix.co.uk > > -- > You received this message because you are subscribed to the Google Groups > "pylons-devel" group. > To post to this group, send email to pylons-de...@googlegroups.com. > To unsubscribe from this group, send email to > pylons-devel+unsubscr...@googlegroups.com<pylons-devel%2bunsubscr...@googlegroups.com> > . > For more options, visit this group at > http://groups.google.com/group/pylons-devel?hl=en. > > -- You received this message because you are subscribed to the Google Groups "pylons-devel" group. To post to this group, send email to pylons-de...@googlegroups.com. To unsubscribe from this group, send email to pylons-devel+unsubscr...@googlegroups.com. For more options, visit this group at http://groups.google.com/group/pylons-devel?hl=en.