<?xml version="1.0"?>
<?xml-stylesheet href="http://www.w3.org/2002/06/rdfs2html.xsl" type="application/xml"?>
<!DOCTYPE owl [
   <!ENTITY cobra "http://daml.umbc.edu/ontologies/cobra/0.4/">
   <!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 owl   "http://www.w3.org/2002/07/owl#"> 
   <!ENTITY dev    "http://daml.umbc.edu/ontologies/cobra/0.4/device#">
   <!ENTITY agt    "http://daml.umbc.edu/ontologies/cobra/0.4/agent#">
   <!ENTITY loc    "http://daml.umbc.edu/ontologies/cobra/0.4/location#">
   ]>
<!--
    Author: Harry Chen (mailto:harry.chen@umbc.edu)
            http://umbc.edu/~hchen4/

    Copyright 2003 Harry Chen, All Rights Reserved.
 
    This work is licensed under the Creative Commons Attribution
    License. To view a copy of this license, visit 
    http://creativecommons.org/licenses/by/1.0/ or send a letter to
    Creative Commons, 559 Nathan Abbott Way, Stanford, California
    94305, USA.  
   
    CoBrA Web Site: 
      http://cobra.umbc.edu

    This version: 
      http://daml.umbc.edu/ontologies/cobra/0.4/device

    Lastest version:
      http://daml.umbc.edu/ontologies/cobra/

    CVS Version: $Revision: 1.15 $, $Date: 2003/10/29 05:43:34 $
-->
<rdf:RDF  
   xmlns:rdf  =    "http://www.w3.org/1999/02/22-rdf-syntax-ns#"
   xmlns:rdfs =    "http://www.w3.org/2000/01/rdf-schema#"
   xmlns:owl  =    "&owl;"
   xmlns:xsd  =    "&xsd;" 
   xmlns:agt  =    "&agt;"
   xmlns:loc  =    "&loc;"
   xmlns      =    "&dev;" 
   xml:base   =    "http://daml.umbc.edu/ontologies/cobra/0.4/device">

  <owl:Ontology rdf:about="&cobra;device">
    <owl:versionInfo>0.4</owl:versionInfo>
    <rdfs:label>COBRA-ONT Device Ontology</rdfs:label>
    <owl:imports rdf:resource="&cobra;agent"/>
    <owl:imports rdf:resource="&cobra;location"/>
    <rdfs:comment>
      CoBrA Device Ontology: this ontology describes concepts for
      modeling computing devices in an intelligent meeting room
      environment. Some ontology concepts are adopted from the FIPA
      device ontology (FIPA00091). 
    </rdfs:comment>
  </owl:Ontology>
  
  <owl:Class rdf:ID="Device">
    <rdfs:label>Device</rdfs:label>    
    <rdfs:subClassOf rdf:resource="&loc;ThingHasLocationContext"/>
  </owl:Class>
  
  <owl:Class rdf:ID="DeviceHasAudioIO">
    <rdfs:label>DeviceHasAudioIO</rdfs:label>
    <rdfs:subClassOf rdf:resource="#Device"/>    
  </owl:Class>

  <owl:Class rdf:ID="DeviceHasDisplayScreen">
    <rdfs:label>DeviceHasDisplayScreen</rdfs:label>
    <rdfs:subClassOf rdf:resource="#Device"/>
  </owl:Class>

  <owl:Class rdf:ID="DeviceHasOnBoardMemory">
    <rdfs:label>DeviceHasOnBoardMemory</rdfs:label>
    <rdfs:subClassOf rdf:resource="#Device"/>
  </owl:Class>

  <owl:Class rdf:ID="DeviceSupportsNetComm">
    <rdfs:label>DeviceSupportsNetComm</rdfs:label>
    <rdfs:subClassOf rdf:resource="#Device"/>
  </owl:Class>
  
  <owl:Class rdf:ID="DeviceSupportsWirelessNetComm">
    <rdfs:label>DeviceSupportsWirelessNetComm</rdfs:label>
    <rdfs:subClassOf rdf:resource="#DeviceSupportsNetComm"/>
  </owl:Class>
  
  <owl:Class rdf:ID="DeviceSupportsWiredNetComm">
    <rdfs:label>DeviceSupportsWiredNetComm</rdfs:label>
    <rdfs:subClassOf rdf:resource="#DeviceSupportsNetComm"/>
  </owl:Class>
  
  <owl:Class rdf:ID="DeviceSupportsBluetooth">
    <rdfs:label>DeviceSupportsBluetooth</rdfs:label>
    <rdfs:subClassOf rdf:resource="#DeviceSupportsWirelessNetComm"/>
  </owl:Class>
  
  <owl:Class rdf:ID="DeviceSupportsIrDA">
    <rdfs:label>DeviceSupportsIrDA</rdfs:label>
    <rdfs:subClassOf rdf:resource="#DeviceSupportsWirelessNetComm"/>
  </owl:Class>
  
  <owl:ObjectProperty rdf:ID="supportBTDeviceService">
    <rdfs:label>supportsBTDeviceService</rdfs:label>
    <rdfs:domain rdf:resource="#DeviceSupportsBluetooth"/>
    <rdfs:range rdf:resource="#BTDeviceService"/>
  </owl:ObjectProperty>

  <owl:Class rdf:ID="BTDeviceService">
    <rdfs:label>BTDeviceService</rdfs:label>
  </owl:Class>
  
  <BTDeviceService rdf:ID="DialupNetworking">
    <rdfs:label>DialupNetworking</rdfs:label>
  </BTDeviceService>

  <BTDeviceService rdf:ID="Fax">
    <rdfs:label>Fax</rdfs:label>
  </BTDeviceService>

  <BTDeviceService rdf:ID="VoiceGateway">
    <rdfs:label>VoiceGateway</rdfs:label>
  </BTDeviceService>

  <BTDeviceService rdf:ID="SerialPort1">
    <rdfs:label>SerialPort1</rdfs:label>
  </BTDeviceService>

  <BTDeviceService rdf:ID="SerialPort2">
    <rdfs:label>SerialPort2</rdfs:label>
  </BTDeviceService>  

  <BTDeviceService rdf:ID="OBEXObjectPush">
    <rdfs:label>OBEXObjectPush</rdfs:label>
  </BTDeviceService>

  <BTDeviceService rdf:ID="IrMCSynchronization">
    <rdfs:label>IrMCSynchronization</rdfs:label>
  </BTDeviceService>
  
  <owl:DatatypeProperty rdf:ID="productName">
    <rdfs:label>productName</rdfs:label>
    <rdfs:domain rdf:resource="#Device"/>
    <rdfs:range rdf:resource="&xsd;string"/>
  </owl:DatatypeProperty>
  
  <owl:DatatypeProperty rdf:ID="vendor">
    <rdfs:label>vendor</rdfs:label>
    <rdfs:domain rdf:resource="#Device"/>
    <rdfs:range rdf:resource="&xsd;string"/>
  </owl:DatatypeProperty>
  
  <owl:DatatypeProperty rdf:ID="version">
    <rdfs:label>version</rdfs:label>
    <rdfs:domain rdf:resource="#Device"/>
    <rdfs:range rdf:resource="&xsd;string"/>
  </owl:DatatypeProperty>
  
  <owl:DatatypeProperty rdf:ID="supportsAudioInput">
    <rdfs:label>supportsAudioInput</rdfs:label>
    <rdfs:domain rdf:resource="#DeviceHasAudioIO"/>
    <rdfs:range rdf:resource="&xsd;boolean"/>  
  </owl:DatatypeProperty>
  
  <owl:DatatypeProperty rdf:ID="supportsAudioOutput">
    <rdfs:label>supportsAudioOutput</rdfs:label>
    <rdfs:domain rdf:resource="#DeviceHasAudioIO"/>
    <rdfs:range rdf:resource="&xsd;boolean"/>  
  </owl:DatatypeProperty>
  
  <owl:ObjectProperty rdf:ID="screenProperty">
    <rdfs:label>screenProperty</rdfs:label>
    <rdfs:domain rdf:resource="#DeviceHasDisplayScreen"/>
    <rdfs:range rdf:resource="#DisplayScreen"/>
  </owl:ObjectProperty>
  
  <owl:Class rdf:ID="DisplayScreen">
    <rdfs:label>DisplayScreen</rdfs:label>  
    
    <rdfs:subClassOf>
      <owl:Restriction>
	<owl:onProperty rdf:resource="#screenWidth"/>
	<owl:maxCardinality rdf:datatype="&xsd;nonNegativeInteger">
	  1
	</owl:maxCardinality>
      </owl:Restriction>
    </rdfs:subClassOf>
    
    <rdfs:subClassOf>
      <owl:Restriction>
	<owl:onProperty rdf:resource="#screenHeight"/>
	<owl:maxCardinality rdf:datatype="&xsd;nonNegativeInteger">
	  1
	</owl:maxCardinality>
      </owl:Restriction>
    </rdfs:subClassOf>
    
    <rdfs:subClassOf>
      <owl:Restriction>
	<owl:onProperty rdf:resource="#screenSizeUnit"/>
	<owl:maxCardinality rdf:datatype="&xsd;nonNegativeInteger">
	  1
	</owl:maxCardinality>
      </owl:Restriction>
  </rdfs:subClassOf>
    
    <rdfs:subClassOf>
      <owl:Restriction>
	<owl:onProperty rdf:resource="#hasColorScreen"/>
	<owl:maxCardinality rdf:datatype="&xsd;nonNegativeInteger">
	  1
	</owl:maxCardinality>
      </owl:Restriction>
    </rdfs:subClassOf>
    
  </owl:Class>
  
  <owl:DatatypeProperty rdf:ID="screenWidth">
    <rdfs:label>screenWidth</rdfs:label>
    <rdfs:domain rdf:resource="#DisplayScreen"/>
    <rdfs:range rdf:resource="&xsd;decimal"/>
  </owl:DatatypeProperty>
  
  <owl:DatatypeProperty rdf:ID="screenHeight">
    <rdfs:label>screenHeight</rdfs:label>
    <rdfs:domain rdf:resource="#DisplayScreen"/>
    <rdfs:range rdf:resource="&xsd;decimal"/>
  </owl:DatatypeProperty>
  
  <owl:DatatypeProperty rdf:ID="screenSizeUnit">
    <rdfs:label>screenSizeUnit</rdfs:label>
    <rdfs:domain rdf:resource="#DisplayScreen"/>
    <rdfs:range rdf:resource="&xsd;string"/>
  </owl:DatatypeProperty>
  
  <owl:DatatypeProperty rdf:ID="hasColorScreen">
    <rdfs:label>hasColorScreen</rdfs:label>
    <rdfs:domain rdf:resource="#DisplayScreen"/>
    <rdfs:range rdf:resource="&xsd;boolean"/>
  </owl:DatatypeProperty>
  
  <owl:ObjectProperty rdf:ID="screenResolution">
    <rdfs:label>screenResolution</rdfs:label>
    <rdfs:domain rdf:resource="#DisplayScreen"/>
    <rdfs:range rdf:resource="#DisplayScreenResolution"/>
  </owl:ObjectProperty>
  
  <owl:Class rdf:ID="DisplayScreenResolution">
    <rdfs:label>DisplayScreenResolution</rdfs:label>

    <rdfs:subClassOf>
      <owl:Restriction>
	<owl:onProperty rdf:resource="#resolutionWidth"/>
	<owl:maxCardinality rdf:datatype="&xsd;nonNegativeInteger">
	  1
	</owl:maxCardinality>
      </owl:Restriction>
    </rdfs:subClassOf>
    
    <rdfs:subClassOf>
      <owl:Restriction>
      <owl:onProperty rdf:resource="#resolutionHeight"/>
      <owl:maxCardinality rdf:datatype="&xsd;nonNegativeInteger">
	1
      </owl:maxCardinality>
      </owl:Restriction>
    </rdfs:subClassOf>
    
    <rdfs:subClassOf>
      <owl:Restriction>
	<owl:onProperty rdf:resource="#resolutionSizeUnit"/>
	<owl:maxCardinality rdf:datatype="&xsd;nonNegativeInteger">
	  1
	</owl:maxCardinality>
      </owl:Restriction>
    </rdfs:subClassOf>
    
    <rdfs:subClassOf>
      <owl:Restriction>
	<owl:onProperty rdf:resource="#bitsPerPixel"/>
	<owl:maxCardinality rdf:datatype="&xsd;nonNegativeInteger">
	  1
	</owl:maxCardinality>
      </owl:Restriction>
    </rdfs:subClassOf>
    
    <rdfs:subClassOf>
      <owl:Restriction>
	<owl:onProperty rdf:resource="#canDisplayGraphics"/>
	<owl:maxCardinality rdf:datatype="&xsd;nonNegativeInteger">
	  1
	</owl:maxCardinality>
      </owl:Restriction>
    </rdfs:subClassOf>
  </owl:Class>
  
  <owl:DatatypeProperty rdf:ID="resolutionWidth">
    <rdfs:label>resolutionWidth</rdfs:label>
    <rdfs:domain rdf:resource="#DisplayScreenResolution"/>
    <rdfs:range rdf:resource="&xsd;decimal"/>
  </owl:DatatypeProperty>
  
  <owl:DatatypeProperty rdf:ID="resolutionHeight">
    <rdfs:label>resolutionHeight</rdfs:label>
    <rdfs:domain rdf:resource="#DisplayScreenResolution"/>
    <rdfs:range rdf:resource="&xsd;decimal"/>
  </owl:DatatypeProperty>
  
  <owl:DatatypeProperty rdf:ID="resolutionSizeUnit">
    <rdfs:label>resolutionSizeUnit</rdfs:label>
    <rdfs:domain rdf:resource="#DisplayScreenResolution"/>
    <rdfs:range rdf:resource="&xsd;string"/>
  </owl:DatatypeProperty>
  
  <owl:DatatypeProperty rdf:ID="bitsPerPixel">
    <rdfs:label>bitsPerPixel</rdfs:label>
    <rdfs:domain rdf:resource="#DisplayScreenResolution"/>
    <rdfs:range rdf:resource="&xsd;decimal"/>
  </owl:DatatypeProperty>
  
  <owl:DatatypeProperty rdf:ID="canDisplayGraphics">
    <rdfs:label>canDisplayGraphics</rdfs:label>
    <rdfs:domain rdf:resource="#DisplayScreenResolution"/>
    <rdfs:range rdf:resource="&xsd;boolean"/>
  </owl:DatatypeProperty>
  
  <owl:ObjectProperty rdf:ID="availableMemory">
    <rdfs:label>availableMemory</rdfs:label>
    <rdfs:domain rdf:resource="#DeviceHasOnBoardMemory"/>
    <rdfs:range rdf:resource="#DeviceMemory"/>
  </owl:ObjectProperty>
  
  <owl:Class rdf:ID="DeviceMemory">
    <rdfs:label>DeviceMemory</rdfs:label>  
    
    <rdfs:subClassOf>
      <owl:Restriction>
	<owl:onProperty rdf:resource="#amountOfMemory"/>
	<owl:maxCardinality rdf:datatype="&xsd;nonNegativeInteger">
	  1
	</owl:maxCardinality>
      </owl:Restriction>
    </rdfs:subClassOf>
    
    <rdfs:subClassOf>
      <owl:Restriction>
	<owl:onProperty rdf:resource="#memorySizeUnit"/>
	<owl:maxCardinality rdf:datatype="&xsd;nonNegativeInteger">
	  1
	</owl:maxCardinality>
      </owl:Restriction>
    </rdfs:subClassOf>
    
    <rdfs:subClassOf>
      <owl:Restriction>
	<owl:onProperty rdf:resource="#usageType"/>
	<owl:maxCardinality rdf:datatype="&xsd;nonNegativeInteger">
	  1
	</owl:maxCardinality>
      </owl:Restriction>
    </rdfs:subClassOf>
  </owl:Class>
  
  <owl:DatatypeProperty rdf:ID="amountOfMemory">
    <rdfs:label>amountOfMemory</rdfs:label>
    <rdfs:domain rdf:resource="#DeviceMemory"/>
    <rdfs:range rdf:resource="&xsd;nonNegativeInteger"/>
  </owl:DatatypeProperty>
  
  <owl:DatatypeProperty rdf:ID="memorySizeUnit">
    <rdfs:label>memorySizeUnit</rdfs:label>
    <rdfs:domain rdf:resource="#DeviceMemory"/>
    <rdfs:range rdf:resource="&xsd;string"/>
  </owl:DatatypeProperty>
  
  <owl:DatatypeProperty rdf:ID="usageType">
    <rdfs:label>useageType</rdfs:label>
    <rdfs:domain rdf:resource="#DeviceMemory"/>
    <rdfs:range rdf:resource="&xsd;string"/>
  </owl:DatatypeProperty>
  
  <owl:Class rdf:ID="MemoryUsageType">
    <rdfs:label>MemoryUsageType</rdfs:label>
  </owl:Class>
  
  <MemoryUsageType rdf:ID="MemoryForApplication">
    <rdfs:label>MemoryForApplication</rdfs:label>
  </MemoryUsageType>
  
  <MemoryUsageType rdf:ID="MemoryForStorage">
    <rdfs:label>MemoryForStorage</rdfs:label>
  </MemoryUsageType>
  
 
  
</rdf:RDF>
