Commit 0fdd2a45c4ae965014c282259450f2fecf4a874b

Authored by Joerg Swetina
2 parents e9a3872c c5d4e188

Merge branch 'Example_usage_of_the_Base_Ontology' into 'master'

Example usage of the base ontology

uploaded BO_SAREF.owl and related README_Base_Ontology_SAREF.md

See merge request !11
  1 +<?xml version="1.0"?>
  2 +<rdf:RDF xmlns="https://git.onem2m.org/MAS/BaseOntology/raw/master/BO_SAREF.owl#"
  3 + xml:base="https://git.onem2m.org/MAS/BaseOntology/raw/master/BO_SAREF.owl"
  4 + xmlns:B_O="https://git.onem2m.org/MAS/BaseOntology/raw/master/base_ontology.owl#"
  5 + xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
  6 + xmlns:terms="http://purl.org/dc/terms/"
  7 + xmlns:owl="http://www.w3.org/2002/07/owl#"
  8 + xmlns:bo_saref="https://git.onem2m.org/MAS/BaseOntology/raw/master/BO_SAREF.owl#"
  9 + xmlns:xml="http://www.w3.org/XML/1998/namespace"
  10 + xmlns:saref="https://w3id.org/saref#"
  11 + xmlns:xsd="http://www.w3.org/2001/XMLSchema#"
  12 + xmlns:skos="http://www.w3.org/2004/02/skos/core#"
  13 + xmlns:base_ontology="https://git.onem2m.org/MAS/BaseOntology/raw/3_6_0/base_ontology.owl#"
  14 + xmlns:time="http://www.w3.org/2006/time#"
  15 + xmlns:rdfs="http://www.w3.org/2000/01/rdf-schema#">
  16 + <owl:Ontology rdf:about="https://git.onem2m.org/MAS/BaseOntology/raw/master/BO_SAREF.owl">
  17 + <owl:imports rdf:resource="https://git.onem2m.org/MAS/BaseOntology/raw/3_6_0/base_ontology.owl"/>
  18 + <owl:imports rdf:resource="https://w3id.org/saref"/>
  19 + </owl:Ontology>
  20 +
  21 +
  22 +
  23 + <!--
  24 + ///////////////////////////////////////////////////////////////////////////////////////
  25 + //
  26 + // Object Properties
  27 + //
  28 + ///////////////////////////////////////////////////////////////////////////////////////
  29 + -->
  30 +
  31 +
  32 +
  33 +
  34 + <!-- https://w3id.org/saref#IsUsedFor -->
  35 +
  36 + <rdf:Description rdf:about="https://w3id.org/saref#IsUsedFor">
  37 + <rdfs:subPropertyOf rdf:resource="https://git.onem2m.org/MAS/BaseOntology/raw/master/base_ontology.owl#hasThingProperty"/>
  38 + </rdf:Description>
  39 +
  40 +
  41 +
  42 + <!-- https://w3id.org/saref#accomplishes -->
  43 +
  44 + <rdf:Description rdf:about="https://w3id.org/saref#accomplishes">
  45 + <rdfs:subPropertyOf rdf:resource="https://git.onem2m.org/MAS/BaseOntology/raw/master/base_ontology.owl#hasThingProperty"/>
  46 + </rdf:Description>
  47 +
  48 +
  49 +
  50 + <!-- https://w3id.org/saref#actsUpon -->
  51 +
  52 + <rdf:Description rdf:about="https://w3id.org/saref#actsUpon">
  53 + <rdfs:subPropertyOf>
  54 + <rdf:Description>
  55 + <owl:inverseOf rdf:resource="https://git.onem2m.org/MAS/BaseOntology/raw/master/base_ontology.owl#exposesCommand"/>
  56 + </rdf:Description>
  57 + </rdfs:subPropertyOf>
  58 + </rdf:Description>
  59 +
  60 +
  61 +
  62 + <!-- https://w3id.org/saref#contains -->
  63 +
  64 + <rdf:Description rdf:about="https://w3id.org/saref#contains">
  65 + <rdfs:subPropertyOf rdf:resource="https://git.onem2m.org/MAS/BaseOntology/raw/master/base_ontology.owl#hasThingRelation"/>
  66 + </rdf:Description>
  67 +
  68 +
  69 +
  70 + <!-- https://w3id.org/saref#hasCategory -->
  71 +
  72 + <rdf:Description rdf:about="https://w3id.org/saref#hasCategory">
  73 + <rdfs:subPropertyOf rdf:resource="https://git.onem2m.org/MAS/BaseOntology/raw/master/base_ontology.owl#hasThingProperty"/>
  74 + </rdf:Description>
  75 +
  76 +
  77 +
  78 + <!-- https://w3id.org/saref#hasCommand -->
  79 +
  80 + <rdf:Description rdf:about="https://w3id.org/saref#hasCommand">
  81 + <rdfs:subPropertyOf rdf:resource="https://git.onem2m.org/MAS/BaseOntology/raw/master/base_ontology.owl#hasCommand"/>
  82 + </rdf:Description>
  83 +
  84 +
  85 +
  86 + <!-- https://w3id.org/saref#hasConsumption -->
  87 +
  88 + <rdf:Description rdf:about="https://w3id.org/saref#hasConsumption">
  89 + <rdfs:subPropertyOf rdf:resource="https://git.onem2m.org/MAS/BaseOntology/raw/master/base_ontology.owl#hasThingProperty"/>
  90 + </rdf:Description>
  91 +
  92 +
  93 +
  94 + <!-- https://w3id.org/saref#hasFunction -->
  95 +
  96 + <rdf:Description rdf:about="https://w3id.org/saref#hasFunction">
  97 + <rdfs:subPropertyOf rdf:resource="https://git.onem2m.org/MAS/BaseOntology/raw/master/base_ontology.owl#hasFunction"/>
  98 + </rdf:Description>
  99 +
  100 +
  101 +
  102 + <!-- https://w3id.org/saref#hasInputParameter -->
  103 +
  104 + <rdf:Description rdf:about="https://w3id.org/saref#hasInputParameter">
  105 + <rdfs:subPropertyOf rdf:resource="https://git.onem2m.org/MAS/BaseOntology/raw/master/base_ontology.owl#hasInputDataPoint"/>
  106 + </rdf:Description>
  107 +
  108 +
  109 +
  110 + <!-- https://w3id.org/saref#hasOutputParameter -->
  111 +
  112 + <rdf:Description rdf:about="https://w3id.org/saref#hasOutputParameter">
  113 + <rdfs:subPropertyOf rdf:resource="https://git.onem2m.org/MAS/BaseOntology/raw/master/base_ontology.owl#hasOutputDataPoint"/>
  114 + </rdf:Description>
  115 +
  116 +
  117 +
  118 + <!-- https://w3id.org/saref#hasPrice -->
  119 +
  120 + <rdf:Description rdf:about="https://w3id.org/saref#hasPrice">
  121 + <rdfs:subPropertyOf rdf:resource="https://git.onem2m.org/MAS/BaseOntology/raw/master/base_ontology.owl#hasThingProperty"/>
  122 + </rdf:Description>
  123 +
  124 +
  125 +
  126 + <!-- https://w3id.org/saref#hasProduction -->
  127 +
  128 + <rdf:Description rdf:about="https://w3id.org/saref#hasProduction">
  129 + <rdfs:subPropertyOf rdf:resource="https://git.onem2m.org/MAS/BaseOntology/raw/master/base_ontology.owl#hasThingProperty"/>
  130 + </rdf:Description>
  131 +
  132 +
  133 +
  134 + <!-- https://w3id.org/saref#hasProfile -->
  135 +
  136 + <rdf:Description rdf:about="https://w3id.org/saref#hasProfile">
  137 + <rdfs:subPropertyOf rdf:resource="https://git.onem2m.org/MAS/BaseOntology/raw/master/base_ontology.owl#hasThingProperty"/>
  138 + </rdf:Description>
  139 +
  140 +
  141 +
  142 + <!-- https://w3id.org/saref#hasState -->
  143 +
  144 + <rdf:Description rdf:about="https://w3id.org/saref#hasState">
  145 + <rdfs:subPropertyOf rdf:resource="https://git.onem2m.org/MAS/BaseOntology/raw/master/base_ontology.owl#hasThingProperty"/>
  146 + </rdf:Description>
  147 +
  148 +
  149 +
  150 + <!-- https://w3id.org/saref#hasTime -->
  151 +
  152 + <rdf:Description rdf:about="https://w3id.org/saref#hasTime">
  153 + <rdfs:subPropertyOf rdf:resource="https://git.onem2m.org/MAS/BaseOntology/raw/master/base_ontology.owl#hasThingProperty"/>
  154 + </rdf:Description>
  155 +
  156 +
  157 +
  158 + <!-- https://w3id.org/saref#hasTypicalConsumption -->
  159 +
  160 + <rdf:Description rdf:about="https://w3id.org/saref#hasTypicalConsumption">
  161 + <rdfs:subPropertyOf rdf:resource="https://git.onem2m.org/MAS/BaseOntology/raw/master/base_ontology.owl#hasThingProperty"/>
  162 + </rdf:Description>
  163 +
  164 +
  165 +
  166 + <!-- https://w3id.org/saref#isAccomplishedBy -->
  167 +
  168 + <rdf:Description rdf:about="https://w3id.org/saref#isAccomplishedBy">
  169 + <rdfs:subPropertyOf>
  170 + <rdf:Description>
  171 + <owl:inverseOf rdf:resource="https://git.onem2m.org/MAS/BaseOntology/raw/master/base_ontology.owl#hasThingProperty"/>
  172 + </rdf:Description>
  173 + </rdfs:subPropertyOf>
  174 + </rdf:Description>
  175 +
  176 +
  177 +
  178 + <!-- https://w3id.org/saref#isCategoryOf -->
  179 +
  180 + <rdf:Description rdf:about="https://w3id.org/saref#isCategoryOf">
  181 + <rdfs:subPropertyOf>
  182 + <rdf:Description>
  183 + <owl:inverseOf rdf:resource="https://git.onem2m.org/MAS/BaseOntology/raw/master/base_ontology.owl#hasThingProperty"/>
  184 + </rdf:Description>
  185 + </rdfs:subPropertyOf>
  186 + </rdf:Description>
  187 +
  188 +
  189 +
  190 + <!-- https://w3id.org/saref#isCommandOf -->
  191 +
  192 + <rdf:Description rdf:about="https://w3id.org/saref#isCommandOf">
  193 + <rdfs:subPropertyOf>
  194 + <rdf:Description>
  195 + <owl:inverseOf rdf:resource="https://git.onem2m.org/MAS/BaseOntology/raw/master/base_ontology.owl#hasCommand"/>
  196 + </rdf:Description>
  197 + </rdfs:subPropertyOf>
  198 + </rdf:Description>
  199 +
  200 +
  201 +
  202 + <!-- https://w3id.org/saref#isLocatedIn -->
  203 +
  204 + <rdf:Description rdf:about="https://w3id.org/saref#isLocatedIn">
  205 + <rdfs:subPropertyOf rdf:resource="https://git.onem2m.org/MAS/BaseOntology/raw/master/base_ontology.owl#hasThingRelation"/>
  206 + </rdf:Description>
  207 +
  208 +
  209 +
  210 + <!-- https://w3id.org/saref#isMeasuredIn -->
  211 +
  212 + <rdf:Description rdf:about="https://w3id.org/saref#isMeasuredIn">
  213 + <rdfs:subPropertyOf rdf:resource="https://git.onem2m.org/MAS/BaseOntology/raw/master/base_ontology.owl#describes"/>
  214 + </rdf:Description>
  215 +
  216 +
  217 +
  218 + <!-- https://w3id.org/saref#isOfferedBy -->
  219 +
  220 + <rdf:Description rdf:about="https://w3id.org/saref#isOfferedBy">
  221 + <rdfs:subPropertyOf>
  222 + <rdf:Description>
  223 + <owl:inverseOf rdf:resource="https://git.onem2m.org/MAS/BaseOntology/raw/master/base_ontology.owl#hasService"/>
  224 + </rdf:Description>
  225 + </rdfs:subPropertyOf>
  226 + </rdf:Description>
  227 +
  228 +
  229 +
  230 + <!-- https://w3id.org/saref#offers -->
  231 +
  232 + <rdf:Description rdf:about="https://w3id.org/saref#offers">
  233 + <rdfs:subPropertyOf rdf:resource="https://git.onem2m.org/MAS/BaseOntology/raw/master/base_ontology.owl#hasService"/>
  234 + </rdf:Description>
  235 +
  236 +
  237 +
  238 + <!-- https://w3id.org/saref#represents -->
  239 +
  240 + <rdf:Description rdf:about="https://w3id.org/saref#represents">
  241 + <rdfs:subPropertyOf>
  242 + <rdf:Description>
  243 + <owl:inverseOf rdf:resource="https://git.onem2m.org/MAS/BaseOntology/raw/master/base_ontology.owl#exposesFunction"/>
  244 + </rdf:Description>
  245 + </rdfs:subPropertyOf>
  246 + </rdf:Description>
  247 +
  248 +
  249 +
  250 + <!--
  251 + ///////////////////////////////////////////////////////////////////////////////////////
  252 + //
  253 + // Data properties
  254 + //
  255 + ///////////////////////////////////////////////////////////////////////////////////////
  256 + -->
  257 +
  258 +
  259 +
  260 +
  261 + <!-- https://w3id.org/saref#hasDescription -->
  262 +
  263 + <rdf:Description rdf:about="https://w3id.org/saref#hasDescription">
  264 + <rdfs:subPropertyOf rdf:resource="https://git.onem2m.org/MAS/BaseOntology/raw/master/base_ontology.owl#hasThingAnnotation"/>
  265 + </rdf:Description>
  266 +
  267 +
  268 +
  269 + <!-- https://w3id.org/saref#hasManufacturer -->
  270 +
  271 + <rdf:Description rdf:about="https://w3id.org/saref#hasManufacturer">
  272 + <rdfs:subPropertyOf rdf:resource="https://git.onem2m.org/MAS/BaseOntology/raw/master/base_ontology.owl#hasThingAnnotation"/>
  273 + </rdf:Description>
  274 +
  275 +
  276 +
  277 + <!-- https://w3id.org/saref#hasModel -->
  278 +
  279 + <rdf:Description rdf:about="https://w3id.org/saref#hasModel">
  280 + <rdfs:subPropertyOf rdf:resource="https://git.onem2m.org/MAS/BaseOntology/raw/master/base_ontology.owl#hasThingAnnotation"/>
  281 + </rdf:Description>
  282 +
  283 +
  284 +
  285 + <!-- https://w3id.org/saref#hasSpaceType -->
  286 +
  287 + <rdf:Description rdf:about="https://w3id.org/saref#hasSpaceType">
  288 + <rdfs:subPropertyOf rdf:resource="https://git.onem2m.org/MAS/BaseOntology/raw/master/base_ontology.owl#hasThingAnnotation"/>
  289 + </rdf:Description>
  290 +
  291 +
  292 +
  293 + <!--
  294 + ///////////////////////////////////////////////////////////////////////////////////////
  295 + //
  296 + // Classes
  297 + //
  298 + ///////////////////////////////////////////////////////////////////////////////////////
  299 + -->
  300 +
  301 +
  302 +
  303 +
  304 + <!-- https://w3id.org/saref#BuildingObject -->
  305 +
  306 + <rdf:Description rdf:about="https://w3id.org/saref#BuildingObject">
  307 + <rdfs:subClassOf rdf:resource="https://git.onem2m.org/MAS/BaseOntology/raw/master/base_ontology.owl#ThingProperty"/>
  308 + </rdf:Description>
  309 +
  310 +
  311 +
  312 + <!-- https://w3id.org/saref#BuildingSpace -->
  313 +
  314 + <rdf:Description rdf:about="https://w3id.org/saref#BuildingSpace">
  315 + <rdfs:subClassOf rdf:resource="https://git.onem2m.org/MAS/BaseOntology/raw/master/base_ontology.owl#Thing"/>
  316 + </rdf:Description>
  317 +
  318 +
  319 +
  320 + <!-- https://w3id.org/saref#Command -->
  321 +
  322 + <rdf:Description rdf:about="https://w3id.org/saref#Command">
  323 + <rdfs:subClassOf rdf:resource="https://git.onem2m.org/MAS/BaseOntology/raw/master/base_ontology.owl#Command"/>
  324 + </rdf:Description>
  325 +
  326 +
  327 +
  328 + <!-- https://w3id.org/saref#Commodity -->
  329 +
  330 + <rdf:Description rdf:about="https://w3id.org/saref#Commodity">
  331 + <rdfs:subClassOf rdf:resource="https://git.onem2m.org/MAS/BaseOntology/raw/master/base_ontology.owl#ThingProperty"/>
  332 + </rdf:Description>
  333 +
  334 +
  335 +
  336 + <!-- https://w3id.org/saref#Device -->
  337 +
  338 + <rdf:Description rdf:about="https://w3id.org/saref#Device">
  339 + <rdfs:subClassOf rdf:resource="https://git.onem2m.org/MAS/BaseOntology/raw/master/base_ontology.owl#Device"/>
  340 + </rdf:Description>
  341 +
  342 +
  343 +
  344 + <!-- https://w3id.org/saref#DeviceCategory -->
  345 +
  346 + <rdf:Description rdf:about="https://w3id.org/saref#DeviceCategory">
  347 + <rdfs:subClassOf rdf:resource="https://git.onem2m.org/MAS/BaseOntology/raw/master/base_ontology.owl#ThingProperty"/>
  348 + </rdf:Description>
  349 +
  350 +
  351 +
  352 + <!-- https://w3id.org/saref#Function -->
  353 +
  354 + <rdf:Description rdf:about="https://w3id.org/saref#Function">
  355 + <rdfs:subClassOf rdf:resource="https://git.onem2m.org/MAS/BaseOntology/raw/master/base_ontology.owl#Function"/>
  356 + </rdf:Description>
  357 +
  358 +
  359 +
  360 + <!-- https://w3id.org/saref#FunctionCategory -->
  361 +
  362 + <rdf:Description rdf:about="https://w3id.org/saref#FunctionCategory">
  363 + <rdfs:subClassOf rdf:resource="https://git.onem2m.org/MAS/BaseOntology/raw/master/base_ontology.owl#Aspect"/>
  364 + </rdf:Description>
  365 +
  366 +
  367 +
  368 + <!-- https://w3id.org/saref#Profile -->
  369 +
  370 + <rdf:Description rdf:about="https://w3id.org/saref#Profile">
  371 + <rdfs:subClassOf rdf:resource="https://git.onem2m.org/MAS/BaseOntology/raw/master/base_ontology.owl#Thing"/>
  372 + </rdf:Description>
  373 +
  374 +
  375 +
  376 + <!-- https://w3id.org/saref#Property -->
  377 +
  378 + <rdf:Description rdf:about="https://w3id.org/saref#Property">
  379 + <rdfs:subClassOf rdf:resource="https://git.onem2m.org/MAS/BaseOntology/raw/master/base_ontology.owl#Variable"/>
  380 + </rdf:Description>
  381 +
  382 +
  383 +
  384 + <!-- https://w3id.org/saref#Service -->
  385 +
  386 + <rdf:Description rdf:about="https://w3id.org/saref#Service">
  387 + <rdfs:subClassOf rdf:resource="https://git.onem2m.org/MAS/BaseOntology/raw/master/base_ontology.owl#Service"/>
  388 + </rdf:Description>
  389 +
  390 +
  391 +
  392 + <!-- https://w3id.org/saref#State -->
  393 +
  394 + <rdf:Description rdf:about="https://w3id.org/saref#State">
  395 + <rdfs:subClassOf rdf:resource="https://git.onem2m.org/MAS/BaseOntology/raw/master/base_ontology.owl#Variable"/>
  396 + </rdf:Description>
  397 +
  398 +
  399 +
  400 + <!-- https://w3id.org/saref#Task -->
  401 +
  402 + <rdf:Description rdf:about="https://w3id.org/saref#Task">
  403 + <rdfs:subClassOf rdf:resource="https://git.onem2m.org/MAS/BaseOntology/raw/master/base_ontology.owl#ThingProperty"/>
  404 + </rdf:Description>
  405 +
  406 +
  407 +
  408 + <!-- https://w3id.org/saref#UnitOfMeasure -->
  409 +
  410 + <rdf:Description rdf:about="https://w3id.org/saref#UnitOfMeasure">
  411 + <rdfs:subClassOf rdf:resource="https://git.onem2m.org/MAS/BaseOntology/raw/master/base_ontology.owl#MetaData"/>
  412 + </rdf:Description>
  413 +</rdf:RDF>
  414 +
  415 +
  416 +
  417 +<!-- Generated by the OWL API (version 4.2.6.20160910-2108) https://github.com/owlcs/owlapi -->
  418 +
... ...
  1 +About the file: BO_SAREF.owl
  2 +==============
  3 +
  4 +After the Release 3 version of the oneM2M base ontology (version 3.6.0) had been finalized in TS-0012, the BO_SAREF.owl file in this directory gives an example how it can be used in practice. As a natural candidate for that exercise SAREF (Smart Appliances Reference Ontology) has been chosen.
  5 +The attached BO_SAREF.owl file imports both ontologies through reference:
  6 +
  7 + <owl:Ontology rdf:about="https://git.onem2m.org/MAS/BaseOntology/raw/master/BO_SAREF.owl">
  8 + <owl:imports rdf:resource="https://git.onem2m.org/MAS/BaseOntology/raw/3_6_0/base_ontology.owl"/>
  9 + <owl:imports rdf:resource="https://w3id.org/saref"/>
  10 + </owl:Ontology>
  11 +
  12 +It contains sub-classing and sub-Properties relationships between SAREF and the oneM2M base ontology. By creating this sub-classing and sub-Properties relationships all SAREF classes (and any potential sub-class of SAREF classes) can be istantiated as oneM2M resources, using the instantiation rules in TS-0012 and TS-0030.
  13 +
  14 +Not all classes / properties of SAREF could be described as sub-classes / sub-properties of base ontology (BO) classes / properties.
  15 +In most cases this is not an issue, since all classes / properties of SAREF indeed can be implemented as RDF data in \<semanticDescriptor\> resources, using the rules of TS-0012.
  16 +However, in oneM2M Solutions, that do not make use of \<semanticDescriptor\> resources, SAREF (or SAREF based) ontologies, devices and their services can still be instantiated with oneM2M resources, using TS-0030 as mapping rule.
  17 +Devices, Input/output datapoints can be implemented, however some other semantic information might be lost.
  18 +Problems found, but not yet resolved:
  19 +------------------------------------
  20 +
  21 +A particular problem arose with "saref:Property ". SAREF uses this class sometimes as classification:
  22 +
  23 +
  24 +- Device SubClassOf :IsUsedFor only (:BuildingObject or :Commodity or :Property)
  25 +
  26 +Where "saref:Property " has sub-classes saref:Energy, saref:humidity, saref:Power, …
  27 +
  28 +Sometimes SAREF uses this "saref:Property " class as in/output parameters of services.
  29 +
  30 +
  31 +- saref:Service SubClassOf :hasOutputParameter only (:Property or :State)
  32 +
  33 +This seems to be an inconsistent use of "saref:Property " in SAREF and makes the sub-classing difficult.
  34 +
  35 +
  36 +
  37 +Another problem was found in the oneM2M base ontology (BO) itself:
  38 +The problem relates to the mapping of information contained in instances of "BO:Aspect" (e.g. the quality or kind of a BO:Variable) and " BO:MetaData" (e.g. measurement units) into oneM2M resources (\<container\>s or \<flexContainer\>s). The problem arises only for oneM2M Solutions, that do not make use of \<semanticDescriptor\> resources.
  39 +The input/output parameters of a device (classes BO:Input/OutputDataPoint and BO:OperationInput/Output) and the properties of a thing (class " BO:ThingProperty") are derived from class " BO:Variable". Currently the class " BO:Variable" is related to classes " BO:Aspect" and " BO:MetaData" via relations (i.e. object properties):
  40 +
  41 +- A " BO:Variable" " BO:describes" an " BO:Aspect"
  42 +- A " BO:Variable" " BO:hasMetaData" " BO:MetaData"
  43 +
  44 +"Aspect" and "MetaData" are also related via:
  45 +
  46 +- An " BO:Aspect" " BO:hasMetaData" " BO:MetaData"
  47 +
  48 + While TS-0030 specifies how input/output parameters of a service of a device are instantiated as customAttributes of \<flexContainer\> service resources of the resource it does not specify how " BO:Aspect" and " BO:MetaData" should be instantiated.
  49 +
  50 + According to section 7.1.1.2 of TS-0012 the resource types for instantiating these two should be the \<semanticDescriptors\>s of some \<container\> or \<flexContainer\>. The \<semanticDescriptor\> of the input/output parameters of a service contain the information where the \<semanticDescriptors\>s of " BO:Aspect" and " BO:MetaData" can be found.
  51 +
  52 + If no \<semanticDescriptors\>s exist " BO:Aspect" and " BO:MetaData" can still be instantiated as \<container\> or \<flexContainer\>, however the linking between input/output parameter " BO:Variables" and related " BO:Aspect" and/or " BO:MetaData" is not specified.
  53 +This remains to be solved in the future.
  54 +
  55 +The following tables give an overview on sub-classing and sub-Properties relationships contained in BO_SAREF.owl:
  56 +
  57 +
  58 +**Classes:**
  59 +
  60 +
  61 +|SAREF Class|Is subClassOf Base Ontology Class|Comment|
  62 +|-------|-----------|--------------------|
  63 +saref:BuildingObject|BO:ThingProperty|subClass relationship implemented in BO_SAREF
  64 +saref:BuildingSpace|BO:Thing|subClass relationship implemented in BO_SAREF
  65 +saref:Command|BO:Command|subClass relationship implemented in BO_SAREF
  66 +saref:Commodity|BO:ThingProperty|subClass relationship implemented in BO_SAREF
  67 +saref:Device|BO:Device|subClass relationship implemented in BO_SAREF
  68 +saref:DeviceCategory|BO:ThingProperty|subClass relationship implemented in BO_SAREF
  69 +saref:Function|BO:Function|subClass relationship implemented in BO_SAREF
  70 +saref:FunctionCategory|BO:Aspect|subClass relationship implemented in BO_SAREF
  71 +saref:Profile|BO:Thing|subClass relationship implemented in BO_SAREF
  72 +saref:Property| |No subClass relationship implemented in BO_SAREF. -Could be mapped to "BO:Aspect" when used as: saref:SensingFunction SubClassOf saref:hasSensingRange some saref:Property Or mapped to "BO:Variable" when used as: saref:Service SubClassOf saref:has[In/Out]putParameter only (saref:Property or saref:State) Or mapped to "BO:ThingProperty" (i.e. a subclass of "BO:Variable"), when used as: saref:Device SubClassOf saref:IsUsedFor only (saref:BuildingObject or saref:Commodity or saref:Property) Or as: saref:Profile SubClassOf saref:hasProduction only (saref:Energy or saref:Power) and saref:Profile SubClassOf saref:hasConsumption only (saref:Energy or saref:Power)
  73 +saref:Service|BO:Service|subClass relationship implemented in BO_SAREF
  74 +saref:State|BO:Variable|subClass relationship implemented in BO_SAREF
  75 +saref:Task|BO:ThingProperty|subClass relationship implemented in BO_SAREF
  76 +saref:UnitOfMeasure|BO:MetaData|subClass relationship implemented in BO_SAREF
  77 +
  78 +
  79 +
  80 +
  81 +**Object Properties:**
  82 +
  83 +|SAREF Object Property|Is subPropertyOf Base Ontology Object Property|Comment|
  84 +|---|---|---|
  85 +saref:hasCategory|BO:hasThingProperty|subProperty relationship implemented in BO_SAREF
  86 +saref:accomplishes|BO:hasThingProperty|subProperty relationship implemented in BO_SAREF
  87 +saref:actsUpon|Inverse of: BO:exposesCommand|subProperty relationship implemented in BO_SAREF In BO an Input/OutputDataPoint or an Operation of a Service exposes a Command =\> In SAREF " saref:State " seems to be the counterpart to BO: Input/OutputDataPoint. saref:Command SubClassOf saref:actsUpon only saref:State =\>Note: there exists no concept of an "Operation" in SAREF!
  88 +saref:consistsOf| |No subProperty relationship implemented in BO_SAREF Either "BO:consistsOf " when used among devices as: saref:Device SubClassOf saref:consistsOf only saref:Devic Or " BO:hasThingRelation " when used among Profiles as: saref:Profile SubClassOf saref:consistsOf only saref:Profile
  89 +saref:contains|BO:hasThingRelation|subProperty relationship implemented in BO_SAREF
  90 +saref:hasCommand|BO:hasCommand|subProperty relationship implemented in BO_SAREF
  91 +saref:hasConsumption|BO:hasThingProperty|subProperty relationship implemented in BO_SAREF
  92 +saref:hasFunction|BO:hasFunction|subProperty relationship implemented in BO_SAREF
  93 +saref:hasInputParameter|BO:hasInputDataPoint|subProperty relationship implemented in BO_SAREF Because saref:Property and saref:State are mapped to BO:Variable (which is parent of BO:InputDataPoint) Note: saref:Service SubClassOf saref:hasInputParameter only (saref:Property or saref:State) =\>Note: there exists no concept of an "Operation" in SAREF!
  94 +saref:hasMeterReadingTime| |No subProperty relationship implemented in BO_SAREF ??? unclear in SAREF ?? This and the next SAREF property defines a relation between a saref:Function and a saref:Property, which is mapped to BO:Variable. saref:MeteringFunction SubClassOf saref:hasMeterReadingTime min 1 saref:Time (which is a saref:Property) In the Base Ontology a BO:Function has BO:Commands but no Variables
  95 +saref:hasMeterReadingValue| |No subProperty relationship implemented in BO_SAREF ??? unclear in SAREF ??? saref:MeteringFunction SubClassOf saref:hasMeterReadingValue only (saref:Commodity or saref:Property) Wouldn't a Function have a Command which would actUpon a state. The state would then have a value and a time
  96 +saref:hasOutputParameter|BO:hasOutputDataPoint|subProperty relationship implemented in BO_SAREF See: saref:hasInputParameter
  97 +saref:hasPrice|BO:hasThingProperty|subProperty relationship implemented in BO_SAREF
  98 +saref:hasProduction|BO:hasThingProperty|subProperty relationship implemented in BO_SAREF
  99 +saref:hasProfile|BO:hasThingRelation|subProperty relationship implemented in BO_SAREF
  100 +saref:hasSensingRange| |No subProperty relationship implemented in BO_SAREF Because mapping of saref:Property is unclear e.g. saref:SensingFunction SubClassOf saref:hasSensingRange some saref:Property
  101 +saref:hasSensingTime| |No subProperty relationship implemented in BO_SAREF Because mapping of saref:Property is unclear
  102 +saref:hasState|BO:hasThingProperty|subProperty relationship implemented in BO_SAREF saref:Device SubClassOf saref:hasState only saref:State (saref:State is mapped into BO:Variable)
  103 +saref:hasThreshold| |No subProperty relationship implemented in BO_SAREF
  104 +saref:hasTime|BO:hasThingProperty|subProperty relationship implemented in BO_SAREF
  105 +saref:hasTypicalConsumption|BO:hasThingProperty|subProperty relationship implemented in BO_SAREF
  106 +saref:isAccomplishedBy|Inverse of: BO:hasThingProperty|subProperty relationship implemented in BO_SAREF See: saref:accomplishes
  107 +saref:isCategoryOf|Inverse of: BO:hasThingProperty|subProperty relationship implemented in BO_SAREF See: saref:hasCategory
  108 +saref:isCommandOf|Inverse of: BO:hasCommand|subProperty relationship implemented in BO_SAREF See: saref:hasCommand
  109 +saref:isLocatedIn|BO:hasThingRelation|subProperty relationship implemented in BO_SAREF
  110 +saref:isMeasuredIn|BO:describes|subProperty relationship implemented in BO_SAREF
  111 +saref:isOfferedBy|Inverse of: BO:hasService|subProperty relationship implemented in BO_SAREF Inverse of: saref:offers See: saref:offers
  112 +saref:IsUsedFor|BO:hasThingProperty|subProperty relationship implemented in BO_SAREF
  113 +saref:offers|BO:hasService|subProperty relationship implemented in BO_SAREF
  114 +saref:represents|Inverse of: BO:exposesFunction|subProperty relationship implemented in BO_SAREF
  115 +
  116 +
  117 +
  118 +**Data Properties:**
  119 +
  120 +|SAREF Data Property|Is subPropertyOf Base Ontology Data Property|Comment|
  121 +|---|---|---|
  122 +saref:hasDescription|BO:hasThingAnnotation|subProperty relationship implemented in BO_SAREF
  123 +saref:hasManufacturer|BO:hasThingAnnotation|subProperty relationship implemented in BO_SAREF
  124 +saref:hasMeterReadingType| |No subProperty relationship implemented in BO_SAREF
  125 +saref:hasModel|BO:hasThingAnnotation|subProperty relationship implemented in BO_SAREF
  126 +saref:hasName| |No subProperty relationship implemented in BO_SAREF
  127 +saref:hasSensorType| |No subProperty relationship implemented in BO_SAREF
  128 +saref:hasSpaceType|BO:hasThingAnnotation|subProperty relationship implemented in BO_SAREF
  129 +saref:hasTask| |No subProperty relationship implemented in BO_SAREF
  130 +saref:hasValue| |No subProperty relationship implemented in BO_SAREF
  131 +saref:isFlexible| |No subProperty relationship implemented in BO_SAREF
  132 +saref:isInterruptionPossible| |No subProperty relationship implemented in BO_SAREF
  133 +
... ...