CIM Evaluation
Defined IRIs in use
RDFS
Namespace: http://www.w3.org/2000/01/rdf-schema#
rdfs:Class- Defines that a resource is a class.
rdfs:subClassOf- Defines that the subject is a
subClassOfthe object
- Defines that the subject is a
rdfs:Literal,rdfs:Datatype,rdf:langString,rdf:HTML,rdf:XMLLiteral- Can be used to define data format of Literal. (e.g. comments)
rdf:type- Defines the type of a ressource, so whether it's a class, enumEntry or property (attribute/association).
rdfs:domain- Defines the affiliation of a property (attribute/association) to a class.
rdfs:range- Defines, the datatype of an attribute in case of an enum attribute or the target of an association.
rdfs:label- Defines a label for ressource.
rdfs:comment- Defines a comment for a ressource.
- The format of comments gets normalized to
xsd:stringon import.
CIMS
Namespace: https://iec.ch/TC57/1999/rdf-schema-extensions-19990926#
cims:belongsToCatgory- Defines the optional package that a class belongs to.
cims:stereotype- Defines Metadata for a ressource, e.g. the wether or not a class is abstract, an datatype etc.
cims:datatype- Defines the datatype of an attribute, in case that datatype is not a enum class.
cims:mutlitplicity- Defines how often an attribute or association should be instantiated. Can either define a range (
M:0..1meaning a number from 0 to 1) or a specific amount (M:1..1orM:1meaning exactly one). Ranges can also be open ended, for exampleM:1..nbeing one or more andM:nbeing any amount.
- Defines how often an attribute or association should be instantiated. Can either define a range (
cims:isDefault- Defines a default value for an attribute.
- can in some cases be specified in the form of a blank node.
cims:isFixed- Defines one fixed value for an attribute.
- can in some cases be specified in the form of a blank node.
cims:associationUsed- Defines wether or not an association should be instantiated in the given direction.
cims:inverseRoleName- References the IRI of the inverse association.
Ontology Header
Standard CGMES 3.0 entries used in the Ontology Header
- dct:conformsTo
- dct:creator
- dct:description
- dct:identifier
- dct:issued
- dct:language
- dct:modified
- dct:publisher
- dct:rights
- dct:rightsHolder
- dct:title
- owl:backwardCompatibleWith
- owl:incompatibleWith
- owl:priorVersion
- owl:versionIRI
- owl:versionInfo
- dcat:keyword
- dcat:landingPage
- dcat:theme
CIM Object structure
- package:<br>
pre:Package_{packageName} rdf:type cims:ClassCategory #requiredrdfs:label "{packageName}"@en #requiredrdfs:comment "{comment}"^^{format} #optional
-
class:<br>
pre:{className} rdf:type rdfs:Class #requiredrdfs:label "{className}"@en #requiredrdfs:subClassOf {superClassIRI} #optionalrdfs:comment "{comment}"^^{format} #optionalcims:belongsToCategory {packageIRI} #optionalcims:stereotype {class stereotype} #optional- common
{class stereotypes}:<http://iec.ch/TC57/NonStandard/UML#concrete> | <http://iec.ch/TC57/NonStandard/UML#enumeration> | "Primitive" | "CIMDatatype" | "Entsoe" - classes can have more than one stereotype
- common
-
attribute:
pre:{classLabel}.{attributeName} rdf:type rdf:Property #requiredrdfs:label "{attributeName}"@en #requiredrdfs:domain {classIRI} #required(rdfs:range {enumClassIRI} | cims:dataType {dataTypeIRI}) #requiredrdfs:comment "{comment}"^^{format} #optionalcims:stereotype <http://iec.ch/TC57/NonStandard/UML#attribute> #requiredcims:multiplicity cims:M:[0-9]+(..(n|[0-9])) #requiredcims:isFixed {value}^^{datatype}| [ rdfs:Literal {value}^^{datatype}] #optionalcims:isDefault {value}^^| [ rdfs:Literal {value}^^{datatype}] #optional- prefix of the attribute does not have to be the same as class prefix
- multiplicity of attributes is most commonly either
M:0..1orM:1..1to indicate optional or required attributes
-
association:
pre:{classLabel}.{label} rdf:type rdf:Property #requiredrdfs:label "{label}"@en #required (is the {targetLabel} by default)rdfs:domain {classIRI} #requiredrdfs:range {targetIRI} #requiredrdfs:comment "{comment}"^^{format} #optionalcims:AssociationUsed "Yes" | "No" #requiredcims:inverseRoleName {targetIRI}.{inverseLabel} #requiredcims:multiplicity cims:M:[0-9]+(..(n|[0-9]+))? #requiredpre:{targetLabel}.{inverseLabel} rdf:type rdf:Property #requiredrdfs:label "{inverselabel}"@en #required (is {classLabel} by default)rdfs:domain {targetIRI} #requiredrdfs:range {classIRI} #requiredrdfs:comment "{inverseComment}"^^{format} #optionalcims:AssociationUsed "Yes" | "No" #requiredcims:inverseRoleName {classIRI}.{label} #requiredcims:multiplicity cims:M:[0-9]+(..(n|[0-9]+))? #required- prefix of the association or inverse association does not have to be the same as domain or range prefix
-
enumEntry:
pre:{classLabel}.{enumEntryName} rdf:type {enumClassIRI} #requiredrdfs:label "{enumEntryName}"@en #requiredrdfs:comment "{comment}"^^{format} #optionalcims:stereotype "enum" #optional