<?xml version="1.0" encoding="UTF-8" standalone="no" ?>
<!DOCTYPE uridef [
   <!ENTITY owl   "http://www.w3.org/2002/07/owl#" >
   <!ENTITY xsd   "http://www.w3.org/2001/XMLSchema#" >
   <!ENTITY swrlb "http://www.w3.org/2003/11/swrlb#" >
   <!ENTITY xg    "http://www.darpa.mil/xg/ontology#" >
   <!ENTITY xgsri "http://www.sri.com/xg/ontology#" > ] >

<owlx:Ontology owlx:name="http://www.darpa.mil/xg/XGDemo-03-Paired-Frequency"
 xmlns:owlx   = "http://www.w3.org/2003/05/owl-xml"
 xmlns:ruleml = "http://www.w3.org/2003/11/ruleml"
 xmlns:swrlx  = "http://www.w3.org/2003/11/swrlx"
 xmlns:fol    = "http://www.daml.org/2004/11/fol/fol"
 xmlns:xg     = "http://www.darpa.mil/xg/ontology"
 xmlns:xgsri  = "http://www.sri.com/xg/ontology"
 xmlns        = "http://www.darpa.mil/xg/XGDemo-03-Paired-Frequency">

<owlx:Imports owlx:ontology="http://www.sri.com/xg/ontology" />
<owlx:Imports owlx:ontology="http://www.darpa.mil/xg/ontology" />


<!-- Policy rule -->

<fol:Assertion>
 <fol:Forall>
   <ruleml:Var>f</ruleml:Var>
   <fol:Implies>

     <fol:Exists>
       <ruleml:Var>d</ruleml:Var>
       <ruleml:Var>tr</ruleml:Var>
       <ruleml:Var>sd</ruleml:Var>
       <ruleml:Var>se1</ruleml:Var>
       <ruleml:Var>se2</ruleml:Var>
      	<fol:And>
         <swrlx:classAtom>
           <owlx:Class owlx:name="&xg;Device" />
           <ruleml:var>d</ruleml:var>
         </swrlx:classAtom>

	 <!-- Frequency constraints -->

    	 <swrlx:individualPropertyAtom swrlx:property="&xg;transmitter">
       	   <ruleml:var>d</ruleml:var>
           <ruleml:var>tr</ruleml:var>
	 </swrlx:individualPropertyAtom>
	 
	 <fol:Or>

    	   <swrlx:datavaluedPropertyAtom swrlx:property="&xg;centerFrequency">
       	     <ruleml:var>tr</ruleml:var>
             <owlx:DataValue owlx:datatype="&xsd;integer">233000000</owlx:DataValue>
	   </swrlx:datavaluedPropertyAtom>

    	   <swrlx:datavaluedPropertyAtom swrlx:property="&xg;centerFrequency">
       	     <ruleml:var>tr</ruleml:var>
             <owlx:DataValue owlx:datatype="&xsd;integer">242000000</owlx:DataValue>
	   </swrlx:datavaluedPropertyAtom>

	 </fol:Or>

	 <!-- Sensing constraints -->

         <swrlx:individualPropertyAtom swrlx:property="&xg;signalDetector">
           <ruleml:var>d</ruleml:var>
           <ruleml:var>sd</ruleml:var>
         </swrlx:individualPropertyAtom>

         <swrlx:individualPropertyAtom swrlx:property="&xg;signalEvidence">
           <ruleml:var>sd</ruleml:var>
           <ruleml:var>se1</ruleml:var>
         </swrlx:individualPropertyAtom>

         <swrlx:builtinAtom swrlx:builtin="&swrlb;lessThanOrEqual">
           <xg:apply swrlx:property="&xg;sensedStartFrequency">
      	     <ruleml:var>se1</ruleml:var>
           </xg:apply>
           <owlx:DataValue owlx:datatype="&xsd;integer">232000000</owlx:DataValue>
         </swrlx:builtinAtom>

         <swrlx:builtinAtom swrlx:builtin="&swrlb;lessThanOrEqual">
           <owlx:DataValue owlx:datatype="&xsd;integer">234000000</owlx:DataValue>
           <xg:apply swrlx:property="&xg;sensedEndFrequency">
      	     <ruleml:var>se1</ruleml:var>
           </xg:apply>
         </swrlx:builtinAtom>

         <swrlx:builtinAtom swrlx:builtin="&swrlb;lessThanOrEqual">
           <xg:apply swrlx:property="&xg;peakSensedPower">
      	     <ruleml:var>se1</ruleml:var>
           </xg:apply>
           <owlx:DataValue owlx:datatype="&xsd;decimal">-100.0</owlx:DataValue>
         </swrlx:builtinAtom>

         <swrlx:individualPropertyAtom swrlx:property="&xg;signalEvidence">
           <ruleml:var>sd</ruleml:var>
           <ruleml:var>se2</ruleml:var>
         </swrlx:individualPropertyAtom>

         <swrlx:builtinAtom swrlx:builtin="&swrlb;lessThanOrEqual">
           <xg:apply swrlx:property="&xg;sensedStartFrequency">
      	     <ruleml:var>se2</ruleml:var>
           </xg:apply>
           <owlx:DataValue owlx:datatype="&xsd;integer">241000000</owlx:DataValue>
         </swrlx:builtinAtom>

         <swrlx:builtinAtom swrlx:builtin="&swrlb;lessThanOrEqual">
           <owlx:DataValue owlx:datatype="&xsd;integer">243000000</owlx:DataValue>
           <xg:apply swrlx:property="&xg;sensedEndFrequency">
      	     <ruleml:var>se2</ruleml:var>
           </xg:apply>
         </swrlx:builtinAtom>

         <swrlx:builtinAtom swrlx:builtin="&swrlb;lessThanOrEqual">
           <xg:apply swrlx:property="&xg;peakSensedPower">
      	     <ruleml:var>se2</ruleml:var>
           </xg:apply>
           <owlx:DataValue owlx:datatype="&xsd;decimal">-100.0</owlx:DataValue>
         </swrlx:builtinAtom>

	</fol:And>
     </fol:Exists>
     
     <swrlx:classAtom>
       <owlx:Class owlx:name="&xgsri;Allow" />
       <ruleml:var>f</ruleml:var>
     </swrlx:classAtom>

    </fol:Implies>
  </fol:Forall>
</fol:Assertion>

</owlx:Ontology>

