Defining terms

Terms

This project borrows some terms from Computer Science, and discusses things that people might have slightly varying definitions for. Just so we're all on the same page, let's define some terms.

Pattern

When we talk about patterns in Albert, we talk about a regular structure that is repeatable. Particularly, we can make this structure rigid by defining it with rules and guidelines that produce a repeatable output, so long as they are followed.

Patterns are made useful by the way we can use them alongside other patterns. For example, a painter might follow a few patterns for his painting style -- many quick strokes like in the Impressionist Movement, but also painting inanimate objects, making it also a Still Life.

This is a fairly obvious example, because lots of impressionist work exists that's still life. However, when formulating a story or creating some project, following patterns can simplify the creation process. An artist might decide to paint an impressionist work that is still life, narrowing the possibilities of what they'll create and making it easier to decide on more specific aspects of the project. As patterns are combined further, the painter might decide on thematically-driven art, and choosing a message for their painting would narrow the possibilities further.

It's easy to see that, as simple rules are compounded together, we can make complex projects manageable. When improvising a children's story, keeping track of worlds and character traits and different events can be difficult. Keeping the story relateable and interesting without making it too complex to manage or too simple to be enjoyable is even harder. The patterns that make Albert are supposed to give the storyteller a few rules to follow, and vastly simplify the work of the storyteller -- letting us actually focus on the story itself!

Design Pattern

A design pattern is a way of managing the solutions to common problems. It's used in architecture and software engineering to discuss a solution to a problem that tends to be:

It's my opinion that design patterns can also be useful in areas like operations management, interface design, writing, education, and other areas. It would be easier to count the areas where a solution to any problem that was robust and flexible wouldn't be helpful! Any area where lots of problems can arise, and solutions to those problems can be complex, design patterns have a place.

Albert is a pattern for the improvisation of bedtime stories for children. It's designed to be quick to get used to for the storyteller, easy to take in for the child, and arbitrary enough that there's a near infinite number of stories that can be generated from it with ease. Albert's a way of producing stories that are engaging and calming from everyday events, without becoming stilted or tedious.

Note: Because the design pattern is a type of pattern with rules applied, we could say that there is a pattern called "design patterns" for making patterns. The design pattern is a pattern that's constrained by certain rules -- robustness and flexibility -- that defines a category of patterns called design patterns.