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