a metering function may have other commands than the three currently specified
**Affects:** SAREF **Situation:** Some axioms are to restrictive in SAREF: - axiom `SubClassOf( MeteringFunction AllValuesFrom( hasCommand UnionOf ( saref:GetCurrentMeterValueCommand saref:GetMeterDataCommand saref:GetMeterHistoryCommand ) ) )`, which means that if a metering function has a command, then this command is a GetCurrentMeterValueCommand , a GetMeterDataCommand , or a GetMeterHistoryCommand. However, a metering function may have other commands than these three (ex. saref-ext:GetLast10MeterValueCommand ) . If a SAREF user adds such a command, then it would be wrongly classified as one of the three. This may lead to knowledge base inconsistencies. - **Proposal:** change the axiom to - `subClassOf( GetCurrentMeterValueCommand AllValuesFrom( isCommandOf MeteringFunction ) )`, which means: the command GetCurrentMeterValueCommand is a command of the function MeteringFunction - axiom `subClassOf( EventFunction AllValuesFrom( hasCommand NotifyCommand)`. However, a event function may have other commands than the notify command (ex. saref-ext:SetMaxRateCommand saref-ext:SetBurstValueCommand ) . If a SAREF user adds such a command, thaen it would be wrongly classified. This may lead to knowledge base inconsistencies. At least, the NotifyCommand is always a command of the EventFunction function - **Proposal:** change the axiom to - `subClassOf( NotifyCommand AllValuesFrom( isCommandOf EventFunction)`. - `axiom subClassOf( SensingFunction AllValuesFrom( hasCommand GetSensingDataCommand)`. However, a sensing function may have other commands than the get sensing data command. If a SAREF user adds such a command, then it would be wrongly classified. This may lead to knowledge base inconsistencies - **Proposal:** change the axiom to - `subClassOf( GetSensingDataCommand SomeValuesFrom( isCommandOf SensingFunction)` - axiom `subClassOf( OnOffFunction AllValuesFrom( hasCommand UnionOf( saref:OffCommand saref:OnCommand saref:ToggleCommand))`. Same problem as above. - **Proposal:** change the axioms, except for Toggle, which may be a command for other functions, like saref-ext:HotColdFunction. - Axiom `subClassOf( OffCommand AllValuesFrom( isCommandOf OnOffFunction)` - Axiom `subClassOf( OnCommand AllValuesFrom( isCommandOf OnOffFunction)` - Axiom `subClassOf( ToggleCommand AllValuesFrom( isCommandOf OnOffFunction)` - This also applies to: - OpenCloseFunction and the commands OpenCommand and CloseCommand. - StartStopFunctionand and the commands StartCommandand StopCommand. - LevelControlFunction and the commands SetAbsoluteLevel SetRelativeLevelCommand StepDownCommand StepUpCommand. **Proposal:** rewrite the axioms **Status:** agreed during SmartM2M-3rd RG Meeting about 2 NWIs SAREFv3 and SAREF Com Framework V2 2019-05-09
issue