Fork me on GitHub

The Service Ontology

Jakob Voß (VZG)

2013-11-24 (version 0.2.0)

Table of Contents

1 Introduction

The Service Ontology is a micro-ontology that defines the general concept of a service. The ontology is related to GoodRelations Vocabulary, to Schema.org Vocabulary, to DCMI Metadata Terms, and to FOAF Vocabulary.

1.1 Status of this document

This document and RDF serializations of the Service Ontology (service.ttl in RDF/Turtle and service.owl in RDF/XML) are based on a source file written in Pandoc Markdown syntax, managed with makespec. Sources and updates are available at http://github.com/dini-ag-kim/service-ontology.

This is version 0.2.0, last modified at 2013-11-24 with revision df1bb06.

The current version of this ontology is a draft for open discussion. Feedback is welcome!

Revision history

1.2 Namespaces and ontology

The URI namespace of the Service Ontology is http://purl.org/ontology/service#. The namespace prefix service is recommended. The URI of this ontology as a whole is http://purl.org/ontology/service.

The following namespace prefixes are used to refer to related ontologies:

@prefix gr:      <http://purl.org/goodrelations/v1#> .
@prefix schema:  <http://schema.org/> .
@prefix owl:     <http://www.w3.org/2002/07/owl#> .
@prefix rdfs:    <http://www.w3.org/2000/01/rdf-schema#> .
@prefix dcterms: <http://purl.org/dc/terms/> .
@prefix dctype:  <http://purl.org/dc/dcmitype/> .
@prefix vann:    <http://purl.org/vocab/vann/> .
@prefix voaf:    <http://purl.org/vocommons/voaf#> .
@prefix foaf:    <http://xmlns.com/foaf/0.1/> .
@prefix vs:      <http://www.w3.org/2003/06/sw-vocab-status/ns#> .
@prefix xsd:     <http://www.w3.org/2001/XMLSchema#> .
@prefix cc:      <http://creativecommons.org/ns#> .

The Service Ontology is defined in RDF/Turtle as following:

@prefix service: <http://purl.org/ontology/service#> .
@base            <http://purl.org/ontology/service> .

<> a owl:Ontology, voaf:Vocabulary ;
    dcterms:title "Service Ontology"@en ;
    vann:preferredNamespacePrefix "service" ;
    vann:preferredNamespaceUri "http://purl.org/ontology/service#" ;
    dcterms:description "A micro-ontology that defines the general concept of a service."@en ; 
    dcterms:modified "2013-11-24"^^xsd:date ;
    owl:versionInfo "0.2.0" ;
    cc:license <http://creativecommons.org/licenses/by/3.0/> ;
    dcterms:creator "Jakob Voß" 
.

2 Overview

The following diagram illustrates the classes and properties defined in the Service Ontology:


     +-----------------+   provides     +---------------+   consumedBy   +-----------------+
     | ServiceProvider |--------------->|               |--------------->| ServiceConsumer |
     |                 |<---------------|               |<---------------|                 |
     +-----------------+   providedBy   |               |   consumes     +-----------------+
                                        |    Service    |
   +-------------------+   limits       |               |   delay
   | ServiceLimitation |--------------->|               |-------------> duration-or-time
   |                   |<---------------|               |-------------> xsd:nonNegativeInteger
   +-------------------+  limitedBy     |               |   queue
                                        +---------------+

A Service, as defined by the Service Ontology is typically provided by a ServiceProvider and/or consumed by a ServiceConsumer. Services may further be constraint by a ServiceLimitation, by a delay and/or by the length of waiting queue.

3 Classes

3.1 Service

A service is some action that is done for someone.

Each instance of a Service is also an instance of gr:ProductOrService from GoodRelations Vocabulary and dctype:Service from DCMI Metadata Terms. A service can be connected to one or more ServiceProvider with property providedBy and to one or more ServiceConsumer with property consumedBy.

service:Service a owl:Class ;
    rdfs:label "Service"@en ;
    rdfs:subClassOf gr:ProductOrService, dctype:Service ;
    rdfs:seeAlso schema:Service, schema:Product ;
    rdfs:isDefinedBy <> .

Most services are also instance of schema:Product and/or schema:Service from Schema.org Vocabulary.

3.2 ServiceProvider

A service provider is an entity that is responsible for providing a Service.

service:ServiceProvider a owl:Class ;
    rdfs:label "ServiceProvider"@en ;
    rdfs:seeAlso foaf:Agent, dctype:Agent, gr:BusinessEntity, 
        schema:Person, schema:Organization ;
    rdfs:isDefinedBy <> .

Typical providers, such as organizations and people, are also instances of foaf:Agent, dctype:Agent, gr:BusinessEntity, and schema:Person or schema:Organization but the Service Ontology does not put any constraints on the nature of providers.

3.3 ServiceConsumer

A service consumer is an entity that requests or consumes a Service.

service:ServiceConsumer a owl:Class ;
    rdfs:label "ServiceConsumer"@en ;
    rdfs:seeAlso foaf:Agent, dctype:Agent, gr:BusinessEntity, 
        schema:Person, schema:Organization ;
    rdfs:isDefinedBy <> .

Typical consumers, such as organizations and people, are instances of foaf:Agent, dctype:Agent, gr:BusinessEntity, schema:Person, schema:Organization, or schema:Audience but the Service Ontology does not put any constraints on the nature of consumers.

3.4 ServiceLimitation

A service limitation is some obstacle that may limit the use of a Service. For instance the purchase of guns and drugs is limited to consumers with special permission. Another example is providing a different product or activity than originally requested. Services and limitations are connected to each other with properties limits and limitedBy.

service:ServiceLimitation a owl:Class ;
    rdfs:label "ServiceLimitation"@en ;
    rdfs:isDefinedBy <> .

4 Properties

4.1 provides

Relates a ServiceProvider instance that provides a Service instance to this service.

service:provides a owl:ObjectProperty ;
    rdfs:label "provides"@en ;
    rdfs:domain service:ServiceProvider ;
    rdfs:range service:Service ;
    owl:inverseOf service:providedBy ;
    rdfs:isDefinedBy <> .

The existence of a provides relationship between a ServiceProvider and a Service often implies the existence of an offer (gr:Offering and/or schema:Offer) but this implication is no mandatory part of the Service Ontology:

#   { ?p service:provides ?s } <=> 
#   { ?p a gr:BusinessEntity ; 
#        gr:offers [
#          a gr:Offering , schema:Offer ;
#          gr:includesObject ?s
#       ]
#   }

4.2 providedBy

Relates a Service instance that is provided by a ServiceProvider instance to this service provider. In most cases this property can be used interchangeable with schema:provider.

service:providedBy a owl:ObjectProperty ;
    rdfs:label "providedBy"@en ;
    rdfs:domain service:Service ;
    rdfs:range service:ServiceProvider ;
    owl:inverseOf service:provides ;
    rdfs:seeAlso schema:provider ;
    rdfs:isDefinedBy <> .

4.3 consumes

Relates a ServiceConsumer instance that consumes a Service instance to this service.

service:consumes a owl:ObjectProperty ;
    rdfs:label "consumes"@en ;
    rdfs:domain service:ServiceConsumer ;
    rdfs:range service:Service ;
    owl:inverseOf service:consumedBy ;
    rdfs:isDefinedBy <> .

4.4 consumedBy

Relates a Service instance that is consumed by a ServiceConsumer instance to this service consumer.

service:consumedBy a owl:ObjectProperty ;
    rdfs:label "consumedBy"@en ;
    rdfs:domain service:Service ;
    rdfs:range service:ServiceConsumer ;
    owl:inverseOf service:consumes ;
    rdfs:seeAlso schema:serviceAudience ;
    rdfs:isDefinedBy <> .

Typical properties that can be used together with this property include schema:serviceAudience and gr:isConsumableFor.

4.5 limits

Relates a ServiceLimitation instance that limits a Service instance to this service.

service:limits a owl:ObjectProperty ;
    rdfs:label "limits"@en ;
    rdfs:domain service:ServiceLimitation ;
    rdfs:range service:Service ;
    owl:inverseOf service:limitedBy ;
    rdfs:isDefinedBy <> .

4.6 limitedBy

Relates a Service instance that is limited by a ServiceLimitation instance to this service limitation.

service:limitedBy a owl:ObjectProperty ;
    rdfs:label "limitedBy"@en ;
    rdfs:domain service:Service ;
    rdfs:range service:ServiceLimitation ;
    owl:inverseOf service:limits ;
    rdfs:isDefinedBy <> .

4.7 delay

This property can be used to specify an estimated period of time or a date when a delayed Service is expected to take place. Applications SHOULD use values in the range of xsd:duration, xsd:date, xsd:dateTime, or the special value “unknown” to indicate a significant delay of unknown duration. The range may later be extended to a subset of Extended Date/Time Format (EDTF).

service:delay a owl:DatatypeProperty ;
    rdfs:label "delay"@en ;
    rdfs:domain service:Service ;
    rdfs:seeAlso xsd:duration , xsd:date, xsd:dateTime ;
    rdfs:isDefinedBy <> .

Applications SHOULD NOT use this property to specify the normal time of service. An example of a service with delay is a concert that starts at an official time (normal time) but there is a delay until band begins to play (delayed time).

4.8 queue

This property can be used to indicate the size of a waiting queue for some Service. Its value MUST be a non-negative integer (0,1,2…).

service:queue a owl:DatatypeProperty ;
    rdfs:label "queue"@en ;
    rdfs:domain service:Service ;
    rdfs:range xsd:nonNegativeInteger ;
    rdfs:isDefinedBy <> .

5 References