SKOS (Simple Knowledge Organization System)
A W3C standard for representing taxonomies, thesauri, classification schemes, and controlled vocabularies using RDF, enabling semantic interoperability across knowledge organization systems.
SKOS (Simple Knowledge Organization System) is a W3C standard for representing structured vocabularies, taxonomies, thesauri, and classification schemes using RDF. SKOS provides a lightweight ontology for organizing concepts with labels, hierarchies, relationships, and documentation, making knowledge organization systems machine-readable and interoperable.
Core SKOS Elements
Concepts and Concept Schemes
Concepts are the fundamental units (topics, categories, subjects):
@prefix skos: <http://www.w3.org/2004/02/skos/core#> .
@prefix ex: <http://example.org/topics/> .
# Concept Scheme (container for concepts)
ex:SubjectScheme a skos:ConceptScheme ;
skos:prefLabel "Subject Classification" ;
skos:definition "Topics for organizing documents" .
# Individual concepts
ex:Technology a skos:Concept ;
skos:inScheme ex:SubjectScheme ;
skos:prefLabel "Technology"@en ;
skos:prefLabel "Technologie"@fr ;
skos:definition "Applied sciences and engineering" .
ex:ArtificialIntelligence a skos:Concept ;
skos:inScheme ex:SubjectScheme ;
skos:prefLabel "Artificial Intelligence"@en ;
skos:altLabel "AI"@en ;
skos:altLabel "Machine Intelligence"@en ;
skos:definition "Computer systems that perform tasks requiring human intelligence" .
Labels
SKOS provides three types of labels:
Preferred Label (skos:prefLabel)
The primary, canonical name:
ex:MachineLearning skos:prefLabel "Machine Learning"@en .
Rules:
- Exactly one per language
- Used for display and user interfaces
- Should be unique within concept scheme
Alternative Label (skos:altLabel)
Synonyms and variants:
ex:MachineLearning
skos:prefLabel "Machine Learning"@en ;
skos:altLabel "ML"@en ;
skos:altLabel "Statistical Learning"@en ;
skos:altLabel "Automated Learning"@en .
Use cases:
- Abbreviations
- Synonyms
- Historical terms
- Spelling variations
Hidden Label (skos:hiddenLabel)
For search matching but not display:
ex:MachineLearning
skos:prefLabel "Machine Learning"@en ;
skos:hiddenLabel "machinelearning"@en ; # No space
skos:hiddenLabel "machin learning"@en ; # Common misspelling
skos:hiddenLabel "machine lerning"@en . # Another typo
Use cases:
- Common misspellings
- Outdated terms
- Indexing terms
Hierarchical Relations
Broader/Narrower
Express taxonomic hierarchies:
ex:Technology a skos:Concept ;
skos:prefLabel "Technology" .
ex:ArtificialIntelligence a skos:Concept ;
skos:prefLabel "Artificial Intelligence" ;
skos:broader ex:Technology . # AI is narrower than Technology
ex:MachineLearning a skos:Concept ;
skos:prefLabel "Machine Learning" ;
skos:broader ex:ArtificialIntelligence .
ex:DeepLearning a skos:Concept ;
skos:prefLabel "Deep Learning" ;
skos:broader ex:MachineLearning .
Inverse relationship:
ex:Technology skos:narrower ex:ArtificialIntelligence .
ex:ArtificialIntelligence skos:narrower ex:MachineLearning .
Hierarchy:
Technology
└─ Artificial Intelligence
└─ Machine Learning
└─ Deep Learning
Top Concepts
Mark the root concepts of a hierarchy:
ex:SubjectScheme a skos:ConceptScheme ;
skos:hasTopConcept ex:Technology ;
skos:hasTopConcept ex:Science ;
skos:hasTopConcept ex:Healthcare .
ex:Technology skos:topConceptOf ex:SubjectScheme .
Associative Relations
Related Concepts (skos:related)
Non-hierarchical associations:
ex:MachineLearning a skos:Concept ;
skos:prefLabel "Machine Learning" ;
skos:related ex:DataScience ; # Related but not hierarchical
skos:related ex:Statistics ;
skos:related ex:NeuralNetworks .
ex:DataScience skos:related ex:MachineLearning . # Symmetric
Use cases:
- Cross-domain connections
- See-also references
- Complementary topics
Documentation Properties
Definition
Formal explanation:
ex:MachineLearning
skos:definition """A subset of artificial intelligence focused on
algorithms that learn patterns from data without explicit programming."""@en .
Scope Note
Usage guidance:
ex:MachineLearning
skos:scopeNote """Use for documents about supervised, unsupervised,
and reinforcement learning. For neural networks specifically, use
'Deep Learning'."""@en .
Example
Illustrative usage:
ex:MachineLearning
skos:example "Image recognition systems using convolutional neural networks"@en ;
skos:example "Spam filters trained on email corpora"@en .
History Note
Provenance and changes:
ex:ArtificialIntelligence
skos:historyNote """Originally coined in 1956 at the Dartmouth Conference.
Term usage expanded significantly after 2010."""@en .
Editorial Note
Internal management notes:
ex:MachineLearning
skos:editorialNote "Consider splitting into supervised/unsupervised subcategories in next version"@en .
Complete Example: Technology Taxonomy
@prefix skos: <http://www.w3.org/2004/02/skos/core#> .
@prefix ex: <http://example.org/tech/> .
# Concept Scheme
ex:TechTaxonomy a skos:ConceptScheme ;
skos:prefLabel "Technology Taxonomy"@en ;
skos:definition "Classification system for technology topics" ;
skos:hasTopConcept ex:Technology .
# Top Concept
ex:Technology a skos:Concept ;
skos:inScheme ex:TechTaxonomy ;
skos:topConceptOf ex:TechTaxonomy ;
skos:prefLabel "Technology"@en ;
skos:narrower ex:SoftwareEngineering, ex:ArtificialIntelligence .
# Software Engineering Branch
ex:SoftwareEngineering a skos:Concept ;
skos:inScheme ex:TechTaxonomy ;
skos:prefLabel "Software Engineering"@en ;
skos:altLabel "Software Development"@en ;
skos:broader ex:Technology ;
skos:narrower ex:WebDevelopment, ex:MobileDevelopment ;
skos:related ex:ArtificialIntelligence .
ex:WebDevelopment a skos:Concept ;
skos:inScheme ex:TechTaxonomy ;
skos:prefLabel "Web Development"@en ;
skos:altLabel "Web Dev"@en ;
skos:broader ex:SoftwareEngineering ;
skos:definition "Building applications for the World Wide Web" .
# AI Branch
ex:ArtificialIntelligence a skos:Concept ;
skos:inScheme ex:TechTaxonomy ;
skos:prefLabel "Artificial Intelligence"@en ;
skos:altLabel "AI"@en ;
skos:broader ex:Technology ;
skos:narrower ex:MachineLearning, ex:NaturalLanguageProcessing ;
skos:related ex:SoftwareEngineering ;
skos:definition "Computer systems that simulate human intelligence" .
ex:MachineLearning a skos:Concept ;
skos:inScheme ex:TechTaxonomy ;
skos:prefLabel "Machine Learning"@en ;
skos:altLabel "ML"@en ;
skos:altLabel "Statistical Learning"@en ;
skos:broader ex:ArtificialIntelligence ;
skos:narrower ex:DeepLearning, ex:ReinforcementLearning ;
skos:definition "Algorithms that learn from data" ;
skos:example "Image classification, recommendation systems" .
ex:DeepLearning a skos:Concept ;
skos:inScheme ex:TechTaxonomy ;
skos:prefLabel "Deep Learning"@en ;
skos:altLabel "Deep Neural Networks"@en ;
skos:broader ex:MachineLearning ;
skos:definition "Neural networks with multiple layers" .
ex:NaturalLanguageProcessing a skos:Concept ;
skos:inScheme ex:TechTaxonomy ;
skos:prefLabel "Natural Language Processing"@en ;
skos:altLabel "NLP"@en ;
skos:broader ex:ArtificialIntelligence ;
skos:related ex:MachineLearning .
SKOS Mapping Properties
Link concepts across different vocabularies:
Exact Match
Concepts are equivalent:
ex:ArtificialIntelligence skos:exactMatch dbpedia:Artificial_intelligence .
Close Match
Concepts are closely related but not identical:
ex:MachineLearning skos:closeMatch wikidata:Q2539 .
Broader/Narrower Match
Hierarchical relationships across schemes:
ex:DeepLearning skos:broadMatch dbpedia:Machine_learning .
ex:Technology skos:narrowMatch dbpedia:Software_engineering .
Related Match
Associative relationships across schemes:
ex:AI skos:relatedMatch dbpedia:Cognitive_science .
SKOS in TrustGraph
Loading SKOS Taxonomies
# Load SKOS taxonomy
tg-load-text \
--text "$(cat tech-taxonomy.ttl)" \
--title "Technology Taxonomy"
# Query using taxonomy
tg-invoke-graph-rag \
-q "Find all concepts related to Artificial Intelligence"
Querying SKOS with SPARQL
PREFIX skos: <http://www.w3.org/2004/02/skos/core#>
# Find all narrower concepts (subcategories)
SELECT ?concept ?label
WHERE {
?concept skos:broader ex:ArtificialIntelligence ;
skos:prefLabel ?label .
}
# Find all synonyms for a term
SELECT ?altLabel
WHERE {
ex:MachineLearning skos:altLabel ?altLabel .
FILTER(lang(?altLabel) = "en")
}
# Navigate full hierarchy
SELECT ?narrower ?label
WHERE {
ex:Technology skos:narrower+ ?narrower .
?narrower skos:prefLabel ?label .
}
Use Cases
- Document Classification: Categorize content using controlled vocabularies
- Search Enhancement: Query expansion with synonyms and related terms
- Data Integration: Map concepts across different systems
- Semantic Navigation: Browse content hierarchically
- Multilingual Support: Maintain labels in multiple languages
- Thesaurus Management: Manage controlled vocabularies
- Faceted Search: Organize search filters by taxonomy
SKOS vs OWL
| Aspect | SKOS | OWL |
|---|---|---|
| Purpose | Organize concepts | Define formal ontologies |
| Complexity | Simple, lightweight | Complex, expressive |
| Semantics | Informal hierarchies | Formal logic |
| Reasoning | Limited | Powerful inference |
| Use Case | Taxonomies, thesauri | Domain models, validation |
| Learning Curve | Easy | Steep |
When to use SKOS:
- Organizing content for users
- Managing controlled vocabularies
- Simple hierarchical classification
- Multilingual label management
When to use OWL:
- Formal reasoning required
- Data validation against constraints
- Complex domain modeling
- Automated inference
Best Practices
- One Language, One Label: Use
@en,@frlanguage tags consistently - Unique Preferred Labels: Avoid duplicate prefLabels in same scheme
- Bidirectional Relations: Define both broader and narrower for clarity
- Document Decisions: Use scopeNote and editorialNote
- Hierarchies: Keep reasonably shallow (3-5 levels max)
- Related vs Broader: Use skos:related for non-hierarchical associations
- Multilingual: Provide labels in all relevant languages
- Versioning: Track changes to concept schemes over time
Limitations
- No Formal Semantics: Cannot express logical constraints
- Weak Validation: No strict enforcement of rules
- Ambiguous Relations: broader/narrower less precise than OWL subClassOf
- No Inference: Limited reasoning compared to OWL
- Flat Properties: Cannot define property hierarchies
See Also
- Taxonomy - Hierarchical classifications
- Vocabulary - Standardized term sets
- RDF - Foundation for SKOS
- OWL - More expressive ontology language
- Semantic Web - Machine-readable web vision
- Ontology - Formal domain specifications
Examples
- •Concept scheme: Library classification with broader/narrower terms
- •Thesaurus: Medical terminology with synonyms (prefLabel, altLabel)
- •Subject hierarchy: News topics organized hierarchically