PREFIX rdf: <http://www.w3.org/1999/02/22-rdf-syntax-ns#>
PREFIX rdfs: <http://www.w3.org/2000/01/rdf-schema#>
PREFIX s4grid: <https://saref.etsi.org/saref4grid/>
PREFIX xsd: <http://www.w3.org/2001/XMLSchema#>

s4grid:EntryDescriptor a rdfs:Class ;
  rdfs:label "Entry Descriptor"@en ;
  rdfs:comment "In the case of a get service of a profile generic class a selective access can be specified. This indicates the range of entries to be retrieved from the profile generic class"@en ;
  rdfs:subClassOf s4grid:SelectiveAccess .

s4grid:obtainToEntry a rdf:Property ;
  rdfs:label "obtain to entry"@en ;
  rdfs:comment "It defines the last entry to be retrieved from a profile generic"@en ;
  rdfs:domain s4grid:EntryDescriptor ;
  rdfs:range xsd:unsignedLong .

s4grid:obtainFromEntry a rdf:Property ;
  rdfs:label "obtain from entry"@en ;
  rdfs:comment "It defines the first entry to be retrieved from a profile generic"@en ;
  rdfs:domain s4grid:EntryDescriptor ;
  rdfs:range xsd:unsignedLong .

<https://saref.etsi.org/core/Function> a rdfs:Class ;
  rdfs:label "Function"@en .

s4grid:CosemOperationInput a rdfs:Class ;
  rdfs:label "Cosem Operation Input"@en ;
  rdfs:comment "This class specifies the instance at which a service (get, set or action) is going to be executed by indicating the OBIS code"@en ;
  rdfs:subClassOf <http://www.owl-ontologies.com/oneM2M#OperationInput> .

s4grid:obtainInputFromObis a rdf:Property ;
  rdfs:label "obtain input from obis"@en ;
  rdfs:comment "It identifies the instance (COSEM object) of a class from which the data is going to be obtained. The value of this property conforms to OBIS"@en ;
  rdfs:domain s4grid:CosemOperationInput ;
  rdfs:range xsd:string .

s4grid:DaySchedule a rdfs:Class ;
  rdfs:label "Day Scheduled"@en ;
  rdfs:comment "Scheduled actions to be executed at a given time for a day profile"@en .

s4grid:executesScript a rdf:Property ;
  rdfs:label "executes script"@en ;
  rdfs:comment "[COSEM] Defines the script to be executed"@en ;
  rdfs:range s4grid:Script .

s4grid:hasStartTime a rdf:Property ;
  rdfs:label "has start time"@en ;
  rdfs:comment "[COSEM] Time when the script is going to be executed"@en ;
  rdfs:domain s4grid:DaySchedule ;
  rdfs:range xsd:time .

<http://www.owl-ontologies.com/oneM2M#Device> a rdfs:Class ;
  rdfs:label "Device"@en .

s4grid:Clock a rdfs:Class ;
  rdfs:label "Clock"@en ;
  rdfs:comment "[COSEM] This class models the device clock, managing all information related to date and time including deviations of the local time to a generalized time reference (UTC) due to time zones and daylight-saving time schemes"@en .

s4grid:hasClockBase a rdf:Property ;
  rdfs:label "has clock base"@en ;
  rdfs:comment "[COSEM] Defines where the basic timing information comes from: (0) not defined, (1) internal crystal, (2) mains frequency 50 Hz, (3) mains frequency 60 Hz, (4) GPS (global positioning system), (5) radio controlled"@en ;
  rdfs:domain s4grid:Clock ;
  rdfs:range xsd:int .

s4grid:hasDaylightSavingsEnabled a rdf:Property ;
  rdfs:label "has daylight savings enabled"@en ;
  rdfs:comment "[COSEM] Enable and disable the daylight savings time feature"@en ;
  rdfs:domain s4grid:Clock ;
  rdfs:range xsd:boolean .

s4grid:hasDaylightSavingsEnd a rdf:Property ;
  rdfs:label "has daylight savings end"@en ;
  rdfs:comment "[COSEM] Defines the local switch date and time when the local time ends to deviate from the local normal time"@en ;
  rdfs:domain s4grid:Clock ;
  rdfs:range xsd:dateTime .

s4grid:hasStatus a rdf:Property ;
  rdfs:label "has status"@en ;
  rdfs:comment "[COSEM] Status of the clock"@en ;
  rdfs:domain s4grid:Clock ;
  rdfs:range xsd:int .

s4grid:hasTime a rdf:Property ;
  rdfs:label "has time"@en ;
  rdfs:comment "[COSEM] Meter’s local date and time"@en ;
  rdfs:domain s4grid:Clock ;
  rdfs:range xsd:dateTime .

s4grid:hasDaylightSavingsBegin a rdf:Property ;
  rdfs:label "has daylight savings begin"@en ;
  rdfs:comment "[COSEM] Defines the local switch date and time when the local time starts to deviate from the normal time"@en ;
  rdfs:domain s4grid:Clock ;
  rdfs:range xsd:dateTime .

s4grid:hasTimeZone a rdf:Property ;
  rdfs:label "has time zone"@en ;
  rdfs:comment "[COSEM] The deviation of local, normal time to UTC in minutes. The value depends on the geographical location of the meter"@en ;
  rdfs:domain s4grid:Clock ;
  rdfs:range xsd:long .

s4grid:hasDaylightSavingsDeviation a rdf:Property ;
  rdfs:label "has daylight savings deviation"@en ;
  rdfs:comment "[COSEM] Contains the number of minutes by which the deviation in generalized time shall be corrected at daylight savings begin"@en ;
  rdfs:domain s4grid:Clock ;
  rdfs:range xsd:integer .

s4grid:RangeDescriptor a rdfs:Class ;
  rdfs:label "Range Descriptor"@en ;
  rdfs:comment "In the case of a get service of a profile generic class a selective access can be specified. This indicates the range of values to be retrieved from the profile generic class"@en ;
  rdfs:subClassOf s4grid:SelectiveAccess .

s4grid:obtainToValue a rdf:Property ;
  rdfs:label "obtain to value"@en ;
  rdfs:comment "It restricts the range of entries to be retrieved from a profile generic defining the newest or largest entry to retrieve"@en ;
  rdfs:domain s4grid:RangeDescriptor ;
  rdfs:range <https://w3id.org/linkml/Any> .

s4grid:obtainFromValue a rdf:Property ;
  rdfs:label "obtain from value"@en ;
  rdfs:comment "It restricts the range of entries to be retrieved from a profile generic defining the oldest or smallest entry to retrieve"@en ;
  rdfs:domain s4grid:RangeDescriptor ;
  rdfs:range <https://w3id.org/linkml/Any> .

s4grid:GetOperationDataOutput a rdfs:Class ;
  rdfs:label "Get Operation Data Output"@en ;
  rdfs:comment "This class specifies that the output of a get operation is going to be a datatype"@en ;
  rdfs:subClassOf s4grid:GetOperationOutput .

s4grid:hasOutputDataType a rdf:Property ;
  rdfs:label "has output data type"@en ;
  rdfs:comment "It identifies the type of the attribute of an instance (COSEM object) of a class from which the data is going to be obtained. The value of this property conforms to the range of a datatype property of SAREF4GRID"@en ;
  rdfs:domain s4grid:GetOperationDataOutput ;
  rdfs:range xsd:string .

s4grid:NetworkInterface a rdfs:Class ;
  rdfs:label "Network Interface"@en ;
  rdfs:comment "[COSEM] This class holds the MAC address of the physical device (or, more generally, of a device or software). There shall be an instance of this class for each network interface of the physical device"@en .

s4grid:hasMACAddress a rdf:Property ;
  rdfs:label "has m a c address"@en ;
  rdfs:comment "[COSEM] Holds the MAC address"@en ;
  rdfs:domain s4grid:NetworkInterface ;
  rdfs:range xsd:string .

s4grid:SeasonProfile a rdfs:Class ;
  rdfs:label "Season Profile"@en ;
  rdfs:comment "[COSEM] This class represents a season which is defined by its starting date and a specific day profile to be executed"@en .

s4grid:hasDayProfile a rdf:Property ;
  rdfs:label "has day profile"@en ;
  rdfs:comment "[COSEM] Day profile for every day of the week of a season"@en ;
  rdfs:domain s4grid:SeasonProfile ;
  rdfs:range s4grid:DayProfile .

s4grid:hasSeasonProfileName a rdf:Property ;
  rdfs:label "has season profile name"@en ;
  rdfs:comment "[COSEM] User defined name identifying the current season profile"@en ;
  rdfs:domain s4grid:SeasonProfile ;
  rdfs:range xsd:string .

s4grid:hasSaturdayProfile a rdf:Property ;
  rdfs:label "has saturday profile"@en ;
  rdfs:comment "It defines the day profile valid each Saturday of the season"@en ;
  rdfs:domain s4grid:SeasonProfile ;
  rdfs:range s4grid:DayProfile ;
  rdfs:subPropertyOf s4grid:hasDayProfile .

s4grid:hasWednesdayProfile a rdf:Property ;
  rdfs:label "has wednesday profile"@en ;
  rdfs:comment "It defines the day profile valid each Wednesday of the season"@en ;
  rdfs:domain s4grid:SeasonProfile ;
  rdfs:range s4grid:DayProfile ;
  rdfs:subPropertyOf s4grid:hasDayProfile .

s4grid:hasThursdayProfile a rdf:Property ;
  rdfs:label "has thursday profile"@en ;
  rdfs:comment "It defines the day profile valid each Thursday of the season"@en ;
  rdfs:domain s4grid:SeasonProfile ;
  rdfs:range s4grid:DayProfile ;
  rdfs:subPropertyOf s4grid:hasDayProfile .

s4grid:hasSeasonStart a rdf:Property ;
  rdfs:label "has season start"@en ;
  rdfs:comment "[COSEM] Starting time of the season profile. The current season profile is terminated by the starting time of the next season"@en ;
  rdfs:domain s4grid:ActivityCalendar ;
  rdfs:range xsd:dateTime .

s4grid:hasFridayProfile a rdf:Property ;
  rdfs:label "has friday profile"@en ;
  rdfs:comment "It defines the day profile valid each Friday of the season"@en ;
  rdfs:domain s4grid:SeasonProfile ;
  rdfs:range s4grid:DayProfile ;
  rdfs:subPropertyOf s4grid:hasDayProfile .

s4grid:hasMondayProfile a rdf:Property ;
  rdfs:label "has monday profile"@en ;
  rdfs:comment "It defines the day profile valid each Monday of the season"@en ;
  rdfs:domain s4grid:SeasonProfile ;
  rdfs:range s4grid:DayProfile ;
  rdfs:subPropertyOf s4grid:hasDayProfile .

s4grid:hasTuesdayProfile a rdf:Property ;
  rdfs:label "has tuesday profile"@en ;
  rdfs:comment "It defines the day profile valid each Tuesday of the season"@en ;
  rdfs:domain s4grid:SeasonProfile ;
  rdfs:range s4grid:DayProfile ;
  rdfs:subPropertyOf s4grid:hasDayProfile .

s4grid:hasSundayProfile a rdf:Property ;
  rdfs:label "has sunday profile"@en ;
  rdfs:comment "It defines the day profile valid each Sunday of the season"@en ;
  rdfs:domain s4grid:SeasonProfile ;
  rdfs:range s4grid:DayProfile ;
  rdfs:subPropertyOf s4grid:hasDayProfile .

s4grid:SpecialDayProfile a rdfs:Class ;
  rdfs:label "Special Day Profile"@en ;
  rdfs:comment "[COSEM] This class allows defining special dates. On such dates, a special switching behaviour overrides the normal one"@en ;
  rdfs:subClassOf s4grid:DayProfile .

s4grid:hasSpecialDayDate a rdf:Property ;
  rdfs:label "has special day date"@en ;
  rdfs:comment "Dates at which a normal day is considered a special date (i.e., Christmas)"@en ;
  rdfs:domain s4grid:SpecialDayProfile ;
  rdfs:range xsd:date .

s4grid:hasDaySchedule a rdf:Property ;
  rdfs:label "has day schedule"@en ;
  rdfs:comment "The day schedule of a day profile"@en ;
  rdfs:domain s4grid:DayProfile ;
  rdfs:range s4grid:DaySchedule .

s4grid:ComplexActionOperationInput a rdfs:Class ;
  rdfs:label "Complex Action Operation Input"@en ;
  rdfs:comment "This class indicates that the parameter needed by the action to operate is complex (i.e., structure)"@en ;
  rdfs:subClassOf s4grid:CosemOperationInput .

s4grid:RegularDayProfile a rdfs:Class ;
  rdfs:label "Regular Day Profile"@en ;
  rdfs:comment "This class represents normal dates"@en ;
  rdfs:subClassOf s4grid:DayProfile .

<http://www.owl-ontologies.com/oneM2M#OperationOutput> a rdfs:Class ;
  rdfs:label "Operation Output"@en .

s4grid:ActionOperation a rdfs:Class ;
  rdfs:label "Action Operation"@en ;
  rdfs:comment "This class is the means of an action service to communicate in a procedure-type manner over the network (i.e. transmit data to/from other devices). It is the –machine interpretable- exposure of a –human understandable- Command to a network"@en ;
  rdfs:subClassOf <http://www.owl-ontologies.com/oneM2M#Operation> .

<https://saref.etsi.org/core/Device> a rdfs:Class ;
  rdfs:label "Device"@en .

s4grid:GetOperationOutput a rdfs:Class ;
  rdfs:label "Get Operation Output"@en ;
  rdfs:comment "This class specifies the output of a get operation, which can be either a class or a datatype"@en ;
  rdfs:subClassOf <http://www.owl-ontologies.com/oneM2M#OperationOutput> .

s4grid:Firmware a rdfs:Class ;
  rdfs:label "Firmware"@en ;
  rdfs:comment "[COSEM] This class holds identification information related to administration and maintenance of meters. They are not communication parameters but allow the device management"@en .

s4grid:hasVendorId a rdf:Property ;
  rdfs:label "has vendor id"@en ;
  rdfs:comment "[COSEM] Unique vendor identifier assigned by the PRIME Alliance"@en ;
  rdfs:domain s4grid:Firmware ;
  rdfs:range xsd:unsignedShort .

s4grid:hasFirmwareVersion a rdf:Property ;
  rdfs:label "has firmware version"@en ;
  rdfs:comment "[COSEM] Textual description of the firmware version running on the device"@en ;
  rdfs:domain s4grid:Firmware ;
  rdfs:range xsd:string .

s4grid:hasProductId a rdf:Property ;
  rdfs:label "has product id"@en ;
  rdfs:comment "[COSEM] Vendor-assigned unique identifier for the specific product"@en ;
  rdfs:domain s4grid:Firmware ;
  rdfs:range xsd:unsignedShort .

s4grid:PropertyValue a rdfs:Class ;
  rdfs:label "Property Value"@en ;
  rdfs:comment "A value (which may have a unit of measurement) that is related to a property which is not observable by the meter (i.e., is not a measurement)"@en .

s4grid:hasUnit a rdf:Property ;
  rdfs:label "has unit"@en ;
  rdfs:comment "A relationship identifying the unit of measure used for a certain property value"@en ;
  rdfs:domain s4grid:PropertyValue ;
  rdfs:range <https://saref.etsi.org/core/UnitOfMeasure> .

s4grid:hasProperty a rdf:Property ;
  rdfs:label "has property"@en ;
  rdfs:comment "A relationship between a property value and the property it relates to"@en ;
  rdfs:domain s4grid:PropertyValue ;
  rdfs:range <https://saref.etsi.org/core/Property> .

s4grid:hasValue a rdf:Property ;
  rdfs:label "has value"@en ;
  rdfs:comment "A relationship defining the value of a certain property which is not observable by the meter"@en ;
  rdfs:domain s4grid:PropertyValue ;
  rdfs:range <https://w3id.org/linkml/Any> .

s4grid:DayProfile a rdfs:Class ;
  rdfs:label "Day Profile"@en ;
  rdfs:comment "[COSEM] This class represents a list of scheduled actions which are defined by a script to be executed and the corresponding activation time"@en .

s4grid:BreakerState a rdfs:Class ;
  rdfs:label "Breaker State"@en ;
  rdfs:comment "[COSEM] This class manages an internal or external disconnect unit of the meter (e.g. electricity breaker, gas valve) in order to connect or disconnect – partly or entirely – the premises of the consumer to / from the supply"@en ;
  rdfs:subClassOf <https://saref.etsi.org/core/State> .

s4grid:hasControlMode a rdf:Property ;
  rdfs:label "has control mode"@en ;
  rdfs:comment "[COSEM] Configures the behaviour of the disconnect control object for all triggers, i.e. the possible state transitions"@en ;
  rdfs:domain s4grid:BreakerState ;
  rdfs:range xsd:int .

s4grid:hasControlState a rdf:Property ;
  rdfs:label "has control state"@en ;
  rdfs:comment "Shows the internal state of the disconnect control object: (0) Disconnected, (1) Connected, (2) Ready for reconnection"@en ;
  rdfs:domain s4grid:BreakerState ;
  rdfs:range xsd:int .

s4grid:hasOutputState a rdf:Property ;
  rdfs:label "has output state"@en ;
  rdfs:comment "[COSEM] Shows the actual physical state of the device connection to the supply: (True) Connected, (False) Disconnected"@en ;
  rdfs:domain s4grid:BreakerState ;
  rdfs:range xsd:boolean .

<https://saref.etsi.org/core/Meter> a rdfs:Class ;
  rdfs:label "Meter"@en ;
  rdfs:subClassOf <https://saref.etsi.org/core/Sensor> .

<http://www.owl-ontologies.com/oneM2M#OperationInput> a rdfs:Class ;
  rdfs:label "Operation Input"@en .

s4grid:ActivityCalendar a rdfs:Class ;
  rdfs:label "Activity Calendar"@en ;
  rdfs:comment "[COSEM] This class allows handling various tariff structures in the meter. This class provides a list of scheduled actions, following the classical way of calendar-based schedules by defining seasons, weeks, etc"@en .

s4grid:hasCalendarNameActive a rdf:Property ;
  rdfs:label "has calendar name active"@en ;
  rdfs:comment "[COSEM] Used defined name identifying the passive calendar. Typically contains an identifier of the active calendar (currently active), which is descriptive to the set of scripts activated by the object"@en ;
  rdfs:domain s4grid:ActivityCalendar ;
  rdfs:range xsd:string .

s4grid:hasCalendarNamePassive a rdf:Property ;
  rdfs:label "has calendar name passive"@en ;
  rdfs:comment "[COSEM] User defined name identifying the passive calendar. Typically contains an identifier of the passive calendar (will be activated), which is descriptive to the set of scripts activated by the object"@en ;
  rdfs:domain s4grid:ActivityCalendar ;
  rdfs:range xsd:string .

s4grid:hasPassiveSeasonProfile a rdf:Property ;
  rdfs:label "has passive season profile"@en ;
  rdfs:comment "[COSEM] Contains a list of passive season profiles. These season profiles form a passive calendar"@en ;
  rdfs:domain s4grid:ActivityCalendar ;
  rdfs:range s4grid:SeasonProfile .

s4grid:hasActiveSeasonProfile a rdf:Property ;
  rdfs:label "has active season profile"@en ;
  rdfs:comment "[COSEM] Contains a list of active season profiles. These season profiles form an active calendar"@en ;
  rdfs:domain s4grid:ActivityCalendar ;
  rdfs:range s4grid:SeasonProfile .

s4grid:hasActivatePassiveCalendarTime a rdf:Property ;
  rdfs:label "has activate passive calendar time"@en ;
  rdfs:comment "[COSEM] Defines the time when the passive calendar will be activated"@en ;
  rdfs:domain s4grid:ActivityCalendar ;
  rdfs:range xsd:dateTime .

<http://www.owl-ontologies.com/oneM2M#Service> a rdfs:Class ;
  rdfs:label "Service"@en .

<http://www.owl-ontologies.com/oneM2M#Operation> a rdfs:Class ;
  rdfs:label "Operation"@en .

s4grid:ProfileGeneric a rdfs:Class ;
  rdfs:label "Profile Generic"@en ;
  rdfs:comment "[COSEM] This class provides a generalized concept allowing to store, sort and access data groups or data series, called capture objects. Capture objects are appropriate attributes or elements of (an) attribute(s) of COSEM objects. The capture objects are collected periodically or occasionally"@en .

s4grid:relatedPropertyValue a rdf:Property ;
  rdfs:label "related property value"@en ;
  rdfs:comment "The property value that is captured by a profile generic"@en ;
  rdfs:domain s4grid:ProfileGeneric ;
  rdfs:range s4grid:PropertyValue .

s4grid:relatedMeasurement a rdf:Property ;
  rdfs:label "related measurement"@en ;
  rdfs:comment "The measurement that is captured by a profile generic"@en ;
  rdfs:domain s4grid:ProfileGeneric ;
  rdfs:range <https://saref.etsi.org/core/Measurement> .

s4grid:relatedClock a rdf:Property ;
  rdfs:label "related clock"@en ;
  rdfs:comment "The clock that is captured by a profile generic"@en ;
  rdfs:domain s4grid:ProfileGeneric ;
  rdfs:range s4grid:Clock .

s4grid:hasCapturePeriod a rdf:Property ;
  rdfs:label "has capture period"@en ;
  rdfs:comment "[COSEM] The capturing period of a profile generic in seconds. If its value is 0, then there is not automatic capturing; capturing is triggered externally or through capture events occur asynchronously. If its value is greater than 0, then automatic capturing is assumed"@en ;
  rdfs:domain s4grid:ProfileGeneric ;
  rdfs:range xsd:int .

s4grid:SetOperation a rdfs:Class ;
  rdfs:label "Set Operation"@en ;
  rdfs:comment "This class is the means of a set service to communicate in a procedure-type manner over the network (i.e. transmit data to/from other devices). It is the –machine interpretable- exposure of a –human understandable- Command to a network"@en ;
  rdfs:subClassOf <http://www.owl-ontologies.com/oneM2M#Operation> .

<http://www.owl-ontologies.com/oneM2M#hasInput> a rdf:Property ;
  rdfs:label "has input"@en ;
  rdfs:range <https://w3id.org/linkml/Any> .

s4grid:SetOperationDataInput a rdfs:Class ;
  rdfs:label "Set Operation Data Input"@en ;
  rdfs:comment "This class specifies that just the range of a datatype property of the instance is going to be modified"@en ;
  rdfs:subClassOf s4grid:CosemOperationInput .

s4grid:hasInputDataType a rdf:Property ;
  rdfs:label "has input data type"@en ;
  rdfs:comment "It identifies the type of the attribute of an instance (COSEM object) of a class from which the data is going to be obtained. The value of this property conforms to the range of a datatype property of SAREF4GRID"@en ;
  rdfs:domain s4grid:SetOperationDataInput ;
  rdfs:range xsd:string .

s4grid:obtainInputForProperty a rdf:Property ;
  rdfs:label "obtain input for property"@en ;
  rdfs:comment "It identifies the attribute of an instance (COSEM object) of a class from which the data is going to be obtained. The value of this property conforms to and object property or datatype property of SAREF4GRID"@en ;
  rdfs:range xsd:string .

s4grid:Script a rdfs:Class ;
  rdfs:label "Script"@en ;
  rdfs:comment "[COSEM] Lists of actions to be executed by the meter"@en ;
  rdfs:subClassOf <https://saref.etsi.org/core/Function> .

s4grid:PowerLine a rdfs:Class ;
  rdfs:label "Power Line"@en ;
  rdfs:comment "Interconnected network for electricity delivery from producers to consumers"@en ;
  rdfs:subClassOf <https://saref.etsi.org/core/FeatureOfInterest> .

<http://schema.org/Person> a rdfs:Class .

s4grid:Meter a rdfs:Class ;
  rdfs:label "Meter"@en ;
  rdfs:comment "Metering device that remotely records real electricity consumption. This device allows to control all the information regarding consumption for any time range, automatically and remotely"@en ;
  rdfs:subClassOf <https://saref.etsi.org/core/Meter> .

s4grid:hasNetworkInterface a rdf:Property ;
  rdfs:label "has network interface"@en ;
  rdfs:comment "The network interface of the meter"@en ;
  rdfs:domain s4grid:Meter ;
  rdfs:range s4grid:NetworkInterface .

s4grid:hasFirmware a rdf:Property ;
  rdfs:label "has firmware"@en ;
  rdfs:comment "The firmware of the meter"@en ;
  rdfs:domain s4grid:Meter ;
  rdfs:range s4grid:Firmware .

s4grid:hasActivityCalendar a rdf:Property ;
  rdfs:label "has activity calendar"@en ;
  rdfs:comment "The activity calendar of a meter"@en ;
  rdfs:domain s4grid:Meter ;
  rdfs:range s4grid:ActivityCalendar .

s4grid:hasPropertyValue a rdf:Property ;
  rdfs:label "has property value"@en ;
  rdfs:comment "The property value of a meter"@en ;
  rdfs:domain s4grid:Meter ;
  rdfs:range s4grid:PropertyValue .

s4grid:hasSingleScheduledAction a rdf:Property ;
  rdfs:label "has single scheduled action"@en ;
  rdfs:comment "The single scheduled action of a meter"@en ;
  rdfs:domain s4grid:Meter ;
  rdfs:range s4grid:SingleScheduledAction .

s4grid:hasProfileGeneric a rdf:Property ;
  rdfs:label "has profile generic"@en ;
  rdfs:comment "The profile generic of a meter"@en ;
  rdfs:domain s4grid:Meter ;
  rdfs:range s4grid:ProfileGeneric .

s4grid:hasClock a rdf:Property ;
  rdfs:label "has clock"@en ;
  rdfs:comment "The clock of the meter"@en ;
  rdfs:domain s4grid:Meter ;
  rdfs:range s4grid:Clock .

s4grid:hasScriptTable a rdf:Property ;
  rdfs:label "has script table"@en ;
  rdfs:comment "The script table of a meter"@en ;
  rdfs:domain s4grid:Meter ;
  rdfs:range s4grid:ScriptTable .

<https://saref.etsi.org/core/Sensor> a rdfs:Class ;
  rdfs:label "Sensor"@en ;
  rdfs:subClassOf <https://saref.etsi.org/core/Device> .

s4grid:SimpleActionOperationInput a rdfs:Class ;
  rdfs:label "Simple Action Operation Input"@en ;
  rdfs:comment "This class indicates that the parameter needed by the action to operate is simple (i.e., integer, string, etc)"@en ;
  rdfs:subClassOf s4grid:CosemOperationInput .

s4grid:hasActionValue a rdf:Property ;
  rdfs:label "has action value"@en ;
  rdfs:comment "It specifies the input of a method from the instance (COSEM object) of a class. The value of this property conforms to a simple type (not a structure)"@en ;
  rdfs:domain s4grid:SimpleActionOperationInput ;
  rdfs:range <https://w3id.org/linkml/Any> .

s4grid:GetService a rdfs:Class ;
  rdfs:label "Get Service"@en ;
  rdfs:comment "This class is a representation of a get function to a network that makes the function discoverable, registerable, remotely controllable by other devices in the network"@en ;
  rdfs:subClassOf <https://saref.etsi.org/core/Service> .

s4grid:GetOperationPropertyInput a rdfs:Class ;
  rdfs:label "Get Operation Property Input"@en ;
  rdfs:comment "This class specifies the object/datatype property of an instance from which data is going to be retrieved by indicating the name of the object/datatype property"@en ;
  rdfs:subClassOf s4grid:CosemOperationInput .

s4grid:SingleScheduledAction a rdfs:Class ;
  rdfs:label "Single Scheduled Action"@en ;
  rdfs:comment "[COSEM] This class allows modelling the execution of periodic actions within a meter; such actions are not necessarily linked to tariffication"@en .

s4grid:hasExecutionTime a rdf:Property ;
  rdfs:label "has execution time"@en ;
  rdfs:comment "[COSEM] Specifies the time and the date when the script is executed"@en ;
  rdfs:domain s4grid:SingleScheduledAction ;
  rdfs:range xsd:dateTime .

s4grid:SetOperationObjectInput a rdfs:Class ;
  rdfs:label "Set Operation Object Input"@en ;
  rdfs:comment "This class specifies that just the range of an object property of the instance is going to be modified"@en ;
  rdfs:subClassOf s4grid:CosemOperationInput .

s4grid:hasInputObjectType a rdf:Property ;
  rdfs:label "has input object type"@en ;
  rdfs:comment "It identifies the type of the attribute of an instance (COSEM object) of a class from which the data is going to be obtained. The value of this property conforms to the range of an object property of SAREF4GRID"@en ;
  rdfs:range xsd:string .

s4grid:PresetAdjustingTime a rdfs:Class ;
  rdfs:label "Preset Adjusting Time"@en ;
  rdfs:comment "This class represents the parameters that are needed by a clock to modify its time"@en ;
  rdfs:subClassOf s4grid:ComplexActionOperationInput .

s4grid:hasValidityIntervalStart a rdf:Property ;
  rdfs:label "has validity interval start"@en ;
  rdfs:comment "It defines the start of a validity interval within which the new time can be activated"@en ;
  rdfs:domain s4grid:PresetAdjustingTime ;
  rdfs:range xsd:dateTime .

s4grid:hasPresetTime a rdf:Property ;
  rdfs:label "has preset time"@en ;
  rdfs:comment "It pre-sets the clock time to a new value"@en ;
  rdfs:domain s4grid:PresetAdjustingTime ;
  rdfs:range xsd:dateTime .

s4grid:hasValidityIntervalEnd a rdf:Property ;
  rdfs:label "has validity interval end"@en ;
  rdfs:comment "It defines the end of a validity interval within which the new time can be activated"@en ;
  rdfs:domain s4grid:PresetAdjustingTime ;
  rdfs:range xsd:dateTime .

s4grid:ActionService a rdfs:Class ;
  rdfs:label "Action Service"@en ;
  rdfs:comment "This class is a representation of an action function to a network that makes the function discoverable, registerable, remotely controllable by other devices in the network. Actions can be performed over classes that are characterised by an OBIS code"@en ;
  rdfs:subClassOf <https://saref.etsi.org/core/Service> .

s4grid:SetOperationObisInput a rdfs:Class ;
  rdfs:label "Set Operation Obis Input"@en ;
  rdfs:comment "This class specifies that the whole instance is going to be modified"@en ;
  rdfs:subClassOf s4grid:CosemOperationInput .

<https://saref.etsi.org/core/Measurement> a rdfs:Class ;
  rdfs:label "Measurement"@en .

s4grid:SelectiveAccess a rdfs:Class ;
  rdfs:label "Selective Access"@en ;
  rdfs:comment "The get operations property-related services typically reference the entire property. However, in the case of certain properties, selective access to only part of the property may be provided"@en ;
  rdfs:subClassOf <http://www.owl-ontologies.com/oneM2M#OperationInput> .

<https://saref.etsi.org/core/State> a rdfs:Class ;
  rdfs:label "State"@en .

<http://schema.org/Organization> a rdfs:Class .

s4grid:GetOperation a rdfs:Class ;
  rdfs:label "Get Operation"@en ;
  rdfs:comment "This class is the means of a get service to communicate in a procedure-type manner over the network (i.e. transmit data to/from other devices). It is the –machine interpretable- exposure of a –human understandable- Command to a network"@en ;
  rdfs:subClassOf <http://www.owl-ontologies.com/oneM2M#Operation> .

s4grid:hasSelectiveAccess a rdf:Property ;
  rdfs:label "has selective access"@en ;
  rdfs:comment "The selective access of a profile generic get service"@en ;
  rdfs:domain s4grid:GetOperation ;
  rdfs:range s4grid:SelectiveAccess .

<http://www.owl-ontologies.com/oneM2M#hasOutput> a rdf:Property ;
  rdfs:label "has output"@en ;
  rdfs:range <https://w3id.org/linkml/Any> .

s4grid:SpecialDayEntry a rdfs:Class ;
  rdfs:label "Special Day Entry"@en ;
  rdfs:comment "This class represents the parameters that are needed by an activity calendar for adding a new special day"@en ;
  rdfs:subClassOf s4grid:ComplexActionOperationInput .

s4grid:hasSpecialDate a rdf:Property ;
  rdfs:label "has special date"@en ;
  rdfs:comment "It defines the date at which a normal day is considered a special date"@en ;
  rdfs:domain s4grid:SpecialDayEntry ;
  rdfs:range xsd:date .

s4grid:hasDayId a rdf:Property ;
  rdfs:label "has day id"@en ;
  rdfs:comment "It defines the unique identifier of a day"@en ;
  rdfs:domain s4grid:SpecialDayEntry ;
  rdfs:range xsd:int .

s4grid:hasIndex a rdf:Property ;
  rdfs:label "has index"@en ;
  rdfs:comment "It defines the index of the special day"@en ;
  rdfs:domain s4grid:SpecialDayEntry ;
  rdfs:range xsd:unsignedShort .

s4grid:GetOperationObjectOutput a rdfs:Class ;
  rdfs:label "Get Operation Object Output"@en ;
  rdfs:comment "This class specifies that the output of a get operation is going to be a class"@en ;
  rdfs:subClassOf s4grid:GetOperationOutput .

s4grid:hasOutputObjectType a rdf:Property ;
  rdfs:label "has output object type"@en ;
  rdfs:comment "It identifies the type of the attribute of an instance (COSEM object) of a class from which the data is going to be obtained. The value of this property conforms to the range of an object property of SAREF4GRID"@en ;
  rdfs:domain s4grid:GetOperationObjectOutput ;
  rdfs:range xsd:string .

<https://saref.etsi.org/core/UnitOfMeasure> a rdfs:Class ;
  rdfs:label "Unit Of Measure"@en .

s4grid:ScriptTable a rdfs:Class ;
  rdfs:label "Script Table"@en ;
  rdfs:comment "This class allows modelling the triggering of a series of actions by executing scripts"@en .

s4grid:storesScript a rdf:Property ;
  rdfs:label "stores script"@en ;
  rdfs:comment "[COSEM] Specifies the different scripts which are stored in a script table"@en ;
  rdfs:domain s4grid:ScriptTable ;
  rdfs:range s4grid:Script .

<https://saref.etsi.org/core/Service> a rdfs:Class ;
  rdfs:label "Service"@en .

<https://w3id.org/linkml/Any> a rdfs:Class ;
  rdfs:comment "An unconstrained type or object"@en .

<https://saref.etsi.org/core/Property> a rdfs:Class ;
  rdfs:label "Property"@en .

<https://saref.etsi.org/core/FeatureOfInterest> a rdfs:Class ;
  rdfs:label "Feature Of Interest"@en .

s4grid:SetService a rdfs:Class ;
  rdfs:label "Set Service"@en ;
  rdfs:comment "This class is a representation of a set function to a network that makes the function discoverable, registerable, remotely controllable by other devices in the network"@en ;
  rdfs:subClassOf <https://saref.etsi.org/core/Service> .

<http://schema.org/affiliation> a rdf:Property ;
  rdfs:range <https://w3id.org/linkml/Any> .

<http://schema.org/familyName> a rdf:Property ;
  rdfs:range <https://w3id.org/linkml/Any> .

<http://schema.org/givenName> a rdf:Property ;
  rdfs:range <https://w3id.org/linkml/Any> .

<http://schema.org/name> a rdf:Property ;
  rdfs:range <https://w3id.org/linkml/Any> .

<http://www.owl-ontologies.com/oneM2M#hasOperation> a rdf:Property ;
  rdfs:label "has operation"@en ;
  rdfs:range <https://w3id.org/linkml/Any> .

<http://www.owl-ontologies.com/oneM2M#hasService> a rdf:Property ;
  rdfs:label "has service"@en ;
  rdfs:range <https://w3id.org/linkml/Any> .

<https://saref.etsi.org/core/controlsProperty> a rdf:Property ;
  rdfs:label "control property"@en ;
  rdfs:range <https://w3id.org/linkml/Any> .

<https://saref.etsi.org/core/hasFunction> a rdf:Property ;
  rdfs:label "has function"@en ;
  rdfs:range <https://w3id.org/linkml/Any> .

<https://saref.etsi.org/core/hasMeasurement> a rdf:Property ;
  rdfs:label "has measurement"@en ;
  rdfs:range <https://w3id.org/linkml/Any> .

<https://saref.etsi.org/core/hasProperty> a rdf:Property ;
  rdfs:label "has property"@en ;
  rdfs:range <https://w3id.org/linkml/Any> .

<https://saref.etsi.org/core/hasState> a rdf:Property ;
  rdfs:label "has state"@en ;
  rdfs:range <https://w3id.org/linkml/Any> .

<https://saref.etsi.org/core/hasTimestamp> a rdf:Property ;
  rdfs:label "has timestamp"@en ;
  rdfs:range xsd:dateTime .

<https://saref.etsi.org/core/hasValue> a rdf:Property ;
  rdfs:label "has value"@en ;
  rdfs:range <https://w3id.org/linkml/Any> .

<https://saref.etsi.org/core/isControlledByDevice> a rdf:Property ;
  rdfs:label "is controlled by device"@en ;
  rdfs:range <https://w3id.org/linkml/Any> .

<https://saref.etsi.org/core/isMeasuredByDevice> a rdf:Property ;
  rdfs:label "is measured by device"@en ;
  rdfs:range <https://w3id.org/linkml/Any> .

<https://saref.etsi.org/core/isMeasuredIn> a rdf:Property ;
  rdfs:label "is measured in"@en ;
  rdfs:range <https://w3id.org/linkml/Any> .

<https://saref.etsi.org/core/isMeasurementOf> a rdf:Property ;
  rdfs:label "is measurement of"@en ;
  rdfs:range <https://w3id.org/linkml/Any> .

<https://saref.etsi.org/core/isOfferedBy> a rdf:Property ;
  rdfs:label "is offered by"@en ;
  rdfs:range <https://w3id.org/linkml/Any> .

<https://saref.etsi.org/core/isPropertyOf> a rdf:Property ;
  rdfs:label "is property of"@en ;
  rdfs:range <https://w3id.org/linkml/Any> .

<https://saref.etsi.org/core/makesMeasurement> a rdf:Property ;
  rdfs:label "makes measurement"@en ;
  rdfs:range <https://w3id.org/linkml/Any> .

<https://saref.etsi.org/core/measurementMadeBy> a rdf:Property ;
  rdfs:label "measurement made by"@en ;
  rdfs:range <https://w3id.org/linkml/Any> .

<https://saref.etsi.org/core/measuresProperty> a rdf:Property ;
  rdfs:label "measures property"@en ;
  rdfs:range <https://w3id.org/linkml/Any> .

<https://saref.etsi.org/core/offers> a rdf:Property ;
  rdfs:label "offers"@en ;
  rdfs:range <https://w3id.org/linkml/Any> .

<https://saref.etsi.org/core/relatesToMeasurement> a rdf:Property ;
  rdfs:label "relates to measurement"@en ;
  rdfs:range <https://w3id.org/linkml/Any> .

<https://saref.etsi.org/core/relatesToProperty> a rdf:Property ;
  rdfs:label "relates to property"@en ;
  rdfs:range <https://w3id.org/linkml/Any> .

<https://saref.etsi.org/core/represents> a rdf:Property ;
  rdfs:label "represents"@en ;
  rdfs:range <https://w3id.org/linkml/Any> .

s4grid:hasObis a rdf:Property ;
  rdfs:label "has obis"@en ;
  rdfs:comment "[COSEM] It identifies the instance (COSEM object) of a class. The value of this property conforms to OBIS. OBject Identification System (OBIS) provides a unique identifier for all data within the metering equipment, including not only measurement values, but also abstract values used for configuration or obtaining information about the behaviour of the metering equipment"@en ;
  rdfs:range xsd:string .

s4grid:hasSpecialDayProfile a rdf:Property ;
  rdfs:label "has special day profile"@en ;
  rdfs:comment "It defines when there is a festivity and therefore a normal day behaves as a special date"@en ;
  rdfs:range xsd:string ;
  rdfs:subPropertyOf s4grid:hasDayProfile .

s4grid:EnergyAndPowerProperty a rdfs:Class ;
  rdfs:label "Energy Power Property"@en ;
  rdfs:comment "Class to group those properties related to the energy and power of power lines"@en ;
  rdfs:subClassOf <https://saref.etsi.org/core/Property> .

s4grid:ApparentPower a s4grid:EnergyAndPowerProperty ;
  rdfs:label "Apparent Power"@en ;
  rdfs:comment "Property of the power line indicating its apparent power"@en .

s4grid:ReactivePower a s4grid:EnergyAndPowerProperty ;
  rdfs:label "Reactive Power"@en ;
  rdfs:comment "Property of the power line indicating its reactive power"@en .

s4grid:DemandRegister a s4grid:EnergyAndPowerProperty ;
  rdfs:label "Demand Register"@en ;
  rdfs:comment "Property of the power line indicating its demand register"@en .

s4grid:ActivePower a s4grid:EnergyAndPowerProperty ;
  rdfs:label "Active Power"@en ;
  rdfs:comment "Property of the power line indicating its active power"@en .

s4grid:ReactiveEnergy a s4grid:EnergyAndPowerProperty ;
  rdfs:label "Reactive Energy"@en ;
  rdfs:comment "Property of the power line indicating its reactive energy"@en .

s4grid:ActiveEnergy a s4grid:EnergyAndPowerProperty ;
  rdfs:label "Active Energy"@en ;
  rdfs:comment "Property of the power line indicating its active energy"@en .

s4grid:Voltage a s4grid:EnergyAndPowerProperty ;
  rdfs:label "Voltage"@en ;
  rdfs:comment "Property of the power line indicating its voltage"@en .

s4grid:PowerFactor a s4grid:EnergyAndPowerProperty ;
  rdfs:label "Power Factor"@en ;
  rdfs:comment "Property of the power line indicating its power factor"@en .

s4grid:Current a s4grid:EnergyAndPowerProperty ;
  rdfs:label "Current"@en ;
  rdfs:comment "Property of the power line indicating its current"@en .

s4grid:MeterProperty a rdfs:Class ;
  rdfs:label "Meter Property"@en ;
  rdfs:comment "Class to group those properties related to electric grid meters"@en ;
  rdfs:subClassOf <https://saref.etsi.org/core/Property> .

s4grid:Network a s4grid:MeterProperty ;
  rdfs:label "Network"@en ;
  rdfs:comment "Property of the meter indicating its network information"@en .

s4grid:ProfileStatus a s4grid:MeterProperty ;
  rdfs:label "Profile Status"@en ;
  rdfs:comment "Property of the meter indicating its profile generic status"@en .

s4grid:PhaseAngle a s4grid:MeterProperty ;
  rdfs:label "Phase Angle"@en ;
  rdfs:comment "Property of the meter indicating its phase angle"@en .

s4grid:PowerQuality a s4grid:MeterProperty ;
  rdfs:label "Power Quality"@en ;
  rdfs:comment "Property of the meter indicating its power quality"@en .

s4grid:Phase a s4grid:MeterProperty ;
  rdfs:label "Phase"@en ;
  rdfs:comment "Property of the meter indicating its phase"@en .

s4grid:PowerLimit a s4grid:MeterProperty ;
  rdfs:label "Power Limit"@en ;
  rdfs:comment "Property of the meter indicating its power limit"@en .

s4grid:VoltageSagNumber a s4grid:MeterProperty ;
  rdfs:label "Voltage Sag Number"@en ;
  rdfs:comment "Property of the meter indicating the number of voltage sags detected"@en .

s4grid:TimeThreshold a s4grid:MeterProperty ;
  rdfs:label "Time Threshold"@en ;
  rdfs:comment "Property of the meter indicating the time outside a threshold"@en .

s4grid:Threshold a s4grid:MeterProperty ;
  rdfs:label "Threshold"@en ;
  rdfs:comment "Property of the meter indicating a threshold limit"@en .

s4grid:TransformerRatio a s4grid:MeterProperty ;
  rdfs:label "Transformer Ratio"@en ;
  rdfs:comment "Property of the meter indicating the transformer turn ratio"@en .

s4grid:Quadrant a s4grid:MeterProperty ;
  rdfs:label "Quadrant"@en ;
  rdfs:comment "Property of the meter indicating its quadrant"@en .

s4grid:VoltageSwellNumber a s4grid:MeterProperty ;
  rdfs:label "Voltage Swell Number"@en ;
  rdfs:comment "Property of the meter indicating the number of voltage swells detected"@en .

s4grid:LongPowerFailuresNumber a s4grid:MeterProperty ;
  rdfs:label "Long Power Failures Number"@en ;
  rdfs:comment "Property of the meter indicating the number of long power failures detected"@en .

s4grid:BillingPeriod a s4grid:MeterProperty ;
  rdfs:label "Billing Period"@en ;
  rdfs:comment "Property of the meter that indicates the period in which a given billing is being applied"@en .

s4grid:Manufacturer a s4grid:MeterProperty ;
  rdfs:label "Manufacturer"@en ;
  rdfs:comment "Property of the meter indicating its manufacturer information"@en .

s4grid:ScreenDisplay a s4grid:MeterProperty ;
  rdfs:label "Screen Display"@en ;
  rdfs:comment "Property of the meter indicating information about its screen"@en .

s4grid:QualityProperty a rdfs:Class ;
  rdfs:label "Quality Property"@en ;
  rdfs:comment "Class to group those properties related to the quality of power lines"@en ;
  rdfs:subClassOf <https://saref.etsi.org/core/Property> .

s4grid:DurationVoltageSwell a s4grid:QualityProperty ;
  rdfs:label "Duration Voltage Swell"@en ;
  rdfs:comment "Property of the power line indicating the duration of the voltage swells detected"@en .

s4grid:DurationLongPowerFailure a s4grid:QualityProperty ;
  rdfs:label "Duration Long Power Failure"@en ;
  rdfs:comment "Property of the power line indicating the duration of the long power failures detected"@en .

s4grid:DurationVoltageSag a s4grid:QualityProperty ;
  rdfs:label "Duration Voltage Sag"@en ;
  rdfs:comment "Property of the power line indicating the duration of the voltage sags detected"@en .
