Ontology · Knowledge graphs

SKOS or OWL? Choosing the right model for enterprise taxonomies and ontologies

Enterprise ontology programmes often stall on a modelling question disguised as a tooling one: should the product taxonomy, the risk register or the clinical code list be an OWL ontology or a SKOS vocabulary? The answer is usually both, for different jobs.

ComparisonSumanta Mukhopadhyay8 min read5 sources
#ontology#knowledge-graph#data#architecture
COMPARISON · ONTOLOGY · KNOWLEDGE GRAPHS26 Oct 2026 · 16:30 GST

Every organisation already has knowledge models. They're in spreadsheets of product categories, SharePoint term stores, code lists in the data warehouse and the folder structure of the document system. When an ontology or knowledge graph programme starts, one of the first decisions is how to represent these formally. Two W3C standards dominate the conversation, and choosing the wrong one for a given job is a common reason programmes lose a year.

Two standards, two purposes

SKOS, the Simple Knowledge Organization System, became a W3C Recommendation in 2009. It is a common data model for sharing and linking knowledge organisation systems, such as thesauri, taxonomies and classification schemes, on the web1. Its world is concepts, labels and loose relations between them.

OWL 2, the Web Ontology Language, defines classes, properties and logical axioms that reasoners can use to infer new facts and detect contradictions. Its profiles, finalised in their second edition in 2012, trade expressiveness for tractable reasoning3.

The SKOS designers were explicit that SKOS was not meant to compete with OWL but to complement it, offering a path to bring existing knowledge that doesn't map easily into an OWL ontology onto the semantic web5.

Side by side

SKOSOWL 2
Core unitConcept with labelsClass, property, individual
Hierarchyskos:broader: "is filed under", for navigation and retrievalrdfs:subClassOf: "every X is a Y", logical subsumption
LabelsFirst-class: preferred, alternative and hidden labels, with at most one preferred label per language1Annotations, not part of the logic
ReasoningLight; little to inferRich, with profiles tuned for scale3
Cross-scheme linksMapping properties such as exact, close and broader matches1Equivalence and subclass axioms with logical consequences
Who maintains itTaxonomists, subject experts, business ownersOntologists and data architects
Best forProduct categories, subject tags, code lists, synonyms for searchDomain models, constraints, integration semantics

The mistake that matters most

The most expensive error is treating a taxonomy hierarchy as a class hierarchy. In a product catalogue, "Garden furniture" sits under "Outdoor" and also under "Furniture". That is a filing decision, not a claim that every garden chair is, logically, an instance of "Outdoor".

SKOS is careful here. skos:broader is used only for direct hierarchical links and is not declared transitive; skos:broaderTransitive is a separate superproperty for inferring indirect links12. Converting the same hierarchy into rdfs:subClassOf makes every relation logically binding, and a reasoner will happily draw conclusions nobody intended.

If the business owner would say "it's filed under", use SKOS. If they would say "it is always a kind of", consider OWL. Most enterprise hierarchies are the first.

Choosing OWL profiles when you do need logic

Where OWL is the right tool, its profiles help match reasoning to scale34:

  • OWL 2 EL suits ontologies with very large numbers of classes and properties, with polynomial-time reasoning for core tasks. Large biomedical terminologies are the classic fit.
  • OWL 2 QL targets large volumes of instance data queried through relational databases, which suits virtual knowledge graphs over existing warehouses.
  • OWL 2 RL supports rule-based reasoning that works directly on RDF triples, practical inside many triple stores.

Choosing a profile early prevents a common failure: a model that is logically elegant and unusable at production volume.

The combined pattern I use

  1. A small OWL core for the domain: customer, product, contract, patient, asset, and the relations between them. Keep it in a tractable profile.
  2. SKOS vocabularies for classification: product categories, risk types, diagnosis groupings, document subjects. Instances in the core point to concepts through ordinary properties, such as "has category".
  3. Mappings between vocabularies using SKOS mapping properties, so a local code list can align with an industry standard without pretending they are identical.
  4. SHACL for data quality, as described in SHACL validation, because closed-world checks belong outside the open-world logic of OWL.
  5. Labels feed search and AI. SKOS alternative and hidden labels give retrieval and GraphRAG the synonyms and misspellings users actually type.

This also clarifies ownership. Business teams can maintain vocabularies in a taxonomy tool without touching the ontology, while architects govern the core. How these pieces relate to a semantic layer is covered in ontology vs knowledge graph vs semantic layer, and how clinical vocabularies are handled in practice in clinical terminologies in OMOP.

How I can help

I design ontology and knowledge graph programmes that start with the models an organisation already has, and choose the lightest formalism that does the job. See ontology and knowledge graphs, or analyse your challenge and bring the result to a call.

References
  1. 1
  2. 2
  3. 3
  4. 4
  5. 5
    Post on SKOS and its relationship to OWLW3C public-esw-thes mailing list (A. Miles) · Mar 2004
FAQ

Common questions

What is the difference between SKOS and OWL?

SKOS is a W3C model for sharing taxonomies, thesauri and classification schemes as concepts linked by broader, narrower and related relations, with labels. OWL is a W3C ontology language for defining classes, properties and logical constraints that a reasoner can use to infer new facts. SKOS describes how people organise and label ideas; OWL describes what things are, formally.

Is skos:broader the same as rdfs:subClassOf?

No. skos:broader links concepts in a hierarchy for navigation and retrieval, and is not even declared transitive; skos:broaderTransitive exists for inference. rdfs:subClassOf is a logical subsumption between classes: every instance of the subclass is an instance of the superclass. Treating one as the other causes incorrect inferences.

Can SKOS and OWL be used together?

Yes, and that is common. The SKOS designers described it as complementary to OWL. A typical pattern uses OWL for the core domain model and SKOS for the vocabularies that classify and label instances, linked by properties in the ontology.

Keep reading

Related

Open to advisory, fractional CTO & select builds

Let's talk about what you're building.

The fastest route is a free 30-minute call. Prefer to write? Send a message and I'll reply personally within two business days.

Start a conversation

How would you like to reach me?

Book a 30-min callFastest. Pick any open slot on my calendar.→ Write in GmailOpens a pre-filled draft in your browser.→ Use my email appOutlook, Apple Mail or your default client.→

I reply personally within two business days. Time zones from the Americas and Europe to the Middle East and Asia-Pacific.