Service-Oriented Architecture Ontology Version 2.0 – The OWL Definition of the Ontology
The OWL ontology is available online at:
http://www.opengroup.org/soa/ontology/20140404/soa.owl
and is reproduced below.
<?xml version="1.0"?>
<rdf:RDF
xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
xmlns:xsd="http://www.w3.org/2001/XMLSchema#"
xmlns:rdfs="http://www.w3.org/2000/01/rdf-schema#"
xmlns:owl="http://www.w3.org/2002/07/owl#"
xmlns="http://www.semanticweb.org/ontologies/2010/01/core-soa.owl#"
xml:base="http://www.semanticweb.org/ontologies/2010/01/core-soa.owl"
>
<!-- ontology -->
<owl:Ontology rdf:about=""/>
<!-- classes -->
<owl:Class rdf:about="#Event">
<owl:disjointWith>
<owl:Class rdf:about="#Policy"/>
</owl:disjointWith>
<owl:disjointWith>
<owl:Class rdf:about="#ServiceContract"/>
</owl:disjointWith>
<owl:disjointWith>
<owl:Class rdf:about="#ServiceInterface"/>
</owl:disjointWith>
</owl:Class>
<owl:Class rdf:about="#InformationType">
<owl:disjointWith>
<owl:Class rdf:about="#Policy"/>
</owl:disjointWith>
<owl:disjointWith>
<owl:Class rdf:about="#ServiceContract"/>
</owl:disjointWith>
<owl:disjointWith>
<owl:Class rdf:about="#Effect"/>
</owl:disjointWith>
</owl:Class>
<owl:Class rdf:about="#ServiceComposition">
<rdfs:subClassOf>
<owl:Class rdf:about="#Composition"/>
</rdfs:subClassOf>
<owl:disjointWith>
<owl:Class rdf:about="#ServiceContract"/>
</owl:disjointWith>
<owl:disjointWith>
<owl:Class rdf:about="#ServiceInterface"/>
</owl:disjointWith>
</owl:Class>
<owl:Class rdf:about="#Effect">
<owl:disjointWith>
<owl:Class rdf:about="#Policy"/>
</owl:disjointWith>
<owl:disjointWith>
<owl:Class rdf:about="#ServiceInterface"/>
</owl:disjointWith>
<owl:disjointWith>
<owl:Class rdf:about="#InformationType"/>
</owl:disjointWith>
<rdfs:subClassOf>
<owl:Restriction>
<owl:minCardinality rdf:datatype="http://www.w3.org/2001/XMLSchema#int"
>1</owl:minCardinality>
<owl:onProperty>
<owl:ObjectProperty rdf:about="#isSpecifiedBy"/>
</owl:onProperty>
</owl:Restriction>
</rdfs:subClassOf>
</owl:Class>
<owl:Class rdf:about="#Task">
<owl:disjointWith>
<owl:Class rdf:about="#Policy"/>
</owl:disjointWith>
<owl:disjointWith>
<owl:Class rdf:about="#System"/>
</owl:disjointWith>
<owl:disjointWith>
<owl:Class rdf:about="#HumanActor"/>
</owl:disjointWith>
<owl:disjointWith>
<owl:Class rdf:about="#Service"/>
</owl:disjointWith>
<owl:disjointWith>
<owl:Class rdf:about="#ServiceContract"/>
</owl:disjointWith>
<owl:disjointWith>
<owl:Class rdf:about="#ServiceInterface"/>
</owl:disjointWith>
<owl:disjointWith>
<owl:Class rdf:about="#Composition"/>
</owl:disjointWith>
<rdfs:subClassOf>
<owl:Class rdf:about="#Element"/>
</rdfs:subClassOf>
<rdfs:subClassOf>
<owl:Restriction>
<owl:onProperty>
<owl:ObjectProperty rdf:about="#doneBy"/>
</owl:onProperty>
<owl:minCardinality rdf:datatype="http://www.w3.org/2001/XMLSchema#int"
>0</owl:minCardinality>
</owl:Restriction>
</rdfs:subClassOf>
<rdfs:subClassOf>
<owl:Restriction>
<owl:maxCardinality rdf:datatype="http://www.w3.org/2001/XMLSchema#int"
>1</owl:maxCardinality>
<owl:onProperty>
<owl:ObjectProperty rdf:about="#doneBy"/>
</owl:onProperty>
</owl:Restriction>
</rdfs:subClassOf>
</owl:Class>
<owl:Class rdf:about="#System">
<owl:disjointWith>
<owl:Class rdf:about="#Task"/>
</owl:disjointWith>
<owl:disjointWith>
<owl:Class rdf:about="#Service"/>
</owl:disjointWith>
<rdfs:subClassOf>
<owl:Class rdf:about="#Element"/>
</rdfs:subClassOf>
</owl:Class>
<owl:Class rdf:about="#Service">
<owl:disjointWith>
<owl:Class rdf:about="#System"/>
</owl:disjointWith>
<owl:disjointWith>
<owl:Class rdf:about="#Task"/>
</owl:disjointWith>
<owl:disjointWith>
<owl:Class rdf:about="#HumanActor"/>
</owl:disjointWith>
<owl:disjointWith>
<owl:Class rdf:about="#ServiceInterface"/>
</owl:disjointWith>
<rdfs:subClassOf>
<owl:Class rdf:about="#Element"/>
</rdfs:subClassOf>
<rdfs:subClassOf>
<owl:Restriction>
<owl:minCardinality rdf:datatype="http://www.w3.org/2001/XMLSchema#int"
>1</owl:minCardinality>
<owl:onProperty>
<owl:ObjectProperty rdf:about="#hasInterface"/>
</owl:onProperty>
</owl:Restriction>
</rdfs:subClassOf>
</owl:Class>
<owl:Class rdf:about="#Policy">
<owl:disjointWith>
<owl:Class rdf:about="#InformationType"/>
</owl:disjointWith>
<owl:disjointWith>
<owl:Class rdf:about="#ServiceInterface"/>
</owl:disjointWith>
<owl:disjointWith>
<owl:Class rdf:about="#Element"/>
</owl:disjointWith>
<owl:disjointWith>
<owl:Class rdf:about="#Effect"/>
</owl:disjointWith>
<owl:disjointWith>
<owl:Class rdf:about="#Event"/>
</owl:disjointWith>
<owl:disjointWith>
<owl:Class rdf:about="#ServiceContract"/>
</owl:disjointWith>
</owl:Class>
<owl:Class rdf:about="#HumanActor">
<rdfs:subClassOf>
<owl:Class rdf:about="#Element"/>
</rdfs:subClassOf>
<owl:disjointWith>
<owl:Class rdf:about="#Task"/>
</owl:disjointWith>
<owl:disjointWith>
<owl:Class rdf:about="#Service"/>
</owl:disjointWith>
<owl:disjointWith>
<owl:Class rdf:about="#ServiceContract"/>
</owl:disjointWith>
<owl:disjointWith>
<owl:Class rdf:about="#ServiceInterface"/>
</owl:disjointWith>
</owl:Class>
<owl:Class rdf:about="#Composition">
<owl:disjointWith>
<owl:Class rdf:about="#Task"/>
</owl:disjointWith>
<rdfs:subClassOf>
<owl:Class rdf:about="#System"/>
</rdfs:subClassOf>
<rdfs:subClassOf>
<owl:Restriction>
<owl:maxCardinality rdf:datatype="http://www.w3.org/2001/XMLSchema#int"
>1</owl:maxCardinality>
<owl:onProperty>
<owl:DatatypeProperty rdf:about="#compositionPattern"/>
</owl:onProperty>
</owl:Restriction>
</rdfs:subClassOf>
<rdfs:subClassOf>
<owl:Restriction>
<owl:onProperty>
<owl:DatatypeProperty rdf:about="#compositionPattern"/>
</owl:onProperty>
<owl:minCardinality rdf:datatype="http://www.w3.org/2001/XMLSchema#int"
>1</owl:minCardinality>
</owl:Restriction>
</rdfs:subClassOf>
<rdfs:subClassOf>
<owl:Restriction>
<owl:maxCardinality rdf:datatype="http://www.w3.org/2001/XMLSchema#int"
>1</owl:maxCardinality>
<owl:onProperty>
<owl:ObjectProperty rdf:about="#orchestratedBy"/>
</owl:onProperty>
</owl:Restriction>
</rdfs:subClassOf>
<rdfs:subClassOf>
<owl:Restriction>
<owl:minCardinality rdf:datatype="http://www.w3.org/2001/XMLSchema#int"
>0</owl:minCardinality>
<owl:onProperty>
<owl:ObjectProperty rdf:about="#orchestratedBy"/>
</owl:onProperty>
</owl:Restriction>
</rdfs:subClassOf>
</owl:Class>
<owl:Class rdf:about="#ServiceInterface">
<owl:disjointWith>
<owl:Class rdf:about="#Service"/>
</owl:disjointWith>
<owl:disjointWith>
<owl:Class rdf:about="#ServiceContract"/>
</owl:disjointWith>
<owl:disjointWith>
<owl:Class rdf:about="#Effect"/>
</owl:disjointWith>
<owl:disjointWith>
<owl:Class rdf:about="#Policy"/>
</owl:disjointWith>
<owl:disjointWith>
<owl:Class rdf:about="#HumanActor"/>
</owl:disjointWith>
<owl:disjointWith>
<owl:Class rdf:about="#Task"/>
</owl:disjointWith>
<owl:disjointWith>
<owl:Class rdf:about="#ServiceComposition"/>
</owl:disjointWith>
<owl:disjointWith>
<owl:Class rdf:about="#Process"/>
</owl:disjointWith>
<owl:disjointWith>
<owl:Class rdf:about="#Event"/>
</owl:disjointWith>
<rdfs:subClassOf>
<owl:Restriction>
<owl:onProperty>
<owl:DatatypeProperty rdf:about="#constraints"/>
</owl:onProperty>
<owl:maxCardinality rdf:datatype="http://www.w3.org/2001/XMLSchema#int"
>1</owl:maxCardinality>
</owl:Restriction>
</rdfs:subClassOf>
<rdfs:subClassOf>
<owl:Restriction>
<owl:minCardinality rdf:datatype="http://www.w3.org/2001/XMLSchema#int"
>1</owl:minCardinality>
<owl:onProperty>
<owl:DatatypeProperty rdf:about="#constraints"/>
</owl:onProperty>
</owl:Restriction>
</rdfs:subClassOf>
</owl:Class>
<owl:Class rdf:about="#Element">
<owl:disjointWith>
<owl:Class rdf:about="#Policy"/>
</owl:disjointWith>
<rdfs:subClassOf>
<owl:Restriction>
<owl:minCardinality rdf:datatype="http://www.w3.org/2001/XMLSchema#int"
>0</owl:minCardinality>
<owl:onProperty>
<owl:ObjectProperty rdf:about="#orchestrates"/>
</owl:onProperty>
</owl:Restriction>
</rdfs:subClassOf>
<rdfs:subClassOf>
<owl:Restriction>
<owl:maxCardinality rdf:datatype="http://www.w3.org/2001/XMLSchema#int"
>1</owl:maxCardinality>
<owl:onProperty>
<owl:ObjectProperty rdf:about="#orchestrates"/>
</owl:onProperty>
</owl:Restriction>
</rdfs:subClassOf>
</owl:Class>
<owl:Class rdf:about="#ServiceContract">
<owl:disjointWith>
<owl:Class rdf:about="#ServiceInterface"/>
</owl:disjointWith>
<owl:disjointWith>
<owl:Class rdf:about="#Policy"/>
</owl:disjointWith>
<owl:disjointWith>
<owl:Class rdf:about="#HumanActor"/>
</owl:disjointWith>
<owl:disjointWith>
<owl:Class rdf:about="#Task"/>
</owl:disjointWith>
<owl:disjointWith>
<owl:Class rdf:about="#ServiceComposition"/>
</owl:disjointWith>
<owl:disjointWith>
<owl:Class rdf:about="#Process"/>
</owl:disjointWith>
<owl:disjointWith>
<owl:Class rdf:about="#Event"/>
</owl:disjointWith>
<owl:disjointWith>
<owl:Class rdf:about="#InformationType"/>
</owl:disjointWith>
<rdfs:subClassOf>
<owl:Restriction>
<owl:onProperty>
<owl:DatatypeProperty rdf:about="#legalAspect"/>
</owl:onProperty>
<owl:minCardinality rdf:datatype="http://www.w3.org/2001/XMLSchema#int"
>1</owl:minCardinality>
</owl:Restriction>
</rdfs:subClassOf>
<rdfs:subClassOf>
<owl:Restriction>
<owl:maxCardinality rdf:datatype="http://www.w3.org/2001/XMLSchema#int"
>1</owl:maxCardinality>
<owl:onProperty>
<owl:DatatypeProperty rdf:about="#legalAspect"/>
</owl:onProperty>
</owl:Restriction>
</rdfs:subClassOf>
<rdfs:subClassOf>
<owl:Restriction>
<owl:onProperty>
<owl:DatatypeProperty rdf:about="#interactionAspect"/>
</owl:onProperty>
<owl:maxCardinality rdf:datatype="http://www.w3.org/2001/XMLSchema#int"
>1</owl:maxCardinality>
</owl:Restriction>
</rdfs:subClassOf>
<rdfs:subClassOf>
<owl:Restriction>
<owl:onProperty>
<owl:DatatypeProperty rdf:about="#interactionAspect"/>
</owl:onProperty>
<owl:minCardinality rdf:datatype="http://www.w3.org/2001/XMLSchema#int"
>1</owl:minCardinality>
</owl:Restriction>
</rdfs:subClassOf>
<rdfs:subClassOf>
<owl:Restriction>
<owl:onProperty>
<owl:ObjectProperty rdf:about="#isContractFor"/>
</owl:onProperty>
<owl:minCardinality rdf:datatype="http://www.w3.org/2001/XMLSchema#int"
>1</owl:minCardinality>
</owl:Restriction>
</rdfs:subClassOf>
<rdfs:subClassOf>
<owl:Restriction>
<owl:onProperty>
<owl:ObjectProperty rdf:about="#specifies"/>
</owl:onProperty>
<owl:minCardinality rdf:datatype="http://www.w3.org/2001/XMLSchema#int"
>1</owl:minCardinality>
</owl:Restriction>
</rdfs:subClassOf>
</owl:Class>
<owl:Class rdf:about="#Process">
<owl:disjointWith>
<owl:Class rdf:about="#ServiceContract"/>
</owl:disjointWith>
<owl:disjointWith>
<owl:Class rdf:about="#ServiceInterface"/>
</owl:disjointWith>
<rdfs:subClassOf>
<owl:Class rdf:about="#Composition"/>
</rdfs:subClassOf>
</owl:Class>
<!-- object properties -->
<owl:ObjectProperty rdf:about="#isPartyTo">
<rdfs:domain rdf:resource="#HumanActor"/>
<rdfs:range rdf:resource="#ServiceContract"/>
</owl:ObjectProperty>
<owl:ObjectProperty rdf:about="#involvesParty">
<owl:inverseOf>
<owl:ObjectProperty rdf:about="#isPartyTo"/>
</owl:inverseOf>
</owl:ObjectProperty>
<owl:ObjectProperty rdf:about="#orchestratedBy">
<rdfs:domain rdf:resource="#Composition"/>
<rdfs:range rdf:resource="#Element"/>
</owl:ObjectProperty>
<owl:ObjectProperty rdf:about="#orchestrates">
<owl:inverseOf>
<owl:ObjectProperty rdf:about="#orchestratedBy"/>
</owl:inverseOf>
</owl:ObjectProperty>
<owl:ObjectProperty rdf:about="#isContractFor">
<rdfs:domain rdf:resource="#ServiceContract"/>
<rdfs:range rdf:resource="#Service"/>
</owl:ObjectProperty>
<owl:ObjectProperty rdf:about="#hasContract">
<owl:inverseOf>
<owl:ObjectProperty rdf:about="#isContractFor"/>
</owl:inverseOf>
</owl:ObjectProperty>
<owl:ObjectProperty rdf:about="#setsPolicy">
<rdfs:domain rdf:resource="#HumanActor"/>
<rdfs:range rdf:resource="#Policy"/>
</owl:ObjectProperty>
<owl:ObjectProperty rdf:about="#isSetBy">
<owl:inverseOf>
<owl:ObjectProperty rdf:about="#setsPolicy"/>
</owl:inverseOf>
</owl:ObjectProperty>
<owl:ObjectProperty rdf:about="#generates">
<rdfs:domain rdf:resource="#Element"/>
<rdfs:range rdf:resource="#Event"/>
</owl:ObjectProperty>
<owl:ObjectProperty rdf:about="#generatedBy">
<owl:inverseOf>
<owl:ObjectProperty rdf:about="#generates"/>
</owl:inverseOf>
</owl:ObjectProperty>
<owl:ObjectProperty rdf:about="#represents">
<rdfs:domain rdf:resource="#Element"/>
<rdfs:range rdf:resource="#Element"/>
</owl:ObjectProperty>
<owl:ObjectProperty rdf:about="#representedBy">
<owl:inverseOf>
<owl:ObjectProperty rdf:about="#represents"/>
</owl:inverseOf>
</owl:ObjectProperty>
<owl:ObjectProperty rdf:about="#hasInput">
<rdfs:domain rdf:resource="#ServiceInterface"/>
<rdfs:range rdf:resource="#InformationType"/>
</owl:ObjectProperty>
<owl:ObjectProperty rdf:about="#isInputAt">
<owl:inverseOf>
<owl:ObjectProperty rdf:about="#hasInput"/>
</owl:inverseOf>
</owl:ObjectProperty>
<owl:ObjectProperty rdf:about="#doneBy">
<rdfs:domain rdf:resource="#Task"/>
<rdfs:range rdf:resource="#HumanActor"/>
</owl:ObjectProperty>
<owl:ObjectProperty rdf:about="#does">
<owl:inverseOf>
<owl:ObjectProperty rdf:about="#doneBy"/>
</owl:inverseOf>
</owl:ObjectProperty>
<owl:ObjectProperty rdf:about="#specifies">
<rdfs:domain rdf:resource="#ServiceContract"/>
<rdfs:range rdf:resource="#Effect"/>
</owl:ObjectProperty>
<owl:ObjectProperty rdf:about="#isSpecifiedBy">
<owl:inverseOf>
<owl:ObjectProperty rdf:about="#specifies"/>
</owl:inverseOf>
</owl:ObjectProperty>
<owl:ObjectProperty rdf:about="#appliesTo">
<rdfs:domain rdf:resource="#Policy"/>
</owl:ObjectProperty>
<owl:ObjectProperty rdf:about="#isSubjectTo">
<owl:inverseOf>
<owl:ObjectProperty rdf:about="#appliesTo"/>
</owl:inverseOf>
</owl:ObjectProperty>
<owl:ObjectProperty rdf:about="#hasInterface">
<rdfs:domain rdf:resource="#Service"/>
<rdfs:range rdf:resource="#ServiceInterface"/>
</owl:ObjectProperty>
<owl:ObjectProperty rdf:about="#isInterfaceOf">
<owl:inverseOf>
<owl:ObjectProperty rdf:about="#hasInterface"/>
</owl:inverseOf>
</owl:ObjectProperty>
<owl:ObjectProperty rdf:about="#respondsTo">
<rdfs:domain rdf:resource="#Element"/>
<rdfs:range rdf:resource="#Event"/>
</owl:ObjectProperty>
<owl:ObjectProperty rdf:about="#respondedToBy">
<owl:inverseOf>
<owl:ObjectProperty rdf:about="#respondsTo"/>
</owl:inverseOf>
</owl:ObjectProperty>
<owl:ObjectProperty rdf:about="#performs">
<rdfs:domain rdf:resource="#Element"/>
<rdfs:range rdf:resource="#Service"/>
</owl:ObjectProperty>
<owl:ObjectProperty rdf:about="#performedBy">
<owl:inverseOf>
<owl:ObjectProperty rdf:about="#performs"/>
</owl:inverseOf>
</owl:ObjectProperty>
<owl:ObjectProperty rdf:about="#uses">
<rdfs:domain rdf:resource="#Element"/>
<rdfs:range rdf:resource="#Element"/>
</owl:ObjectProperty>
<owl:ObjectProperty rdf:about="#usedBy">
<owl:inverseOf>
<owl:ObjectProperty rdf:about="#uses"/>
</owl:inverseOf>
</owl:ObjectProperty>
<owl:ObjectProperty rdf:about="#hasOutput">
<rdfs:domain rdf:resource="#ServiceInterface"/>
<rdfs:range rdf:resource="#InformationType"/>
</owl:ObjectProperty>
<owl:ObjectProperty rdf:about="#isOutputAt">
<owl:inverseOf>
<owl:ObjectProperty rdf:about="#hasOutput"/>
</owl:inverseOf>
</owl:ObjectProperty>
<!-- datatype properties -->
<owl:DatatypeProperty rdf:about="#legalAspect">
<rdfs:domain rdf:resource="#ServiceContract"/>
</owl:DatatypeProperty>
<owl:DatatypeProperty rdf:about="#constraints">
<rdfs:domain rdf:resource="#ServiceInterface"/>
</owl:DatatypeProperty>
<owl:DatatypeProperty rdf:about="#compositionPattern">
<rdfs:domain rdf:resource="#Composition"/>
</owl:DatatypeProperty>
<owl:DatatypeProperty rdf:about="#interactionAspect">
<rdfs:domain rdf:resource="#ServiceContract"/>
</owl:DatatypeProperty>
</rdf:RDF>