Skip to Content

RDF Learning Resources

Module 4: Controlled Vocabularies

Understanding Controlled Vocabularies

Controlled vocabularies provide standardized terms and concepts to ensure consistent data representation. In the RDF world, they are crucial for establishing shared meaning across datasets.

In this module, you'll learn:

Controlled Vocabulary Basics

A controlled vocabulary is a curated list of terms that have been explicitly enumerated and managed. These vocabularies help standardize terminology and improve data consistency.

What is a Controlled Vocabulary?

A controlled vocabulary is an organized set of words, phrases, or terms that are used for indexing, tagging, and retrieving content. They provide a way to organize knowledge for subsequent retrieval.

Key characteristics of controlled vocabularies include:

  • Standardization - Ensures consistent terminology
  • Ambiguity control - Resolves language ambiguities
  • Relationship expression - Shows how terms relate to each other
  • Defined scope - Clearly defines the domain covered

Examples of Controlled Vocabularies:

  • Taxonomies - Hierarchical classifications (e.g., biological classification)
  • Thesauri - Collections of related terms showing relationships
  • Subject headings - Standardized terms for cataloging
  • Code lists - Enumerated sets of codes and their meanings

Why Are Controlled Vocabularies Important?

Without Controlled Vocabulary
With Controlled Vocabulary
  • Inconsistent terminology
  • Ambiguous meanings
  • Difficult to aggregate data
  • Poor search results
  • Standardized terminology
  • Clear, defined meanings
  • Easy data integration
  • Improved search precision

SKOS Concepts

The Simple Knowledge Organization System (SKOS) is a W3C recommendation for representing controlled vocabularies in RDF. It provides a way to standardize how we express concepts and their relationships.

What is a SKOS Concept?

In SKOS, a skos:Concept is an idea or notion - a unit of thought. Concepts are the basic elements used to build controlled vocabularies.

Each concept can have:

  • Labels - Preferred (skos:prefLabel) and alternative (skos:altLabel) terms
  • Definitions - Formal explanations of meaning (skos:definition)
  • Semantic relationships - How concepts relate to each other (broader, narrower, related)
  • Notes - Additional information about usage, scope, etc.

SKOS Concept Example:

@prefix skos: <http://www.w3.org/2004/02/skos/core#> .
@prefix ex: <http://example.org/> .

ex:Mammal a skos:Concept ;
    skos:prefLabel "Mammal"@en ;
    skos:altLabel "Mammalia"@en ;
    skos:definition "Warm-blooded vertebrate animals characterized by hair or fur."@en ;
    skos:broader ex:Vertebrate ;
    skos:narrower ex:Cat, ex:Dog, ex:Elephant .

SKOS Concept Relationships

ex:Vertebrate
skos:Concept
skos:narrower
ex:Mammal
skos:Concept
prefLabel: "Mammal"
altLabel: "Mammalia"
skos:narrower
ex:Cat
skos:Concept
ex:Dog
skos:Concept
ex:Elephant
skos:Concept

Concept Relationship Exercise

Match each SKOS relationship with its correct description:

skos:broader
skos:narrower
skos:related
skos:altLabel

SKOS Collections

A skos:Collection represents a group of SKOS concepts that are gathered for a particular purpose. Unlike ConceptSchemes, Collections don't necessarily form a complete vocabulary system.

What is a SKOS Collection?

A Collection is a labeled and/or ordered group of SKOS concepts. Collections are useful for representing sets of concepts that have something in common but don't form a complete scheme.

Key points about Collections:

  • Group membership - Includes concepts via skos:member property
  • Purpose-specific - Typically gathered for a specific need or context
  • Optional ordering - Can be ordered (skos:OrderedCollection) or unordered
  • Nesting - Collections can contain other collections

Collection Example:

@prefix skos: <http://www.w3.org/2004/02/skos/core#> .
@prefix ex: <http://example.org/> .

ex:EndangeredSpecies a skos:Collection ;
    skos:prefLabel "Endangered Species List"@en ;
    skos:definition "A collection of animal concepts that are classified as endangered"@en ;
    skos:member ex:SiberianTiger, ex:BlackRhino, ex:MountainGorilla, ex:BlueWhale .

ex:SiberianTiger a skos:Concept ;
    skos:prefLabel "Siberian Tiger"@en ;
    skos:inScheme ex:AnimalClassification .

Collection Structure

ex:EndangeredSpecies
skos:Collection
skos:member
ex:SiberianTiger
skos:Concept
ex:BlackRhino
skos:Concept
ex:MountainGorilla
skos:Concept
ex:BlueWhale
skos:Concept

OrderedCollection

SKOS also provides skos:OrderedCollection, a subclass of skos:Collection that maintains a meaningful order among its members. Instead of skos:member, it uses skos:memberList to point to an RDF list that specifies the order.

ex:ThreatLevels a skos:OrderedCollection ;
    skos:prefLabel "IUCN Conservation Status Levels"@en ;
    skos:memberList ( ex:ExtinctInWild ex:CriticallyEndangered ex:Endangered 
                       ex:Vulnerable ex:NearThreatened ex:LeastConcern ) .

Collection Builder Exercise

Create a valid SKOS Collection by dragging the appropriate concepts into the collection:

Build a collection of "Freshwater Fish Species" by selecting only the freshwater fish concepts:

ex:Trout (Freshwater)
ex:Tuna (Saltwater)
ex:Bass (Freshwater)
ex:Carp (Freshwater)
ex:Mackerel (Saltwater)
ex:Salmon (Both)
ex:Catfish (Freshwater)
ex:Cod (Saltwater)
ex:FreshwaterFish a skos:Collection;
skos:member

Drop freshwater fish concepts here

SKOS ConceptSchemes

A skos:ConceptScheme represents a knowledge organization system like a thesaurus, classification scheme, subject heading list, or any other type of structured controlled vocabulary.

What is a ConceptScheme?

A ConceptScheme is a set of concepts that includes statements about how the concepts relate to each other. Think of it as a framework that organizes concepts into a coherent structure.

Key aspects of ConceptSchemes:

  • Aggregation - Groups related concepts together
  • Top concepts - Defines entry points into the hierarchy (skos:hasTopConcept)
  • Documentation - Includes metadata about the scheme itself
  • Concept membership - Indicates which concepts belong to the scheme (skos:inScheme)

ConceptScheme Example:

@prefix skos: <http://www.w3.org/2004/02/skos/core#> .
@prefix ex: <http://example.org/> .
@prefix dct: <http://purl.org/dc/terms/> .

ex:AnimalClassification a skos:ConceptScheme ;
    dct:title "Animal Classification Scheme"@en ;
    dct:description "A taxonomy of animal classifications"@en ;
    dct:creator "Biology Department"@en ;
    skos:hasTopConcept ex:Vertebrate, ex:Invertebrate .
    
ex:Vertebrate a skos:Concept ;
    skos:prefLabel "Vertebrate"@en ;
    skos:inScheme ex:AnimalClassification ;
    skos:narrower ex:Mammal, ex:Bird, ex:Reptile, ex:Amphibian, ex:Fish .

ConceptScheme Structure

ex:AnimalClassification
skos:ConceptScheme
skos:hasTopConcept
ex:Vertebrate
skos:Concept
ex:Invertebrate
skos:Concept
skos:narrower
ex:Mammal
skos:Concept
ex:Bird
skos:Concept
ex:Reptile
skos:Concept

ConceptScheme Exercise

Identify which statements are true about SKOS ConceptSchemes:

SKOS Collections vs. ConceptSchemes

Both Collections and ConceptSchemes organize SKOS concepts, but they serve different purposes and have different structural characteristics.

Feature
SKOS Collection
SKOS ConceptScheme
Purpose
Group concepts for a specific purpose
Organize complete knowledge systems
Membership
skos:member, skos:memberList
skos:inScheme, skos:hasTopConcept
Structure
Flat or nested collections
Hierarchical with relationships
Typical Use
Ad-hoc groupings, lists
Thesauri, taxonomies, classifications
Can concepts belong to multiple?
Yes, a concept can be in many collections
Yes, a concept can be in many schemes

Using Controlled Vocabularies with Ontologies

SKOS vocabularies work in tandem with OWL ontologies to enhance semantic interoperability. While ontologies define the structure and semantics of data, controlled vocabularies provide standard sets of terms for consistent naming and classification.

Integration Points

Controlled vocabularies can be integrated with ontology-based data in several ways:

  • Classification of instances - Using SKOS concepts to categorize instances of ontology classes
  • Property values - Using SKOS concepts as values for object properties
  • Annotation - Using SKOS concepts to tag and annotate ontology elements
  • Extension - Creating domain-specific extensions of standard vocabularies

Example: Observer Type Vocabulary

@prefix skos: <http://www.w3.org/2004/02/skos/core#> .
@prefix ex: <http://example.org/> .
@prefix sosa: <http://www.w3.org/ns/sosa/> .

# SKOS Concept Scheme for Observer Types
ex:ObserverTypes a skos:ConceptScheme ;
    skos:prefLabel "Observer Type Classification"@en ;
    skos:hasTopConcept ex:HumanObserver, ex:MachineSensor .

# SKOS Concepts for observer types
ex:HumanObserver a skos:Concept ;
    skos:prefLabel "Human Observer"@en ;
    skos:inScheme ex:ObserverTypes .

ex:MachineSensor a skos:Concept ;
    skos:prefLabel "Machine Sensor"@en ;
    skos:inScheme ex:ObserverTypes ;
    skos:narrower ex:AutomaticWeatherStation, ex:SatelliteSensor .

# Using vocabulary with ontology instances
ex:WeatherStation1 a sosa:Platform ;
    sosa:hosts ex:TemperatureSensor1 ;
    ex:hasObserverType ex:AutomaticWeatherStation .

Best Practices

When using SKOS vocabularies with ontologies:

  • Define explicit relationships between ontology classes and SKOS concepts
  • Use object properties to link instances to their SKOS concept classifications
  • Maintain separation of concerns - ontologies for structure, vocabularies for terminology
  • Reuse existing vocabularies where possible before creating your own

Observer Vocabulary Exercise

Select the most appropriate SKOS concept from the Observer Types vocabulary for each sensing device:

1. A person recording bird sightings in a notebook:

2. A weather station that automatically records temperature readings every hour:

3. A NASA Earth observation satellite capturing atmospheric data:

4. A digital camera trap that takes pictures when animals walk by:

?