diff --git a/Example_usage_of_the_Base_Ontology_-_combinig_SAREF_and_BO/.gitkeep b/Example_usage_of_the_Base_Ontology_-_combinig_SAREF_and_BO/.gitkeep new file mode 100644 index 0000000000000000000000000000000000000000..e69de29bb2d1d6434b8b29ae775ad8c2e48c5391 diff --git a/Example_usage_of_the_Base_Ontology_-_combinig_SAREF_and_BO/BO_SAREF.owl b/Example_usage_of_the_Base_Ontology_-_combinig_SAREF_and_BO/BO_SAREF.owl new file mode 100644 index 0000000000000000000000000000000000000000..45b8016bf4f83a95573212ca32e76d3020038993 --- /dev/null +++ b/Example_usage_of_the_Base_Ontology_-_combinig_SAREF_and_BO/BO_SAREF.owl @@ -0,0 +1,418 @@ +<?xml version="1.0"?> +<rdf:RDF xmlns="https://git.onem2m.org/MAS/BaseOntology/raw/master/BO_SAREF.owl#" + xml:base="https://git.onem2m.org/MAS/BaseOntology/raw/master/BO_SAREF.owl" + xmlns:B_O="https://git.onem2m.org/MAS/BaseOntology/raw/master/base_ontology.owl#" + xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" + xmlns:terms="http://purl.org/dc/terms/" + xmlns:owl="http://www.w3.org/2002/07/owl#" + xmlns:bo_saref="https://git.onem2m.org/MAS/BaseOntology/raw/master/BO_SAREF.owl#" + xmlns:xml="http://www.w3.org/XML/1998/namespace" + xmlns:saref="https://w3id.org/saref#" + xmlns:xsd="http://www.w3.org/2001/XMLSchema#" + xmlns:skos="http://www.w3.org/2004/02/skos/core#" + xmlns:base_ontology="https://git.onem2m.org/MAS/BaseOntology/raw/3_6_0/base_ontology.owl#" + xmlns:time="http://www.w3.org/2006/time#" + xmlns:rdfs="http://www.w3.org/2000/01/rdf-schema#"> + <owl:Ontology rdf:about="https://git.onem2m.org/MAS/BaseOntology/raw/master/BO_SAREF.owl"> + <owl:imports rdf:resource="https://git.onem2m.org/MAS/BaseOntology/raw/3_6_0/base_ontology.owl"/> + <owl:imports rdf:resource="https://w3id.org/saref"/> + </owl:Ontology> + + + + <!-- + /////////////////////////////////////////////////////////////////////////////////////// + // + // Object Properties + // + /////////////////////////////////////////////////////////////////////////////////////// + --> + + + + + <!-- https://w3id.org/saref#IsUsedFor --> + + <rdf:Description rdf:about="https://w3id.org/saref#IsUsedFor"> + <rdfs:subPropertyOf rdf:resource="https://git.onem2m.org/MAS/BaseOntology/raw/master/base_ontology.owl#hasThingProperty"/> + </rdf:Description> + + + + <!-- https://w3id.org/saref#accomplishes --> + + <rdf:Description rdf:about="https://w3id.org/saref#accomplishes"> + <rdfs:subPropertyOf rdf:resource="https://git.onem2m.org/MAS/BaseOntology/raw/master/base_ontology.owl#hasThingProperty"/> + </rdf:Description> + + + + <!-- https://w3id.org/saref#actsUpon --> + + <rdf:Description rdf:about="https://w3id.org/saref#actsUpon"> + <rdfs:subPropertyOf> + <rdf:Description> + <owl:inverseOf rdf:resource="https://git.onem2m.org/MAS/BaseOntology/raw/master/base_ontology.owl#exposesCommand"/> + </rdf:Description> + </rdfs:subPropertyOf> + </rdf:Description> + + + + <!-- https://w3id.org/saref#contains --> + + <rdf:Description rdf:about="https://w3id.org/saref#contains"> + <rdfs:subPropertyOf rdf:resource="https://git.onem2m.org/MAS/BaseOntology/raw/master/base_ontology.owl#hasThingRelation"/> + </rdf:Description> + + + + <!-- https://w3id.org/saref#hasCategory --> + + <rdf:Description rdf:about="https://w3id.org/saref#hasCategory"> + <rdfs:subPropertyOf rdf:resource="https://git.onem2m.org/MAS/BaseOntology/raw/master/base_ontology.owl#hasThingProperty"/> + </rdf:Description> + + + + <!-- https://w3id.org/saref#hasCommand --> + + <rdf:Description rdf:about="https://w3id.org/saref#hasCommand"> + <rdfs:subPropertyOf rdf:resource="https://git.onem2m.org/MAS/BaseOntology/raw/master/base_ontology.owl#hasCommand"/> + </rdf:Description> + + + + <!-- https://w3id.org/saref#hasConsumption --> + + <rdf:Description rdf:about="https://w3id.org/saref#hasConsumption"> + <rdfs:subPropertyOf rdf:resource="https://git.onem2m.org/MAS/BaseOntology/raw/master/base_ontology.owl#hasThingProperty"/> + </rdf:Description> + + + + <!-- https://w3id.org/saref#hasFunction --> + + <rdf:Description rdf:about="https://w3id.org/saref#hasFunction"> + <rdfs:subPropertyOf rdf:resource="https://git.onem2m.org/MAS/BaseOntology/raw/master/base_ontology.owl#hasFunction"/> + </rdf:Description> + + + + <!-- https://w3id.org/saref#hasInputParameter --> + + <rdf:Description rdf:about="https://w3id.org/saref#hasInputParameter"> + <rdfs:subPropertyOf rdf:resource="https://git.onem2m.org/MAS/BaseOntology/raw/master/base_ontology.owl#hasInputDataPoint"/> + </rdf:Description> + + + + <!-- https://w3id.org/saref#hasOutputParameter --> + + <rdf:Description rdf:about="https://w3id.org/saref#hasOutputParameter"> + <rdfs:subPropertyOf rdf:resource="https://git.onem2m.org/MAS/BaseOntology/raw/master/base_ontology.owl#hasOutputDataPoint"/> + </rdf:Description> + + + + <!-- https://w3id.org/saref#hasPrice --> + + <rdf:Description rdf:about="https://w3id.org/saref#hasPrice"> + <rdfs:subPropertyOf rdf:resource="https://git.onem2m.org/MAS/BaseOntology/raw/master/base_ontology.owl#hasThingProperty"/> + </rdf:Description> + + + + <!-- https://w3id.org/saref#hasProduction --> + + <rdf:Description rdf:about="https://w3id.org/saref#hasProduction"> + <rdfs:subPropertyOf rdf:resource="https://git.onem2m.org/MAS/BaseOntology/raw/master/base_ontology.owl#hasThingProperty"/> + </rdf:Description> + + + + <!-- https://w3id.org/saref#hasProfile --> + + <rdf:Description rdf:about="https://w3id.org/saref#hasProfile"> + <rdfs:subPropertyOf rdf:resource="https://git.onem2m.org/MAS/BaseOntology/raw/master/base_ontology.owl#hasThingProperty"/> + </rdf:Description> + + + + <!-- https://w3id.org/saref#hasState --> + + <rdf:Description rdf:about="https://w3id.org/saref#hasState"> + <rdfs:subPropertyOf rdf:resource="https://git.onem2m.org/MAS/BaseOntology/raw/master/base_ontology.owl#hasThingProperty"/> + </rdf:Description> + + + + <!-- https://w3id.org/saref#hasTime --> + + <rdf:Description rdf:about="https://w3id.org/saref#hasTime"> + <rdfs:subPropertyOf rdf:resource="https://git.onem2m.org/MAS/BaseOntology/raw/master/base_ontology.owl#hasThingProperty"/> + </rdf:Description> + + + + <!-- https://w3id.org/saref#hasTypicalConsumption --> + + <rdf:Description rdf:about="https://w3id.org/saref#hasTypicalConsumption"> + <rdfs:subPropertyOf rdf:resource="https://git.onem2m.org/MAS/BaseOntology/raw/master/base_ontology.owl#hasThingProperty"/> + </rdf:Description> + + + + <!-- https://w3id.org/saref#isAccomplishedBy --> + + <rdf:Description rdf:about="https://w3id.org/saref#isAccomplishedBy"> + <rdfs:subPropertyOf> + <rdf:Description> + <owl:inverseOf rdf:resource="https://git.onem2m.org/MAS/BaseOntology/raw/master/base_ontology.owl#hasThingProperty"/> + </rdf:Description> + </rdfs:subPropertyOf> + </rdf:Description> + + + + <!-- https://w3id.org/saref#isCategoryOf --> + + <rdf:Description rdf:about="https://w3id.org/saref#isCategoryOf"> + <rdfs:subPropertyOf> + <rdf:Description> + <owl:inverseOf rdf:resource="https://git.onem2m.org/MAS/BaseOntology/raw/master/base_ontology.owl#hasThingProperty"/> + </rdf:Description> + </rdfs:subPropertyOf> + </rdf:Description> + + + + <!-- https://w3id.org/saref#isCommandOf --> + + <rdf:Description rdf:about="https://w3id.org/saref#isCommandOf"> + <rdfs:subPropertyOf> + <rdf:Description> + <owl:inverseOf rdf:resource="https://git.onem2m.org/MAS/BaseOntology/raw/master/base_ontology.owl#hasCommand"/> + </rdf:Description> + </rdfs:subPropertyOf> + </rdf:Description> + + + + <!-- https://w3id.org/saref#isLocatedIn --> + + <rdf:Description rdf:about="https://w3id.org/saref#isLocatedIn"> + <rdfs:subPropertyOf rdf:resource="https://git.onem2m.org/MAS/BaseOntology/raw/master/base_ontology.owl#hasThingRelation"/> + </rdf:Description> + + + + <!-- https://w3id.org/saref#isMeasuredIn --> + + <rdf:Description rdf:about="https://w3id.org/saref#isMeasuredIn"> + <rdfs:subPropertyOf rdf:resource="https://git.onem2m.org/MAS/BaseOntology/raw/master/base_ontology.owl#describes"/> + </rdf:Description> + + + + <!-- https://w3id.org/saref#isOfferedBy --> + + <rdf:Description rdf:about="https://w3id.org/saref#isOfferedBy"> + <rdfs:subPropertyOf> + <rdf:Description> + <owl:inverseOf rdf:resource="https://git.onem2m.org/MAS/BaseOntology/raw/master/base_ontology.owl#hasService"/> + </rdf:Description> + </rdfs:subPropertyOf> + </rdf:Description> + + + + <!-- https://w3id.org/saref#offers --> + + <rdf:Description rdf:about="https://w3id.org/saref#offers"> + <rdfs:subPropertyOf rdf:resource="https://git.onem2m.org/MAS/BaseOntology/raw/master/base_ontology.owl#hasService"/> + </rdf:Description> + + + + <!-- https://w3id.org/saref#represents --> + + <rdf:Description rdf:about="https://w3id.org/saref#represents"> + <rdfs:subPropertyOf> + <rdf:Description> + <owl:inverseOf rdf:resource="https://git.onem2m.org/MAS/BaseOntology/raw/master/base_ontology.owl#exposesFunction"/> + </rdf:Description> + </rdfs:subPropertyOf> + </rdf:Description> + + + + <!-- + /////////////////////////////////////////////////////////////////////////////////////// + // + // Data properties + // + /////////////////////////////////////////////////////////////////////////////////////// + --> + + + + + <!-- https://w3id.org/saref#hasDescription --> + + <rdf:Description rdf:about="https://w3id.org/saref#hasDescription"> + <rdfs:subPropertyOf rdf:resource="https://git.onem2m.org/MAS/BaseOntology/raw/master/base_ontology.owl#hasThingAnnotation"/> + </rdf:Description> + + + + <!-- https://w3id.org/saref#hasManufacturer --> + + <rdf:Description rdf:about="https://w3id.org/saref#hasManufacturer"> + <rdfs:subPropertyOf rdf:resource="https://git.onem2m.org/MAS/BaseOntology/raw/master/base_ontology.owl#hasThingAnnotation"/> + </rdf:Description> + + + + <!-- https://w3id.org/saref#hasModel --> + + <rdf:Description rdf:about="https://w3id.org/saref#hasModel"> + <rdfs:subPropertyOf rdf:resource="https://git.onem2m.org/MAS/BaseOntology/raw/master/base_ontology.owl#hasThingAnnotation"/> + </rdf:Description> + + + + <!-- https://w3id.org/saref#hasSpaceType --> + + <rdf:Description rdf:about="https://w3id.org/saref#hasSpaceType"> + <rdfs:subPropertyOf rdf:resource="https://git.onem2m.org/MAS/BaseOntology/raw/master/base_ontology.owl#hasThingAnnotation"/> + </rdf:Description> + + + + <!-- + /////////////////////////////////////////////////////////////////////////////////////// + // + // Classes + // + /////////////////////////////////////////////////////////////////////////////////////// + --> + + + + + <!-- https://w3id.org/saref#BuildingObject --> + + <rdf:Description rdf:about="https://w3id.org/saref#BuildingObject"> + <rdfs:subClassOf rdf:resource="https://git.onem2m.org/MAS/BaseOntology/raw/master/base_ontology.owl#ThingProperty"/> + </rdf:Description> + + + + <!-- https://w3id.org/saref#BuildingSpace --> + + <rdf:Description rdf:about="https://w3id.org/saref#BuildingSpace"> + <rdfs:subClassOf rdf:resource="https://git.onem2m.org/MAS/BaseOntology/raw/master/base_ontology.owl#Thing"/> + </rdf:Description> + + + + <!-- https://w3id.org/saref#Command --> + + <rdf:Description rdf:about="https://w3id.org/saref#Command"> + <rdfs:subClassOf rdf:resource="https://git.onem2m.org/MAS/BaseOntology/raw/master/base_ontology.owl#Command"/> + </rdf:Description> + + + + <!-- https://w3id.org/saref#Commodity --> + + <rdf:Description rdf:about="https://w3id.org/saref#Commodity"> + <rdfs:subClassOf rdf:resource="https://git.onem2m.org/MAS/BaseOntology/raw/master/base_ontology.owl#ThingProperty"/> + </rdf:Description> + + + + <!-- https://w3id.org/saref#Device --> + + <rdf:Description rdf:about="https://w3id.org/saref#Device"> + <rdfs:subClassOf rdf:resource="https://git.onem2m.org/MAS/BaseOntology/raw/master/base_ontology.owl#Device"/> + </rdf:Description> + + + + <!-- https://w3id.org/saref#DeviceCategory --> + + <rdf:Description rdf:about="https://w3id.org/saref#DeviceCategory"> + <rdfs:subClassOf rdf:resource="https://git.onem2m.org/MAS/BaseOntology/raw/master/base_ontology.owl#ThingProperty"/> + </rdf:Description> + + + + <!-- https://w3id.org/saref#Function --> + + <rdf:Description rdf:about="https://w3id.org/saref#Function"> + <rdfs:subClassOf rdf:resource="https://git.onem2m.org/MAS/BaseOntology/raw/master/base_ontology.owl#Function"/> + </rdf:Description> + + + + <!-- https://w3id.org/saref#FunctionCategory --> + + <rdf:Description rdf:about="https://w3id.org/saref#FunctionCategory"> + <rdfs:subClassOf rdf:resource="https://git.onem2m.org/MAS/BaseOntology/raw/master/base_ontology.owl#Aspect"/> + </rdf:Description> + + + + <!-- https://w3id.org/saref#Profile --> + + <rdf:Description rdf:about="https://w3id.org/saref#Profile"> + <rdfs:subClassOf rdf:resource="https://git.onem2m.org/MAS/BaseOntology/raw/master/base_ontology.owl#Thing"/> + </rdf:Description> + + + + <!-- https://w3id.org/saref#Property --> + + <rdf:Description rdf:about="https://w3id.org/saref#Property"> + <rdfs:subClassOf rdf:resource="https://git.onem2m.org/MAS/BaseOntology/raw/master/base_ontology.owl#Variable"/> + </rdf:Description> + + + + <!-- https://w3id.org/saref#Service --> + + <rdf:Description rdf:about="https://w3id.org/saref#Service"> + <rdfs:subClassOf rdf:resource="https://git.onem2m.org/MAS/BaseOntology/raw/master/base_ontology.owl#Service"/> + </rdf:Description> + + + + <!-- https://w3id.org/saref#State --> + + <rdf:Description rdf:about="https://w3id.org/saref#State"> + <rdfs:subClassOf rdf:resource="https://git.onem2m.org/MAS/BaseOntology/raw/master/base_ontology.owl#Variable"/> + </rdf:Description> + + + + <!-- https://w3id.org/saref#Task --> + + <rdf:Description rdf:about="https://w3id.org/saref#Task"> + <rdfs:subClassOf rdf:resource="https://git.onem2m.org/MAS/BaseOntology/raw/master/base_ontology.owl#ThingProperty"/> + </rdf:Description> + + + + <!-- https://w3id.org/saref#UnitOfMeasure --> + + <rdf:Description rdf:about="https://w3id.org/saref#UnitOfMeasure"> + <rdfs:subClassOf rdf:resource="https://git.onem2m.org/MAS/BaseOntology/raw/master/base_ontology.owl#MetaData"/> + </rdf:Description> +</rdf:RDF> + + + +<!-- Generated by the OWL API (version 4.2.6.20160910-2108) https://github.com/owlcs/owlapi --> + diff --git a/README_Base_Ontology_SAREF.md b/README_Base_Ontology_SAREF.md new file mode 100644 index 0000000000000000000000000000000000000000..eb682bfb0bb6079e5598b828c6621fa31559a635 --- /dev/null +++ b/README_Base_Ontology_SAREF.md @@ -0,0 +1,133 @@ +About the file: BO_SAREF.owl +============== + +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. +The attached BO_SAREF.owl file imports both ontologies through reference: + + <owl:Ontology rdf:about="https://git.onem2m.org/MAS/BaseOntology/raw/master/BO_SAREF.owl"> + <owl:imports rdf:resource="https://git.onem2m.org/MAS/BaseOntology/raw/3_6_0/base_ontology.owl"/> + <owl:imports rdf:resource="https://w3id.org/saref"/> + </owl:Ontology> + +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. + +Not all classes / properties of SAREF could be described as sub-classes / sub-properties of base ontology (BO) classes / properties. +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. +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. +Devices, Input/output datapoints can be implemented, however some other semantic information might be lost. +Problems found, but not yet resolved: +------------------------------------ + +A particular problem arose with "saref:Property ". SAREF uses this class sometimes as classification: + + +- Device SubClassOf :IsUsedFor only (:BuildingObject or :Commodity or :Property) + +Where "saref:Property " has sub-classes saref:Energy, saref:humidity, saref:Power, … + +Sometimes SAREF uses this "saref:Property " class as in/output parameters of services. + + +- saref:Service SubClassOf :hasOutputParameter only (:Property or :State) + +This seems to be an inconsistent use of "saref:Property " in SAREF and makes the sub-classing difficult. + + + +Another problem was found in the oneM2M base ontology (BO) itself: +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. +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): + +- A " BO:Variable" " BO:describes" an " BO:Aspect" +- A " BO:Variable" " BO:hasMetaData" " BO:MetaData" + +"Aspect" and "MetaData" are also related via: + +- An " BO:Aspect" " BO:hasMetaData" " BO:MetaData" + + 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. + + 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. + + 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. +This remains to be solved in the future. + +The following tables give an overview on sub-classing and sub-Properties relationships contained in BO_SAREF.owl: + + +**Classes:** + + +|SAREF Class|Is subClassOf Base Ontology Class|Comment| +|-------|-----------|--------------------| +saref:BuildingObject|BO:ThingProperty|subClass relationship implemented in BO_SAREF +saref:BuildingSpace|BO:Thing|subClass relationship implemented in BO_SAREF +saref:Command|BO:Command|subClass relationship implemented in BO_SAREF +saref:Commodity|BO:ThingProperty|subClass relationship implemented in BO_SAREF +saref:Device|BO:Device|subClass relationship implemented in BO_SAREF +saref:DeviceCategory|BO:ThingProperty|subClass relationship implemented in BO_SAREF +saref:Function|BO:Function|subClass relationship implemented in BO_SAREF +saref:FunctionCategory|BO:Aspect|subClass relationship implemented in BO_SAREF +saref:Profile|BO:Thing|subClass relationship implemented in BO_SAREF +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) +saref:Service|BO:Service|subClass relationship implemented in BO_SAREF +saref:State|BO:Variable|subClass relationship implemented in BO_SAREF +saref:Task|BO:ThingProperty|subClass relationship implemented in BO_SAREF +saref:UnitOfMeasure|BO:MetaData|subClass relationship implemented in BO_SAREF + + + + +**Object Properties:** + +|SAREF Object Property|Is subPropertyOf Base Ontology Object Property|Comment| +|---|---|---| +saref:hasCategory|BO:hasThingProperty|subProperty relationship implemented in BO_SAREF +saref:accomplishes|BO:hasThingProperty|subProperty relationship implemented in BO_SAREF +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! +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 +saref:contains|BO:hasThingRelation|subProperty relationship implemented in BO_SAREF +saref:hasCommand|BO:hasCommand|subProperty relationship implemented in BO_SAREF +saref:hasConsumption|BO:hasThingProperty|subProperty relationship implemented in BO_SAREF +saref:hasFunction|BO:hasFunction|subProperty relationship implemented in BO_SAREF +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! +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 +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 +saref:hasOutputParameter|BO:hasOutputDataPoint|subProperty relationship implemented in BO_SAREF See: saref:hasInputParameter +saref:hasPrice|BO:hasThingProperty|subProperty relationship implemented in BO_SAREF +saref:hasProduction|BO:hasThingProperty|subProperty relationship implemented in BO_SAREF +saref:hasProfile|BO:hasThingRelation|subProperty relationship implemented in BO_SAREF +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 +saref:hasSensingTime| |No subProperty relationship implemented in BO_SAREF Because mapping of saref:Property is unclear +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) +saref:hasThreshold| |No subProperty relationship implemented in BO_SAREF +saref:hasTime|BO:hasThingProperty|subProperty relationship implemented in BO_SAREF +saref:hasTypicalConsumption|BO:hasThingProperty|subProperty relationship implemented in BO_SAREF +saref:isAccomplishedBy|Inverse of: BO:hasThingProperty|subProperty relationship implemented in BO_SAREF See: saref:accomplishes +saref:isCategoryOf|Inverse of: BO:hasThingProperty|subProperty relationship implemented in BO_SAREF See: saref:hasCategory +saref:isCommandOf|Inverse of: BO:hasCommand|subProperty relationship implemented in BO_SAREF See: saref:hasCommand +saref:isLocatedIn|BO:hasThingRelation|subProperty relationship implemented in BO_SAREF +saref:isMeasuredIn|BO:describes|subProperty relationship implemented in BO_SAREF +saref:isOfferedBy|Inverse of: BO:hasService|subProperty relationship implemented in BO_SAREF Inverse of: saref:offers See: saref:offers +saref:IsUsedFor|BO:hasThingProperty|subProperty relationship implemented in BO_SAREF +saref:offers|BO:hasService|subProperty relationship implemented in BO_SAREF +saref:represents|Inverse of: BO:exposesFunction|subProperty relationship implemented in BO_SAREF + + + +**Data Properties:** + +|SAREF Data Property|Is subPropertyOf Base Ontology Data Property|Comment| +|---|---|---| +saref:hasDescription|BO:hasThingAnnotation|subProperty relationship implemented in BO_SAREF +saref:hasManufacturer|BO:hasThingAnnotation|subProperty relationship implemented in BO_SAREF +saref:hasMeterReadingType| |No subProperty relationship implemented in BO_SAREF +saref:hasModel|BO:hasThingAnnotation|subProperty relationship implemented in BO_SAREF +saref:hasName| |No subProperty relationship implemented in BO_SAREF +saref:hasSensorType| |No subProperty relationship implemented in BO_SAREF +saref:hasSpaceType|BO:hasThingAnnotation|subProperty relationship implemented in BO_SAREF +saref:hasTask| |No subProperty relationship implemented in BO_SAREF +saref:hasValue| |No subProperty relationship implemented in BO_SAREF +saref:isFlexible| |No subProperty relationship implemented in BO_SAREF +saref:isInterruptionPossible| |No subProperty relationship implemented in BO_SAREF +