<?xml version="1.0"?>
<!DOCTYPE rdf:RDF [
  <!ENTITY trust	"http://trust.mindswap.org/ont/trust.owl#">
  <!ENTITY ctxtrust	"http://www.csl.sri.com/users/denker/owl-sec/context/ctx_trustv3.owl#">
  <!ENTITY rdf	 	"http://www.w3.org/1999/02/22-rdf-syntax-ns#">
  <!ENTITY rdfs	 	"http://www.w3.org/2000/01/rdf-schema#">
  <!ENTITY owl	 	"http://www.w3.org/2002/07/owl#">
  <!ENTITY xsd 		"http://www.w3.org/2001/XMLschema#">
  <!ENTITY foaf		"http://xmlns.com/foaf/0.1/">
]>

<!--
This document uses entity types as a shorthand for URIs.
For a version with unexpanded entities, try loading this source
into Internet Explorer.
  -->

<rdf:RDF
  xmlns:trust   	="&trust;"
  xmlns:ctxtrust   	="&ctxtrust;"
  xmlns:foaf    	="&foaf;"
  xmlns			="&ctxtrust;"
  xmlns:rdf		="&rdf;"
  xmlns:rdfs		="&rdfs;"
  xmlns:owl 		="&owl;"
  xmlns:xsd		="&xsd;"
>


<owl:Ontology>
  <rdfs:comment>
    A context-sensitive trust ontology   
  </rdfs:comment>
  <owl:versionInfo> ctx_trustv3.owl, 2004/07/30</owl:versionInfo>
  <owl:imports rdf:resource="http://xmlns.com/foaf/0.1/" />
</owl:Ontology>



<!--********************************-->
<!-- Communication-related concepts -->
<!--********************************-->

<owl:Class rdf:about="Message" />

<owl:ObjectProperty rdf:about="concerns">
  <rdfs:domain rdf:resource="Message" />
  <rdfs:range rdf:resource="Topic" />
</owl:ObjectProperty>

<owl:Class rdf:about="Topic" />



<!--**************************-->
<!-- Context-related concepts -->
<!--**************************-->

<owl:Class rdf:about="Context">
  <rdfs:comment>
    A general concept for expressing context. Consists of one or more context attributes   
  </rdfs:comment>
  <rdfs:subClassOf>
    <owl:Restriction>
      <owl:onProperty rdf:resource="hasCtxAttribute" />
      <owl:minCardinality>1</owl:minCardinality>
    </owl:Restriction>
  </rdfs:subClassOf>
</owl:Class>

<owl:ObjectProperty rdf:about="hasCtxAttribute">
  <rdfs:comment>
    Connects context attributes and contexts   
  </rdfs:comment>
  <rdfs:domain rdf:resource="Context" />
  <rdfs:range rdf:resource="CtxAttribute" />
</owl:ObjectProperty>

<owl:Class rdf:about="CtxAttribute" />

<owl:Class rdf:about="NetCtxAttribute">
  <rdfs:comment>
    Attribute characterizing contexts of networks   
  </rdfs:comment>
  <rdfs:subClassOf rdf:resource="CtxAttribute" />
</owl:Class>

<owl:Class rdf:about="PersonCtxAttribute">
  <rdfs:comment>
    Attribute characterizing contexts of people    
  </rdfs:comment>
  <rdfs:subClassOf rdf:resource="CtxAttribute" />
</owl:Class>

<owl:Class rdf:about="Time">
  <rdfs:subClassOf rdf:resource="CtxAttribute" />
</owl:Class>

<owl:Class rdf:about="Location">
  <rdfs:subClassOf rdf:resource="CtxAttribute" />
</owl:Class>

<owl:Class rdf:about="Activity">
  <rdfs:subClassOf rdf:resource="PersonCtxAttribute" />
</owl:Class>

<owl:Class rdf:about="Throughput">
  <rdfs:comment>
    Throughput of a network    
  </rdfs:comment>
  <rdfs:subClassOf rdf:resource="NetCtxAttribute" />
</owl:Class>

<owl:Class rdf:about="PersonCtxHelper">
  <rdfs:comment>
    Helper class for restricting people's contexts     
  </rdfs:comment>
  <rdfs:subClassOf rdf:resource="Context" />
  <rdfs:subClassOf>
    <owl:Restriction>
      <owl:onProperty rdf:resource="hasCtxAttribute" />
      <owl:someValuesFrom rdf:resource="PersonCtxAttribute"  />
    </owl:Restriction>
  </rdfs:subClassOf>
</owl:Class>

<owl:Class rdf:about="NetCtxHelper">
  <rdfs:comment>
    Helper class for restricting networks' contexts     
  </rdfs:comment>
  <rdfs:subClassOf rdf:resource="Context" />
  <rdfs:subClassOf>
    <owl:Restriction>
      <owl:onProperty rdf:resource="hasCtxAttribute" />
      <owl:someValuesFrom rdf:resource="NetCtxAttribute"  />
    </owl:Restriction>
  </rdfs:subClassOf>
</owl:Class>

<owl:Class rdf:about="NoPersonCtx">
  <rdfs:comment>
    Anything but a person's context     
  </rdfs:comment>
  <rdfs:subClassOf rdf:resource="Context" />
  <owl:complementOf>
    <owl:Class rdf:about="PersonCtxHelper"/>
  </owl:complementOf>
</owl:Class>

<owl:Class rdf:about="NoNetCtx">
  <rdfs:comment>
    Anything but a network's context     
  </rdfs:comment>
  <rdfs:subClassOf rdf:resource="Context" />
  <owl:complementOf>
    <owl:Class rdf:about="NetCtxHelper"/>
  </owl:complementOf>
</owl:Class>

<owl:Class rdf:about="PersonCtx">
  <rdfs:comment>
    Context applicaple only for people     
  </rdfs:comment>
  <owl:intersectionOf rdf:parseType="Collection">
    <owl:Class>
        <owl:Thing rdf:resource="Context" />
        <owl:Thing rdf:resource="NoNetCtx" />
    </owl:Class>
  </owl:intersectionOf>
</owl:Class>

<owl:Class rdf:about="SndCtx">
  <rdfs:comment>
    Message sender's context     
  </rdfs:comment>
  <rdfs:subClassOf rdf:resource="PersonCtx" />
</owl:Class>

<owl:Class rdf:about="RecCtx">
  <rdfs:comment>
    Message receiver's context     
  </rdfs:comment>
  <rdfs:subClassOf rdf:resource="PersonCtx" />
</owl:Class>

<owl:Class rdf:about="NetCtx">
  <rdfs:comment>
    Context applicaple only for networks     
  </rdfs:comment>
  <owl:intersectionOf rdf:parseType="Collection">
    <owl:Class>
        <owl:Thing rdf:resource="Context" />
        <owl:Thing rdf:resource="NoPersonCtx" />
    </owl:Class>
  </owl:intersectionOf>
</owl:Class>



<!--**********************************-->
<!-- Concepts for connecting entities -->
<!-- with contexts and messages       -->
<!--**********************************-->

<owl:ObjectProperty rdf:about="hasMsgCtx">
  <rdfs:comment>
    Connects messages and contexts     
  </rdfs:comment>
  <rdfs:domain rdf:resource="Message" />
  <rdfs:range rdf:resource="MsgCtx" />
</owl:ObjectProperty>

<owl:Class rdf:about="MsgCtx">
  <rdfs:comment>
    Message's context consisting of sender's, receiver's, and the mediating network's contexts     
  </rdfs:comment>
  <owl:unionOf rdf:parseType="Collection">
    <owl:Class>
        <owl:Thing rdf:resource="SndCtx" />
        <owl:Thing rdf:resource="RecCtx" />
        <owl:Thing rdf:resource="NetCtx" />
    </owl:Class>
  </owl:unionOf>
</owl:Class>

<owl:Class rdf:about="Sender">
  <rdfs:comment>
    Sender of the message     
  </rdfs:comment>
  <rdfs:subClassOf rdf:resource="&foaf;Person" />
</owl:Class>

<owl:ObjectProperty rdf:about="sentBy">
  <rdfs:comment>
    Connects the sender and the message     
  </rdfs:comment>
  <rdfs:domain rdf:resource="Message" />
  <rdfs:range rdf:resource="Sender" />
</owl:ObjectProperty>

<owl:Class rdf:about="Receiver">
  <rdfs:comment>
    Receiver of the message     
  </rdfs:comment>
  <rdfs:subClassOf rdf:resource="&foaf;Person" />
</owl:Class>

<owl:ObjectProperty rdf:about="receivedBy">
  <rdfs:comment>
    Connects the receiver and the message     
  </rdfs:comment>
  <rdfs:domain rdf:resource="Message" />
  <rdfs:range rdf:resource="Receiver" />
</owl:ObjectProperty>

<owl:Class rdf:about="Network" />

<owl:ObjectProperty rdf:about="transmittedOver">
  <rdfs:comment>
    Connects the network and the message     
  </rdfs:comment>
  <rdfs:domain rdf:resource="Message" />
  <rdfs:range rdf:resource="Network" />
</owl:ObjectProperty>

<owl:ObjectProperty rdf:about="belongsTo">
  <rdfs:comment>
    Connects the context with the entity the context characterizes     
  </rdfs:comment>
  <rdfs:domain rdf:resource="Context" />
  <rdfs:range rdf:resource="CtxBearers" />
</owl:ObjectProperty>

<owl:Class rdf:about="CtxBearers">
  <rdfs:comment>
    Context bearers, i.e., networks and people     
  </rdfs:comment>
  <owl:unionOf rdf:parseType="Collection">
    <owl:Class>
        <owl:Thing rdf:resource="Network" />
        <owl:Thing rdf:resource="&foaf;Person" />
    </owl:Class>
  </owl:unionOf>
</owl:Class>



<!--************************-->
<!-- Trust-related concepts -->
<!--************************-->

<owl:ObjectProperty rdf:about="ctxTrusts">
  <rdfs:comment>
    Context-sensitive trust the receiver assigns in the message      
  </rdfs:comment>
  <rdfs:domain rdf:resource="Receiver" />
  <rdfs:range rdf:resource="Message" />
</owl:ObjectProperty>

<owl:ObjectProperty rdf:about="ctxTrustsAbsolutely">
  <rdfs:comment>
    Absolute trust in the message     
  </rdfs:comment>
 <rdfs:subPropertyOf rdf:resource="ctxTrusts" />
</owl:ObjectProperty>

<owl:ObjectProperty rdf:about="ctxTrustsHighly">
  <rdfs:comment>
    High trust in the message     
  </rdfs:comment>
 <rdfs:subPropertyOf rdf:resource="ctxTrusts" />
</owl:ObjectProperty>

<owl:ObjectProperty rdf:about="ctxTrustsModerately">
  <rdfs:comment>
    Moderate trust in the message     
  </rdfs:comment>
 <rdfs:subPropertyOf rdf:resource="ctxTrusts" />
</owl:ObjectProperty>

<owl:ObjectProperty rdf:about="ctxTrustsSlightly">
  <rdfs:comment>
    Slight trust in the message     
  </rdfs:comment>
 <rdfs:subPropertyOf rdf:resource="ctxTrusts" />
</owl:ObjectProperty>

<owl:ObjectProperty rdf:about="ctxTrustsNeutrally">
  <rdfs:comment>
    Neutral trust in the message     
  </rdfs:comment>
 <rdfs:subPropertyOf rdf:resource="ctxTrusts" />
</owl:ObjectProperty>

<owl:ObjectProperty rdf:about="ctxDistrustsSlightly">
  <rdfs:comment>
    Slight distrust in the message     
  </rdfs:comment>
 <rdfs:subPropertyOf rdf:resource="ctxTrusts" />
</owl:ObjectProperty>

<owl:ObjectProperty rdf:about="ctxDistrustsModerately">
  <rdfs:comment>
    Moderate distrust in the message     
  </rdfs:comment>
 <rdfs:subPropertyOf rdf:resource="ctxTrusts" />
</owl:ObjectProperty>

<owl:ObjectProperty rdf:about="ctxDistrustsHighly">
  <rdfs:comment>
    High distrust in the message     
  </rdfs:comment>
 <rdfs:subPropertyOf rdf:resource="ctxTrusts" />
</owl:ObjectProperty>

<owl:ObjectProperty rdf:about="ctxDistrustsAbsolutely">
  <rdfs:comment>
    Absolute distrust in the message     
  </rdfs:comment>
 <rdfs:subPropertyOf rdf:resource="ctxTrusts" />
</owl:ObjectProperty>


</rdf:RDF>
