Fork me on GitHub

The Service Ontology

Jakob Voß (VZG)

2013-11-21 (version 0.1.0rev2)

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, and to DCMI Metadata Terms.

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.1.0rev2, last modified at 2013-11-21 with revision f2d3a57.

The current version of this ontology is a preliminary 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-21"^^xsd:date ;
    owl:versionInfo "0.1.0rev2" ;
    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, schema:Product from Schema.org Vocabulary and of dctype:Service from the DCMI Metadata Terms.

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

A service can be connected to one or more ServiceProvider with property providedBy and to one or more ServiceConsumer with property consumedBy.

3.2 ServiceProvider

A service provider is an entity that is responsible for providing a Service. Typical providers, such as organizations and people, are also instances of foaf:Agent and gr:BusinessEntity but the Service Ontology does not put any constraints on the nature of providers.

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

3.3 ServiceConsumer

A service consumer is an entity that requests or consumes a Service. Typical consumers, such as organizations and people, are instances of foaf:Agent and gr:BusinessEntity but the Service Ontology does not put any constraints on the nature of consumers.

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

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.

service:providedBy a owl:ObjectProperty ;
    rdfs:label "providedBy"@en ;
    rdfs:domain service:Service ;
    rdfs:range service:ServiceProvider ;
    owl:inverseOf service:provides ;
    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:isDefinedBy <> .

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