# baseURI: http://ontology.tno.nl/cerise/cim-profile

@prefix cim: <http://ontology.tno.nl/cerise/cim-profile#> .
@prefix dc: <http://purl.org/dc/elements/1.1/> .
@prefix dcterms: <http://purl.org/dc/terms/> .
@prefix msg: <http://langdale.com.au/2005/Message#> .
@prefix owl: <http://www.w3.org/2002/07/owl#> .
@prefix rdf: <http://www.w3.org/1999/02/22-rdf-syntax-ns#> .
@prefix rdfs: <http://www.w3.org/2000/01/rdf-schema#> .
@prefix uml: <http://langdale.com.au/2005/UML#> .
@prefix xml: <http://www.w3.org/XML/1998/namespace> .
@prefix xsd: <http://www.w3.org/2001/XMLSchema#> .

uml:Package
  rdf:type owl:Class ;
.
uml:hasStereotype
  rdf:type owl:AnnotationProperty ;
.
<http://ontology.tno.nl/cerise/cim-profile>
  rdf:type owl:Ontology ;
  dcterms:created "15-07-2015"^^xsd:string ;
  dcterms:creator "Roel Stap (roel.stap@alliander.com ), Laura Daniele (laura.daniele@tno.nl)"^^xsd:string ;
  dcterms:description "This ontology is an OWL profile of the IEC Common Information Model for Smart Grids, developed by the Cerise-SG project. This profile extends the cim-smartgrid profile previously created by Maarten Steen (available at http://ns.cerise-project.nl/energy/def/cim-smartgrid) with the classes Register and Channel. This OWL profile was generated from the UML version of the IEC Common Information Model using the CIMTool."^^xsd:string ;
  dcterms:issued "15-07-2015"^^xsd:string ;
  dcterms:publisher <http://www.cerise-project.nl/> ;
  dcterms:title "The cerise cim profile ontology: A CIM Profile for Smart Grids"^^xsd:string ;
  rdfs:comment """Laura Daniele [17-07-2015]: This is a draft version for internal use in the CERISE project. We encountered some issues with the generation this OWL profile with the CIMTool that still need to be solved. One issue is that the mapping of cardinalities in the transformation from UML to OWL is not always correct. For example:
•	the UML association Meter [0..1] was mapped by the CIMTool into the OWL property MeterReading.Meter exactly 1, while we would expect it to be mapped to MeterReading.Meter max 1
•	the UML association Readings [0..*] was mapped by the CIMTool into the OWL property MeterReading.Readings min 1, while while we would expect it to be mapped to MeterReading.Readings min 0
To overcome the issue we are changing manually the incorrect cardinalities in the generated OWL profile, but there are many properties and this requires quite some time and effort, so some cardinalities can still be not compliant with the original UML model. 

Roel Stap[12-06-2015]: For gas metering the class SimpleEndDeviceFunction is defined, specialisation of EndDeviceFunction. Within this class there is a mandatory attribute defined \\\"kind\\\" of type EndDeviceFunctionKind. This last class is an enumeration of different type of metering. This class can be used can be used to distinguish between different tupe of metering, for example electric and gas metering. This means this class is mandatory, for each type of metering the type shall be defined."""^^xsd:string ;
  rdfs:label "A CIM Profile for Smart Grids"^^xsd:string ;
  owl:versionInfo "0.1 (first draft- only for internal use in the CERISE project)"^^xsd:string ;
.
cim:AmiBillingReadyKind
  rdf:type owl:Class ;
  uml:hasStereotype uml:enumeration ;
  rdfs:comment "Lifecycle states of the metering installation at a usage point with respect to readiness for billing via advanced metering infrastructure reads." ;
  rdfs:isDefinedBy cim:Package_Metering ;
  rdfs:label "AmiBillingReadyKind" ;
.
<http://ontology.tno.nl/cerise/cim-profile#AmiBillingReadyKind.amiCapable>
  rdf:type cim:AmiBillingReadyKind ;
  rdf:type owl:NamedIndividual ;
  rdfs:comment "Usage point is equipped with an AMI capable meter that is not yet currently equipped with a communications module." ;
  rdfs:label "amiCapable" ;
.
<http://ontology.tno.nl/cerise/cim-profile#AmiBillingReadyKind.amiDisabled>
  rdf:type cim:AmiBillingReadyKind ;
  rdf:type owl:NamedIndividual ;
  rdfs:comment "Usage point is equipped with an AMI capable meter; however, the AMI functionality has been disabled or is not being used." ;
  rdfs:label "amiDisabled" ;
.
<http://ontology.tno.nl/cerise/cim-profile#AmiBillingReadyKind.billingApproved>
  rdf:type cim:AmiBillingReadyKind ;
  rdf:type owl:NamedIndividual ;
  rdfs:comment "Usage point is equipped with an operating AMI capable meter and accuracy has been certified for billing purposes." ;
  rdfs:label "billingApproved" ;
.
<http://ontology.tno.nl/cerise/cim-profile#AmiBillingReadyKind.enabled>
  rdf:type cim:AmiBillingReadyKind ;
  rdf:type owl:NamedIndividual ;
  rdfs:comment "Usage point is equipped with an AMI capable meter having communications capability." ;
  rdfs:label "enabled" ;
.
<http://ontology.tno.nl/cerise/cim-profile#AmiBillingReadyKind.nonAmi>
  rdf:type cim:AmiBillingReadyKind ;
  rdf:type owl:NamedIndividual ;
  rdfs:comment "Usage point is equipped with a non AMI capable meter." ;
  rdfs:label "nonAmi" ;
.
<http://ontology.tno.nl/cerise/cim-profile#AmiBillingReadyKind.nonMetered>
  rdf:type cim:AmiBillingReadyKind ;
  rdf:type owl:NamedIndividual ;
  rdfs:comment "Usage point is not currently equipped with a meter." ;
  rdfs:label "nonMetered" ;
.
<http://ontology.tno.nl/cerise/cim-profile#AmiBillingReadyKind.operable>
  rdf:type cim:AmiBillingReadyKind ;
  rdf:type owl:NamedIndividual ;
  rdfs:comment "Usage point is equipped with an AMI capable meter that is functioning and communicating with the AMI network." ;
  rdfs:label "operable" ;
.
cim:BaseReading
  rdf:type owl:Class ;
  rdfs:comment """Common representation for reading values. Note that a reading value may have multiple qualities, as produced by various systems ('ReadingQuality.source').
Roel: make Base reading mandatory""" ;
  rdfs:isDefinedBy cim:Package_Metering ;
  rdfs:label "BaseReading" ;
  rdfs:subClassOf cim:IdentifiedObject ;
  rdfs:subClassOf [
      rdf:type owl:Restriction ;
      owl:allValuesFrom cim:DateTimeInterval ;
      owl:onProperty <http://ontology.tno.nl/cerise/cim-profile#BaseReading.timePeriod> ;
    ] ;
  rdfs:subClassOf [
      rdf:type owl:Restriction ;
      owl:allValuesFrom xsd:string ;
      owl:onProperty <http://ontology.tno.nl/cerise/cim-profile#BaseReading.source> ;
    ] ;
  rdfs:subClassOf [
      rdf:type owl:Restriction ;
      owl:allValuesFrom xsd:string ;
      owl:onProperty <http://ontology.tno.nl/cerise/cim-profile#BaseReading.value> ;
    ] ;
  rdfs:subClassOf [
      rdf:type owl:Restriction ;
      owl:cardinality "1"^^xsd:nonNegativeInteger ;
      owl:onProperty <http://ontology.tno.nl/cerise/cim-profile#BaseReading.source> ;
    ] ;
  rdfs:subClassOf [
      rdf:type owl:Restriction ;
      owl:cardinality "1"^^xsd:nonNegativeInteger ;
      owl:onProperty <http://ontology.tno.nl/cerise/cim-profile#BaseReading.timePeriod> ;
    ] ;
  rdfs:subClassOf [
      rdf:type owl:Restriction ;
      owl:maxCardinality "1"^^xsd:nonNegativeInteger ;
      owl:onProperty <http://ontology.tno.nl/cerise/cim-profile#BaseReading.value> ;
    ] ;
.
<http://ontology.tno.nl/cerise/cim-profile#BaseReading.source>
  rdf:type owl:DatatypeProperty ;
  uml:hasStereotype uml:attribute ;
  rdfs:comment "System that originally supplied the reading (e.g., customer, AMI system, handheld reading system, another enterprise system, etc.)." ;
  rdfs:label "source" ;
.
<http://ontology.tno.nl/cerise/cim-profile#BaseReading.timePeriod>
  rdf:type owl:ObjectProperty ;
  uml:hasStereotype uml:attribute ;
  uml:hasStereotype uml:byreference ;
  rdfs:comment "Start and end of the period for those readings whose type has a time attribute such as 'billing', seasonal' or 'forTheSpecifiedPeriod'." ;
  rdfs:label "timePeriod" ;
.
<http://ontology.tno.nl/cerise/cim-profile#BaseReading.value>
  rdf:type owl:DatatypeProperty ;
  uml:hasStereotype uml:attribute ;
  rdfs:comment "Value of this reading." ;
  rdfs:label "value" ;
.
cim:Channel
  rdf:type owl:Class ;
  uml:hasStereotype uml:concrete ;
  rdfs:comment "A single path for the collection or reporting of register values over a period of time. For example, a register which measures forward energy can have two channels, one providing bulk quantity readings and the other providing interval readings of a fixed interval size." ;
  rdfs:isDefinedBy cim:Package_Metering ;
  rdfs:label "Channel" ;
  rdfs:subClassOf cim:IdentifiedObject ;
  rdfs:subClassOf [
      rdf:type owl:Restriction ;
      owl:allValuesFrom cim:ReadingType ;
      owl:onProperty <http://ontology.tno.nl/cerise/cim-profile#Channel.ReadingType> ;
    ] ;
  rdfs:subClassOf [
      rdf:type owl:Restriction ;
      owl:allValuesFrom cim:Register ;
      owl:onProperty <http://ontology.tno.nl/cerise/cim-profile#Channel.Register> ;
    ] ;
  rdfs:subClassOf [
      rdf:type owl:Restriction ;
      owl:allValuesFrom xsd:boolean ;
      owl:onProperty <http://ontology.tno.nl/cerise/cim-profile#Channel.isVirtual> ;
    ] ;
  rdfs:subClassOf [
      rdf:type owl:Restriction ;
      owl:cardinality "1"^^xsd:nonNegativeInteger ;
      owl:onProperty <http://ontology.tno.nl/cerise/cim-profile#Channel.ReadingType> ;
    ] ;
  rdfs:subClassOf [
      rdf:type owl:Restriction ;
      owl:cardinality "1"^^xsd:nonNegativeInteger ;
      owl:onProperty <http://ontology.tno.nl/cerise/cim-profile#Channel.Register> ;
    ] ;
  rdfs:subClassOf [
      rdf:type owl:Restriction ;
      owl:cardinality "1"^^xsd:nonNegativeInteger ;
      owl:onProperty <http://ontology.tno.nl/cerise/cim-profile#Channel.isVirtual> ;
    ] ;
.
<http://ontology.tno.nl/cerise/cim-profile#Channel.ReadingType>
  rdf:type owl:ObjectProperty ;
  rdfs:comment "Reading type for register values reported/collected by this channel." ;
  rdfs:label "ReadingType" ;
.
<http://ontology.tno.nl/cerise/cim-profile#Channel.Register>
  rdf:type owl:ObjectProperty ;
  rdfs:comment "Register whose values are collected/reported by this channel." ;
  rdfs:label "Register" ;
.
<http://ontology.tno.nl/cerise/cim-profile#Channel.isVirtual>
  rdf:type owl:DatatypeProperty ;
  uml:hasStereotype uml:attribute ;
  rdfs:comment "If true, the data is being calculated by an enterprise system rather than metered directly." ;
  rdfs:label "isVirtual" ;
.
cim:CoordinateSystem
  rdf:type owl:Class ;
  rdfs:comment "Coordinate reference system." ;
  rdfs:isDefinedBy cim:Package_Common ;
  rdfs:label "CoordinateSystem" ;
  rdfs:subClassOf cim:IdentifiedObject ;
  rdfs:subClassOf [
      rdf:type owl:Restriction ;
      owl:allValuesFrom cim:Location ;
      owl:onProperty <http://ontology.tno.nl/cerise/cim-profile#CoordinateSystem.Location> ;
    ] ;
  rdfs:subClassOf [
      rdf:type owl:Restriction ;
      owl:allValuesFrom xsd:string ;
      owl:onProperty <http://ontology.tno.nl/cerise/cim-profile#CoordinateSystem.crsUrn> ;
    ] ;
  rdfs:subClassOf [
      rdf:type owl:Restriction ;
      owl:allValuesFrom xsd:string ;
      owl:onProperty <http://ontology.tno.nl/cerise/cim-profile#IdentifiedObject.aliasName> ;
    ] ;
  rdfs:subClassOf [
      rdf:type owl:Restriction ;
      owl:allValuesFrom xsd:string ;
      owl:onProperty <http://ontology.tno.nl/cerise/cim-profile#IdentifiedObject.mRID> ;
    ] ;
  rdfs:subClassOf [
      rdf:type owl:Restriction ;
      owl:allValuesFrom xsd:string ;
      owl:onProperty <http://ontology.tno.nl/cerise/cim-profile#IdentifiedObject.name> ;
    ] ;
  rdfs:subClassOf [
      rdf:type owl:Restriction ;
      owl:cardinality "1"^^xsd:nonNegativeInteger ;
      owl:onProperty <http://ontology.tno.nl/cerise/cim-profile#CoordinateSystem.Location> ;
    ] ;
  rdfs:subClassOf [
      rdf:type owl:Restriction ;
      owl:cardinality "1"^^xsd:nonNegativeInteger ;
      owl:onProperty <http://ontology.tno.nl/cerise/cim-profile#CoordinateSystem.crsUrn> ;
    ] ;
  rdfs:subClassOf [
      rdf:type owl:Restriction ;
      owl:cardinality "1"^^xsd:nonNegativeInteger ;
      owl:onProperty <http://ontology.tno.nl/cerise/cim-profile#IdentifiedObject.aliasName> ;
    ] ;
  rdfs:subClassOf [
      rdf:type owl:Restriction ;
      owl:cardinality "1"^^xsd:nonNegativeInteger ;
      owl:onProperty <http://ontology.tno.nl/cerise/cim-profile#IdentifiedObject.mRID> ;
    ] ;
  rdfs:subClassOf [
      rdf:type owl:Restriction ;
      owl:cardinality "1"^^xsd:nonNegativeInteger ;
      owl:onProperty <http://ontology.tno.nl/cerise/cim-profile#IdentifiedObject.name> ;
    ] ;
.
<http://ontology.tno.nl/cerise/cim-profile#CoordinateSystem.Location>
  rdf:type owl:ObjectProperty ;
  rdfs:comment "All locations described with position points in this coordinate system." ;
  rdfs:label "Location" ;
  owl:inverseOf <http://ontology.tno.nl/cerise/cim-profile#Location.CoordinateSystem> ;
.
<http://ontology.tno.nl/cerise/cim-profile#CoordinateSystem.crsUrn>
  rdf:type owl:DatatypeProperty ;
  uml:hasStereotype uml:attribute ;
  rdfs:comment """A Uniform Resource Name (URN) for the coordinate reference system (crs) used to define 'Location.PositionPoints'.
An example would be the European Petroleum Survey Group (EPSG) code for a coordinate reference system, defined in URN under the Open Geospatial Consortium (OGC) namespace as: urn:ogc :def:uom:EPSG::XXXX, where XXXX is an EPSG code (a full list of codes can be found at the EPSG Registry website http://www.epsg-registry.org/). To define the coordinate system as being WGS84 (latitude, longitude) using an EPSG OGC, this attribute would be urn:ogc:def:uom:EPSG::4236.
A profile should limit this code to a set of allowed URNs agreed to by all sending and receiving parties.""" ;
  rdfs:label "crsUrn" ;
.
cim:Customer
  rdf:type owl:Class ;
  rdfs:comment "Organisation receiving services from service supplier." ;
  rdfs:isDefinedBy cim:Package_Customers ;
  rdfs:label "Customer" ;
  rdfs:subClassOf cim:OrganisationRole ;
  rdfs:subClassOf [
      rdf:type owl:Restriction ;
      owl:allValuesFrom cim:CustomerKind ;
      owl:onProperty <http://ontology.tno.nl/cerise/cim-profile#Customer.kind> ;
    ] ;
  rdfs:subClassOf [
      rdf:type owl:Restriction ;
      owl:allValuesFrom xsd:string ;
      owl:onProperty <http://ontology.tno.nl/cerise/cim-profile#IdentifiedObject.aliasName> ;
    ] ;
  rdfs:subClassOf [
      rdf:type owl:Restriction ;
      owl:allValuesFrom xsd:string ;
      owl:onProperty <http://ontology.tno.nl/cerise/cim-profile#IdentifiedObject.mRID> ;
    ] ;
  rdfs:subClassOf [
      rdf:type owl:Restriction ;
      owl:allValuesFrom xsd:string ;
      owl:onProperty <http://ontology.tno.nl/cerise/cim-profile#IdentifiedObject.name> ;
    ] ;
  rdfs:subClassOf [
      rdf:type owl:Restriction ;
      owl:cardinality "1"^^xsd:nonNegativeInteger ;
      owl:onProperty <http://ontology.tno.nl/cerise/cim-profile#Customer.kind> ;
    ] ;
  rdfs:subClassOf [
      rdf:type owl:Restriction ;
      owl:cardinality "1"^^xsd:nonNegativeInteger ;
      owl:onProperty <http://ontology.tno.nl/cerise/cim-profile#IdentifiedObject.aliasName> ;
    ] ;
  rdfs:subClassOf [
      rdf:type owl:Restriction ;
      owl:cardinality "1"^^xsd:nonNegativeInteger ;
      owl:onProperty <http://ontology.tno.nl/cerise/cim-profile#IdentifiedObject.mRID> ;
    ] ;
  rdfs:subClassOf [
      rdf:type owl:Restriction ;
      owl:cardinality "1"^^xsd:nonNegativeInteger ;
      owl:onProperty <http://ontology.tno.nl/cerise/cim-profile#IdentifiedObject.name> ;
    ] ;
.
<http://ontology.tno.nl/cerise/cim-profile#Customer.kind>
  rdf:type owl:ObjectProperty ;
  uml:hasStereotype uml:attribute ;
  rdfs:comment "Kind of customer." ;
  rdfs:label "kind" ;
.
cim:CustomerAgreement
  rdf:type owl:Class ;
  uml:hasStereotype uml:concrete ;
  rdfs:comment "Agreement between the customer and the service supplier to pay for service at a specific service location. It records certain billing information about the type of service provided at the service location and is used during charge creation to determine the type of service." ;
  rdfs:isDefinedBy cim:Package_Customers ;
  rdfs:label "CustomerAgreement" ;
  rdfs:subClassOf cim:IdentifiedObject ;
  rdfs:subClassOf [
      rdf:type owl:Restriction ;
      owl:allValuesFrom cim:Customer ;
      owl:onProperty <http://ontology.tno.nl/cerise/cim-profile#CustomerAgreement.Customer> ;
    ] ;
  rdfs:subClassOf [
      rdf:type owl:Restriction ;
      owl:allValuesFrom cim:ServiceCategory ;
      owl:onProperty <http://ontology.tno.nl/cerise/cim-profile#CustomerAgreement.ServiceCategory> ;
    ] ;
  rdfs:subClassOf [
      rdf:type owl:Restriction ;
      owl:allValuesFrom cim:ServiceSupplier ;
      owl:onProperty <http://ontology.tno.nl/cerise/cim-profile#CustomerAgreement.ServiceSupplier> ;
    ] ;
  rdfs:subClassOf [
      rdf:type owl:Restriction ;
      owl:cardinality "1"^^xsd:nonNegativeInteger ;
      owl:onProperty <http://ontology.tno.nl/cerise/cim-profile#CustomerAgreement.Customer> ;
    ] ;
  rdfs:subClassOf [
      rdf:type owl:Restriction ;
      owl:cardinality "1"^^xsd:nonNegativeInteger ;
      owl:onProperty <http://ontology.tno.nl/cerise/cim-profile#CustomerAgreement.ServiceCategory> ;
    ] ;
  rdfs:subClassOf [
      rdf:type owl:Restriction ;
      owl:cardinality "1"^^xsd:nonNegativeInteger ;
      owl:onProperty <http://ontology.tno.nl/cerise/cim-profile#CustomerAgreement.ServiceSupplier> ;
    ] ;
.
<http://ontology.tno.nl/cerise/cim-profile#CustomerAgreement.Customer>
  rdf:type owl:ObjectProperty ;
  rdfs:comment "Customer for this agreement." ;
  rdfs:label "Customer" ;
.
<http://ontology.tno.nl/cerise/cim-profile#CustomerAgreement.ServiceCategory>
  rdf:type owl:ObjectProperty ;
  rdfs:comment "Service category for this agreement." ;
  rdfs:label "ServiceCategory" ;
.
<http://ontology.tno.nl/cerise/cim-profile#CustomerAgreement.ServiceSupplier>
  rdf:type owl:ObjectProperty ;
  rdfs:comment "Service supplier for this customer agreement." ;
  rdfs:label "ServiceSupplier" ;
.
cim:CustomerKind
  rdf:type owl:Class ;
  uml:hasStereotype uml:enumeration ;
  rdfs:comment "Kind of customer." ;
  rdfs:isDefinedBy cim:Package_Customers ;
  rdfs:label "CustomerKind" ;
.
<http://ontology.tno.nl/cerise/cim-profile#CustomerKind.commercialIndustrial>
  rdf:type cim:CustomerKind ;
  rdf:type owl:NamedIndividual ;
  rdfs:comment "Commercial industrial customer." ;
  rdfs:label "commercialIndustrial" ;
.
<http://ontology.tno.nl/cerise/cim-profile#CustomerKind.energyServiceScheduler>
  rdf:type cim:CustomerKind ;
  rdf:type owl:NamedIndividual ;
  rdfs:comment "Customer as energy service scheduler." ;
  rdfs:label "energyServiceScheduler" ;
.
<http://ontology.tno.nl/cerise/cim-profile#CustomerKind.energyServiceSupplier>
  rdf:type cim:CustomerKind ;
  rdf:type owl:NamedIndividual ;
  rdfs:comment "Customer as energy service supplier." ;
  rdfs:label "energyServiceSupplier" ;
.
<http://ontology.tno.nl/cerise/cim-profile#CustomerKind.internalUse>
  rdf:type cim:CustomerKind ;
  rdf:type owl:NamedIndividual ;
  rdfs:comment "Internal use customer." ;
  rdfs:label "internalUse" ;
.
<http://ontology.tno.nl/cerise/cim-profile#CustomerKind.other>
  rdf:type cim:CustomerKind ;
  rdf:type owl:NamedIndividual ;
  rdfs:comment "Other kind of customer." ;
  rdfs:label "other" ;
.
<http://ontology.tno.nl/cerise/cim-profile#CustomerKind.pumpingLoad>
  rdf:type cim:CustomerKind ;
  rdf:type owl:NamedIndividual ;
  rdfs:comment "Pumping load customer." ;
  rdfs:label "pumpingLoad" ;
.
<http://ontology.tno.nl/cerise/cim-profile#CustomerKind.residential>
  rdf:type cim:CustomerKind ;
  rdf:type owl:NamedIndividual ;
  rdfs:comment "Residential customer." ;
  rdfs:label "residential" ;
.
<http://ontology.tno.nl/cerise/cim-profile#CustomerKind.residentialAndCommercial>
  rdf:type cim:CustomerKind ;
  rdf:type owl:NamedIndividual ;
  rdfs:comment "Residential and commercial customer." ;
  rdfs:label "residentialAndCommercial" ;
.
<http://ontology.tno.nl/cerise/cim-profile#CustomerKind.residentialAndStreetlight>
  rdf:type cim:CustomerKind ;
  rdf:type owl:NamedIndividual ;
  rdfs:comment "Residential and streetlight customer." ;
  rdfs:label "residentialAndStreetlight" ;
.
<http://ontology.tno.nl/cerise/cim-profile#CustomerKind.residentialFarmService>
  rdf:type cim:CustomerKind ;
  rdf:type owl:NamedIndividual ;
  rdfs:comment "Residential farm service customer." ;
  rdfs:label "residentialFarmService" ;
.
<http://ontology.tno.nl/cerise/cim-profile#CustomerKind.residentialStreetlightOthers>
  rdf:type cim:CustomerKind ;
  rdf:type owl:NamedIndividual ;
  rdfs:comment "Residential streetlight or other related customer." ;
  rdfs:label "residentialStreetlightOthers" ;
.
<http://ontology.tno.nl/cerise/cim-profile#CustomerKind.windMachine>
  rdf:type cim:CustomerKind ;
  rdf:type owl:NamedIndividual ;
  rdfs:comment "Wind machine customer." ;
  rdfs:label "windMachine" ;
.
cim:DateTimeInterval
  rdf:type owl:Class ;
  uml:hasStereotype uml:byreference ;
  uml:hasStereotype uml:compound ;
  rdfs:comment "Interval between two date and time points." ;
  rdfs:isDefinedBy cim:Package_Domain ;
  rdfs:label "DateTimeInterval" ;
  rdfs:subClassOf [
      rdf:type owl:Restriction ;
      owl:allValuesFrom xsd:dateTime ;
      owl:onProperty <http://ontology.tno.nl/cerise/cim-profile#DateTimeInterval.end> ;
    ] ;
  rdfs:subClassOf [
      rdf:type owl:Restriction ;
      owl:allValuesFrom xsd:dateTime ;
      owl:onProperty <http://ontology.tno.nl/cerise/cim-profile#DateTimeInterval.start> ;
    ] ;
  rdfs:subClassOf [
      rdf:type owl:Restriction ;
      owl:cardinality "1"^^xsd:nonNegativeInteger ;
      owl:onProperty <http://ontology.tno.nl/cerise/cim-profile#DateTimeInterval.end> ;
    ] ;
  rdfs:subClassOf [
      rdf:type owl:Restriction ;
      owl:cardinality "1"^^xsd:nonNegativeInteger ;
      owl:onProperty <http://ontology.tno.nl/cerise/cim-profile#DateTimeInterval.start> ;
    ] ;
.
<http://ontology.tno.nl/cerise/cim-profile#DateTimeInterval.end>
  rdf:type owl:DatatypeProperty ;
  uml:hasStereotype uml:attribute ;
  rdfs:comment "End date and time of this interval." ;
  rdfs:label "end" ;
.
<http://ontology.tno.nl/cerise/cim-profile#DateTimeInterval.start>
  rdf:type owl:DatatypeProperty ;
  uml:hasStereotype uml:attribute ;
  rdfs:comment "Start date and time of this interval." ;
  rdfs:label "start" ;
.
cim:ElectronicAddress
  rdf:type owl:Class ;
  uml:hasStereotype uml:compound ;
  rdfs:comment "Electronic address information." ;
  rdfs:isDefinedBy cim:Package_Common ;
  rdfs:label "ElectronicAddress" ;
  rdfs:subClassOf [
      rdf:type owl:Restriction ;
      owl:allValuesFrom xsd:string ;
      owl:onProperty <http://ontology.tno.nl/cerise/cim-profile#ElectronicAddress.email1> ;
    ] ;
  rdfs:subClassOf [
      rdf:type owl:Restriction ;
      owl:allValuesFrom xsd:string ;
      owl:onProperty <http://ontology.tno.nl/cerise/cim-profile#ElectronicAddress.email2> ;
    ] ;
  rdfs:subClassOf [
      rdf:type owl:Restriction ;
      owl:allValuesFrom xsd:string ;
      owl:onProperty <http://ontology.tno.nl/cerise/cim-profile#ElectronicAddress.lan> ;
    ] ;
  rdfs:subClassOf [
      rdf:type owl:Restriction ;
      owl:allValuesFrom xsd:string ;
      owl:onProperty <http://ontology.tno.nl/cerise/cim-profile#ElectronicAddress.mac> ;
    ] ;
  rdfs:subClassOf [
      rdf:type owl:Restriction ;
      owl:allValuesFrom xsd:string ;
      owl:onProperty <http://ontology.tno.nl/cerise/cim-profile#ElectronicAddress.password> ;
    ] ;
  rdfs:subClassOf [
      rdf:type owl:Restriction ;
      owl:allValuesFrom xsd:string ;
      owl:onProperty <http://ontology.tno.nl/cerise/cim-profile#ElectronicAddress.radio> ;
    ] ;
  rdfs:subClassOf [
      rdf:type owl:Restriction ;
      owl:allValuesFrom xsd:string ;
      owl:onProperty <http://ontology.tno.nl/cerise/cim-profile#ElectronicAddress.userID> ;
    ] ;
  rdfs:subClassOf [
      rdf:type owl:Restriction ;
      owl:allValuesFrom xsd:string ;
      owl:onProperty <http://ontology.tno.nl/cerise/cim-profile#ElectronicAddress.web> ;
    ] ;
  rdfs:subClassOf [
      rdf:type owl:Restriction ;
      owl:cardinality "1"^^xsd:nonNegativeInteger ;
      owl:onProperty <http://ontology.tno.nl/cerise/cim-profile#ElectronicAddress.email1> ;
    ] ;
  rdfs:subClassOf [
      rdf:type owl:Restriction ;
      owl:cardinality "1"^^xsd:nonNegativeInteger ;
      owl:onProperty <http://ontology.tno.nl/cerise/cim-profile#ElectronicAddress.email2> ;
    ] ;
  rdfs:subClassOf [
      rdf:type owl:Restriction ;
      owl:cardinality "1"^^xsd:nonNegativeInteger ;
      owl:onProperty <http://ontology.tno.nl/cerise/cim-profile#ElectronicAddress.lan> ;
    ] ;
  rdfs:subClassOf [
      rdf:type owl:Restriction ;
      owl:cardinality "1"^^xsd:nonNegativeInteger ;
      owl:onProperty <http://ontology.tno.nl/cerise/cim-profile#ElectronicAddress.mac> ;
    ] ;
  rdfs:subClassOf [
      rdf:type owl:Restriction ;
      owl:cardinality "1"^^xsd:nonNegativeInteger ;
      owl:onProperty <http://ontology.tno.nl/cerise/cim-profile#ElectronicAddress.password> ;
    ] ;
  rdfs:subClassOf [
      rdf:type owl:Restriction ;
      owl:cardinality "1"^^xsd:nonNegativeInteger ;
      owl:onProperty <http://ontology.tno.nl/cerise/cim-profile#ElectronicAddress.radio> ;
    ] ;
  rdfs:subClassOf [
      rdf:type owl:Restriction ;
      owl:cardinality "1"^^xsd:nonNegativeInteger ;
      owl:onProperty <http://ontology.tno.nl/cerise/cim-profile#ElectronicAddress.userID> ;
    ] ;
  rdfs:subClassOf [
      rdf:type owl:Restriction ;
      owl:cardinality "1"^^xsd:nonNegativeInteger ;
      owl:onProperty <http://ontology.tno.nl/cerise/cim-profile#ElectronicAddress.web> ;
    ] ;
.
<http://ontology.tno.nl/cerise/cim-profile#ElectronicAddress.email1>
  rdf:type owl:DatatypeProperty ;
  uml:hasStereotype uml:attribute ;
  rdfs:comment "Primary email address." ;
  rdfs:label "email1" ;
.
<http://ontology.tno.nl/cerise/cim-profile#ElectronicAddress.email2>
  rdf:type owl:DatatypeProperty ;
  uml:hasStereotype uml:attribute ;
  rdfs:comment "Alternate email address." ;
  rdfs:label "email2" ;
.
<http://ontology.tno.nl/cerise/cim-profile#ElectronicAddress.lan>
  rdf:type owl:DatatypeProperty ;
  uml:hasStereotype uml:attribute ;
  rdfs:comment "Address on local area network." ;
  rdfs:label "lan" ;
.
<http://ontology.tno.nl/cerise/cim-profile#ElectronicAddress.mac>
  rdf:type owl:DatatypeProperty ;
  uml:hasStereotype uml:attribute ;
  rdfs:comment "MAC (Media Access Control) address." ;
  rdfs:label "mac" ;
.
<http://ontology.tno.nl/cerise/cim-profile#ElectronicAddress.password>
  rdf:type owl:DatatypeProperty ;
  uml:hasStereotype uml:attribute ;
  rdfs:comment "Password needed to log in." ;
  rdfs:label "password" ;
.
<http://ontology.tno.nl/cerise/cim-profile#ElectronicAddress.radio>
  rdf:type owl:DatatypeProperty ;
  uml:hasStereotype uml:attribute ;
  rdfs:comment "Radio address." ;
  rdfs:label "radio" ;
.
<http://ontology.tno.nl/cerise/cim-profile#ElectronicAddress.userID>
  rdf:type owl:DatatypeProperty ;
  uml:hasStereotype uml:attribute ;
  rdfs:comment "User ID needed to log in, which can be for an individual person, an organisation, a location, etc." ;
  rdfs:label "userID" ;
.
<http://ontology.tno.nl/cerise/cim-profile#ElectronicAddress.web>
  rdf:type owl:DatatypeProperty ;
  uml:hasStereotype uml:attribute ;
  rdfs:comment "World wide web address." ;
  rdfs:label "web" ;
.
cim:EndDevice
  rdf:type owl:Class ;
  uml:hasStereotype uml:concrete ;
  rdfs:comment """Asset container that performs one or more end device functions. One type of end device is a meter which can perform metering, load management, connect/disconnect, accounting functions, etc. Some end devices, such as ones monitoring and controlling air conditioner, refrigerator, pool pumps may be connected to a meter. All end devices may have communication capability defined by the associated communication function(s). An end device may be owned by a consumer, a service provider, utility or otherwise.
There may be a related end device function that identifies a sensor or control point within a metering application or communications systems (e.g., water, gas, electricity).
Some devices may use an optical port that conforms to the ANSI C12.18 standard for communications.""" ;
  rdfs:isDefinedBy cim:Package_Metering ;
  rdfs:label "EndDevice" ;
  rdfs:subClassOf cim:IdentifiedObject ;
  rdfs:subClassOf [
      rdf:type owl:Restriction ;
      owl:allValuesFrom cim:EndDeviceFunction ;
      owl:onProperty <http://ontology.tno.nl/cerise/cim-profile#EndDevice.EndDeviceFunctions> ;
    ] ;
  rdfs:subClassOf [
      rdf:type owl:Restriction ;
      owl:allValuesFrom cim:UsagePoint ;
      owl:onProperty <http://ontology.tno.nl/cerise/cim-profile#EndDevice.UsagePoint> ;
    ] ;
  rdfs:subClassOf [
      rdf:type owl:Restriction ;
      owl:allValuesFrom xsd:boolean ;
      owl:onProperty <http://ontology.tno.nl/cerise/cim-profile#EndDevice.isVirtual> ;
    ] ;
  rdfs:subClassOf [
      rdf:type owl:Restriction ;
      owl:allValuesFrom xsd:string ;
      owl:onProperty <http://ontology.tno.nl/cerise/cim-profile#EndDevice.installCode> ;
    ] ;
  rdfs:subClassOf [
      rdf:type owl:Restriction ;
      owl:cardinality "1"^^xsd:nonNegativeInteger ;
      owl:onProperty <http://ontology.tno.nl/cerise/cim-profile#EndDevice.UsagePoint> ;
    ] ;
  rdfs:subClassOf [
      rdf:type owl:Restriction ;
      owl:cardinality "1"^^xsd:nonNegativeInteger ;
      owl:onProperty <http://ontology.tno.nl/cerise/cim-profile#EndDevice.installCode> ;
    ] ;
  rdfs:subClassOf [
      rdf:type owl:Restriction ;
      owl:cardinality "1"^^xsd:nonNegativeInteger ;
      owl:onProperty <http://ontology.tno.nl/cerise/cim-profile#EndDevice.isVirtual> ;
    ] ;
  rdfs:subClassOf [
      rdf:type owl:Restriction ;
      owl:minCardinality "1"^^xsd:nonNegativeInteger ;
      owl:onProperty <http://ontology.tno.nl/cerise/cim-profile#EndDevice.EndDeviceFunctions> ;
    ] ;
.
<http://ontology.tno.nl/cerise/cim-profile#EndDevice.EndDeviceFunctions>
  rdf:type owl:ObjectProperty ;
  rdfs:comment "All end device functions this end device performs." ;
  rdfs:label "EndDeviceFunctions" ;
.
<http://ontology.tno.nl/cerise/cim-profile#EndDevice.UsagePoint>
  rdf:type owl:ObjectProperty ;
  rdfs:comment "Usage point to which this end device belongs." ;
  rdfs:label "UsagePoint" ;
.
<http://ontology.tno.nl/cerise/cim-profile#EndDevice.installCode>
  rdf:type owl:DatatypeProperty ;
  uml:hasStereotype uml:attribute ;
  rdfs:comment "Installation code." ;
  rdfs:label "installCode" ;
.
<http://ontology.tno.nl/cerise/cim-profile#EndDevice.isVirtual>
  rdf:type owl:DatatypeProperty ;
  uml:hasStereotype uml:attribute ;
  rdfs:comment "If true, there is no physical device. As an example, a virtual meter can be defined to aggregate the consumption for two or more physical meters. Otherwise, this is a physical hardware device." ;
  rdfs:label "isVirtual" ;
.
cim:EndDeviceFunction
  rdf:type owl:Class ;
  rdfs:comment "Function performed by an end device such as a meter, communication equipment, controllers, etc." ;
  rdfs:isDefinedBy cim:Package_Metering ;
  rdfs:label "EndDeviceFunction" ;
  rdfs:subClassOf cim:IdentifiedObject ;
  rdfs:subClassOf [
      rdf:type owl:Restriction ;
      owl:allValuesFrom cim:EndDevice ;
      owl:onProperty <http://ontology.tno.nl/cerise/cim-profile#EndDeviceFunction.EndDevice> ;
    ] ;
  rdfs:subClassOf [
      rdf:type owl:Restriction ;
      owl:cardinality "1"^^xsd:nonNegativeInteger ;
      owl:onProperty <http://ontology.tno.nl/cerise/cim-profile#EndDeviceFunction.EndDevice> ;
    ] ;
.
<http://ontology.tno.nl/cerise/cim-profile#EndDeviceFunction.EndDevice>
  rdf:type owl:ObjectProperty ;
  rdfs:comment "End device that performs this function." ;
  rdfs:label "EndDevice" ;
  owl:inverseOf <http://ontology.tno.nl/cerise/cim-profile#EndDevice.EndDeviceFunctions> ;
.
cim:EndDeviceFunctionKind
  rdf:type owl:Class ;
  uml:hasStereotype uml:enumeration ;
  rdfs:comment "Kind of end device function." ;
  rdfs:isDefinedBy cim:Package_Metering ;
  rdfs:label "EndDeviceFunctionKind" ;
.
<http://ontology.tno.nl/cerise/cim-profile#EndDeviceFunctionKind.autonomousDst>
  rdf:type cim:EndDeviceFunctionKind ;
  rdf:type owl:NamedIndividual ;
  rdfs:comment "Autonomous application of daylight savings time (DST)." ;
  rdfs:label "autonomousDst" ;
.
<http://ontology.tno.nl/cerise/cim-profile#EndDeviceFunctionKind.demandResponse>
  rdf:type cim:EndDeviceFunctionKind ;
  rdf:type owl:NamedIndividual ;
  rdfs:comment "Demand response functions." ;
  rdfs:label "demandResponse" ;
.
<http://ontology.tno.nl/cerise/cim-profile#EndDeviceFunctionKind.electricMetering>
  rdf:type cim:EndDeviceFunctionKind ;
  rdf:type owl:NamedIndividual ;
  rdfs:comment "Electricity metering." ;
  rdfs:label "electricMetering" ;
.
<http://ontology.tno.nl/cerise/cim-profile#EndDeviceFunctionKind.gasMetering>
  rdf:type cim:EndDeviceFunctionKind ;
  rdf:type owl:NamedIndividual ;
  rdfs:comment "Gas metering." ;
  rdfs:label "gasMetering" ;
.
<http://ontology.tno.nl/cerise/cim-profile#EndDeviceFunctionKind.metrology>
  rdf:type cim:EndDeviceFunctionKind ;
  rdf:type owl:NamedIndividual ;
  rdfs:comment "Presentation of metered values to a user or another system (always a function of a meter, but might not be supported by a load control unit)." ;
  rdfs:label "metrology" ;
.
<http://ontology.tno.nl/cerise/cim-profile#EndDeviceFunctionKind.onRequestRead>
  rdf:type cim:EndDeviceFunctionKind ;
  rdf:type owl:NamedIndividual ;
  rdfs:comment "On-request reads." ;
  rdfs:label "onRequestRead" ;
.
<http://ontology.tno.nl/cerise/cim-profile#EndDeviceFunctionKind.outageHistory>
  rdf:type cim:EndDeviceFunctionKind ;
  rdf:type owl:NamedIndividual ;
  rdfs:comment "Reporting historical power interruption data." ;
  rdfs:label "outageHistory" ;
.
<http://ontology.tno.nl/cerise/cim-profile#EndDeviceFunctionKind.relaysProgramming>
  rdf:type cim:EndDeviceFunctionKind ;
  rdf:type owl:NamedIndividual ;
  rdfs:comment "Support for one or more relays that may be programmable in the meter (and tied to TOU, time pulse, load control or other functions)." ;
  rdfs:label "relaysProgramming" ;
.
<http://ontology.tno.nl/cerise/cim-profile#EndDeviceFunctionKind.reverseFlow>
  rdf:type cim:EndDeviceFunctionKind ;
  rdf:type owl:NamedIndividual ;
  rdfs:comment "Detection and monitoring of reverse flow." ;
  rdfs:label "reverseFlow" ;
.
<http://ontology.tno.nl/cerise/cim-profile#EndDeviceFunctionKind.waterMetering>
  rdf:type cim:EndDeviceFunctionKind ;
  rdf:type owl:NamedIndividual ;
  rdfs:comment "Water metering." ;
  rdfs:label "waterMetering" ;
.
cim:IdentifiedObject
  rdf:type owl:Class ;
  rdfs:comment "This is a root class to provide common identification for all classes needing identification and naming attributes." ;
  rdfs:isDefinedBy cim:Package_Core ;
  rdfs:label "IdentifiedObject" ;
  rdfs:subClassOf [
      rdf:type owl:Restriction ;
      owl:allValuesFrom xsd:string ;
      owl:onProperty <http://ontology.tno.nl/cerise/cim-profile#IdentifiedObject.aliasName> ;
    ] ;
  rdfs:subClassOf [
      rdf:type owl:Restriction ;
      owl:allValuesFrom xsd:string ;
      owl:onProperty <http://ontology.tno.nl/cerise/cim-profile#IdentifiedObject.mRID> ;
    ] ;
  rdfs:subClassOf [
      rdf:type owl:Restriction ;
      owl:allValuesFrom xsd:string ;
      owl:onProperty <http://ontology.tno.nl/cerise/cim-profile#IdentifiedObject.name> ;
    ] ;
  rdfs:subClassOf [
      rdf:type owl:Restriction ;
      owl:cardinality "1"^^xsd:nonNegativeInteger ;
      owl:onProperty <http://ontology.tno.nl/cerise/cim-profile#IdentifiedObject.aliasName> ;
    ] ;
  rdfs:subClassOf [
      rdf:type owl:Restriction ;
      owl:cardinality "1"^^xsd:nonNegativeInteger ;
      owl:onProperty <http://ontology.tno.nl/cerise/cim-profile#IdentifiedObject.mRID> ;
    ] ;
  rdfs:subClassOf [
      rdf:type owl:Restriction ;
      owl:cardinality "1"^^xsd:nonNegativeInteger ;
      owl:onProperty <http://ontology.tno.nl/cerise/cim-profile#IdentifiedObject.name> ;
    ] ;
.
<http://ontology.tno.nl/cerise/cim-profile#IdentifiedObject.aliasName>
  rdf:type owl:DatatypeProperty ;
  uml:hasStereotype uml:attribute ;
  rdfs:comment """The aliasName is free text human readable name of the object alternative to IdentifiedObject.name. It may be non unique and may not correlate to a naming hierarchy.
The attribute aliasName is retained because of backwards compatibility between CIM relases. It is however recommended to replace aliasName with the Name class as aliasName is planned for retirement at a future time.""" ;
  rdfs:label "aliasName" ;
.
<http://ontology.tno.nl/cerise/cim-profile#IdentifiedObject.mRID>
  rdf:type owl:DatatypeProperty ;
  uml:hasStereotype uml:attribute ;
  rdfs:comment """Master resource identifier issued by a model authority. The mRID is globally unique within an exchange context.
Global uniqeness is easily achived by using a UUID for the mRID. It is strongly recommended to do this.
For CIMXML data files in RDF syntax, the mRID is mapped to rdf:ID or rdf:about attributes that identify CIM object elements.""" ;
  rdfs:label "mRID" ;
.
<http://ontology.tno.nl/cerise/cim-profile#IdentifiedObject.name>
  rdf:type owl:DatatypeProperty ;
  uml:hasStereotype uml:attribute ;
  rdfs:comment "The name is any free human readable and possibly non unique text naming the object." ;
  rdfs:label "name" ;
.
cim:IntervalBlock
  rdf:type owl:Class ;
  rdfs:comment "Time sequence of readings of the same reading type. Contained interval readings may need conversion through the application of an offset and a scalar defined in associated pending." ;
  rdfs:isDefinedBy cim:Package_Metering ;
  rdfs:label "IntervalBlock" ;
  rdfs:subClassOf [
      rdf:type owl:Restriction ;
      owl:allValuesFrom cim:IntervalReading ;
      owl:onProperty <http://ontology.tno.nl/cerise/cim-profile#IntervalBlock.IntervalReadings> ;
    ] ;
  rdfs:subClassOf [
      rdf:type owl:Restriction ;
      owl:allValuesFrom cim:MeterReading ;
      owl:onProperty <http://ontology.tno.nl/cerise/cim-profile#IntervalBlock.MeterReading> ;
    ] ;
  rdfs:subClassOf [
      rdf:type owl:Restriction ;
      owl:allValuesFrom cim:ReadingType ;
      owl:onProperty <http://ontology.tno.nl/cerise/cim-profile#IntervalBlock.ReadingType> ;
    ] ;
  rdfs:subClassOf [
      rdf:type owl:Restriction ;
      owl:cardinality "1"^^xsd:nonNegativeInteger ;
      owl:onProperty <http://ontology.tno.nl/cerise/cim-profile#IntervalBlock.MeterReading> ;
    ] ;
  rdfs:subClassOf [
      rdf:type owl:Restriction ;
      owl:cardinality "1"^^xsd:nonNegativeInteger ;
      owl:onProperty <http://ontology.tno.nl/cerise/cim-profile#IntervalBlock.ReadingType> ;
    ] ;
  rdfs:subClassOf [
      rdf:type owl:Restriction ;
      owl:minCardinality "1"^^xsd:nonNegativeInteger ;
      owl:onProperty <http://ontology.tno.nl/cerise/cim-profile#IntervalBlock.IntervalReadings> ;
    ] ;
.
<http://ontology.tno.nl/cerise/cim-profile#IntervalBlock.IntervalReadings>
  rdf:type owl:ObjectProperty ;
  rdfs:comment "Interval reading contained in this block." ;
  rdfs:label "IntervalReadings" ;
.
<http://ontology.tno.nl/cerise/cim-profile#IntervalBlock.MeterReading>
  rdf:type owl:ObjectProperty ;
  rdfs:comment "Meter reading containing this interval block." ;
  rdfs:label "MeterReading" ;
.
<http://ontology.tno.nl/cerise/cim-profile#IntervalBlock.ReadingType>
  rdf:type owl:ObjectProperty ;
  rdfs:comment "Type information for interval reading values contained in this block." ;
  rdfs:label "ReadingType" ;
.
cim:IntervalReading
  rdf:type owl:Class ;
  rdfs:comment """Data captured at regular intervals of time. Interval data could be captured as incremental data, absolute data, or relative data. The source for the data is usually a tariff quantity or an engineering quantity. Data is typically captured in time-tagged, uniform, fixed-length intervals of 5 min, 10 min, 15 min, 30 min, or 60 min.
Note: Interval Data is sometimes also called \"Interval Data Readings\" (IDR).""" ;
  rdfs:isDefinedBy cim:Package_Metering ;
  rdfs:label "IntervalReading" ;
  rdfs:subClassOf cim:BaseReading ;
  rdfs:subClassOf [
      rdf:type owl:Restriction ;
      owl:allValuesFrom cim:IntervalBlock ;
      owl:onProperty <http://ontology.tno.nl/cerise/cim-profile#IntervalReading.IntervalBlocks> ;
    ] ;
  rdfs:subClassOf [
      rdf:type owl:Restriction ;
      owl:minCardinality "1"^^xsd:nonNegativeInteger ;
      owl:onProperty <http://ontology.tno.nl/cerise/cim-profile#IntervalReading.IntervalBlocks> ;
    ] ;
.
<http://ontology.tno.nl/cerise/cim-profile#IntervalReading.IntervalBlocks>
  rdf:type owl:ObjectProperty ;
  rdfs:comment "All blocks containing this interval reading." ;
  rdfs:label "IntervalBlocks" ;
  owl:inverseOf <http://ontology.tno.nl/cerise/cim-profile#IntervalBlock.IntervalReadings> ;
.
cim:Location
  rdf:type owl:Class ;
  rdfs:comment "The place, scene, or point of something where someone or something has been, is, and/or will be at a given moment in time. It can be defined with one or more postition points (coordinates) in a given coordinate system." ;
  rdfs:isDefinedBy cim:Package_Common ;
  rdfs:label "Location" ;
  rdfs:subClassOf cim:IdentifiedObject ;
  rdfs:subClassOf [
      rdf:type owl:Restriction ;
      owl:allValuesFrom cim:CoordinateSystem ;
      owl:onProperty <http://ontology.tno.nl/cerise/cim-profile#Location.CoordinateSystem> ;
    ] ;
  rdfs:subClassOf [
      rdf:type owl:Restriction ;
      owl:allValuesFrom cim:ElectronicAddress ;
      owl:onProperty <http://ontology.tno.nl/cerise/cim-profile#Location.electronicAddress> ;
    ] ;
  rdfs:subClassOf [
      rdf:type owl:Restriction ;
      owl:allValuesFrom cim:PositionPoint ;
      owl:onProperty <http://ontology.tno.nl/cerise/cim-profile#Location.PositionPoints> ;
    ] ;
  rdfs:subClassOf [
      rdf:type owl:Restriction ;
      owl:allValuesFrom cim:Status ;
      owl:onProperty <http://ontology.tno.nl/cerise/cim-profile#Location.status> ;
    ] ;
  rdfs:subClassOf [
      rdf:type owl:Restriction ;
      owl:allValuesFrom cim:StreetAddress ;
      owl:onProperty <http://ontology.tno.nl/cerise/cim-profile#Location.mainAddress> ;
    ] ;
  rdfs:subClassOf [
      rdf:type owl:Restriction ;
      owl:allValuesFrom cim:StreetAddress ;
      owl:onProperty <http://ontology.tno.nl/cerise/cim-profile#Location.secondaryAddress> ;
    ] ;
  rdfs:subClassOf [
      rdf:type owl:Restriction ;
      owl:allValuesFrom cim:TelephoneNumber ;
      owl:onProperty <http://ontology.tno.nl/cerise/cim-profile#Location.phone1> ;
    ] ;
  rdfs:subClassOf [
      rdf:type owl:Restriction ;
      owl:allValuesFrom cim:TelephoneNumber ;
      owl:onProperty <http://ontology.tno.nl/cerise/cim-profile#Location.phone2> ;
    ] ;
  rdfs:subClassOf [
      rdf:type owl:Restriction ;
      owl:allValuesFrom xsd:string ;
      owl:onProperty <http://ontology.tno.nl/cerise/cim-profile#IdentifiedObject.aliasName> ;
    ] ;
  rdfs:subClassOf [
      rdf:type owl:Restriction ;
      owl:allValuesFrom xsd:string ;
      owl:onProperty <http://ontology.tno.nl/cerise/cim-profile#IdentifiedObject.mRID> ;
    ] ;
  rdfs:subClassOf [
      rdf:type owl:Restriction ;
      owl:allValuesFrom xsd:string ;
      owl:onProperty <http://ontology.tno.nl/cerise/cim-profile#IdentifiedObject.name> ;
    ] ;
  rdfs:subClassOf [
      rdf:type owl:Restriction ;
      owl:allValuesFrom xsd:string ;
      owl:onProperty <http://ontology.tno.nl/cerise/cim-profile#Location.geoInfoReference> ;
    ] ;
  rdfs:subClassOf [
      rdf:type owl:Restriction ;
      owl:allValuesFrom xsd:string ;
      owl:onProperty <http://ontology.tno.nl/cerise/cim-profile#Location.type> ;
    ] ;
  rdfs:subClassOf [
      rdf:type owl:Restriction ;
      owl:cardinality "1"^^xsd:nonNegativeInteger ;
      owl:onProperty <http://ontology.tno.nl/cerise/cim-profile#IdentifiedObject.aliasName> ;
    ] ;
  rdfs:subClassOf [
      rdf:type owl:Restriction ;
      owl:cardinality "1"^^xsd:nonNegativeInteger ;
      owl:onProperty <http://ontology.tno.nl/cerise/cim-profile#IdentifiedObject.mRID> ;
    ] ;
  rdfs:subClassOf [
      rdf:type owl:Restriction ;
      owl:cardinality "1"^^xsd:nonNegativeInteger ;
      owl:onProperty <http://ontology.tno.nl/cerise/cim-profile#IdentifiedObject.name> ;
    ] ;
  rdfs:subClassOf [
      rdf:type owl:Restriction ;
      owl:cardinality "1"^^xsd:nonNegativeInteger ;
      owl:onProperty <http://ontology.tno.nl/cerise/cim-profile#Location.CoordinateSystem> ;
    ] ;
  rdfs:subClassOf [
      rdf:type owl:Restriction ;
      owl:cardinality "1"^^xsd:nonNegativeInteger ;
      owl:onProperty <http://ontology.tno.nl/cerise/cim-profile#Location.electronicAddress> ;
    ] ;
  rdfs:subClassOf [
      rdf:type owl:Restriction ;
      owl:cardinality "1"^^xsd:nonNegativeInteger ;
      owl:onProperty <http://ontology.tno.nl/cerise/cim-profile#Location.geoInfoReference> ;
    ] ;
  rdfs:subClassOf [
      rdf:type owl:Restriction ;
      owl:cardinality "1"^^xsd:nonNegativeInteger ;
      owl:onProperty <http://ontology.tno.nl/cerise/cim-profile#Location.mainAddress> ;
    ] ;
  rdfs:subClassOf [
      rdf:type owl:Restriction ;
      owl:cardinality "1"^^xsd:nonNegativeInteger ;
      owl:onProperty <http://ontology.tno.nl/cerise/cim-profile#Location.phone1> ;
    ] ;
  rdfs:subClassOf [
      rdf:type owl:Restriction ;
      owl:cardinality "1"^^xsd:nonNegativeInteger ;
      owl:onProperty <http://ontology.tno.nl/cerise/cim-profile#Location.phone2> ;
    ] ;
  rdfs:subClassOf [
      rdf:type owl:Restriction ;
      owl:cardinality "1"^^xsd:nonNegativeInteger ;
      owl:onProperty <http://ontology.tno.nl/cerise/cim-profile#Location.secondaryAddress> ;
    ] ;
  rdfs:subClassOf [
      rdf:type owl:Restriction ;
      owl:cardinality "1"^^xsd:nonNegativeInteger ;
      owl:onProperty <http://ontology.tno.nl/cerise/cim-profile#Location.status> ;
    ] ;
  rdfs:subClassOf [
      rdf:type owl:Restriction ;
      owl:cardinality "1"^^xsd:nonNegativeInteger ;
      owl:onProperty <http://ontology.tno.nl/cerise/cim-profile#Location.type> ;
    ] ;
  rdfs:subClassOf [
      rdf:type owl:Restriction ;
      owl:minCardinality "1"^^xsd:nonNegativeInteger ;
      owl:onProperty <http://ontology.tno.nl/cerise/cim-profile#Location.PositionPoints> ;
    ] ;
.
<http://ontology.tno.nl/cerise/cim-profile#Location.CoordinateSystem>
  rdf:type owl:ObjectProperty ;
  rdfs:comment "Coordinate system used to describe position points of this location." ;
  rdfs:label "CoordinateSystem" ;
.
<http://ontology.tno.nl/cerise/cim-profile#Location.PositionPoints>
  rdf:type owl:ObjectProperty ;
  rdfs:comment "Sequence of position points describing this location, expressed in coordinate system 'Location.CoordinateSystem'." ;
  rdfs:label "PositionPoints" ;
  owl:inverseOf <http://ontology.tno.nl/cerise/cim-profile#PositionPoint.Location> ;
.
<http://ontology.tno.nl/cerise/cim-profile#Location.electronicAddress>
  rdf:type owl:ObjectProperty ;
  uml:hasStereotype uml:attribute ;
  rdfs:comment "Electronic address." ;
  rdfs:label "electronicAddress" ;
.
<http://ontology.tno.nl/cerise/cim-profile#Location.geoInfoReference>
  rdf:type owl:DatatypeProperty ;
  uml:hasStereotype uml:attribute ;
  rdfs:comment "(if applicable) Reference to geographical information source, often external to the utility." ;
  rdfs:label "geoInfoReference" ;
.
<http://ontology.tno.nl/cerise/cim-profile#Location.mainAddress>
  rdf:type owl:ObjectProperty ;
  uml:hasStereotype uml:attribute ;
  rdfs:comment "Main address of the location." ;
  rdfs:label "mainAddress" ;
.
<http://ontology.tno.nl/cerise/cim-profile#Location.phone1>
  rdf:type owl:ObjectProperty ;
  uml:hasStereotype uml:attribute ;
  rdfs:comment "Phone number." ;
  rdfs:label "phone1" ;
.
<http://ontology.tno.nl/cerise/cim-profile#Location.phone2>
  rdf:type owl:ObjectProperty ;
  uml:hasStereotype uml:attribute ;
  rdfs:comment "Additional phone number." ;
  rdfs:label "phone2" ;
.
<http://ontology.tno.nl/cerise/cim-profile#Location.secondaryAddress>
  rdf:type owl:ObjectProperty ;
  uml:hasStereotype uml:attribute ;
  rdfs:comment "Secondary address of the location. For example, PO Box address may have different ZIP code than that in the 'mainAddress'." ;
  rdfs:label "secondaryAddress" ;
.
<http://ontology.tno.nl/cerise/cim-profile#Location.status>
  rdf:type owl:ObjectProperty ;
  uml:hasStereotype uml:attribute ;
  rdfs:comment "Status of this location." ;
  rdfs:label "status" ;
.
<http://ontology.tno.nl/cerise/cim-profile#Location.type>
  rdf:type owl:DatatypeProperty ;
  uml:hasStereotype uml:attribute ;
  rdfs:comment "Classification by utility's corporate standards and practices, relative to the location itself (e.g., geographical, functional accounting, etc., not a given property that happens to exist at that location)." ;
  rdfs:label "type" ;
.
cim:Meter
  rdf:type owl:Class ;
  rdfs:comment "Physical asset that performs the metering role of the usage point. Used for measuring consumption and detection of events." ;
  rdfs:isDefinedBy cim:Package_Metering ;
  rdfs:label "Meter" ;
  rdfs:subClassOf cim:EndDevice ;
  rdfs:subClassOf [
      rdf:type owl:Restriction ;
      owl:allValuesFrom cim:EndDeviceFunction ;
      owl:onProperty <http://ontology.tno.nl/cerise/cim-profile#EndDevice.EndDeviceFunctions> ;
    ] ;
  rdfs:subClassOf [
      rdf:type owl:Restriction ;
      owl:allValuesFrom cim:MeterMultiplier ;
      owl:onProperty <http://ontology.tno.nl/cerise/cim-profile#Meter.MeterMultipliers> ;
    ] ;
  rdfs:subClassOf [
      rdf:type owl:Restriction ;
      owl:allValuesFrom cim:MeterReading ;
      owl:onProperty <http://ontology.tno.nl/cerise/cim-profile#Meter.MeterReadings> ;
    ] ;
  rdfs:subClassOf [
      rdf:type owl:Restriction ;
      owl:allValuesFrom cim:UsagePoint ;
      owl:onProperty <http://ontology.tno.nl/cerise/cim-profile#EndDevice.UsagePoint> ;
    ] ;
  rdfs:subClassOf [
      rdf:type owl:Restriction ;
      owl:allValuesFrom xsd:boolean ;
      owl:onProperty <http://ontology.tno.nl/cerise/cim-profile#EndDevice.isVirtual> ;
    ] ;
  rdfs:subClassOf [
      rdf:type owl:Restriction ;
      owl:allValuesFrom xsd:string ;
      owl:onProperty <http://ontology.tno.nl/cerise/cim-profile#EndDevice.installCode> ;
    ] ;
  rdfs:subClassOf [
      rdf:type owl:Restriction ;
      owl:allValuesFrom xsd:string ;
      owl:onProperty <http://ontology.tno.nl/cerise/cim-profile#Meter.formNumber> ;
    ] ;
  rdfs:subClassOf [
      rdf:type owl:Restriction ;
      owl:cardinality "1"^^xsd:nonNegativeInteger ;
      owl:onProperty <http://ontology.tno.nl/cerise/cim-profile#EndDevice.UsagePoint> ;
    ] ;
  rdfs:subClassOf [
      rdf:type owl:Restriction ;
      owl:cardinality "1"^^xsd:nonNegativeInteger ;
      owl:onProperty <http://ontology.tno.nl/cerise/cim-profile#EndDevice.installCode> ;
    ] ;
  rdfs:subClassOf [
      rdf:type owl:Restriction ;
      owl:cardinality "1"^^xsd:nonNegativeInteger ;
      owl:onProperty <http://ontology.tno.nl/cerise/cim-profile#EndDevice.isVirtual> ;
    ] ;
  rdfs:subClassOf [
      rdf:type owl:Restriction ;
      owl:cardinality "1"^^xsd:nonNegativeInteger ;
      owl:onProperty <http://ontology.tno.nl/cerise/cim-profile#Meter.formNumber> ;
    ] ;
  rdfs:subClassOf [
      rdf:type owl:Restriction ;
      owl:minCardinality "0"^^xsd:nonNegativeInteger ;
      owl:onProperty <http://ontology.tno.nl/cerise/cim-profile#Meter.MeterReadings> ;
    ] ;
  rdfs:subClassOf [
      rdf:type owl:Restriction ;
      owl:minCardinality "1"^^xsd:nonNegativeInteger ;
      owl:onProperty <http://ontology.tno.nl/cerise/cim-profile#EndDevice.EndDeviceFunctions> ;
    ] ;
  rdfs:subClassOf [
      rdf:type owl:Restriction ;
      owl:minCardinality "1"^^xsd:nonNegativeInteger ;
      owl:onProperty <http://ontology.tno.nl/cerise/cim-profile#Meter.MeterMultipliers> ;
    ] ;
.
<http://ontology.tno.nl/cerise/cim-profile#Meter.MeterMultipliers>
  rdf:type owl:ObjectProperty ;
  rdfs:comment "All multipliers applied at this meter." ;
  rdfs:label "MeterMultipliers" ;
.
<http://ontology.tno.nl/cerise/cim-profile#Meter.MeterReadings>
  rdf:type owl:ObjectProperty ;
  rdfs:comment "All meter readings provided by this meter." ;
  rdfs:label "MeterReadings" ;
.
<http://ontology.tno.nl/cerise/cim-profile#Meter.formNumber>
  rdf:type owl:DatatypeProperty ;
  uml:hasStereotype uml:attribute ;
  rdfs:comment "Meter form designation per ANSI C12.10 or other applicable standard. An alphanumeric designation denoting the circuit arrangement for which the meter is applicable and its specific terminal arrangement." ;
  rdfs:label "formNumber" ;
.
cim:MeterMultiplier
  rdf:type owl:Class ;
  rdfs:comment "Multiplier applied at the meter." ;
  rdfs:isDefinedBy cim:Package_Metering ;
  rdfs:label "MeterMultiplier" ;
  rdfs:subClassOf cim:IdentifiedObject ;
  rdfs:subClassOf [
      rdf:type owl:Restriction ;
      owl:allValuesFrom cim:Meter ;
      owl:onProperty <http://ontology.tno.nl/cerise/cim-profile#MeterMultiplier.Meter> ;
    ] ;
  rdfs:subClassOf [
      rdf:type owl:Restriction ;
      owl:allValuesFrom cim:MeterMultiplierKind ;
      owl:onProperty <http://ontology.tno.nl/cerise/cim-profile#MeterMultiplier.kind> ;
    ] ;
  rdfs:subClassOf [
      rdf:type owl:Restriction ;
      owl:allValuesFrom xsd:float ;
      owl:onProperty <http://ontology.tno.nl/cerise/cim-profile#MeterMultiplier.value> ;
    ] ;
  rdfs:subClassOf [
      rdf:type owl:Restriction ;
      owl:cardinality "1"^^xsd:nonNegativeInteger ;
      owl:onProperty <http://ontology.tno.nl/cerise/cim-profile#MeterMultiplier.Meter> ;
    ] ;
  rdfs:subClassOf [
      rdf:type owl:Restriction ;
      owl:cardinality "1"^^xsd:nonNegativeInteger ;
      owl:onProperty <http://ontology.tno.nl/cerise/cim-profile#MeterMultiplier.kind> ;
    ] ;
  rdfs:subClassOf [
      rdf:type owl:Restriction ;
      owl:cardinality "1"^^xsd:nonNegativeInteger ;
      owl:onProperty <http://ontology.tno.nl/cerise/cim-profile#MeterMultiplier.value> ;
    ] ;
.
<http://ontology.tno.nl/cerise/cim-profile#MeterMultiplier.Meter>
  rdf:type owl:ObjectProperty ;
  rdfs:comment "Meter applying this multiplier." ;
  rdfs:label "Meter" ;
  owl:inverseOf <http://ontology.tno.nl/cerise/cim-profile#Meter.MeterMultipliers> ;
.
<http://ontology.tno.nl/cerise/cim-profile#MeterMultiplier.kind>
  rdf:type owl:ObjectProperty ;
  uml:hasStereotype uml:attribute ;
  rdfs:comment "Kind of multiplier." ;
  rdfs:label "kind" ;
.
<http://ontology.tno.nl/cerise/cim-profile#MeterMultiplier.value>
  rdf:type owl:DatatypeProperty ;
  uml:hasStereotype uml:attribute ;
  rdfs:comment "Multiplier value." ;
  rdfs:label "value" ;
.
cim:MeterMultiplierKind
  rdf:type owl:Class ;
  uml:hasStereotype uml:enumeration ;
  rdfs:comment "Kind of meter multiplier." ;
  rdfs:isDefinedBy cim:Package_Metering ;
  rdfs:label "MeterMultiplierKind" ;
.
<http://ontology.tno.nl/cerise/cim-profile#MeterMultiplierKind.ctRatio>
  rdf:type cim:MeterMultiplierKind ;
  rdf:type owl:NamedIndividual ;
  rdfs:comment "Current transformer ratio used to convert associated quantities to real measurements." ;
  rdfs:label "ctRatio" ;
.
<http://ontology.tno.nl/cerise/cim-profile#MeterMultiplierKind.kE>
  rdf:type cim:MeterMultiplierKind ;
  rdf:type owl:NamedIndividual ;
  rdfs:comment "Test constant." ;
  rdfs:label "kE" ;
.
<http://ontology.tno.nl/cerise/cim-profile#MeterMultiplierKind.kH>
  rdf:type cim:MeterMultiplierKind ;
  rdf:type owl:NamedIndividual ;
  rdfs:comment "Meter kh (watthour) constant. The number of watthours that must be applied to the meter to cause one disk revolution for an electromechanical meter or the number of watthours represented by one increment pulse for an electronic meter." ;
  rdfs:label "kH" ;
.
<http://ontology.tno.nl/cerise/cim-profile#MeterMultiplierKind.kR>
  rdf:type cim:MeterMultiplierKind ;
  rdf:type owl:NamedIndividual ;
  rdfs:comment "Register multiplier. The number to multiply the register reading by in order to get kWh." ;
  rdfs:label "kR" ;
.
<http://ontology.tno.nl/cerise/cim-profile#MeterMultiplierKind.ptRatio>
  rdf:type cim:MeterMultiplierKind ;
  rdf:type owl:NamedIndividual ;
  rdfs:comment "Potential transformer ratio used to convert associated quantities to real measurements." ;
  rdfs:label "ptRatio" ;
.
<http://ontology.tno.nl/cerise/cim-profile#MeterMultiplierKind.transformerRatio>
  rdf:type cim:MeterMultiplierKind ;
  rdf:type owl:NamedIndividual ;
  rdfs:comment "Product of the CT ratio and PT ratio." ;
  rdfs:label "transformerRatio" ;
.
cim:MeterReading
  rdf:type owl:Class ;
  uml:hasStereotype uml:concrete ;
  rdfs:comment "Set of values obtained from the meter." ;
  rdfs:isDefinedBy cim:Package_Metering ;
  rdfs:label "MeterReading" ;
  rdfs:subClassOf cim:IdentifiedObject ;
  rdfs:subClassOf [
      rdf:type owl:Restriction ;
      owl:allValuesFrom cim:CustomerAgreement ;
      owl:onProperty <http://ontology.tno.nl/cerise/cim-profile#MeterReading.CustomerAgreement> ;
    ] ;
  rdfs:subClassOf [
      rdf:type owl:Restriction ;
      owl:allValuesFrom cim:DateTimeInterval ;
      owl:onProperty <http://ontology.tno.nl/cerise/cim-profile#MeterReading.valuesInterval> ;
    ] ;
  rdfs:subClassOf [
      rdf:type owl:Restriction ;
      owl:allValuesFrom cim:Meter ;
      owl:onProperty <http://ontology.tno.nl/cerise/cim-profile#MeterReading.Meter> ;
    ] ;
  rdfs:subClassOf [
      rdf:type owl:Restriction ;
      owl:allValuesFrom cim:Reading ;
      owl:onProperty <http://ontology.tno.nl/cerise/cim-profile#MeterReading.Readings> ;
    ] ;
  rdfs:subClassOf [
      rdf:type owl:Restriction ;
      owl:allValuesFrom cim:UsagePoint ;
      owl:onProperty <http://ontology.tno.nl/cerise/cim-profile#MeterReading.UsagePoint> ;
    ] ;
  rdfs:subClassOf [
      rdf:type owl:Restriction ;
      owl:cardinality "1"^^xsd:nonNegativeInteger ;
      owl:onProperty <http://ontology.tno.nl/cerise/cim-profile#MeterReading.CustomerAgreement> ;
    ] ;
  rdfs:subClassOf [
      rdf:type owl:Restriction ;
      owl:maxCardinality "1"^^xsd:nonNegativeInteger ;
      owl:onProperty <http://ontology.tno.nl/cerise/cim-profile#MeterReading.Meter> ;
    ] ;
  rdfs:subClassOf [
      rdf:type owl:Restriction ;
      owl:maxCardinality "1"^^xsd:nonNegativeInteger ;
      owl:onProperty <http://ontology.tno.nl/cerise/cim-profile#MeterReading.UsagePoint> ;
    ] ;
  rdfs:subClassOf [
      rdf:type owl:Restriction ;
      owl:maxCardinality "1"^^xsd:nonNegativeInteger ;
      owl:onProperty <http://ontology.tno.nl/cerise/cim-profile#MeterReading.valuesInterval> ;
    ] ;
  rdfs:subClassOf [
      rdf:type owl:Restriction ;
      owl:minCardinality "0"^^xsd:nonNegativeInteger ;
      owl:onProperty <http://ontology.tno.nl/cerise/cim-profile#MeterReading.Readings> ;
    ] ;
.
<http://ontology.tno.nl/cerise/cim-profile#MeterReading.CustomerAgreement>
  rdf:type owl:ObjectProperty ;
  rdfs:comment "(could be deprecated in the future) Customer agreement for this meter reading." ;
  rdfs:label "CustomerAgreement" ;
.
<http://ontology.tno.nl/cerise/cim-profile#MeterReading.Meter>
  rdf:type owl:ObjectProperty ;
  rdfs:comment "Meter providing this reading." ;
  rdfs:label "Meter" ;
  owl:inverseOf <http://ontology.tno.nl/cerise/cim-profile#Meter.MeterReadings> ;
.
<http://ontology.tno.nl/cerise/cim-profile#MeterReading.Readings>
  rdf:type owl:ObjectProperty ;
  rdfs:comment "All reading values contained within this meter reading." ;
  rdfs:label "Readings" ;
.
<http://ontology.tno.nl/cerise/cim-profile#MeterReading.UsagePoint>
  rdf:type owl:ObjectProperty ;
  rdfs:comment "Usage point from which this meter reading (set of values) has been obtained." ;
  rdfs:label "UsagePoint" ;
  owl:inverseOf <http://ontology.tno.nl/cerise/cim-profile#UsagePoint.MeterReadings> ;
.
<http://ontology.tno.nl/cerise/cim-profile#MeterReading.valuesInterval>
  rdf:type owl:ObjectProperty ;
  uml:hasStereotype uml:attribute ;
  rdfs:comment "Date and time interval of the data items contained within this meter reading." ;
  rdfs:label "valuesInterval" ;
.
cim:OrganisationRole
  rdf:type owl:Class ;
  uml:hasStereotype uml:concrete ;
  rdfs:comment "Identifies a way in which an organisation may participate in the utility enterprise (e.g., customer, manufacturer, etc)." ;
  rdfs:isDefinedBy cim:Package_Common ;
  rdfs:label "OrganisationRole" ;
  rdfs:subClassOf cim:IdentifiedObject ;
.
cim:Package_Base
  rdf:type uml:Package ;
  rdf:type owl:NamedIndividual ;
  rdfs:comment "The equivalents package models equivalent networks." ;
  rdfs:isDefinedBy cim:Package_IEC61970 ;
  rdfs:label "Base" ;
.
cim:Package_Common
  rdf:type uml:Package ;
  rdf:type owl:NamedIndividual ;
  rdfs:comment "This package contains the information classes that support distribution management in general." ;
  rdfs:isDefinedBy cim:Package_IEC61968 ;
  rdfs:label "Common" ;
.
cim:Package_Core
  rdf:type uml:Package ;
  rdf:type owl:NamedIndividual ;
  rdfs:comment "Contains the core PowerSystemResource and ConductingEquipment entities shared by all applications plus common collections of those entities. Not all applications require all the Core entities.  This package does not depend on any other package except the Domain package, but most of the other packages have associations and generalizations that depend on it." ;
  rdfs:isDefinedBy cim:Package_Base ;
  rdfs:label "Core" ;
.
cim:Package_Customers
  rdf:type uml:Package ;
  rdf:type owl:NamedIndividual ;
  rdfs:comment "This package contains the core information classes that support customer billing applications." ;
  rdfs:isDefinedBy cim:Package_IEC61968 ;
  rdfs:label "Customers" ;
.
cim:Package_Domain
  rdf:type uml:Package ;
  rdf:type owl:NamedIndividual ;
  rdfs:comment """The domain package define primitive datatypes that are used by classes in other packages. Stereotypes are used to describe the datatypes. The following stereotypes are defined:
&lt;&lt;enumeration&gt;&gt; A list of permissible constant values.
&lt;&lt;Primitive&gt;&gt; The most basic data types used to compose all other data types.
&lt;&lt;CIMDatatype&gt;&gt; A datatype that contains a value attribute, an optional unit of measure and a unit multiplier. The unit and multiplier may be specified as a static variable initialized to the allowed value.
&lt;&lt;Compound&gt;&gt; A composite of Primitive, enumeration, CIMDatatype or othe Compound classes, as long as the Compound classes do not recurse.""" ;
  rdfs:isDefinedBy cim:Package_Base ;
  rdfs:label "Domain" ;
.
cim:Package_IEC61968
  rdf:type uml:Package ;
  rdf:type owl:NamedIndividual ;
  rdfs:comment """This package contains only diagrams that are used in the introduction of IEC61968-11 and that should not be printed in its Clause 6 describing the UML model (due to the naming convention, this package will be considered as informative).
Other specifications may freeley reuse some of these diagrams from their templates.""" ;
  rdfs:label "IEC61968" ;
.
cim:Package_IEC61970
  rdf:type uml:Package ;
  rdf:type owl:NamedIndividual ;
  rdfs:comment "Top package for IEC 61970." ;
  rdfs:label "IEC61970" ;
.
cim:Package_Metering
  rdf:type uml:Package ;
  rdf:type owl:NamedIndividual ;
  rdfs:comment "This package contains the core information classes that support end device applications with specialized classes for metering and premise are network devices, and remote reading functions. These classes are generally associated with the point where a service is delivered to the customer." ;
  rdfs:isDefinedBy cim:Package_IEC61968 ;
  rdfs:label "Metering" ;
.
cim:Package_PaymentMetering
  rdf:type uml:Package ;
  rdf:type owl:NamedIndividual ;
  rdfs:comment "This package is an extension of the Metering package and contains the information classes that support specialised applications such as prepayment metering. These classes are generally associated with the collection and control of revenue from the customer for a delivered service." ;
  rdfs:isDefinedBy cim:Package_IEC61968 ;
  rdfs:label "PaymentMetering" ;
.
cim:PositionPoint
  rdf:type owl:Class ;
  rdfs:comment "Set of spatial coordinates that determine a point, defined in coordinate system specified in 'Location.CoordinateSystem'. Use a single position point instance to desribe a point-oriented location. Use a sequence of position points to describe a line-oriented object (physical location of non-point oriented objects like cables or lines), or area of an object (like a substation or a geographical zone - in this case, have first and last position point with the same values)." ;
  rdfs:isDefinedBy cim:Package_Common ;
  rdfs:label "PositionPoint" ;
  rdfs:subClassOf [
      rdf:type owl:Restriction ;
      owl:allValuesFrom cim:Location ;
      owl:onProperty <http://ontology.tno.nl/cerise/cim-profile#PositionPoint.Location> ;
    ] ;
  rdfs:subClassOf [
      rdf:type owl:Restriction ;
      owl:allValuesFrom xsd:integer ;
      owl:onProperty <http://ontology.tno.nl/cerise/cim-profile#PositionPoint.sequenceNumber> ;
    ] ;
  rdfs:subClassOf [
      rdf:type owl:Restriction ;
      owl:allValuesFrom xsd:string ;
      owl:onProperty <http://ontology.tno.nl/cerise/cim-profile#PositionPoint.xPosition> ;
    ] ;
  rdfs:subClassOf [
      rdf:type owl:Restriction ;
      owl:allValuesFrom xsd:string ;
      owl:onProperty <http://ontology.tno.nl/cerise/cim-profile#PositionPoint.yPosition> ;
    ] ;
  rdfs:subClassOf [
      rdf:type owl:Restriction ;
      owl:allValuesFrom xsd:string ;
      owl:onProperty <http://ontology.tno.nl/cerise/cim-profile#PositionPoint.zPosition> ;
    ] ;
  rdfs:subClassOf [
      rdf:type owl:Restriction ;
      owl:cardinality "1"^^xsd:nonNegativeInteger ;
      owl:onProperty <http://ontology.tno.nl/cerise/cim-profile#PositionPoint.Location> ;
    ] ;
  rdfs:subClassOf [
      rdf:type owl:Restriction ;
      owl:cardinality "1"^^xsd:nonNegativeInteger ;
      owl:onProperty <http://ontology.tno.nl/cerise/cim-profile#PositionPoint.sequenceNumber> ;
    ] ;
  rdfs:subClassOf [
      rdf:type owl:Restriction ;
      owl:cardinality "1"^^xsd:nonNegativeInteger ;
      owl:onProperty <http://ontology.tno.nl/cerise/cim-profile#PositionPoint.xPosition> ;
    ] ;
  rdfs:subClassOf [
      rdf:type owl:Restriction ;
      owl:cardinality "1"^^xsd:nonNegativeInteger ;
      owl:onProperty <http://ontology.tno.nl/cerise/cim-profile#PositionPoint.yPosition> ;
    ] ;
  rdfs:subClassOf [
      rdf:type owl:Restriction ;
      owl:cardinality "1"^^xsd:nonNegativeInteger ;
      owl:onProperty <http://ontology.tno.nl/cerise/cim-profile#PositionPoint.zPosition> ;
    ] ;
.
<http://ontology.tno.nl/cerise/cim-profile#PositionPoint.Location>
  rdf:type owl:ObjectProperty ;
  rdfs:comment "Location described by this position point." ;
  rdfs:label "Location" ;
.
<http://ontology.tno.nl/cerise/cim-profile#PositionPoint.sequenceNumber>
  rdf:type owl:DatatypeProperty ;
  uml:hasStereotype uml:attribute ;
  rdfs:comment "Zero-relative sequence number of this point within a series of points." ;
  rdfs:label "sequenceNumber" ;
.
<http://ontology.tno.nl/cerise/cim-profile#PositionPoint.xPosition>
  rdf:type owl:DatatypeProperty ;
  uml:hasStereotype uml:attribute ;
  rdfs:comment "X axis position." ;
  rdfs:label "xPosition" ;
.
<http://ontology.tno.nl/cerise/cim-profile#PositionPoint.yPosition>
  rdf:type owl:DatatypeProperty ;
  uml:hasStereotype uml:attribute ;
  rdfs:comment "Y axis position." ;
  rdfs:label "yPosition" ;
.
<http://ontology.tno.nl/cerise/cim-profile#PositionPoint.zPosition>
  rdf:type owl:DatatypeProperty ;
  uml:hasStereotype uml:attribute ;
  rdfs:comment "(if applicable) Z axis position." ;
  rdfs:label "zPosition" ;
.
cim:Reading
  rdf:type owl:Class ;
  uml:hasStereotype uml:concrete ;
  rdfs:comment "Specific value measured by a meter or other asset, or calculated by a system. Each Reading is associated with a specific ReadingType." ;
  rdfs:isDefinedBy cim:Package_Metering ;
  rdfs:label "Reading" ;
  rdfs:subClassOf cim:BaseReading ;
  rdfs:subClassOf [
      rdf:type owl:Restriction ;
      owl:allValuesFrom cim:MeterReading ;
      owl:onProperty <http://ontology.tno.nl/cerise/cim-profile#Reading.MeterReadings> ;
    ] ;
  rdfs:subClassOf [
      rdf:type owl:Restriction ;
      owl:allValuesFrom cim:ReadingReasonKind ;
      owl:onProperty <http://ontology.tno.nl/cerise/cim-profile#Reading.reason> ;
    ] ;
  rdfs:subClassOf [
      rdf:type owl:Restriction ;
      owl:allValuesFrom cim:ReadingType ;
      owl:onProperty <http://ontology.tno.nl/cerise/cim-profile#Reading.ReadingType> ;
    ] ;
  rdfs:subClassOf [
      rdf:type owl:Restriction ;
      owl:cardinality "1"^^xsd:nonNegativeInteger ;
      owl:onProperty <http://ontology.tno.nl/cerise/cim-profile#Reading.ReadingType> ;
    ] ;
  rdfs:subClassOf [
      rdf:type owl:Restriction ;
      owl:cardinality "1"^^xsd:nonNegativeInteger ;
      owl:onProperty <http://ontology.tno.nl/cerise/cim-profile#Reading.reason> ;
    ] ;
  rdfs:subClassOf [
      rdf:type owl:Restriction ;
      owl:minCardinality "0"^^xsd:nonNegativeInteger ;
      owl:onProperty <http://ontology.tno.nl/cerise/cim-profile#Reading.MeterReadings> ;
    ] ;
.
<http://ontology.tno.nl/cerise/cim-profile#Reading.MeterReadings>
  rdf:type owl:ObjectProperty ;
  rdfs:comment "All meter readings (sets of values) containing this reading value." ;
  rdfs:label "MeterReadings" ;
  owl:inverseOf <http://ontology.tno.nl/cerise/cim-profile#MeterReading.Readings> ;
.
<http://ontology.tno.nl/cerise/cim-profile#Reading.ReadingType>
  rdf:type owl:ObjectProperty ;
  rdfs:comment "Type information for this reading value." ;
  rdfs:label "ReadingType" ;
.
<http://ontology.tno.nl/cerise/cim-profile#Reading.reason>
  rdf:type owl:ObjectProperty ;
  uml:hasStereotype uml:attribute ;
  rdfs:comment "Reason for this reading being taken." ;
  rdfs:label "reason" ;
.
cim:ReadingReasonKind
  rdf:type owl:Class ;
  uml:hasStereotype uml:enumeration ;
  rdfs:comment "Reason for the reading being taken." ;
  rdfs:isDefinedBy cim:Package_Metering ;
  rdfs:label "ReadingReasonKind" ;
.
<http://ontology.tno.nl/cerise/cim-profile#ReadingReasonKind.billing>
  rdf:type cim:ReadingReasonKind ;
  rdf:type owl:NamedIndividual ;
  rdfs:comment "Reading(s) taken or to be taken in response to a billing-related inquiry by a customer or other party. A variant of 'inquiry'." ;
  rdfs:label "billing" ;
.
<http://ontology.tno.nl/cerise/cim-profile#ReadingReasonKind.demandReset>
  rdf:type cim:ReadingReasonKind ;
  rdf:type owl:NamedIndividual ;
  rdfs:comment "Reading(s) taken or to be taken in conjunction with the resetting of one or more demand registers in a meter." ;
  rdfs:label "demandReset" ;
.
<http://ontology.tno.nl/cerise/cim-profile#ReadingReasonKind.inquiry>
  rdf:type cim:ReadingReasonKind ;
  rdf:type owl:NamedIndividual ;
  rdfs:comment "Reading(s) taken or to be taken in response to an inquiry by a customer or other party." ;
  rdfs:label "inquiry" ;
.
<http://ontology.tno.nl/cerise/cim-profile#ReadingReasonKind.installation>
  rdf:type cim:ReadingReasonKind ;
  rdf:type owl:NamedIndividual ;
  rdfs:comment "Reading(s) taken or to be taken in conjunction with installation of a meter." ;
  rdfs:label "installation" ;
.
<http://ontology.tno.nl/cerise/cim-profile#ReadingReasonKind.loadManagement>
  rdf:type cim:ReadingReasonKind ;
  rdf:type owl:NamedIndividual ;
  rdfs:comment "Reading(s) taken or to be taken to support management of loads on distribution networks or devices." ;
  rdfs:label "loadManagement" ;
.
<http://ontology.tno.nl/cerise/cim-profile#ReadingReasonKind.loadResearch>
  rdf:type cim:ReadingReasonKind ;
  rdf:type owl:NamedIndividual ;
  rdfs:comment "Reading(s) taken or to be taken to support research and analysis of loads on distribution networks or devices." ;
  rdfs:label "loadResearch" ;
.
<http://ontology.tno.nl/cerise/cim-profile#ReadingReasonKind.moveIn>
  rdf:type cim:ReadingReasonKind ;
  rdf:type owl:NamedIndividual ;
  rdfs:comment "Reading(s) taken or to be taken in conjunction with a customer move-in event." ;
  rdfs:label "moveIn" ;
.
<http://ontology.tno.nl/cerise/cim-profile#ReadingReasonKind.moveOut>
  rdf:type cim:ReadingReasonKind ;
  rdf:type owl:NamedIndividual ;
  rdfs:comment "Reading(s) taken or to be taken in conjunction with a customer move-out event." ;
  rdfs:label "moveOut" ;
.
<http://ontology.tno.nl/cerise/cim-profile#ReadingReasonKind.other>
  rdf:type cim:ReadingReasonKind ;
  rdf:type owl:NamedIndividual ;
  rdfs:comment "Reading(s) taken or to be taken for some other reason or purpose." ;
  rdfs:label "other" ;
.
<http://ontology.tno.nl/cerise/cim-profile#ReadingReasonKind.removal>
  rdf:type cim:ReadingReasonKind ;
  rdf:type owl:NamedIndividual ;
  rdfs:comment "Reading(s) taken or to be taken in conjunction with removal of a meter." ;
  rdfs:label "removal" ;
.
<http://ontology.tno.nl/cerise/cim-profile#ReadingReasonKind.serviceConnect>
  rdf:type cim:ReadingReasonKind ;
  rdf:type owl:NamedIndividual ;
  rdfs:comment "Reading(s) taken or to be taken in conjunction with a connection or re-connection of service." ;
  rdfs:label "serviceConnect" ;
.
<http://ontology.tno.nl/cerise/cim-profile#ReadingReasonKind.serviceDisconnect>
  rdf:type cim:ReadingReasonKind ;
  rdf:type owl:NamedIndividual ;
  rdfs:comment "Reading(s) taken or to be taken in conjunction with a disconnection of service." ;
  rdfs:label "serviceDisconnect" ;
.
cim:ReadingType
  rdf:type owl:Class ;
  uml:hasStereotype uml:concrete ;
  rdfs:comment "Detailed description for a type of a reading value. Values in attributes allow for creation of recommended codes to be used for identifying reading value types as follows: &lt;macroPeriod&gt;.&lt;aggregate&gt;.&lt;measuringPeriod&gt;.&lt;accumulation&gt;.&lt;flowDirection&gt;.&lt;commodity&gt;.&lt;measurementKind&gt;.&lt;interharmonic.numerator&gt;.&lt;interharmonic.denominator&gt;.&lt;argument.numerator&gt;.&lt;argument.denominator&gt;.&lt;tou&gt;.&lt;cpp&gt;.&lt;consumptionTier&gt;.&lt;phases&gt;.&lt;multiplier&gt;.&lt;unit&gt;.&lt;currency&gt;." ;
  rdfs:isDefinedBy cim:Package_Metering ;
  rdfs:label "ReadingType" ;
  rdfs:subClassOf cim:IdentifiedObject ;
  rdfs:subClassOf [
      rdf:type owl:Restriction ;
      owl:allValuesFrom xsd:string ;
      owl:onProperty <http://ontology.tno.nl/cerise/cim-profile#ReadingType.accumulation> ;
    ] ;
  rdfs:subClassOf [
      rdf:type owl:Restriction ;
      owl:allValuesFrom xsd:string ;
      owl:onProperty <http://ontology.tno.nl/cerise/cim-profile#ReadingType.aggregate> ;
    ] ;
  rdfs:subClassOf [
      rdf:type owl:Restriction ;
      owl:allValuesFrom xsd:string ;
      owl:onProperty <http://ontology.tno.nl/cerise/cim-profile#ReadingType.commodity> ;
    ] ;
  rdfs:subClassOf [
      rdf:type owl:Restriction ;
      owl:allValuesFrom xsd:string ;
      owl:onProperty <http://ontology.tno.nl/cerise/cim-profile#ReadingType.flowDirection> ;
    ] ;
  rdfs:subClassOf [
      rdf:type owl:Restriction ;
      owl:allValuesFrom xsd:string ;
      owl:onProperty <http://ontology.tno.nl/cerise/cim-profile#ReadingType.measurementKind> ;
    ] ;
  rdfs:subClassOf [
      rdf:type owl:Restriction ;
      owl:allValuesFrom xsd:string ;
      owl:onProperty <http://ontology.tno.nl/cerise/cim-profile#ReadingType.measuringPeriod> ;
    ] ;
  rdfs:subClassOf [
      rdf:type owl:Restriction ;
      owl:allValuesFrom xsd:string ;
      owl:onProperty <http://ontology.tno.nl/cerise/cim-profile#ReadingType.unit> ;
    ] ;
  rdfs:subClassOf [
      rdf:type owl:Restriction ;
      owl:cardinality "1"^^xsd:nonNegativeInteger ;
      owl:onProperty <http://ontology.tno.nl/cerise/cim-profile#ReadingType.accumulation> ;
    ] ;
  rdfs:subClassOf [
      rdf:type owl:Restriction ;
      owl:cardinality "1"^^xsd:nonNegativeInteger ;
      owl:onProperty <http://ontology.tno.nl/cerise/cim-profile#ReadingType.aggregate> ;
    ] ;
  rdfs:subClassOf [
      rdf:type owl:Restriction ;
      owl:cardinality "1"^^xsd:nonNegativeInteger ;
      owl:onProperty <http://ontology.tno.nl/cerise/cim-profile#ReadingType.commodity> ;
    ] ;
  rdfs:subClassOf [
      rdf:type owl:Restriction ;
      owl:cardinality "1"^^xsd:nonNegativeInteger ;
      owl:onProperty <http://ontology.tno.nl/cerise/cim-profile#ReadingType.flowDirection> ;
    ] ;
  rdfs:subClassOf [
      rdf:type owl:Restriction ;
      owl:cardinality "1"^^xsd:nonNegativeInteger ;
      owl:onProperty <http://ontology.tno.nl/cerise/cim-profile#ReadingType.measurementKind> ;
    ] ;
  rdfs:subClassOf [
      rdf:type owl:Restriction ;
      owl:cardinality "1"^^xsd:nonNegativeInteger ;
      owl:onProperty <http://ontology.tno.nl/cerise/cim-profile#ReadingType.measuringPeriod> ;
    ] ;
  rdfs:subClassOf [
      rdf:type owl:Restriction ;
      owl:cardinality "1"^^xsd:nonNegativeInteger ;
      owl:onProperty <http://ontology.tno.nl/cerise/cim-profile#ReadingType.unit> ;
    ] ;
.
<http://ontology.tno.nl/cerise/cim-profile#ReadingType.accumulation>
  rdf:type owl:DatatypeProperty ;
  uml:hasStereotype uml:attribute ;
  rdfs:comment "Accumulation behaviour of a reading over time, usually 'measuringPeriod', to be used with individual endpoints (as opposed to 'macroPeriod' and 'aggregate' that are used to describe aggregations of data from individual endpoints)." ;
  rdfs:label "accumulation" ;
.
<http://ontology.tno.nl/cerise/cim-profile#ReadingType.aggregate>
  rdf:type owl:DatatypeProperty ;
  uml:hasStereotype uml:attribute ;
  rdfs:comment "Salient attribute of the reading data aggregated from individual endpoints. This is mainly used to define a mathematical operation carried out over 'macroPeriod', but may also be used to describe an attribute of the data when the 'macroPeriod' is not defined." ;
  rdfs:label "aggregate" ;
.
<http://ontology.tno.nl/cerise/cim-profile#ReadingType.commodity>
  rdf:type owl:DatatypeProperty ;
  uml:hasStereotype uml:attribute ;
  rdfs:comment "Commodity being measured." ;
  rdfs:label "commodity" ;
.
<http://ontology.tno.nl/cerise/cim-profile#ReadingType.flowDirection>
  rdf:type owl:DatatypeProperty ;
  uml:hasStereotype uml:attribute ;
  rdfs:comment "Flow direction for a reading where the direction of flow of the commodity is important (for electricity measurements this includes current, energy, power, and demand)." ;
  rdfs:label "flowDirection" ;
.
<http://ontology.tno.nl/cerise/cim-profile#ReadingType.measurementKind>
  rdf:type owl:DatatypeProperty ;
  uml:hasStereotype uml:attribute ;
  rdfs:comment "Identifies \"what\" is being measured, as refinement of 'commodity'. When combined with 'unit', it provides detail to the unit of measure. For example, 'energy' with a unit of measure of 'kWh' indicates to the user that active energy is being measured, while with 'kVAh' or 'kVArh', it indicates apparent energy and reactive energy, respectively. 'power' can be combined in a similar way with various power units of measure: Distortion power ('distortionVoltAmperes') with 'kVA' is different from 'power' with 'kVA'." ;
  rdfs:label "measurementKind" ;
.
<http://ontology.tno.nl/cerise/cim-profile#ReadingType.measuringPeriod>
  rdf:type owl:DatatypeProperty ;
  uml:hasStereotype uml:attribute ;
  rdfs:comment """Time attribute inherent or fundamental to the reading value (as opposed to 'macroPeriod' that supplies an \"adjective\" to describe aspects of a time period with regard to the measurement). It refers to the way the value was originally measured and not to the frequency at which it is reported or presented. For example, an hourly interval of consumption data would have value 'hourly' as an attribute. However in the case of an hourly sampled voltage value, the meterReadings schema would carry the 'hourly' interval size information.
It is common for meters to report demand in a form that is measured over the course of a portion of an hour, while enterprise applications however commonly assume the demand (in kW or kVAr) normalised to 1 hour. The sytem that receives readings directly from the meter therefore must perform this transformation before publishing readings for use by the other enterprise systems. The scalar used is chosen based on the block size (not any sub-interval size).""" ;
  rdfs:label "measuringPeriod" ;
.
<http://ontology.tno.nl/cerise/cim-profile#ReadingType.unit>
  rdf:type owl:DatatypeProperty ;
  uml:hasStereotype uml:attribute ;
  rdfs:comment "Metering-specific unit." ;
  rdfs:label "unit" ;
.
cim:Register
  rdf:type owl:Class ;
  rdfs:comment "A device that indicates or records units of the commodity or other quantity measured." ;
  rdfs:isDefinedBy cim:Package_Metering ;
  rdfs:label "Register" ;
  rdfs:subClassOf cim:IdentifiedObject ;
  rdfs:subClassOf [
      rdf:type owl:Restriction ;
      owl:allValuesFrom cim:Channel ;
      owl:onProperty <http://ontology.tno.nl/cerise/cim-profile#Register.Channels> ;
    ] ;
  rdfs:subClassOf [
      rdf:type owl:Restriction ;
      owl:allValuesFrom xsd:boolean ;
      owl:onProperty <http://ontology.tno.nl/cerise/cim-profile#Register.isVirtual> ;
    ] ;
  rdfs:subClassOf [
      rdf:type owl:Restriction ;
      owl:allValuesFrom xsd:integer ;
      owl:onProperty <http://ontology.tno.nl/cerise/cim-profile#Register.leftDigitCount> ;
    ] ;
  rdfs:subClassOf [
      rdf:type owl:Restriction ;
      owl:allValuesFrom xsd:integer ;
      owl:onProperty <http://ontology.tno.nl/cerise/cim-profile#Register.rightDigitCount> ;
    ] ;
  rdfs:subClassOf [
      rdf:type owl:Restriction ;
      owl:cardinality "1"^^xsd:nonNegativeInteger ;
      owl:onProperty <http://ontology.tno.nl/cerise/cim-profile#Register.isVirtual> ;
    ] ;
  rdfs:subClassOf [
      rdf:type owl:Restriction ;
      owl:cardinality "1"^^xsd:nonNegativeInteger ;
      owl:onProperty <http://ontology.tno.nl/cerise/cim-profile#Register.leftDigitCount> ;
    ] ;
  rdfs:subClassOf [
      rdf:type owl:Restriction ;
      owl:cardinality "1"^^xsd:nonNegativeInteger ;
      owl:onProperty <http://ontology.tno.nl/cerise/cim-profile#Register.rightDigitCount> ;
    ] ;
  rdfs:subClassOf [
      rdf:type owl:Restriction ;
      owl:minCardinality "1"^^xsd:nonNegativeInteger ;
      owl:onProperty <http://ontology.tno.nl/cerise/cim-profile#Register.Channels> ;
    ] ;
.
<http://ontology.tno.nl/cerise/cim-profile#Register.Channels>
  rdf:type owl:ObjectProperty ;
  rdfs:comment "All channels that collect/report values from this register." ;
  rdfs:label "Channels" ;
  owl:inverseOf <http://ontology.tno.nl/cerise/cim-profile#Channel.Register> ;
.
<http://ontology.tno.nl/cerise/cim-profile#Register.isVirtual>
  rdf:type owl:DatatypeProperty ;
  uml:hasStereotype uml:attribute ;
  rdfs:comment "If true, the data it produces is  calculated or measured by a device other than a physical end device/meter. Otherwise, any data streams it produces are measured by the hardware of the end device/meter itself." ;
  rdfs:label "isVirtual" ;
.
<http://ontology.tno.nl/cerise/cim-profile#Register.leftDigitCount>
  rdf:type owl:DatatypeProperty ;
  uml:hasStereotype uml:attribute ;
  rdfs:comment "Number of digits (dials on a mechanical meter) to the left of the decimal place; default is normally 5." ;
  rdfs:label "leftDigitCount" ;
.
<http://ontology.tno.nl/cerise/cim-profile#Register.rightDigitCount>
  rdf:type owl:DatatypeProperty ;
  uml:hasStereotype uml:attribute ;
  rdfs:comment "Number of digits (dials on a mechanical meter) to the right of the decimal place." ;
  rdfs:label "rightDigitCount" ;
.
cim:ServiceCategory
  rdf:type owl:Class ;
  uml:hasStereotype uml:concrete ;
  rdfs:comment "Category of service provided to the customer." ;
  rdfs:isDefinedBy cim:Package_Customers ;
  rdfs:label "ServiceCategory" ;
  rdfs:subClassOf cim:IdentifiedObject ;
  rdfs:subClassOf [
      rdf:type owl:Restriction ;
      owl:allValuesFrom cim:ServiceKind ;
      owl:onProperty <http://ontology.tno.nl/cerise/cim-profile#ServiceCategory.kind> ;
    ] ;
  rdfs:subClassOf [
      rdf:type owl:Restriction ;
      owl:cardinality "1"^^xsd:nonNegativeInteger ;
      owl:onProperty <http://ontology.tno.nl/cerise/cim-profile#ServiceCategory.kind> ;
    ] ;
.
<http://ontology.tno.nl/cerise/cim-profile#ServiceCategory.kind>
  rdf:type owl:ObjectProperty ;
  uml:hasStereotype uml:attribute ;
  rdfs:comment "Kind of service." ;
  rdfs:label "kind" ;
.
cim:ServiceKind
  rdf:type owl:Class ;
  uml:hasStereotype uml:enumeration ;
  rdfs:comment "Kind of service." ;
  rdfs:isDefinedBy cim:Package_Customers ;
  rdfs:label "ServiceKind" ;
.
<http://ontology.tno.nl/cerise/cim-profile#ServiceKind.electricity>
  rdf:type cim:ServiceKind ;
  rdf:type owl:NamedIndividual ;
  rdfs:comment "Electricity service." ;
  rdfs:label "electricity" ;
.
<http://ontology.tno.nl/cerise/cim-profile#ServiceKind.gas>
  rdf:type cim:ServiceKind ;
  rdf:type owl:NamedIndividual ;
  rdfs:comment "Gas service." ;
  rdfs:label "gas" ;
.
<http://ontology.tno.nl/cerise/cim-profile#ServiceKind.heat>
  rdf:type cim:ServiceKind ;
  rdf:type owl:NamedIndividual ;
  rdfs:comment "Heat service." ;
  rdfs:label "heat" ;
.
<http://ontology.tno.nl/cerise/cim-profile#ServiceKind.internet>
  rdf:type cim:ServiceKind ;
  rdf:type owl:NamedIndividual ;
  rdfs:comment "Internet service." ;
  rdfs:label "internet" ;
.
<http://ontology.tno.nl/cerise/cim-profile#ServiceKind.other>
  rdf:type cim:ServiceKind ;
  rdf:type owl:NamedIndividual ;
  rdfs:comment "Other kind of service." ;
  rdfs:label "other" ;
.
<http://ontology.tno.nl/cerise/cim-profile#ServiceKind.rates>
  rdf:type cim:ServiceKind ;
  rdf:type owl:NamedIndividual ;
  rdfs:comment "Rates (e.g. tax, charge, toll, duty, tariff, etc.) service." ;
  rdfs:label "rates" ;
.
<http://ontology.tno.nl/cerise/cim-profile#ServiceKind.refuse>
  rdf:type cim:ServiceKind ;
  rdf:type owl:NamedIndividual ;
  rdfs:comment "Refuse (waster) service." ;
  rdfs:label "refuse" ;
.
<http://ontology.tno.nl/cerise/cim-profile#ServiceKind.sewerage>
  rdf:type cim:ServiceKind ;
  rdf:type owl:NamedIndividual ;
  rdfs:comment "Sewerage service." ;
  rdfs:label "sewerage" ;
.
<http://ontology.tno.nl/cerise/cim-profile#ServiceKind.time>
  rdf:type cim:ServiceKind ;
  rdf:type owl:NamedIndividual ;
  rdfs:comment "Time service." ;
  rdfs:label "time" ;
.
<http://ontology.tno.nl/cerise/cim-profile#ServiceKind.tvLicence>
  rdf:type cim:ServiceKind ;
  rdf:type owl:NamedIndividual ;
  rdfs:comment "TV license service." ;
  rdfs:label "tvLicence" ;
.
<http://ontology.tno.nl/cerise/cim-profile#ServiceKind.water>
  rdf:type cim:ServiceKind ;
  rdf:type owl:NamedIndividual ;
  rdfs:comment "Water service." ;
  rdfs:label "water" ;
.
cim:ServiceSupplier
  rdf:type owl:Class ;
  rdfs:comment "Organisation that provides services to customers." ;
  rdfs:isDefinedBy cim:Package_PaymentMetering ;
  rdfs:label "ServiceSupplier" ;
  rdfs:subClassOf cim:OrganisationRole ;
  rdfs:subClassOf [
      rdf:type owl:Restriction ;
      owl:allValuesFrom cim:SupplierKind ;
      owl:onProperty <http://ontology.tno.nl/cerise/cim-profile#ServiceSupplier.kind> ;
    ] ;
  rdfs:subClassOf [
      rdf:type owl:Restriction ;
      owl:allValuesFrom xsd:string ;
      owl:onProperty <http://ontology.tno.nl/cerise/cim-profile#ServiceSupplier.issuerIdentificationNumber> ;
    ] ;
  rdfs:subClassOf [
      rdf:type owl:Restriction ;
      owl:cardinality "1"^^xsd:nonNegativeInteger ;
      owl:onProperty <http://ontology.tno.nl/cerise/cim-profile#ServiceSupplier.issuerIdentificationNumber> ;
    ] ;
  rdfs:subClassOf [
      rdf:type owl:Restriction ;
      owl:cardinality "1"^^xsd:nonNegativeInteger ;
      owl:onProperty <http://ontology.tno.nl/cerise/cim-profile#ServiceSupplier.kind> ;
    ] ;
.
<http://ontology.tno.nl/cerise/cim-profile#ServiceSupplier.issuerIdentificationNumber>
  rdf:type owl:DatatypeProperty ;
  uml:hasStereotype uml:attribute ;
  rdfs:comment "Unique transaction reference prefix number issued to an entity by the International Standards Organisation for the purpose of tagging onto electronic financial transactions, as defined in ISO/IEC 7812-1 and ISO/IEC 7812-2." ;
  rdfs:label "issuerIdentificationNumber" ;
.
<http://ontology.tno.nl/cerise/cim-profile#ServiceSupplier.kind>
  rdf:type owl:ObjectProperty ;
  uml:hasStereotype uml:attribute ;
  rdfs:comment "Kind of supplier." ;
  rdfs:label "kind" ;
.
cim:SimpleEndDeviceFunction
  rdf:type owl:Class ;
  rdfs:comment "Simple end device function distinguished by 'kind'. Use this class for instances that cannot be represented by another end device function specialisations." ;
  rdfs:isDefinedBy cim:Package_Metering ;
  rdfs:label "SimpleEndDeviceFunction" ;
  rdfs:subClassOf cim:EndDeviceFunction ;
  rdfs:subClassOf [
      rdf:type owl:Restriction ;
      owl:allValuesFrom cim:EndDevice ;
      owl:onProperty <http://ontology.tno.nl/cerise/cim-profile#EndDeviceFunction.EndDevice> ;
    ] ;
  rdfs:subClassOf [
      rdf:type owl:Restriction ;
      owl:allValuesFrom cim:EndDeviceFunctionKind ;
      owl:onProperty <http://ontology.tno.nl/cerise/cim-profile#SimpleEndDeviceFunction.kind> ;
    ] ;
  rdfs:subClassOf [
      rdf:type owl:Restriction ;
      owl:cardinality "1"^^xsd:nonNegativeInteger ;
      owl:onProperty <http://ontology.tno.nl/cerise/cim-profile#EndDeviceFunction.EndDevice> ;
    ] ;
  rdfs:subClassOf [
      rdf:type owl:Restriction ;
      owl:cardinality "1"^^xsd:nonNegativeInteger ;
      owl:onProperty <http://ontology.tno.nl/cerise/cim-profile#SimpleEndDeviceFunction.kind> ;
    ] ;
.
<http://ontology.tno.nl/cerise/cim-profile#SimpleEndDeviceFunction.kind>
  rdf:type owl:ObjectProperty ;
  uml:hasStereotype uml:attribute ;
  rdfs:comment "Kind of this function." ;
  rdfs:label "kind" ;
.
cim:Status
  rdf:type owl:Class ;
  uml:hasStereotype uml:compound ;
  rdfs:comment "Current status information relevant to an entity." ;
  rdfs:isDefinedBy cim:Package_Common ;
  rdfs:label "Status" ;
  rdfs:subClassOf [
      rdf:type owl:Restriction ;
      owl:allValuesFrom xsd:dateTime ;
      owl:onProperty <http://ontology.tno.nl/cerise/cim-profile#Status.dateTime> ;
    ] ;
  rdfs:subClassOf [
      rdf:type owl:Restriction ;
      owl:allValuesFrom xsd:string ;
      owl:onProperty <http://ontology.tno.nl/cerise/cim-profile#Status.reason> ;
    ] ;
  rdfs:subClassOf [
      rdf:type owl:Restriction ;
      owl:allValuesFrom xsd:string ;
      owl:onProperty <http://ontology.tno.nl/cerise/cim-profile#Status.remark> ;
    ] ;
  rdfs:subClassOf [
      rdf:type owl:Restriction ;
      owl:allValuesFrom xsd:string ;
      owl:onProperty <http://ontology.tno.nl/cerise/cim-profile#Status.value> ;
    ] ;
  rdfs:subClassOf [
      rdf:type owl:Restriction ;
      owl:cardinality "1"^^xsd:nonNegativeInteger ;
      owl:onProperty <http://ontology.tno.nl/cerise/cim-profile#Status.dateTime> ;
    ] ;
  rdfs:subClassOf [
      rdf:type owl:Restriction ;
      owl:cardinality "1"^^xsd:nonNegativeInteger ;
      owl:onProperty <http://ontology.tno.nl/cerise/cim-profile#Status.reason> ;
    ] ;
  rdfs:subClassOf [
      rdf:type owl:Restriction ;
      owl:cardinality "1"^^xsd:nonNegativeInteger ;
      owl:onProperty <http://ontology.tno.nl/cerise/cim-profile#Status.remark> ;
    ] ;
  rdfs:subClassOf [
      rdf:type owl:Restriction ;
      owl:cardinality "1"^^xsd:nonNegativeInteger ;
      owl:onProperty <http://ontology.tno.nl/cerise/cim-profile#Status.value> ;
    ] ;
.
<http://ontology.tno.nl/cerise/cim-profile#Status.dateTime>
  rdf:type owl:DatatypeProperty ;
  uml:hasStereotype uml:attribute ;
  rdfs:comment "Date and time for which status 'value' applies." ;
  rdfs:label "dateTime" ;
.
<http://ontology.tno.nl/cerise/cim-profile#Status.reason>
  rdf:type owl:DatatypeProperty ;
  uml:hasStereotype uml:attribute ;
  rdfs:comment "Reason code or explanation for why an object went to the current status 'value'." ;
  rdfs:label "reason" ;
.
<http://ontology.tno.nl/cerise/cim-profile#Status.remark>
  rdf:type owl:DatatypeProperty ;
  uml:hasStereotype uml:attribute ;
  rdfs:comment "Pertinent information regarding the current 'value', as free form text." ;
  rdfs:label "remark" ;
.
<http://ontology.tno.nl/cerise/cim-profile#Status.value>
  rdf:type owl:DatatypeProperty ;
  uml:hasStereotype uml:attribute ;
  rdfs:comment "Status value at 'dateTime'; prior status changes may have been kept in instances of activity records associated with the object to which this status applies." ;
  rdfs:label "value" ;
.
cim:StreetAddress
  rdf:type owl:Class ;
  uml:hasStereotype uml:compound ;
  rdfs:comment "General purpose street address information." ;
  rdfs:isDefinedBy cim:Package_Common ;
  rdfs:label "StreetAddress" ;
  rdfs:subClassOf [
      rdf:type owl:Restriction ;
      owl:allValuesFrom cim:StreetDetail ;
      owl:onProperty <http://ontology.tno.nl/cerise/cim-profile#StreetAddress.streetDetail> ;
    ] ;
  rdfs:subClassOf [
      rdf:type owl:Restriction ;
      owl:allValuesFrom cim:TownDetail ;
      owl:onProperty <http://ontology.tno.nl/cerise/cim-profile#StreetAddress.townDetail> ;
    ] ;
  rdfs:subClassOf [
      rdf:type owl:Restriction ;
      owl:cardinality "1"^^xsd:nonNegativeInteger ;
      owl:onProperty <http://ontology.tno.nl/cerise/cim-profile#StreetAddress.streetDetail> ;
    ] ;
  rdfs:subClassOf [
      rdf:type owl:Restriction ;
      owl:cardinality "1"^^xsd:nonNegativeInteger ;
      owl:onProperty <http://ontology.tno.nl/cerise/cim-profile#StreetAddress.townDetail> ;
    ] ;
.
<http://ontology.tno.nl/cerise/cim-profile#StreetAddress.streetDetail>
  rdf:type owl:ObjectProperty ;
  uml:hasStereotype uml:attribute ;
  rdfs:comment "Street detail." ;
  rdfs:label "streetDetail" ;
.
<http://ontology.tno.nl/cerise/cim-profile#StreetAddress.townDetail>
  rdf:type owl:ObjectProperty ;
  uml:hasStereotype uml:attribute ;
  rdfs:comment "Town detail." ;
  rdfs:label "townDetail" ;
.
cim:StreetDetail
  rdf:type owl:Class ;
  uml:hasStereotype uml:compound ;
  rdfs:comment "Street details, in the context of address." ;
  rdfs:isDefinedBy cim:Package_Common ;
  rdfs:label "StreetDetail" ;
  rdfs:subClassOf [
      rdf:type owl:Restriction ;
      owl:allValuesFrom xsd:boolean ;
      owl:onProperty <http://ontology.tno.nl/cerise/cim-profile#StreetDetail.withinTownLimits> ;
    ] ;
  rdfs:subClassOf [
      rdf:type owl:Restriction ;
      owl:allValuesFrom xsd:string ;
      owl:onProperty <http://ontology.tno.nl/cerise/cim-profile#StreetDetail.addressGeneral> ;
    ] ;
  rdfs:subClassOf [
      rdf:type owl:Restriction ;
      owl:allValuesFrom xsd:string ;
      owl:onProperty <http://ontology.tno.nl/cerise/cim-profile#StreetDetail.buildingName> ;
    ] ;
  rdfs:subClassOf [
      rdf:type owl:Restriction ;
      owl:allValuesFrom xsd:string ;
      owl:onProperty <http://ontology.tno.nl/cerise/cim-profile#StreetDetail.code> ;
    ] ;
  rdfs:subClassOf [
      rdf:type owl:Restriction ;
      owl:allValuesFrom xsd:string ;
      owl:onProperty <http://ontology.tno.nl/cerise/cim-profile#StreetDetail.name> ;
    ] ;
  rdfs:subClassOf [
      rdf:type owl:Restriction ;
      owl:allValuesFrom xsd:string ;
      owl:onProperty <http://ontology.tno.nl/cerise/cim-profile#StreetDetail.number> ;
    ] ;
  rdfs:subClassOf [
      rdf:type owl:Restriction ;
      owl:allValuesFrom xsd:string ;
      owl:onProperty <http://ontology.tno.nl/cerise/cim-profile#StreetDetail.prefix> ;
    ] ;
  rdfs:subClassOf [
      rdf:type owl:Restriction ;
      owl:allValuesFrom xsd:string ;
      owl:onProperty <http://ontology.tno.nl/cerise/cim-profile#StreetDetail.suffix> ;
    ] ;
  rdfs:subClassOf [
      rdf:type owl:Restriction ;
      owl:allValuesFrom xsd:string ;
      owl:onProperty <http://ontology.tno.nl/cerise/cim-profile#StreetDetail.suiteNumber> ;
    ] ;
  rdfs:subClassOf [
      rdf:type owl:Restriction ;
      owl:allValuesFrom xsd:string ;
      owl:onProperty <http://ontology.tno.nl/cerise/cim-profile#StreetDetail.type> ;
    ] ;
  rdfs:subClassOf [
      rdf:type owl:Restriction ;
      owl:cardinality "1"^^xsd:nonNegativeInteger ;
      owl:onProperty <http://ontology.tno.nl/cerise/cim-profile#StreetDetail.addressGeneral> ;
    ] ;
  rdfs:subClassOf [
      rdf:type owl:Restriction ;
      owl:cardinality "1"^^xsd:nonNegativeInteger ;
      owl:onProperty <http://ontology.tno.nl/cerise/cim-profile#StreetDetail.buildingName> ;
    ] ;
  rdfs:subClassOf [
      rdf:type owl:Restriction ;
      owl:cardinality "1"^^xsd:nonNegativeInteger ;
      owl:onProperty <http://ontology.tno.nl/cerise/cim-profile#StreetDetail.code> ;
    ] ;
  rdfs:subClassOf [
      rdf:type owl:Restriction ;
      owl:cardinality "1"^^xsd:nonNegativeInteger ;
      owl:onProperty <http://ontology.tno.nl/cerise/cim-profile#StreetDetail.name> ;
    ] ;
  rdfs:subClassOf [
      rdf:type owl:Restriction ;
      owl:cardinality "1"^^xsd:nonNegativeInteger ;
      owl:onProperty <http://ontology.tno.nl/cerise/cim-profile#StreetDetail.number> ;
    ] ;
  rdfs:subClassOf [
      rdf:type owl:Restriction ;
      owl:cardinality "1"^^xsd:nonNegativeInteger ;
      owl:onProperty <http://ontology.tno.nl/cerise/cim-profile#StreetDetail.prefix> ;
    ] ;
  rdfs:subClassOf [
      rdf:type owl:Restriction ;
      owl:cardinality "1"^^xsd:nonNegativeInteger ;
      owl:onProperty <http://ontology.tno.nl/cerise/cim-profile#StreetDetail.suffix> ;
    ] ;
  rdfs:subClassOf [
      rdf:type owl:Restriction ;
      owl:cardinality "1"^^xsd:nonNegativeInteger ;
      owl:onProperty <http://ontology.tno.nl/cerise/cim-profile#StreetDetail.suiteNumber> ;
    ] ;
  rdfs:subClassOf [
      rdf:type owl:Restriction ;
      owl:cardinality "1"^^xsd:nonNegativeInteger ;
      owl:onProperty <http://ontology.tno.nl/cerise/cim-profile#StreetDetail.type> ;
    ] ;
  rdfs:subClassOf [
      rdf:type owl:Restriction ;
      owl:cardinality "1"^^xsd:nonNegativeInteger ;
      owl:onProperty <http://ontology.tno.nl/cerise/cim-profile#StreetDetail.withinTownLimits> ;
    ] ;
.
<http://ontology.tno.nl/cerise/cim-profile#StreetDetail.addressGeneral>
  rdf:type owl:DatatypeProperty ;
  uml:hasStereotype uml:attribute ;
  rdfs:comment "Additional address information, for example a mailstop." ;
  rdfs:label "addressGeneral" ;
.
<http://ontology.tno.nl/cerise/cim-profile#StreetDetail.buildingName>
  rdf:type owl:DatatypeProperty ;
  uml:hasStereotype uml:attribute ;
  rdfs:comment "(if applicable) In certain cases the physical location of the place of interest does not have a direct point of entry from the street, but may be located inside a larger structure such as a building, complex, office block, apartment, etc." ;
  rdfs:label "buildingName" ;
.
<http://ontology.tno.nl/cerise/cim-profile#StreetDetail.code>
  rdf:type owl:DatatypeProperty ;
  uml:hasStereotype uml:attribute ;
  rdfs:comment "(if applicable) Utilities often make use of external reference systems, such as those of the town-planner's department or surveyor general's mapping system, that allocate global reference codes to streets." ;
  rdfs:label "code" ;
.
<http://ontology.tno.nl/cerise/cim-profile#StreetDetail.name>
  rdf:type owl:DatatypeProperty ;
  uml:hasStereotype uml:attribute ;
  rdfs:comment "Name of the street." ;
  rdfs:label "name" ;
.
<http://ontology.tno.nl/cerise/cim-profile#StreetDetail.number>
  rdf:type owl:DatatypeProperty ;
  uml:hasStereotype uml:attribute ;
  rdfs:comment "Designator of the specific location on the street." ;
  rdfs:label "number" ;
.
<http://ontology.tno.nl/cerise/cim-profile#StreetDetail.prefix>
  rdf:type owl:DatatypeProperty ;
  uml:hasStereotype uml:attribute ;
  rdfs:comment "Prefix to the street name. For example: North, South, East, West." ;
  rdfs:label "prefix" ;
.
<http://ontology.tno.nl/cerise/cim-profile#StreetDetail.suffix>
  rdf:type owl:DatatypeProperty ;
  uml:hasStereotype uml:attribute ;
  rdfs:comment "Suffix to the street name. For example: North, South, East, West." ;
  rdfs:label "suffix" ;
.
<http://ontology.tno.nl/cerise/cim-profile#StreetDetail.suiteNumber>
  rdf:type owl:DatatypeProperty ;
  uml:hasStereotype uml:attribute ;
  rdfs:comment "Number of the apartment or suite." ;
  rdfs:label "suiteNumber" ;
.
<http://ontology.tno.nl/cerise/cim-profile#StreetDetail.type>
  rdf:type owl:DatatypeProperty ;
  uml:hasStereotype uml:attribute ;
  rdfs:comment "Type of street. Examples include: street, circle, boulevard, avenue, road, drive, etc." ;
  rdfs:label "type" ;
.
<http://ontology.tno.nl/cerise/cim-profile#StreetDetail.withinTownLimits>
  rdf:type owl:DatatypeProperty ;
  uml:hasStereotype uml:attribute ;
  rdfs:comment "True if this street is within the legal geographical boundaries of the specified town (default)." ;
  rdfs:label "withinTownLimits" ;
.
cim:SupplierKind
  rdf:type owl:Class ;
  uml:hasStereotype uml:enumeration ;
  rdfs:comment "Kind of supplier." ;
  rdfs:isDefinedBy cim:Package_PaymentMetering ;
  rdfs:label "SupplierKind" ;
.
<http://ontology.tno.nl/cerise/cim-profile#SupplierKind.other>
  rdf:type cim:SupplierKind ;
  rdf:type owl:NamedIndividual ;
  rdfs:comment "Other kind of supplier." ;
  rdfs:label "other" ;
.
<http://ontology.tno.nl/cerise/cim-profile#SupplierKind.retailer>
  rdf:type cim:SupplierKind ;
  rdf:type owl:NamedIndividual ;
  rdfs:comment "Entity that sells the service, but does not deliver to the customer; applies to the deregulated markets." ;
  rdfs:label "retailer" ;
.
<http://ontology.tno.nl/cerise/cim-profile#SupplierKind.utility>
  rdf:type cim:SupplierKind ;
  rdf:type owl:NamedIndividual ;
  rdfs:comment "Entity that delivers the service to the customer." ;
  rdfs:label "utility" ;
.
cim:TelephoneNumber
  rdf:type owl:Class ;
  uml:hasStereotype uml:compound ;
  rdfs:comment "Telephone number." ;
  rdfs:isDefinedBy cim:Package_Common ;
  rdfs:label "TelephoneNumber" ;
  rdfs:subClassOf [
      rdf:type owl:Restriction ;
      owl:allValuesFrom xsd:string ;
      owl:onProperty <http://ontology.tno.nl/cerise/cim-profile#TelephoneNumber.areaCode> ;
    ] ;
  rdfs:subClassOf [
      rdf:type owl:Restriction ;
      owl:allValuesFrom xsd:string ;
      owl:onProperty <http://ontology.tno.nl/cerise/cim-profile#TelephoneNumber.cityCode> ;
    ] ;
  rdfs:subClassOf [
      rdf:type owl:Restriction ;
      owl:allValuesFrom xsd:string ;
      owl:onProperty <http://ontology.tno.nl/cerise/cim-profile#TelephoneNumber.countryCode> ;
    ] ;
  rdfs:subClassOf [
      rdf:type owl:Restriction ;
      owl:allValuesFrom xsd:string ;
      owl:onProperty <http://ontology.tno.nl/cerise/cim-profile#TelephoneNumber.extension> ;
    ] ;
  rdfs:subClassOf [
      rdf:type owl:Restriction ;
      owl:allValuesFrom xsd:string ;
      owl:onProperty <http://ontology.tno.nl/cerise/cim-profile#TelephoneNumber.localNumber> ;
    ] ;
  rdfs:subClassOf [
      rdf:type owl:Restriction ;
      owl:cardinality "1"^^xsd:nonNegativeInteger ;
      owl:onProperty <http://ontology.tno.nl/cerise/cim-profile#TelephoneNumber.areaCode> ;
    ] ;
  rdfs:subClassOf [
      rdf:type owl:Restriction ;
      owl:cardinality "1"^^xsd:nonNegativeInteger ;
      owl:onProperty <http://ontology.tno.nl/cerise/cim-profile#TelephoneNumber.cityCode> ;
    ] ;
  rdfs:subClassOf [
      rdf:type owl:Restriction ;
      owl:cardinality "1"^^xsd:nonNegativeInteger ;
      owl:onProperty <http://ontology.tno.nl/cerise/cim-profile#TelephoneNumber.countryCode> ;
    ] ;
  rdfs:subClassOf [
      rdf:type owl:Restriction ;
      owl:cardinality "1"^^xsd:nonNegativeInteger ;
      owl:onProperty <http://ontology.tno.nl/cerise/cim-profile#TelephoneNumber.extension> ;
    ] ;
  rdfs:subClassOf [
      rdf:type owl:Restriction ;
      owl:cardinality "1"^^xsd:nonNegativeInteger ;
      owl:onProperty <http://ontology.tno.nl/cerise/cim-profile#TelephoneNumber.localNumber> ;
    ] ;
.
<http://ontology.tno.nl/cerise/cim-profile#TelephoneNumber.areaCode>
  rdf:type owl:DatatypeProperty ;
  uml:hasStereotype uml:attribute ;
  rdfs:comment "Area or region code." ;
  rdfs:label "areaCode" ;
.
<http://ontology.tno.nl/cerise/cim-profile#TelephoneNumber.cityCode>
  rdf:type owl:DatatypeProperty ;
  uml:hasStereotype uml:attribute ;
  rdfs:comment "(if applicable) City code." ;
  rdfs:label "cityCode" ;
.
<http://ontology.tno.nl/cerise/cim-profile#TelephoneNumber.countryCode>
  rdf:type owl:DatatypeProperty ;
  uml:hasStereotype uml:attribute ;
  rdfs:comment "Country code." ;
  rdfs:label "countryCode" ;
.
<http://ontology.tno.nl/cerise/cim-profile#TelephoneNumber.extension>
  rdf:type owl:DatatypeProperty ;
  uml:hasStereotype uml:attribute ;
  rdfs:comment "(if applicable) Extension for this telephone number." ;
  rdfs:label "extension" ;
.
<http://ontology.tno.nl/cerise/cim-profile#TelephoneNumber.localNumber>
  rdf:type owl:DatatypeProperty ;
  uml:hasStereotype uml:attribute ;
  rdfs:comment "Main (local) part of this telephone number." ;
  rdfs:label "localNumber" ;
.
cim:TownDetail
  rdf:type owl:Class ;
  uml:hasStereotype uml:compound ;
  rdfs:comment "Town details, in the context of address." ;
  rdfs:isDefinedBy cim:Package_Common ;
  rdfs:label "TownDetail" ;
  rdfs:subClassOf [
      rdf:type owl:Restriction ;
      owl:allValuesFrom xsd:string ;
      owl:onProperty <http://ontology.tno.nl/cerise/cim-profile#TownDetail.code> ;
    ] ;
  rdfs:subClassOf [
      rdf:type owl:Restriction ;
      owl:allValuesFrom xsd:string ;
      owl:onProperty <http://ontology.tno.nl/cerise/cim-profile#TownDetail.country> ;
    ] ;
  rdfs:subClassOf [
      rdf:type owl:Restriction ;
      owl:allValuesFrom xsd:string ;
      owl:onProperty <http://ontology.tno.nl/cerise/cim-profile#TownDetail.name> ;
    ] ;
  rdfs:subClassOf [
      rdf:type owl:Restriction ;
      owl:allValuesFrom xsd:string ;
      owl:onProperty <http://ontology.tno.nl/cerise/cim-profile#TownDetail.section> ;
    ] ;
  rdfs:subClassOf [
      rdf:type owl:Restriction ;
      owl:allValuesFrom xsd:string ;
      owl:onProperty <http://ontology.tno.nl/cerise/cim-profile#TownDetail.stateOrProvince> ;
    ] ;
  rdfs:subClassOf [
      rdf:type owl:Restriction ;
      owl:cardinality "1"^^xsd:nonNegativeInteger ;
      owl:onProperty <http://ontology.tno.nl/cerise/cim-profile#TownDetail.code> ;
    ] ;
  rdfs:subClassOf [
      rdf:type owl:Restriction ;
      owl:cardinality "1"^^xsd:nonNegativeInteger ;
      owl:onProperty <http://ontology.tno.nl/cerise/cim-profile#TownDetail.country> ;
    ] ;
  rdfs:subClassOf [
      rdf:type owl:Restriction ;
      owl:cardinality "1"^^xsd:nonNegativeInteger ;
      owl:onProperty <http://ontology.tno.nl/cerise/cim-profile#TownDetail.name> ;
    ] ;
  rdfs:subClassOf [
      rdf:type owl:Restriction ;
      owl:cardinality "1"^^xsd:nonNegativeInteger ;
      owl:onProperty <http://ontology.tno.nl/cerise/cim-profile#TownDetail.section> ;
    ] ;
  rdfs:subClassOf [
      rdf:type owl:Restriction ;
      owl:cardinality "1"^^xsd:nonNegativeInteger ;
      owl:onProperty <http://ontology.tno.nl/cerise/cim-profile#TownDetail.stateOrProvince> ;
    ] ;
.
<http://ontology.tno.nl/cerise/cim-profile#TownDetail.code>
  rdf:type owl:DatatypeProperty ;
  uml:hasStereotype uml:attribute ;
  rdfs:comment "Town code." ;
  rdfs:label "code" ;
.
<http://ontology.tno.nl/cerise/cim-profile#TownDetail.country>
  rdf:type owl:DatatypeProperty ;
  uml:hasStereotype uml:attribute ;
  rdfs:comment "Name of the country." ;
  rdfs:label "country" ;
.
<http://ontology.tno.nl/cerise/cim-profile#TownDetail.name>
  rdf:type owl:DatatypeProperty ;
  uml:hasStereotype uml:attribute ;
  rdfs:comment "Town name." ;
  rdfs:label "name" ;
.
<http://ontology.tno.nl/cerise/cim-profile#TownDetail.section>
  rdf:type owl:DatatypeProperty ;
  uml:hasStereotype uml:attribute ;
  rdfs:comment "Town section. For example, it is common for there to be 36 sections per township." ;
  rdfs:label "section" ;
.
<http://ontology.tno.nl/cerise/cim-profile#TownDetail.stateOrProvince>
  rdf:type owl:DatatypeProperty ;
  uml:hasStereotype uml:attribute ;
  rdfs:comment "Name of the state or province." ;
  rdfs:label "stateOrProvince" ;
.
cim:UsagePoint
  rdf:type owl:Class ;
  uml:hasStereotype uml:concrete ;
  rdfs:comment "Logical or physical point in the network to which readings or events may be attributed. Used at the place where a physical or virtual meter may be located; however, it is not required that a meter be present." ;
  rdfs:isDefinedBy cim:Package_Metering ;
  rdfs:label "UsagePoint" ;
  rdfs:subClassOf cim:IdentifiedObject ;
  rdfs:subClassOf [
      rdf:type owl:Restriction ;
      owl:allValuesFrom cim:AmiBillingReadyKind ;
      owl:onProperty <http://ontology.tno.nl/cerise/cim-profile#UsagePoint.amiBillingReady> ;
    ] ;
  rdfs:subClassOf [
      rdf:type owl:Restriction ;
      owl:allValuesFrom cim:CustomerAgreement ;
      owl:onProperty <http://ontology.tno.nl/cerise/cim-profile#UsagePoint.CustomerAgreement> ;
    ] ;
  rdfs:subClassOf [
      rdf:type owl:Restriction ;
      owl:allValuesFrom cim:MeterReading ;
      owl:onProperty <http://ontology.tno.nl/cerise/cim-profile#UsagePoint.MeterReadings> ;
    ] ;
  rdfs:subClassOf [
      rdf:type owl:Restriction ;
      owl:allValuesFrom cim:ServiceCategory ;
      owl:onProperty <http://ontology.tno.nl/cerise/cim-profile#UsagePoint.ServiceCategory> ;
    ] ;
  rdfs:subClassOf [
      rdf:type owl:Restriction ;
      owl:allValuesFrom cim:ServiceSupplier ;
      owl:onProperty <http://ontology.tno.nl/cerise/cim-profile#UsagePoint.ServiceSupplier> ;
    ] ;
  rdfs:subClassOf [
      rdf:type owl:Restriction ;
      owl:allValuesFrom cim:UsagePointLocation ;
      owl:onProperty <http://ontology.tno.nl/cerise/cim-profile#UsagePoint.UsagePointLocation> ;
    ] ;
  rdfs:subClassOf [
      rdf:type owl:Restriction ;
      owl:allValuesFrom xsd:boolean ;
      owl:onProperty <http://ontology.tno.nl/cerise/cim-profile#UsagePoint.isSdp> ;
    ] ;
  rdfs:subClassOf [
      rdf:type owl:Restriction ;
      owl:allValuesFrom xsd:boolean ;
      owl:onProperty <http://ontology.tno.nl/cerise/cim-profile#UsagePoint.isVirtual> ;
    ] ;
  rdfs:subClassOf [
      rdf:type owl:Restriction ;
      owl:cardinality "1"^^xsd:nonNegativeInteger ;
      owl:onProperty <http://ontology.tno.nl/cerise/cim-profile#UsagePoint.CustomerAgreement> ;
    ] ;
  rdfs:subClassOf [
      rdf:type owl:Restriction ;
      owl:cardinality "1"^^xsd:nonNegativeInteger ;
      owl:onProperty <http://ontology.tno.nl/cerise/cim-profile#UsagePoint.ServiceCategory> ;
    ] ;
  rdfs:subClassOf [
      rdf:type owl:Restriction ;
      owl:cardinality "1"^^xsd:nonNegativeInteger ;
      owl:onProperty <http://ontology.tno.nl/cerise/cim-profile#UsagePoint.ServiceSupplier> ;
    ] ;
  rdfs:subClassOf [
      rdf:type owl:Restriction ;
      owl:cardinality "1"^^xsd:nonNegativeInteger ;
      owl:onProperty <http://ontology.tno.nl/cerise/cim-profile#UsagePoint.UsagePointLocation> ;
    ] ;
  rdfs:subClassOf [
      rdf:type owl:Restriction ;
      owl:cardinality "1"^^xsd:nonNegativeInteger ;
      owl:onProperty <http://ontology.tno.nl/cerise/cim-profile#UsagePoint.amiBillingReady> ;
    ] ;
  rdfs:subClassOf [
      rdf:type owl:Restriction ;
      owl:cardinality "1"^^xsd:nonNegativeInteger ;
      owl:onProperty <http://ontology.tno.nl/cerise/cim-profile#UsagePoint.isSdp> ;
    ] ;
  rdfs:subClassOf [
      rdf:type owl:Restriction ;
      owl:cardinality "1"^^xsd:nonNegativeInteger ;
      owl:onProperty <http://ontology.tno.nl/cerise/cim-profile#UsagePoint.isVirtual> ;
    ] ;
  rdfs:subClassOf [
      rdf:type owl:Restriction ;
      owl:minCardinality "1"^^xsd:nonNegativeInteger ;
      owl:onProperty <http://ontology.tno.nl/cerise/cim-profile#UsagePoint.MeterReadings> ;
    ] ;
.
<http://ontology.tno.nl/cerise/cim-profile#UsagePoint.CustomerAgreement>
  rdf:type owl:ObjectProperty ;
  rdfs:comment "Customer agreement regulating this service delivery point." ;
  rdfs:label "CustomerAgreement" ;
.
<http://ontology.tno.nl/cerise/cim-profile#UsagePoint.MeterReadings>
  rdf:type owl:ObjectProperty ;
  rdfs:comment "All meter readings obtained from this usage point." ;
  rdfs:label "MeterReadings" ;
.
<http://ontology.tno.nl/cerise/cim-profile#UsagePoint.ServiceCategory>
  rdf:type owl:ObjectProperty ;
  rdfs:comment "Service category delivered by this usage point." ;
  rdfs:label "ServiceCategory" ;
.
<http://ontology.tno.nl/cerise/cim-profile#UsagePoint.ServiceSupplier>
  rdf:type owl:ObjectProperty ;
  rdfs:comment "ServiceSupplier (Utility) utilising this usage point to deliver a service." ;
  rdfs:label "ServiceSupplier" ;
.
<http://ontology.tno.nl/cerise/cim-profile#UsagePoint.UsagePointLocation>
  rdf:type owl:ObjectProperty ;
  rdfs:comment "Location of this usage point." ;
  rdfs:label "UsagePointLocation" ;
.
<http://ontology.tno.nl/cerise/cim-profile#UsagePoint.amiBillingReady>
  rdf:type owl:ObjectProperty ;
  uml:hasStereotype uml:attribute ;
  rdfs:comment "Tracks the lifecycle of the metering installation at a usage point with respect to readiness for billing via advanced metering infrastructure reads." ;
  rdfs:label "amiBillingReady" ;
.
<http://ontology.tno.nl/cerise/cim-profile#UsagePoint.isSdp>
  rdf:type owl:DatatypeProperty ;
  uml:hasStereotype uml:attribute ;
  rdfs:comment "If true, this usage point is a service delivery point, i.e., a usage point where the ownership of the service changes hands." ;
  rdfs:label "isSdp" ;
.
<http://ontology.tno.nl/cerise/cim-profile#UsagePoint.isVirtual>
  rdf:type owl:DatatypeProperty ;
  uml:hasStereotype uml:attribute ;
  rdfs:comment "If true, this usage point is virtual, i.e., no physical location exists in the network where a meter could be located to collect the meter readings. For example, one may define a virtual usage point to serve as an aggregation of usage for all of a companies premises distributed widely across the distribution territory. Otherwise, the usage point is physical, i.e., there is a logical point in the network where a meter could be located to collect meter readings." ;
  rdfs:label "isVirtual" ;
.
cim:UsagePointLocation
  rdf:type owl:Class ;
  uml:hasStereotype uml:concrete ;
  rdfs:comment "Location of an individual usage point." ;
  rdfs:isDefinedBy cim:Package_Metering ;
  rdfs:label "UsagePointLocation" ;
  rdfs:subClassOf cim:Location ;
  rdfs:subClassOf [
      rdf:type owl:Restriction ;
      owl:allValuesFrom cim:UsagePoint ;
      owl:onProperty <http://ontology.tno.nl/cerise/cim-profile#UsagePointLocation.UsagePoints> ;
    ] ;
  rdfs:subClassOf [
      rdf:type owl:Restriction ;
      owl:minCardinality "1"^^xsd:nonNegativeInteger ;
      owl:onProperty <http://ontology.tno.nl/cerise/cim-profile#UsagePointLocation.UsagePoints> ;
    ] ;
.
<http://ontology.tno.nl/cerise/cim-profile#UsagePointLocation.UsagePoints>
  rdf:type owl:ObjectProperty ;
  rdfs:comment "All usage points at this location." ;
  rdfs:label "UsagePoints" ;
  owl:inverseOf <http://ontology.tno.nl/cerise/cim-profile#UsagePoint.UsagePointLocation> ;
.
