Commit a47db01566a9df47d0f0d359fcd67f33dc997544

Authored by Joerg Swetina
1 parent b11aa876

Readme file for usage of BO_SAREF.owl created

  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 +
... ...