Is a hot dog a sandwich? Understanding content modeling
Content modeling is a method used to design and develop a library of interaction patterns and content hierarchies to prioritize and appropriately classify all of the content that goes into an application or website. Content modeling isn’t just limited to what we consider content either—articles, photos or music videos featuring cats. Content modeling includes your navigation, copyright notice, and alt text, among other things. Content is everything that appears on your site and is interactive to your users in some fashion or another.
Content modeling helps determine if content is similar, how to treat it, and how users can interact with it based on its relationship to other content and its attributes.
The process of content modeling can be a daunting prospect for beginners, so let’s walk through an example of creating a content model using the hotly-contested question of whether a hot dog is a sandwich. We’ll also go over why content modeling is an important aspect of any design process.
Some things to keep in mind about content models:
- All content is composed of atomic units and modules. Atomic units are the smallest possible bit of content—a form field, a button, a piece of instructional text, while modules are atomic units composed into a purpose-driven group—usually focused around an interaction type. Sounds a whole lot like ingredients and dishes, yeah?
- Content models are custom. They have to be! No two apps or sites are the exact same. Content models are based on known user needs. There can be similarities between websites that collect recipes, but you should be coming up with a content model tailored to you. (Any content strategist can help you with this.)
- Content models are purpose driven. A lot of interaction patterns (such as a form) can have very different needs depending on your site. You have to be willing to question your assumptions about what something is supposed to do and think about what your users AND you need it to do.
- Content models are about assigning attributes to objects and then sorting those objects according to your needs. An attribute can be anything—the colour blue, fiction/non-fiction, a form element—and there is no limit to the attributes you deem important or how you sort them.
What do sandwiches have to do with content modeling?
Sites such as cuberule (which uses the shape of the food to classify it) have sought to definitively answer the question of “Is a hot dog a sandwich?” but every single category they use seems to have exceptions…a lot of exceptions. There are just too many different kinds of food for any single classification system to cover them all. Heck, there are things that some people would classify as food that many others wouldn’t. Edibility is in the eye of the beholder.
Content modeling not only answers the question, “Is a hot dog a sandwich?” but also, “What else can we use a hot dog for?” and, “So what even is a sandwich?”
Deciding on a party menu using content modeling
People do content modeling all the time—it’s simply the way we classify objects. To show you how this works in real life—and to extend the metaphor—let’s talk about content modeling in the context of throwing a party.
You’ve already settled on the kind of party you want to throw:
- A large gathering
- On the casual side
- Outdoors
- You don’t want to have to use a lot of silverware for what you’re serving because you don’t like washing dishes, and you want to keep plastic use down—so the food shouldn’t need utensils or multiple plates. Thus, it needs to be portable so people can mill about.
(The party represents your website and the type of party determines the user needs you want to fulfill.)
You’re inviting a LOT of people and that’s way too much food for one person to prepare, so you decide to have a potluck with your friends bringing dishes (your designers, developers, and content creators). Still, you need to start somewhere, so you tell your friends the parameters listed above for your party and that a wide variety of sandwiches might be a good idea. Cool!
Do you want to build a sandwich?
So let’s make a content model for our potluck. What’s important is that you create a content model for the food YOU want to have, not the infinite varieties of consumables that exist. No application does everything. You have a focus, so how does content modeling help you find that focus and create a content model that helps you?
Let’s start with your request for sandwiches and answer the question of “Is a hot dog a sandwich?” ourselves. Colloquially, a sandwich has two pieces of bread and some kind of filling. It might have crusts or condiments or multiple layers, but let’s forget about what it’s made from—we’re going to start with: what is a sandwich supposed to do?
Easy: you eat it. Good. We’ve established that a sandwich is food. That’s the highest level of classification. Please do not serve a steering wheel on a slice of bread and expect folks to be happy.
The next question, why do you want to serve sandwiches?
You want portable food. You don’t need silverware to eat most sandwiches or even two hands. You can move around while eating. It is self-contained. We don’t want people to have to carry a plate around with them at the party. So now we have a desired attribute for our content model. A sandwich for our party must be portable.
It should be casual based on our event, but this isn’t as important as being portable. A sandwich is a sandwich regardless of its contents, so you could serve both a Sloppy Joe or a tiny, crustless affair with salmon roe and cucumber. This is a relaxed get-together—so, in this case, a sandwich can be casual. But if someone brings fancy sandwiches, we won’t turn them down. It just has to be portable.
To recap, a sandwich must be portable and can be casual or fancy as long as its casualness or fanciness don’t prevent it from being portable. Excellent. We are now establishing relationships with attributes! Like any good content model, we have a clear hierarchy of importance for these attributes that is driven by our users’ needs—the people attending the party.
Its contents are flexible. You can have an egg salad sandwich, or pork belly, or thick slices of tomato. Cool. All edible contents are a go, but wait… what about restrictions on ingredients? We know someone at the party has a shellfish allergy, so we have to set limits on the attribute of flexibility. Everything but shellfish is okay when it comes to ingredients.
Our content model’s contents are scalable. Like old cartoons, you can make a sandwich as big as you want—though that can impact portability. For some people and circumstances, having lots on a sandwich is more important than being portable—think a fried Monte Cristo. However, here, portability is more important.
So now we’ve got our first content model
The use case:
- Must be food
- Must be portable
- Doesn’t require utensils or a container
- Can be casual or fancy as long as it doesn’t impact portability
- Can’t exceed a certain size in order to stay portable
- Can’t contain shellfish (user restriction)
That’s honestly not a lot of restrictions! You send off the list to your friends and prepare for the party. However, your friends start asking questions about what they can bring.
- One wants to bring a salad
- Another has no time to cook and wants to bring a lot of gum
- A third asks if hot dogs are okay
All of them claim their food follows your rules, but does it?
Since we’ve done the work of determining what a sandwich is, we can ask the question—do these foods fill the needs a sandwich would?
Your friend who wants to bring a salad?
A salad is:
- Definitely food
- Not portable on its own—it needs a container
- Not structurally stable on its own and requires a utensil to consume
- Can be casual or fancy
- Can be almost any size
- Does not need to contain shellfish
While salad fulfills many of the requirements needed, it doesn’t fit the main one that we used to define a sandwich—portability. So your salad-loving friend didn’t follow the rules. Their content doesn’t fit your model.
A flexible host is a good host—let’s talk about salads.
A salad is not a sandwich—we couldn’t use a salad as a sandwich substitute. But we like salad. We could spare a few plates for folks who want it at the party. If we want to offer salad as an option along with sandwiches, we can add it to our content model and see if there are other attributes that we want to add to salad, so it’s classified properly.
So in addition to the base attributes it possesses:
- Can be casual or fancy
- Can be almost any size
- Does not need to contain shellfish
We can add:
- Requires a container
- Requires a utensil
- Can be served in addition to the sandwich, but not as a replacement
Now that last one is new and fun. Some content has dependencies—your user has to read the instructions and THEN fill out the test—and it’s up to you to determine what dependencies exist between content types that you have. This is your party—you can have salad if you want.
How about your friend that wants to bring gum?
A piece of gum:
- Definitely food
- Very portable
- Structurally stable
- Googling “fancy gum” led to some interesting results, so let’s say it can be casual or fancy
- Typically very small, but that qualifies as “any size”
- Usually doesn’t contain shellfish
So it seems a piece of gum is a sandwich? But content modeling is not a linear process where you can’t adjust previous content models or attributes. The only thing you have to be careful about are relational dependencies. If you decide, yes, gum is definitely a sandwich, then if you add an attribute to all sandwiches, that means gum needs to fit those qualifications.
We don’t want to serve gum. For some silly reason, we think people won’t be very happy if they show up looking for something to fill their bellies and we hand them a piece of gum, or even several pieces of gum.
So let’s add additional attributes to what we want for the sandwich:
- Savory, not sweet
- Composed of multiple ingredients, including bread
Your friend who wants to bring gum can put them in a bowl for after the meal. They tried, but they still need to figure out a sandwich to bring. Maybe a party sub.
Finally, we arrive at the hot dog.
Let’s go over the requirements, including our two new ones after the gum incident.
A hot dog:
- Definitely food
- Very portable
- Structurally stable
- Not known for being fancy, but it definitely qualifies as casual
- Meets our size requirements
- Usually doesn’t contain shellfish
- Savory by default
- Composed of multiple ingredients, including bread
By this content model and for the purpose of our use case, yes, a hot dog is a sandwich, or at least it fulfills the role a sandwich needs to fill. You tell your third friend to bring as many hot dogs as they want.
Content modeling: a delicious conclusion
If you’re reading this article with design-minded friends, one of you probably thinks you just won the argument that started this article. The conclusion here seems to be that a hot dog is a sandwich, but is it?
Only in THIS content model.
Content and interaction classification is dependent on the attributes YOU need. There is no such thing as a universal content model. Your friend might throw a fancy dinner party and not even want sandwiches there. Another friend might throw a barbecue and hot dog is the central content type, not a subtype of sandwiches. A hot dog is only a sandwich if you classify it as one.
One of the advantages of content modeling is discovering you have a lot more freedom than you think. Too often, if you start with “we need a form here,” you wind up locked into a content type that may not suit your needs or be an efficient use of design time. Content modeling allows you to discover what your restrictions actually are and how you can get creative within them.
Also, content models have to expand to fit your content. The more types of content you want to serve, the larger your model needs to be, and the more important establishing hierarchies and relationships is. It can also help you decide what’s most important to your site overall. If you wind up with 700 different sandwiches and only 50 types of salad, it wouldn’t make a lot of sense to visually prioritize salad over sandwiches in your designs.
The ingredients of a good content model
- Determine the use case (casual get together, needs food, should be portable)
- Determine the attributes of the content you need
- Determine the content that will fulfill those conditions (a sandwich will do)
- Determine the relationships between the content types you need (a sandwich and salad, but not a sandwich OR salad)
- Determine the relative importance and/or hierarchies of the content (sandwiches rules, salads also rule but not as much)
And enjoy your party—sandwiches or not.
Are you interested in learning more about how we can help you solve your challenges with content modeling? Let’s talk!