<?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-12-Channel-2-Circle-300m"
 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-12-Channel-2-Circle-300m">

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


<!-- Predefined location -->

<owlx:Individual owlx:name="Point2">
  <owlx:DataPropertyValue owlx:property="&xg;latitude" >
    <owlx:DataValue owlx:datatype="&xsd;decimal">38.146972</owlx:DataValue>
  </owlx:DataPropertyValue>
  <owlx:DataPropertyValue owlx:property="&xg;longitude" >
    <owlx:DataValue owlx:datatype="&xsd;decimal">-77.34875</owlx:DataValue>
  </owlx:DataPropertyValue>
  <owlx:DataPropertyValue owlx:property="&xg;altitude" >
    <owlx:DataValue owlx:datatype="&xsd;decimal">0.0</owlx:DataValue>
  </owlx:DataPropertyValue>
</owlx:Individual>


<!-- Policy rule -->

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

     <fol:Exists>
       <ruleml:Var>d</ruleml:Var>
       <ruleml:Var>sd</ruleml:Var>
       <ruleml:Var>se</ruleml:Var>
       <ruleml:Var>ld</ruleml:Var>
       <ruleml:Var>le</ruleml:Var>
       <ruleml:Var>td</ruleml:Var>
       <ruleml:Var>te</ruleml:Var>
       <ruleml:Var>t</ruleml:Var>
       <ruleml:Var>l</ruleml:Var>
       <ruleml:Var>tr</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>
	 
    	 <swrlx:datavaluedPropertyAtom swrlx:property="&xg;centerFrequency">
       	   <ruleml:var>tr</ruleml:var>
           <owlx:DataValue owlx:datatype="&xsd;integer">233000000</owlx:DataValue>
	 </swrlx:datavaluedPropertyAtom>

	 <!-- Location constraints -->

         <swrlx:individualPropertyAtom swrlx:property="&xg;locationDetector">
           <ruleml:var>d</ruleml:var>
           <ruleml:var>ld</ruleml:var>
         </swrlx:individualPropertyAtom>

         <swrlx:individualPropertyAtom swrlx:property="&xg;locationEvidence">
           <ruleml:var>ld</ruleml:var>
           <ruleml:var>le</ruleml:var>
         </swrlx:individualPropertyAtom>

         <swrlx:individualPropertyAtom swrlx:property="&xg;location">
           <ruleml:var>ld</ruleml:var>
           <ruleml:var>l</ruleml:var>
         </swrlx:individualPropertyAtom>
	 
	 <swrlx:builtinAtom swrlx:builtin="&swrlb;lessThanOrEqual">
	   <xg:apply swrlx:property="&xg;distance3D">
	     <ruleml:var>l</ruleml:var>
	     <owlx:Individual owlx:name="Point2" />
	   </xg:apply>
           <owlx:DataValue owlx:datatype="&xsd;integer">300</owlx:DataValue>
	 </swrlx:builtinAtom>
	 
	 <!-- Time constraints -->

         <swrlx:individualPropertyAtom swrlx:property="&xg;timeDetector">
           <ruleml:var>d</ruleml:var>
           <ruleml:var>td</ruleml:var>
         </swrlx:individualPropertyAtom>

         <swrlx:individualPropertyAtom swrlx:property="&xg;timeEvidence">
           <ruleml:var>sd</ruleml:var>
           <ruleml:var>te</ruleml:var>
         </swrlx:individualPropertyAtom>

    	 <swrlx:individualPropertyAtom swrlx:property="&xg;time">
       	   <ruleml:var>te</ruleml:var>
           <ruleml:var>t</ruleml:var>
	 </swrlx:individualPropertyAtom>

         <swrlx:builtinAtom swrlx:builtin="&swrlb;lessThanOrEqual">
           <owlx:DataValue owlx:datatype="&xsd;dateTime">2008-3-5T10:0:0</owlx:DataValue>
           <ruleml:var>t</ruleml:var>
         </swrlx:builtinAtom>

         <swrlx:builtinAtom swrlx:builtin="&swrlb;lessThanOrEqual">
           <ruleml:var>t</ruleml:var>
           <owlx:DataValue owlx:datatype="&xsd;dateTime">2008-3-5T11:0:0</owlx:DataValue>
         </swrlx:builtinAtom>

	 <!-- 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>se</ruleml:var>
         </swrlx:individualPropertyAtom>

         <swrlx:builtinAtom swrlx:builtin="&swrlb;lessThanOrEqual">
           <xg:apply swrlx:property="&xg;sensedStartFrequency">
      	     <ruleml:var>se</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>se</ruleml:var>
           </xg:apply>
         </swrlx:builtinAtom>

         <swrlx:builtinAtom swrlx:builtin="&swrlb;lessThanOrEqual">
           <xg:apply swrlx:property="&xg;peakSensedPower">
      	     <ruleml:var>se</ruleml:var>
           </xg:apply>
           <owlx:DataValue owlx:datatype="&xsd;integer">-100</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>

