Six ways to structure knowledge, from a list to a knowledge graph
From list to knowledge graph: the knowledge management structures, their levels of sophistication, and the leap from static to dynamic that the ontology brings.
Part 2 of 4. The series starts with From raw data to usable knowledge, and the metadata in between.
There are several ways to structure knowledge, with different levels of sophistication. These are called Knowledge Management Structures.
The choice depends on the use case, the scale, and especially who will consume this knowledge. They can obviously be combined depending on the use cases.
List (Controlled Vocabulary)

List Structure: Simple enumeration without relationships
The most basic form of structuring.
It is a simple enumeration of possible values, with no relationships between them.
It is a flat, non-hierarchical structure, with no semantics beyond belonging to the list.
Examples: list of countries: France, Germany, Spain..., list of genders: Male, Female, Non-binary, list of order statuses: Pending, Shipped, Delivered, Cancelled
This is useful for constraining values, but captures no relationships or meaning.
Taxonomy

Taxonomy Structure: Hierarchical IS-A relationships
We step up by introducing hierarchy.
A Taxonomy is roughly a hierarchical classification based on parent-child relationships: Single relationship: IS-A. Taxonomies are tree-like, from general to specific.
Examples: A car IS-A vehicle, An SUV IS-A car, An SUV IS-A vehicle (by transitivity)
What is great here, is the introduction of conceptual hierarchy. You can navigate from general to particular and vice versa, Although, only one relationship possible. You can't say that a car belongs to someone or is manufactured by a brand...
Thesaurus

Thesaurus Structure: IS-A + Synonyms + Related-To
The thesaurus enriches taxonomy with synonymy and generic relationships.
They are taxonomies augmented with equivalence and association links.
Relationships:
- IS-A (inherited from taxonomy)
- SYNONYM-OF: Car ↔ Automobile ↔ Auto
- RELATED-TO: Car ↔ Road, Car ↔ Driver
So, they help handling linguistic ambiguity. When a user searches for "auto", we also find "car".
Typical usage: Search engines, indexing systems, navigation aids.
Semantic Layer
The semantic layer is a related concept that has had a lot of influence in the data ecosystem, with tools like DataHub, dbt Semantic Layer, or Tableau/PowerBI data models.
They are pre-calculated logical views on data, defining business metrics and concepts. So, they are, by-design, Hard-coded and static information. They are often scoped to a tool (Tableau, PowerBI, dbt) and more like "Semantic Views" than true semantics
Concrete example:
metrics:
- name: revenue
description: 'Total revenue from completed orders'
type: sum
sql: amount
filters:
- status = 'completed'
Despite their theoretical importance, semantic layers remain marginal with clients. Very few companies actually have a mature semantic layer. And when it exists, it's often limited to a specific tool.
The semantic layer references recurring information but doesn't allow generating new knowledge. It's static–you define "revenue," but you can't dynamically ask "which metrics are related to revenue?"
Ontology

Ontology Structure: Rich relationships, classes, instances, axioms
Ontology is the major qualitative leap. We move from static to dynamic.
They are formal structures allowing rich, typed, and semantic relationships, unlimited and explicit (MARRIED-TO, WORKS-FOR, MANUFACTURED-BY, LOCATED-IN, PURCHASED,...).
Structure:
- Classes: Abstract concepts (Person, Product, Company)
- Subclasses: Specializations (Employee IS-A Person)
- Instances: Concrete entities representing real facts (John Smith, iPhone 15)
- Axioms: Rules and constraints ("An employee can only work for one company at a time")
- Properties: Attributes of classes (Person has an age, a name...)
There are many standards out there: RDF, OWL, SPARQL, we used 3 of them at UTT, lol, and we worked with a tool named Protégé (read it in french please)
The ontology is by-design traversable. You can query it to infer new information that wasn't explicitly declared.
Example: If John WORKS-FOR Acme, and Acme LOCATED-IN Paris, then we can infer that John works in Paris–even if this fact isn't directly stored.
Knowledge Graph

Knowledge Graph: Instantiated and traversable ontology
The Knowledge Graph is mainly, in my current understanding, the concrete implementation of an ontology.
A graph of structured data where entities (Nodes) are connected by typed relationships (Edges). Simple, Basique.
Nodes are entities (people, products, concepts...) and Edges are labeled and directional relationships