Limit knowledge graph relationship types to 5-7 — more precision costs more than it reveals
When building knowledge graphs, limit relationship type taxonomies to 5-7 types rather than attempting comprehensive ontological coverage, because classification overhead beyond this threshold produces diminishing informational returns while increasing maintenance cost.
Why This Is a Rule
Miller's 7±2 applies to relationship type taxonomies: when creating links in your knowledge graph, you need to classify each link into one of your relationship types. With 5-7 types, the classification is fast (you can hold the full taxonomy in working memory). With 15-20 types, the classification becomes a research project — "is this a 'derives_from' or 'specializes' or 'extends' or 'instantiates'?" — and the overhead discourages linking.
The diminishing returns are real: the first 5 relationship types capture ~80% of the meaningful distinctions (causes, enables, contradicts, exemplifies, depends_on). Types 6-7 capture another ~15% for domain-specific needs. Beyond 7, each additional type provides marginal informational value while adding classification cost to every link created.
A practical starting set: causes (A produces B), enables (A makes B possible), contradicts (A opposes B), exemplifies (A is an instance of B), depends_on (A requires B), plus 1-2 domain-specific types. This covers most knowledge relationships while keeping linking fast and sustainable.
When This Fires
- Designing the relationship types for a new knowledge graph
- When linking feels like a chore because there are too many type choices
- During knowledge system design when choosing between precision and usability
- When the relationship taxonomy has grown beyond 10 types and maintenance is suffering
Common Failure Mode
Building an elaborate ontology with 20+ relationship types before creating any actual links. The taxonomy becomes a project that delays actual graph-building, and when you finally start linking, the classification overhead makes each link take 30 seconds instead of 5 seconds — which means you create 6x fewer links.
The Protocol
When designing relationship types: (1) Start with 5 core types: causes, enables, contradicts, exemplifies, depends_on. (2) Add 1-2 domain-specific types if your knowledge domain has relationships the core 5 can't capture. (3) Cap at 7 total. If you're tempted to add an 8th → ask whether it provides enough additional value over the closest existing type to justify the classification overhead on every future link. Usually it doesn't. (4) Review taxonomy quarterly: if a type is used on <5% of links, merge it into a broader type.