Concept
“What is it?”
Explains ideas, architecture, principles, background, and relationships. It builds mental models before action.
Understand information typing in technical documentation: how Concept, Task, and Reference divide content by reader intent, and how this relates to DITA, Markdown, and OpenAPI.
Information typingThe discipline of classifying content by its communicative purpose (concept, task, reference) rather than writing undifferentiated prose.View in glossary → is the practice of categorizing Technical communicationThe broader discipline that spans the entire product life cycle and reaches general audiences, prospects, and journalists — as distinct from technical writing, which produces user-facing product documentation after a sale.View in glossary → according to the reader’s primary goal and cognitive mode, rather than by product feature or arbitrary document chapter.
Instead of writing monolithic manuals that mix background theory, step-by-step instructions, and syntax tables into an undifferentiated narrative, information typing separates content into three fundamental, functional archetypes:
Concept
“What is it?”
Explains ideas, architecture, principles, background, and relationships. It builds mental models before action.
Task
“How do I do it?”
Provides step-by-step procedures to accomplish a specific goal with a verifiable outcome. Action-oriented and linear.
Reference
“What are the details?”
Provides structured facts, configuration parameters, syntax, and lookup data. Scanned quickly by readers who already know what to do.
These are functional distinctions based on reader intent, not rigid literary categories. Every piece of technical content exists to serve a user need: understanding a system, performing an operation, or looking up exact values.
To see how the three types operate on the same subject, consider documentation for an API integration:
| Information type | Main question | Primary reader intent | Concrete example |
|---|---|---|---|
| Concept | What is it? | Understand principles, architecture, or domain rules | ”What is idempotency and why does retry logic require it?” |
| Task | How do I do it? | Complete a goal through sequential, actionable steps | ”How do I authenticate and make my first API request?” |
| Reference | What are the details? | Look up exact syntax, parameters, schemas, or codes | POST /users - parameters, request SchemaA formal description of the structure a document or data file must follow: which elements or fields are allowed, in what order, and with which values. Validating content against a schema (DTD, XSD, or RELAX NG for XML; JSON Schema for JSON) catches structural errors before publication.View in glossary →, response schema, status codes |
Structuring content by information type does not mean information types are mutually exclusive under all circumstances:
The guiding rule is: keep the primary information type clear. Supporting information may appear when necessary, but substantial content serving another reader intent should normally be moved to a dedicated topic of that type and linked. This prevents “Franken-topics” - procedures overwhelmed by pages of architectural theory, or conceptual articles cluttered with exhaustive parameter tables.
Technical writers encounter terms that are frequently conflated. To keep authoring and architecture rigorous, this site distinguishes between five distinct concepts:
In a docs-as-code workflow, an author addresses an information type by adapting an authoring template to draft a self-contained topic, stored in a lightweight document format (such as Markdown) and published as an article.
To keep the information architecture machine-readable and consistent across builds, API feeds, and automated checks, documentation pages declare their information type in frontmatter:
---title: "<Article Title>"description: "<One-sentence summary>"contentType: concept # concept | task | reference---contentType.concept, task, or reference.index.mdx), landing/navigation pages (such as /learn or /process with pageType: landing), utility pages (/ask, /about-this-blog with pageType: utility), or architectural overviews (pageType: overview) remain valid without contentType.Information typing has a rich history in technical communication, drawing on research such as John Carroll’s Minimalism (minimalist writing)A task section contains only what's needed to complete the task — prerequisites, steps, and a few closely related elements — with conceptual and reference material placed elsewhere.View in glossary → and Robert Horn’s Information Mapping. For where this page sits in that history, see Information design and Information Mapping in the site history.
Later, DITA (Darwin Information Typing Architecture) provided a formal XML-based architecture for information typing, defining standardized Concept, Task, and Reference topic types:
<concept> topic type.<task> topic type.<reference> topic type.However, a fundamental architectural distinction must be understood:
Our Markdown templates are practical authoring blueprints, not formal DITA XML schemas, and they do not enforce DITA DTD (Document Type Definition)The oldest XML schema language: it declares which elements and attributes a document may contain, and in what order. DITA XML is distributed with DTDs as well as XSD schemas.View in glossary →/XSD (XML Schema Definition)The W3C schema language for XML, itself written in XML. DITA XML's XSD schemas define which elements each topic type allows; a file that breaks them fails validation, which also constrains what conrefs and conditional text may produce.View in glossary → validation rules.
Neither DITA nor Markdown/Astro is universally superior; they represent different engineering trade-offs tailored to different organizational needs:
DITA XML architecture:
<cmd>, <stepxmp>, <varname>, <filepath>).<conref>).Markdown/Astro docs-as-code:
contentType: concept | task | reference) rather than rigid XML schema parsers.For an in-depth analysis of structured formats and modular architectures, see Structured and unstructured formats and From document to modular document base.
Different documentation paradigms implement information typing and semantic validation at different levels of formalization:
| Approach | Semantic typing | Structural validation | Format | Typical use |
|---|---|---|---|---|
| Markdown template | Editorial convention | Informal / peer review | Markdown | Team wikis, lightweight project notes |
| This site (docs-as-code) | Explicit information types + templates + frontmatter | Schema-validated metadata (contentType), build checks, tests | Markdown/MDX | Modern docs-as-code, technical guides and portals |
| DITA | Formal semantic topic types, specialization hierarchies | Schema-enforced (DTD, XSD, RELAX NG) | XML | Enterprise multi-channel documentation, hardware manufacturing |
| OpenAPIA standard, machine-readable format (YAML or JSON) for describing an HTTP API: its endpoints, parameters, request and response schemas, and status codes. Reference documentation can be generated from it, leaving writers to add the usage guidance the description can't carry.View in glossary → | Formal API contract model | Schema validation (JSON Schema, Spectral) | YAML / JSON | Machine-readable HTTP API descriptions, generated references |
The table opens on the Overview view; the typing and validation columns stay one selection away. For the reasoning behind this layered presentation, see From tables to layers: progressive disclosure in a documentation table.
DITA and OpenAPI serve distinct, complementary purposes:
OpenAPI is not a general documentation authoring framework for prose, and DITA is not a protocol description language for generating interactive API consoles.
API documentation offers a clear demonstration of how the three complementary information types interact with machine-readable contracts:
Developer journey across information types: Concept, Task, and Reference.
Concept (“What is it?”):
Task (“How do I do it?”):
curl commands, and expected response validation.Reference (“What are the exact details?”):
POST /users - parameters, request schema, response schema, status codesOpenAPI describes an API contract in a machine-readable format. It can underpin or generate much of the reference layer of API documentation (such as interactive consoles, parameter listings, and SDK type definitions).
However, OpenAPI itself is not a substitute for complete documentation:
A comprehensive API documentation portal successfully combines all three: machine-readable OpenAPI contracts feeding generated reference pages, accompanied by thoughtfully authored Concept articles and Task tutorials.
To start drafting endpoint reference pages, see the API documentation template and explore About this manual’s API.