Writing patterns is a very important task for leveraging knowledge within an organization or in the software engineering community as a whole. Patterns are more than text, diagrams or source code. Patterns are knowledge that comes from ce. Sharing patterns is sharing knowledge. Currently, an abstract and standardized way for specifying software patterns doesn't exist. There isn't any single meta-definition model that governs patterns description. This leads to the problem of finding a way to represent patterns in a self-contained that leverages the literary information and the implementation information independent of the programming languages and execution platform and a way for sharing those patterns. The creation of a language for pattern meta-specification and a catalog of patterns from different pattern languages described using this language is a clear step towards the solution of this problem. The creation of a web-based visualization tool for the catalog makes this k...