A few weeks back, before my life got just a little more hectic, I published the article WebPatterns and WebSemantics. In it I mentioned webpatterns.org, which I have set up to promote the development of a pattern language for web development, and promised the PatternQuiz, modeled (with his blessing) on Dan Cedeholm’s SimpleQuiz.
So, now its time to begin.
If you want to jump straight to the quiz, just click.
What’s the point?
The point of the overall project is to start collaboratively building a pattern language for web development. Pattern languages are widely used in Architecture, and many fields of computer science. In a nutshell, a pattern language is a collection of interrelated patterns, while a pattern is a “a problem which occurs over and over again … and ... the core of the solution to that problem“. They provide us with a common vocabulary for talking about the things we already do, and strategies for solving problems which arise repeatedly, which in web development, might cover anything from page architecture, to form design, to navigation systems, to interaction design.
Patterns aren’t templates, which you use in a cookie cutter way – they are more sophisticated and flexible than that.
If you’d like to learn more about patterns, the original WebPatterns article has much more info, and links to lots of interesting resources.
Enough talk
OK, let’s get to work. My plan for this pattern quiz is for it to be open ended. Every few days, I’ll pose a question about a common problem area in web development, give an example “pattern”, and hopefully you’ll be able to suggest other related patterns. We’ll keep it informal, with the aim of collecting these patterns in a much more systematic way at webpatterns.org, using the wiki I’m setting up there (by the way, did you know the first wiki was invented to catalogue a pattern language?).
Pattern languages (as opposed to simple pattern collections) tend to both have some sort of organizing structure, and the patterns relate to one another (for example, complex patterns tend to be made up out of simpler ones.)
For this quiz, I’m using a top down strategy – we’ll start at the site level, then work our way “down”. It’s my belief that a hierarchical organization suits web patterns, but we’ll see as we go whether that hols up. And I’m a bit old fashioned like that, I love a good hierarchical structure.
So let’s begin.
PatternQuiz number one – Lines of site
Arguably, the highest level patterns in web development are sites (you might argue that a portal is a collection of sites, and so a higher level again, but I’ll suggest a portal is a kind of site).
Let’s begin with site patterns. I’ll leave the question of what a site is for you to discuss among yourselves, what I am interested in is different kinds of site, that is different site patterns. I’ll begin with an easy one, as a model, then I look forward to your suggestions for and definitions of other site patterns.
-
- Pattern type:
- Site
- Pattern name:
- Blog
- Also known as:
- weblog
- Description:
- A blog is a website for which an individual or a group frequently generates text, photographs, video, audio files, and/or links, typically (but not always) on a daily basis – wikipedia
- Examples:
-
Kottke.org Simplebits Tantek.org
- Patterns which it plays a part of:
- to be added later
- Patterns which make up a blog:
- to be added later
- Comments:
- blogs are typically non commercial, and frequently politically oriented, but are becoming a more common in the commercial world. Frequently blogs are generated by a specialized form of content management system, known as a blogging tool, for example blogger, moveable type and wordpress. Consequently blog patterns are strong, and there is a high degree of conformity to these patterns across blogs, in comparison with other kinds of site pattern.
- Tags
- diary journal
Now it’s your turn! What site patterns do you use in your development? What other kinds of site come to mind. Some which come instantly to my mind are a wiki, a portal, a newspaper, but of course there’ll be dozens. I’m really looking forward to your thoughts. Please add them as comments, or trackbacks to this post. And there’ll be prizes for the best answers as we go!
Notes
We could be more formal, and add a lot more information to our pattern definitions, but at present, I’m not entirely sure what this might be, so let’s work that out as we go along too eh?
I’ve used the wikipedia description of a blog – I’m very much in favor of reusing existing intelligence where appropriate, rather than reinventing the wheel. Just as we’ve used the term blog, for this well known pattern. So reuse (with attribution) as much as possible.
For now I’ve left the related patterns part unfilled, as we don’t have any other patterns yet. As we develop the collection, these can be added.
For those familiar with pattern languages, I’ve eschewed the familiar “problem/context/solution” approach for the much less formal one here. When it comes to cataloguing these patterns more formally, that may be the better approach, but for this exercise, where for the most part patterns will already largely be very well known, the less formal approach should be helpful, and less fuss.
Lastly, I’ve added an obligatory tags field. This is to help free form searching of the pattern catalogue once it begins taking shape. Many, in fact most strong patterns don’t necessarily have a commonly agreed name, for example the title part of a page, called variously a masthead, logo, header, heading and others. While the “also known as” field might make tags redundant, I suspect that tags will be more general than “also known as”. For example, blogs are rarely if ever known as diaries, yet they have a great deal of similarity to a diary. So, if you were searching our catalogue for patterns to help solve a problem where an online diary was required, the diary tag would help greatly.