TrustGraphGet Started

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.

Standards

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

  1. Document Classification: Categorize content using controlled vocabularies
  2. Search Enhancement: Query expansion with synonyms and related terms
  3. Data Integration: Map concepts across different systems
  4. Semantic Navigation: Browse content hierarchically
  5. Multilingual Support: Maintain labels in multiple languages
  6. Thesaurus Management: Manage controlled vocabularies
  7. Faceted Search: Organize search filters by taxonomy

SKOS vs OWL

AspectSKOSOWL
PurposeOrganize conceptsDefine formal ontologies
ComplexitySimple, lightweightComplex, expressive
SemanticsInformal hierarchiesFormal logic
ReasoningLimitedPowerful inference
Use CaseTaxonomies, thesauriDomain models, validation
Learning CurveEasySteep

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

  1. One Language, One Label: Use @en, @fr language tags consistently
  2. Unique Preferred Labels: Avoid duplicate prefLabels in same scheme
  3. Bidirectional Relations: Define both broader and narrower for clarity
  4. Document Decisions: Use scopeNote and editorialNote
  5. Hierarchies: Keep reasonably shallow (3-5 levels max)
  6. Related vs Broader: Use skos:related for non-hierarchical associations
  7. Multilingual: Provide labels in all relevant languages
  8. Versioning: Track changes to concept schemes over time

Limitations

  1. No Formal Semantics: Cannot express logical constraints
  2. Weak Validation: No strict enforcement of rules
  3. Ambiguous Relations: broader/narrower less precise than OWL subClassOf
  4. No Inference: Limited reasoning compared to OWL
  5. 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

Related Terms

Learn More