The originator of the pattern, Christopher Alexander, defines a pattern as "a three part rule, which expresses a relation between a certain context, a problem, and a solution" [Alex79].
A pattern can be thought of as a tried and true way to deal with a problem that appears over and over again. People who are experienced in a particular field of knowledge will have internalized certain solutions to these problems. They recognize a problem to be solved and know which solution to apply in the particular situation. The idea of a pattern is to be able to describe this internalized expert knowledge and to state the problem, context and solution, so that less experienced people can benefit from this knowledge.
Another benefit of having formal, written patterns is that these previously internalized concepts get named. It is much easier to discuss and think about something once it has been named. Discussing concepts that are unnamed is difficult.
A pattern language brings together a number of these patterns in one particular field. It is an attempt to reproduce all of the knowledge needed to create quality items in that field. A pattern language for buildings gives one the power to create building which people will want to live in, a pattern language for software design gives the power to create software which is usable and maintainable. Just as spoken language give people the ability to create an infinite variety of sentences, pattern languages give people the power to create an infinite variety of document types. We just need to create a common vocabulary so we can make useful sentences.This site is an attempt to start to produce an XML Structural Pattern language. This pattern language gives one the power to create document types for XML, which describe documents that are useful, maintainable, easy to author, and easy to process. This pattern language will be most useful if it is shared across the whole XML community. Because of this, your feedback into this process is very important.