<?xml version='1.0'?>
<!DOCTYPE owl [
  <!ENTITY owl "http://www.w3.org/2002/07/owl#">
  <!ENTITY rdf  "http://www.w3.org/1999/02/22-rdf-syntax-ns#">
  <!ENTITY rdfs "http://www.w3.org/2000/01/rdf-schema#">
  <!ENTITY xsd  "http://www.w3.org/2001/XMLSchema#">
  <!ENTITY dc   "http://purl.org/dc/elements/1.1/">
  <!ENTITY dct  "http://purl.org/dc/terms/">
  <!ENTITY akt  "http://www.aktors.org/ontology/portal#">
  <!ENTITY resist "http://resist.ecs.soton.ac.uk/ontologies/resist#">
  <!ENTITY resex "http://resist.ecs.soton.ac.uk/ontologies/resilience-mechanisms#">
  <!ENTITY base "http://resist.ecs.soton.ac.uk/ontologies/resilience-mechanisms">  
]>
<rdf:RDF xmlns:owl="&owl;"
         xmlns:rdf="&rdf;"
         xmlns:rdfs="&rdfs;"
         xmlns:dc="&dc;"
         xmlns:dct="&dct;"
         xmlns:xsd="&xsd;"
         xmlns:akt="&akt;"
	 xmlns:resist="&resist;"
	 xmlns:resex="&resex;"
         xml:base="&base;">

  <owl:Ontology rdf:about="">
    <rdfs:label>ReSIST Resilience Mechanisms Ontology</rdfs:label>
    <dc:title xml:lang="en">ReSIST Resilience Mechanisms Ontology</dc:title>
    <dc:description xml:lang="en">The ReSIST Resilience Mechanisms Ontology represents metadata oriented descriptions of resilience mechanisms as part of the resilience-explicit computing section of work within the ReSIST project</dc:description>
    <owl:versionInfo rdf:datatype="&xsd;string">0.2</owl:versionInfo>
    <dc:creator>Zoe Andrews</dc:creator>
    <dc:creator>Ian Millard</dc:creator>
    <dc:created>2007-05-09</dc:created>
    <owl:imports rdf:resource="http://www.aktors.org/ontology/portal"/>
  </owl:Ontology>

  <owl:Class rdf:ID="Resilience-Mechanism">
    <rdfs:label>Resilience Mechanism</rdfs:label>
    <rdfs:comment>This class encapsulates a mechanism designed to improve the resilience of a computer based system</rdfs:comment>
    <rdfs:subClassOf rdf:resource="&akt;Technology"/>
  </owl:Class>

  <owl:ObjectProperty rdf:ID="submitted-by">
    <rdfs:label>submitted by</rdfs:label>
    <rdfs:comment>The ReSIST Project member who has submitted and is the point of contact for this resilience mechanism</rdfs:comment>
    <rdfs:domain rdf:resource="#Resilience-Mechanism"/>
    <rdfs:range rdf:resource="&akt;Person"/>
  </owl:ObjectProperty>

  <owl:ObjectProperty rdf:ID="has-associated-project">
    <rdfs:label>has associated project</rdfs:label>
    <rdfs:comment>A project that has been involved in the development of this resilience mechanism</rdfs:comment>
    <rdfs:domain rdf:resource="#Resilience-Mechanism"/>
    <rdfs:range rdf:resource="&akt;Project"/>
  </owl:ObjectProperty>

  <owl:DatatypeProperty rdf:ID="mechanism-objectives">
    <rdfs:label>mechanism objectives</rdfs:label>
    <rdfs:comment>The objectives of this resilience mechanism</rdfs:comment>
    <rdfs:domain rdf:resource="#Resilience-Mechanism"/>
    <rdfs:range rdf:resource="&xsd;string"/>
  </owl:DatatypeProperty>
  
  <owl:ObjectProperty rdf:ID="relates-to-old-wg">
    <rdfs:label>relates to old wg</rdfs:label>
    <rdfs:comment>The old ReSIST WP2 working group(s) (Arch, Algo, Socio, Verif and Eval) that this mechanism relates to</rdfs:comment>
    <rdfs:domain rdf:resource="#Resilience-Mechanism"/>
    <rdfs:range rdf:resource="&akt;Project"/>
  </owl:ObjectProperty>
  
  <owl:ObjectProperty rdf:ID="relates-to-new-wg">
    <rdfs:label>relates to new wg</rdfs:label>
    <rdfs:comment>The new ReSIST WP2 working group(s) (Assessability, Diversity, Evolvability and Usability) that this mechanism relates to</rdfs:comment>
    <rdfs:domain rdf:resource="#Resilience-Mechanism"/>
    <rdfs:range rdf:resource="&akt;Project"/>
  </owl:ObjectProperty>
  
  <owl:DatatypeProperty rdf:ID="assessability-comment">
    <rdfs:label>assessability comment</rdfs:label>
    <rdfs:comment>Comment about how the mechanism relates to the ReSIST WP2 working group on assessability</rdfs:comment>
    <rdfs:domain rdf:resource="#Resilience-Mechanism"/>
    <rdfs:range rdf:resource="&xsd;string"/>
  </owl:DatatypeProperty> 

  <owl:DatatypeProperty rdf:ID="diversity-comment">
    <rdfs:label>diversity comment</rdfs:label>
    <rdfs:comment>Comment about how the mechanism relates to the ReSIST WP2 working group on diversity</rdfs:comment>
    <rdfs:domain rdf:resource="#Resilience-Mechanism"/>
    <rdfs:range rdf:resource="&xsd;string"/>
  </owl:DatatypeProperty> 
  
  <owl:DatatypeProperty rdf:ID="evolvability-comment">
    <rdfs:label>evolvability comment</rdfs:label>
    <rdfs:comment>Comment about how the mechanism relates to the ReSIST WP2 working group on evolvability</rdfs:comment>
    <rdfs:domain rdf:resource="#Resilience-Mechanism"/>
    <rdfs:range rdf:resource="&xsd;string"/>
  </owl:DatatypeProperty> 
 
  <owl:DatatypeProperty rdf:ID="usability-comment">
    <rdfs:label>usability comment</rdfs:label>
    <rdfs:comment>Comment about how the mechanism relates to the ReSIST WP2 working group on usability</rdfs:comment>
    <rdfs:domain rdf:resource="#Resilience-Mechanism"/>
    <rdfs:range rdf:resource="&xsd;string"/>
  </owl:DatatypeProperty> 
  
  <owl:DatatypeProperty rdf:ID="has-mechanism-category">
    <rdfs:label>has mechanism category</rdfs:label>
    <rdfs:comment>Applicable mechanism categories, eg Process/Architecture/Tool</rdfs:comment>
    <rdfs:domain rdf:resource="#Resilience-Mechanism"/>
    <rdfs:range rdf:resource="#Mechanism-Category"/>
  </owl:DatatypeProperty>

  <owl:Class rdf:ID="Mechanism-Category">
    <rdfs:label>Mechanism Category</rdfs:label>
    <rdfs:comment>Mechanism categories are broad classifications of different types of mechanism</rdfs:comment>
  </owl:Class>

  <resex:Mechanism-Category rdf:ID="Resilience-Process">
    <rdfs:label>Resilience Process</rdfs:label>
    <rdfs:comment>A category of Resilience Mechanisms which are processes</rdfs:comment>
  </resex:Mechanism-Category>

  <resex:Mechanism-Category rdf:ID="Resilience-Architecture">
    <rdfs:label>Resilience Architecture</rdfs:label>
    <rdfs:comment>A category of Resilience Mechanisms which are architectures</rdfs:comment>
  </resex:Mechanism-Category>

  <resex:Mechanism-Category rdf:ID="Resilience-Tool">
    <rdfs:label>Resilience Tool</rdfs:label>
    <rdfs:comment>A category of Resilience Mechanisms which are tools</rdfs:comment>
  </resex:Mechanism-Category>

  <owl:ObjectProperty rdf:ID="has-application-domain">
    <rdfs:label>has application domain</rdfs:label>
    <rdfs:comment>Application domains that the mechanism applies to</rdfs:comment>
    <rdfs:domain rdf:resource="#Resilience-Mechanism"/>
    <rdfs:range rdf:resource="&akt;Research-Interest"/>
  </owl:ObjectProperty>
  
  <owl:ObjectProperty rdf:ID="relates-to-concept">
    <rdfs:label>relates to concept</rdfs:label>
    <rdfs:comment>The key concepts involved in the mechanism</rdfs:comment>
    <rdfs:domain rdf:resource="#Resilience-Mechanism"/>
    <rdfs:range rdf:resource="#Resilience-Concept"/>
  </owl:ObjectProperty>
 
  <owl:Class rdf:ID="Resilience-Concept">
    <rdfs:label>Resilience Concept</rdfs:label>
    <rdfs:comment>Resilience concepts are notions which can be applied to the approach which has been taken in building a resilient system</rdfs:comment>
  </owl:Class>

  <owl:DatatypeProperty rdf:ID="has-description">
    <rdfs:label>has description</rdfs:label>
    <rdfs:comment>A description of this resource</rdfs:comment>
    <!-- domain is unconstrained -->
    <rdfs:range rdf:resource="&xsd;string"/>
    <rdfs:subPropertyOf rdf:resource="&rdfs;comment" />
  </owl:DatatypeProperty>
 
  <owl:ObjectProperty rdf:ID="has-component">
    <rdfs:label>has component</rdfs:label>
    <rdfs:comment>The components making up the mechanism</rdfs:comment>
    <rdfs:domain rdf:resource="#Resilience-Mechanism"/>
    <rdfs:range rdf:resource="&akt;Technology"/>
  </owl:ObjectProperty> 
  
  <owl:DatatypeProperty rdf:ID="detailed-description">
    <rdfs:label>detailed description</rdfs:label>
    <rdfs:comment>A detailed description of the mechanism (sufficient to be able to re-create the mechanism)</rdfs:comment>
    <rdfs:domain rdf:resource="#Resilience-Mechanism"/>
    <rdfs:range rdf:resource="&xsd;string"/>
    <rdfs:subPropertyOf rdf:resource="&rdfs;comment" />
  </owl:DatatypeProperty>
  
  <owl:DatatypeProperty rdf:ID="description-of-variants">
    <rdfs:label>description of variants</rdfs:label>
    <rdfs:comment>A textual description of possible variants of this mechanism to inform domain experts</rdfs:comment>
    <rdfs:domain rdf:resource="#Resilience-Mechanism"/>
    <rdfs:range rdf:resource="&xsd;string"/>
  </owl:DatatypeProperty>
  
  <owl:ObjectProperty rdf:ID="has-related-mechanism">
    <rdfs:label>has related mechanism</rdfs:label>
    <rdfs:comment>Other resilience mechanisms that are related to this one (for example N-Version Programming is related to Recovery Blocks as they have the same purpose)</rdfs:comment>
    <rdfs:domain rdf:resource="#Resilience-Mechanism"/>
    <rdfs:range rdf:resource="#Resilience-Mechanism"/>
  </owl:ObjectProperty>
  
  <owl:ObjectProperty rdf:ID="applies-to-technology">
    <rdfs:label>applies to tehcnology</rdfs:label>
    <rdfs:comment>Indicates technolgies to which this mechanism may be applied</rdfs:comment>
    <rdfs:domain rdf:resource="#Resilience-Mechanism"/>
    <rdfs:range rdf:resource="&akt;Technology"/>
  </owl:ObjectProperty>
 
  <owl:Class rdf:ID="Knowledge">
    <rdfs:label>Knowledge</rdfs:label>
    <rdfs:comment>This class encapsulates a body of knowledge</rdfs:comment>
  </owl:Class>
  
  <owl:ObjectProperty rdf:ID="has-knowledge-requirement">
    <rdfs:label>has knowledge requirement</rdfs:label>
    <rdfs:comment>Knowledge that is required in order to use the mechanism</rdfs:comment>
    <rdfs:domain rdf:resource="#Resilience-Mechanism"/>
    <rdfs:range rdf:resource="#Knowledge"/>
  </owl:ObjectProperty>
  
  <owl:ObjectProperty rdf:ID="has-infrastructure-requirement">
    <rdfs:label>has infrastructure requirement</rdfs:label>
    <rdfs:comment>An infrastructure requirement that is needed to use the mechanism</rdfs:comment>
    <rdfs:domain rdf:resource="#Resilience-Mechanism"/>
    <rdfs:range rdf:resource="&akt;Technology"/>
  </owl:ObjectProperty>  
 
  <owl:DatatypeProperty rdf:ID="has-additional-requirements">
    <rdfs:label>has additional requirements</rdfs:label>
    <rdfs:comment>A textual description of additional requirements or prerequisites not otherwise captured within the provided properies</rdfs:comment>
    <rdfs:domain rdf:resource="#Resilience-Mechanism"/>
    <rdfs:range rdf:resource="&xsd;string"/>
  </owl:DatatypeProperty>
 
  <owl:ObjectProperty rdf:ID="has-failure-mode">
    <rdfs:label>has failure mode</rdfs:label>
    <rdfs:comment>The ways in which the resilience mechanism can fail</rdfs:comment>
    <rdfs:domain rdf:resource="#Resilience-Mechanism"/>
    <rdfs:range rdf:resource="&resist;Failure"/>
  </owl:ObjectProperty>

  <owl:ObjectProperty rdf:ID="addresses-threat-to-resilience">
    <rdfs:label>addresses threat to resilience</rdfs:label>
    <rdfs:comment>The threats to resilience which the mechanism aims to address</rdfs:comment>
    <rdfs:domain rdf:resource="#Resilience-Mechanism"/>
    <rdfs:range rdf:resource="&resist;Threats-To-Dependable-And-Secure-Systems"/>
  </owl:ObjectProperty>
  
  <owl:Class rdf:ID="Resilience-Metadata-Type">
    <rdfs:label>Resilience Metadata Type</rdfs:label>
    <rdfs:comment>This class encapsulates a type of resilience metadata about a mechanism</rdfs:comment>
  </owl:Class>

  <owl:DatatypeProperty rdf:ID="has-definition">
    <rdfs:label>has definition</rdfs:label>
    <rdfs:comment>The definition for the type of resilience metadata</rdfs:comment>
    <rdfs:domain rdf:resource="#Resilience-Metadata-Type"/>
    <rdfs:range rdf:resource="&xsd;string"/>
    <rdfs:subPropertyOf rdf:resource="&rdfs;comment" />
  </owl:DatatypeProperty>

  <resex:Resilience-Metadata-Type rdf:ID="Reliability-Metadata">
    <rdfs:label>Reliability Metadata</rdfs:label>
    <resex:has-definition>A piece of resilience metadata which is related to the reliability characteristics of a mechanism</resex:has-definition>
  </resex:Resilience-Metadata-Type>
  
  <resex:Resilience-Metadata-Type rdf:ID="MTBF-Metadata">
    <rdfs:label>Mean Time Between Failure Metadata</rdfs:label>
    <resex:has-definition>A measure of the mean time between failure of a mechanism</resex:has-definition>
    <rdfs:subClassOf rdf:resource="#Reliability-Metadata"/>
  </resex:Resilience-Metadata-Type>

  <owl:Class rdf:ID="Resilience-Metadata">
    <rdfs:label>Resilience Metadata</rdfs:label>
    <rdfs:comment>This class encapsulates a piece of resilience metadata about a mechanism</rdfs:comment>
  </owl:Class>  

  <owl:ObjectProperty rdf:ID="metadata-type">
    <rdfs:label>has type</rdfs:label>
    <rdfs:comment>The type of this piece of resilience metadata</rdfs:comment>
    <rdfs:domain rdf:resource="#Resilience-Metadata"/>
    <rdfs:range rdf:resource="#Resilience-Metadata-Type"/>
  </owl:ObjectProperty>  
  
  <owl:DatatypeProperty rdf:ID="has-value">
    <rdfs:label>has value</rdfs:label>
    <rdfs:comment>The value or formula for this specific piece of resilience metadata</rdfs:comment>
    <rdfs:domain rdf:resource="#Resilience-Metadata"/>
    <rdfs:range rdf:resource="&xsd;string"/>
  </owl:DatatypeProperty>

  <owl:DatatypeProperty rdf:ID="has-unit">
    <rdfs:label>has unit</rdfs:label>
    <rdfs:comment>An indication of the units used to record a resilience metadata value</rdfs:comment>
    <rdfs:domain rdf:resource="#Resilience-Metadata"/>
    <rdfs:range rdf:resource="&xsd;string"/>
  </owl:DatatypeProperty>

  <owl:DatatypeProperty rdf:ID="has-acquisition-method">
    <rdfs:label>has acquisition method</rdfs:label>
    <rdfs:comment>The way in which the resilience metadata should be acquired</rdfs:comment>
    <rdfs:domain rdf:resource="#Resilience-Metadata"/>
    <rdfs:range rdf:resource="&xsd;string"/>
  </owl:DatatypeProperty>

  <owl:Class rdf:ID="Metadata-Acquisition-Method">
    <rdfs:label>Metadata Acquisition Method</rdfs:label>
    <rdfs:comment>A method by which metadata can be acquired</rdfs:comment>
  </owl:Class>

  <resex:Metadata-Acquisition-Method rdf:ID="Observed-By-Mechanism">
    <rdfs:label>Observed by Mechanism</rdfs:label>
    <rdfs:comment>Method of acquiring metadata internally within the mechanism</rdfs:comment>
  </resex:Metadata-Acquisition-Method>
  
  <resex:Metadata-Acquisition-Method rdf:ID="Observed-By-Outsider">
    <rdfs:label>Observed by Outsider</rdfs:label>
    <rdfs:comment>Method of acquiring metadata by observing the behaviour of the mechanism</rdfs:comment>
  </resex:Metadata-Acquisition-Method>

  <resex:Metadata-Acquisition-Method rdf:ID="Calculated-From-Metadata">
    <rdfs:label>Calculated from Metadata</rdfs:label>
    <rdfs:comment>Method of calculating metadata values as a result of other metadata</rdfs:comment>
  </resex:Metadata-Acquisition-Method>
  
  <owl:ObjectProperty rdf:ID="has-resilience-metadata">
    <rdfs:label>has resilience metadata</rdfs:label>
    <rdfs:comment>An instance of resilience metadata associated with the mechanism</rdfs:comment>
    <rdfs:domain rdf:resource="#Resilience-Mechanism"/>
    <rdfs:range rdf:resource="#Resilience-Metadata"/>
  </owl:ObjectProperty>

  <owl:ObjectProperty rdf:ID="detailed-description-pub">
    <rdfs:label>detailed description pub</rdfs:label>
    <rdfs:comment>A publication providing a detailed description of the mechanism (sufficient to be able to re-create the mechanism)</rdfs:comment>
    <rdfs:domain rdf:resource="#Resilience-Mechanism"/>
    <rdfs:range rdf:resource="&akt;Publication-Reference"/>
  </owl:ObjectProperty>
  
  <owl:ObjectProperty rdf:ID="formal-description-pub">
    <rdfs:label>formal description pub</rdfs:label>
    <rdfs:comment>A publication providing a formal description of the mechanism</rdfs:comment>
    <rdfs:domain rdf:resource="#Resilience-Mechanism"/>
    <rdfs:range rdf:resource="&akt;Publication-Reference"/>
  </owl:ObjectProperty>
  
  <owl:ObjectProperty rdf:ID="ontology-pub">
    <rdfs:label>ontology pub</rdfs:label>
    <rdfs:comment>A publication providing an ontology of concepts relating to the mechanism</rdfs:comment>
    <rdfs:domain rdf:resource="#Resilience-Mechanism"/>
    <rdfs:range rdf:resource="&akt;Publication-Reference"/>
  </owl:ObjectProperty>
  
  <owl:ObjectProperty rdf:ID="diagrams-pub">
    <rdfs:label>diagrams pub</rdfs:label>
    <rdfs:comment>A publication providing diagrammatic representations of the mechanism</rdfs:comment>
    <rdfs:domain rdf:resource="#Resilience-Mechanism"/>
    <rdfs:range rdf:resource="&akt;Publication-Reference"/>
  </owl:ObjectProperty>
  
  <owl:ObjectProperty rdf:ID="applications-pub">
    <rdfs:label>applications pub</rdfs:label>
    <rdfs:comment>A publication providing examples of the use of the mechanism</rdfs:comment>
    <rdfs:domain rdf:resource="#Resilience-Mechanism"/>
    <rdfs:range rdf:resource="&akt;Publication-Reference"/>
  </owl:ObjectProperty>
  
  <owl:ObjectProperty rdf:ID="faq-pub">
    <rdfs:label>faq pub</rdfs:label>
    <rdfs:comment>A publication providing frequently asked questions (and answers) about the mechanism</rdfs:comment>
    <rdfs:domain rdf:resource="#Resilience-Mechanism"/>
    <rdfs:range rdf:resource="&akt;Publication-Reference"/>
  </owl:ObjectProperty>
  
  <owl:ObjectProperty rdf:ID="related-pub">
    <rdfs:label>related pub</rdfs:label>
    <rdfs:comment>Any publications providing relevant information</rdfs:comment>
    <!-- domain unconstrained -->
    <rdfs:range rdf:resource="&akt;Publication-Reference"/>
  </owl:ObjectProperty>  
  
</rdf:RDF>
