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.
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 {VERSION}, last modified at {GIT_REVISION_DATE} with revision {GIT_REVISION_HASH}.
The current version of this ontology is a draft for open discussion. Feedback is welcome!
Revision history
{GIT_CHANGES}
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 "{GIT_REVISION_DATE}"^^xsd:date ;
owl:versionInfo "{VERSION}" ;
cc:license <http://creativecommons.org/licenses/by/3.0/> ;
dcterms:creator "Jakob Voß"
.
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.
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.
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.
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.
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 <> .
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
# ]
# }
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 <> .
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 <> .
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.
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 <> .
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 <> .
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).
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 <> .
-
S. Bradner: Key words for use in RFCs to Indicate Requirement Levels. RFC 2119, March 1997 http://tools.ietf.org/html/rfc2119.
-
Schema.org Vocabular. http://schema.org/.
-
GoodRelations Vocabulary. http://purl.org/goodrelations/.
-
DCMI Metadata Terms. http://dublincore.org/documents/dcmi-terms/.
-
FOAF Vocabulary. http://xmlns.com/foaf/spec/.