Skip to Content

RDF Learning Resources

Module 3: Ontology

Understanding Ontologies

An ontology provides a formal way to represent knowledge within a domain by defining types, properties, and the relationships between entities. In the context of RDF, ontologies play a crucial role in organizing data meaningfully.

In this module, you'll learn:

Ontology Basics

An ontology is like a blueprint or schema that defines:

What is an Ontology?

An ontology is a formal specification of the types, properties, and relationships among entities in a particular domain of discourse. Think of it as a vocabulary that defines the concepts and relationships used to describe and represent an area of knowledge.

In RDF contexts, ontologies provide:

  • Semantic meaning to the data
  • Structure for relationships between concepts
  • Consistency in how data is described
  • Inference capabilities to derive new facts

Common Ontology Languages:

  • RDFS (RDF Schema) - Basic constructs like classes and properties
  • OWL (Web Ontology Language) - More expressive constructs for complex domains
  • SKOS (Simple Knowledge Organization System) - For organizing knowledge systems

Example Ontologies:

  • SOSA/SSN - For sensors, observations, and actuators
  • FOAF - For describing people and their relationships
  • Dublin Core - For describing digital resources
  • schema.org - For structuring web content

Classes and Instances

Classes and instances are fundamental components of ontologies. Understanding the relationship between them is key to working with RDF data.

Classes in Ontologies

A class is a category or type that represents a group of resources that share common characteristics. Classes are the templates or blueprints for organizing data.

In RDF, classes are defined using rdf:type and rdfs:Class or owl:Class.

Key characteristics of classes:

  • Act as categories for organizing resources
  • Form hierarchies through subclass relationships
  • Define what properties their instances can have
  • Represent abstract concepts or concrete types

Example Class Definitions in Turtle:

sosa:Sensor rdf:type owl:Class ;
    rdfs:label "Sensor" ;
    rdfs:comment "Device that observes a property or phenomenon." .

sosa:Observation rdf:type owl:Class ;
    rdfs:label "Observation" ;
    rdfs:comment "Act of carrying out a sensing procedure." .

Instances in Ontologies

An instance (or individual) is a specific member of a class. While classes represent categories, instances represent concrete entities or objects in the world.

In RDF, an instance is connected to its class using the rdf:type predicate.

Key characteristics of instances:

  • Concrete representations of real-world entities
  • Belong to one or more classes
  • Have specific property values
  • Are uniquely identified (typically by URI)

Example Instances in Turtle:

ex:Thermometer123 rdf:type sosa:Sensor ;
    rdfs:label "Temperature Sensor 123" ;
    sosa:observes ex:Temperature .

ex:Observation456 rdf:type sosa:Observation ;
    rdfs:label "Temperature Reading 456" ;
    sosa:madeBySensor ex:Thermometer123 .

Properties and Relationships

Properties in RDF ontologies define the characteristics of resources and the relationships between them. They are the predicates in RDF triples that connect subjects to objects.

Types of Properties

There are two main types of properties in RDF ontologies:

1. Object Properties

Connect resources to other resources (link instances to instances)

  • Have resources as their values (not literals)
  • Establish relationships between entities
  • Example: sosa:madeBySensor links an Observation to a Sensor

2. Datatype Properties

Connect resources to literal values (like numbers, dates, or strings)

  • Have literal values with specific datatypes
  • Describe attributes of an entity
  • Example: sosa:hasSimpleResult links an Observation to a value like "23.5"

Property Definitions in Turtle:

# Object Property
sosa:madeBySensor rdf:type owl:ObjectProperty ;
    rdfs:domain sosa:Observation ;
    rdfs:range sosa:Sensor .

# Datatype Property
sosa:hasSimpleResult rdf:type owl:DatatypeProperty ;
    rdfs:domain sosa:Observation ;
    rdfs:range xsd:string .

Property Characteristics

Properties can have various characteristics that define their behavior:

Domain and Range

Domain: Specifies which class(es) the property applies to

Range: Specifies what type of values the property can have

Cardinality

Defines how many values a property can have

  • Minimum cardinality (at least N values)
  • Maximum cardinality (at most N values)
  • Exact cardinality (exactly N values)

Logical Characteristics

  • Symmetric: If A relates to B, then B relates to A
  • Transitive: If A relates to B and B relates to C, then A relates to C
  • Functional: A resource can have at most one value for this property
  • Inverse Functional: A value can be linked to at most one resource

RDF vs Tabular Data Terms

Understanding how terms in RDF ontologies compare to those in tabular data helps bridge the conceptual gap between these data models.

Tabular Data Concept RDF/Ontology Concept Key Differences
Table Class
  • Tables are rigid structures with fixed columns
  • Classes can have optional properties and form hierarchies
Row Instance (Individual)
  • Rows must have values (or NULL) for every column
  • Instances can have different sets of properties
Column Property
  • Columns apply to every row in a table
  • Properties can have domains specifying which classes they apply to
Foreign Key Object Property
  • Foreign keys only reference primary keys
  • Object properties can link any resources
Schema Ontology
  • Schemas primarily define structure
  • Ontologies define semantics and enable inference
Data Type Range
  • Data types constrain column values
  • Ranges constrain property values and can include classes

Key Conceptual Differences

1. Flexibility vs. Structure

Tabular data enforces a rigid structure where every row must conform to the table schema. RDF allows for more flexibility where instances can have different sets of properties even within the same class.

2. Semantics vs. Syntax

Tabular data focuses on syntax and structure, while RDF ontologies emphasize semantics (meaning). Ontologies can express complex relationships and enable logical inference.

3. Globally Identified vs. Locally Scoped

In RDF, all resources and properties have globally unique identifiers (URIs), enabling unambiguous reference across datasets. Tabular data terms are typically scoped to a database or dataset.

Conversion Example:

Tabular Data (Sensors table):
SensorID Type Location
Sensor123 Temperature Room104
Equivalent RDF/Ontology:
ex:Sensor123 rdf:type sosa:Sensor ;
    ex:hasType "Temperature" ;
    ex:hasLocation ex:Room104 .

In RDF/ontology terms:

  • The table "Sensors" corresponds to the class sosa:Sensor
  • The row becomes an instance ex:Sensor123
  • Column names become properties (ex:hasType, ex:hasLocation)
  • Cell values become either literal values or references to other resources

SOSA Ontology Example

The SOSA (Sensor, Observation, Sample, and Actuator) Ontology provides an excellent real-world example of how ontologies are used to model a domain - in this case, sensors and their observations.

About SOSA Ontology

The SOSA ontology is part of the Semantic Sensor Network (SSN) ontology suite, which provides a standard way to describe sensors, their observations, the procedures they follow, the features they observe, the samples they take, and the actuators they control.

Key benefits of using the SOSA ontology include:

  • Standardized vocabulary for sensor data
  • Interoperability between different sensor systems
  • Rich semantic description of sensing contexts
  • Linkage to other standards and vocabularies

Core SOSA Classes:

  • sosa:Sensor - Device that observes a property or phenomenon
  • sosa:Observation - Act of carrying out a sensing procedure
  • sosa:ObservableProperty - Property that can be observed
  • sosa:FeatureOfInterest - Entity whose property is being observed
  • sosa:Result - Result of an observation
  • sosa:Procedure - Method used for making observations

Complete SOSA Example (in Turtle):

@prefix sosa:  .
@prefix ex:  .
@prefix xsd:  .

# Sensor instance
ex:Thermometer123 rdf:type sosa:Sensor ;
    rdfs:label "Temperature Sensor 123" ;
    sosa:observes ex:Temperature ;
    sosa:isHostedBy ex:WeatherStation42 ;
    sosa:madeObservation ex:Observation456 .

# Observation instance
ex:Observation456 rdf:type sosa:Observation ;
    rdfs:label "Temperature Reading at 2023-05-15T10:30:00Z" ;
    sosa:madeBySensor ex:Thermometer123 ;
    sosa:observedProperty ex:Temperature ;
    sosa:hasFeatureOfInterest ex:Room104 ;
    sosa:resultTime "2023-05-15T10:30:00Z"^^xsd:dateTime ;
    sosa:hasResult ex:Result789 .

# Result instance
ex:Result789 rdf:type sosa:Result ;
    sosa:hasSimpleResult "23.5"^^xsd:decimal .

# Observable Property
ex:Temperature rdf:type sosa:ObservableProperty ;
    rdfs:label "Air temperature" .

# Feature of Interest
ex:Room104 rdf:type sosa:FeatureOfInterest ;
    rdfs:label "Room 104" ;
    ex:isPartOf ex:Building7 .

Note on SOSA Implementation:

The SOSA ontology demonstrates how ontologies can model complex real-world systems by:

  • Defining clear classes for different entity types
  • Establishing meaningful relationships between entities
  • Supporting both simple and complex data structures
  • Enabling data integration across different sources

This makes it ideal for IoT applications, environmental monitoring, scientific research, and any domain involving sensors and observations.

Interactive Exercise: Ontology Building

Let's practice working with ontology concepts by matching classes and properties to create a valid ontology structure.

Exercise 1: Class and Property Matching

Match each ontology term with its correct type:

Exercise 2: Property Domains and Ranges

For each SOSA property, select its correct domain (subject) and range (object):

Property Domain (applies to) Range (values are)
sosa:madeObservation
sosa:hasResult
sosa:madeBySensor

Exercise 3: Ontology vs. Tabular Thinking

Identify which statement reflects ontology-based thinking versus tabular data thinking:

1. "Every sensor must have exactly one location and one type."

2. "A sensor might have multiple observable properties, and we can add new properties as needed."

3. "We need to add a new column to the sensors table to store this new attribute."

4. "If a sensor is part of a platform, and that platform is located in a room, we can infer the sensor is in that room."

5. "We'll need to join three tables to get all the information about this sensor."

?