The Schema Creation Playbook

The process of creating a schema can be broken down into a series of logical steps. By following this methodology, you can transform a complex idea into a structured data model.


Step 1: Identify the 'Things' (Types)

Begin by identifying the main entities or objects in your system. What are the core "things" you want to define? These are the foundational building blocks of your schema and will become your Types.

Analogy: If you were planning a house, these would be the main rooms like the Kitchen, Bedroom, and Bathroom.

Example: For a content website, the main "things" could be Article, Author, and Comment.


Step 2: Define the 'Details' (Elements)

Once you have identified the core Types, determine the specific information or properties that belong to each one. These are the individual data fields that will make up each Type.

Analogy: This is where you decide what goes in each room, like a sink and oven in the Kitchen.

Example: The Article Type would have Elements like Title, Body, and PublicationDate.


Step 3: Categorize the 'Details' (Taxonomies)

Review your Types and Elements to see if any of them need a predefined list of options. Instead of allowing for free-form text, using a set of fixed categories ensures consistency and simplifies organization.

Analogy: This is like creating a drop-down menu for the RoomColor that only allows you to choose from a list of predefined options like red, white, or blue.

Example: The Article Type could have a Topic Element that is linked to a Taxonomy with a predefined list of categories like News, Tutorial, and Review.


Step 4: Establish the Connections (Relations)

Consider how your different Types relate to each other. How does a Comment connect to an Article? How is an Author associated with a specific Article? Defining these connections is crucial for building a cohesive data model.

Analogy: This is where you draw the lines on the blueprint, connecting a Bedroom to the Bathroom via a hallway.

Example: The Article Type would have a Relation to the Author Type, so each article can be linked to a specific author record.

Consider the default relations from CoreModels such as the 'DomainIncludes' (has-a), the 'SubClassOf' (is-a), and the 'RangeIncludes' (can-be). Or define the appropriate needed relations.


Step 5: Add Rules and Context (Mixins)

Finally, add rules, constraints, and other metadata to your schema. These are properties that describe your data structure but don't contain content themselves. They are essential for validation and control.

Analogy: These are the notes on the blueprint, specifying that a window must have a minimum size or a door must be fireproof.

Example: The Title Element could have a 'required' Mixin to ensure no article is ever published without a title.

Last updated